人工智能实验报告 八数码难题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告

(2012 —2013 学年第 1 学期)

课程名称:人工智能开课实验室:信自楼442 2012 年10月 24日

一、上机目的及内容

1.上机内容

用确定性推理算法求解教材65-66页介绍的八数码难题。

2.上机目的

(1)复习程序设计和数据结构课程的相关知识,实现课程间的平滑过渡;

(2)掌握并实现在小规模状态空间中进行图搜索的方法;

(3)理解并掌握图搜索的技术要点。

二、实验原理及基本技术路线图(方框原理图或程序流程图)

(1)设计并实现程序,求解出正确的解答路径;

(2)对所设计的算法采用大O符号进行时间复杂性和空间复杂性分析;

(3)对一般图搜索的技术要点和技术难点进行评述性分析。

三、所用仪器、材料(设备名称、型号、规格等或使用软件)

1台PC及VISUAL C++6.0软件

四、实验方法、步骤(或:程序代码或操作过程)

流程图:

源代码:

Source files:

主函数main:

#include

#include "Node.h"

#include "Queue.h"

#include "Search.h"

#include "Tree.h"

void CreateNode1(std::vector& s)

{

s.push_back(2);

s.push_back(8);

s.push_back(3);

s.push_back(1);

s.push_back(0);

s.push_back(4);

s.push_back(7);

s.push_back(6);

s.push_back(5);

}

void CreateNode4(std::vector& d) {

d.push_back(2);

d.push_back(8);

d.push_back(3);

d.push_back(1);

d.push_back(6);

d.push_back(4);

d.push_back(7);

d.push_back(0);

d.push_back(5);

}

void CreateNode8(std::vector& d) {

d.push_back(0);

d.push_back(2);

d.push_back(3);

d.push_back(1);

d.push_back(8);

d.push_back(4);

d.push_back(7);

d.push_back(6);

d.push_back(5);

}

void CreateNode20(std::vector& d) {

d.push_back(2);

d.push_back(0);

d.push_back(8);

d.push_back(1);

d.push_back(4);

d.push_back(3);

d.push_back(7);

d.push_back(6);

d.push_back(5);

}

void CreateNode27(std::vector& d) {

d.push_back(1);

d.push_back(2);

d.push_back(3);

d.push_back(8);

d.push_back(0);

d.push_back(4);

d.push_back(7);

d.push_back(6);

d.push_back(5);

}

void CreateNode_test1(std::vector& d) {

d.push_back(7);

d.push_back(6);

d.push_back(5);

d.push_back(4);

d.push_back(0);

d.push_back(1);

d.push_back(3);

d.push_back(8);

d.push_back(2);

}

void test_expand()

{

std::vector s;

CreateNode1(s);

std::vector d;

CreateNode4(d);

Node source(s);

Node dest(d);

source.Display();

Search search(&source);

std::cout << source.Expand(dest, search); }

void test_search()

{

std::vector s;

CreateNode1(s);

std::vector d;

CreateNode4(d);

Node source(s);

Node dest(d);

source.Display();

dest.Display();

Search search(&source);

search.Find( & dest);

search.DisplayRoute();

}

void test_search2level()

{

std::vector s;

CreateNode1(s);

std::vector d;

CreateNode8(d);

Node source(s);

Node dest(d);

source.Display();

dest.Display();

Search search(&source);

search.Find( & dest);

search.DisplayRoute();

}

void test_search_lab1()

{

std::vector s;

相关文档
最新文档