昆明理工大学人工智能八数码难题实验报告.doc
《昆明理工大学人工智能八数码难题实验报告.doc》由会员分享,可在线阅读,更多相关《昆明理工大学人工智能八数码难题实验报告.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、昆明理工大学信息工程与自动化学院学生实验报告( 2013 2014 学年 第 1 学期 )课程名称:人工智能 开课实验室:信自楼445 2013 年10月 25日年级、专业、班计科113学号4姓名周国映成绩实验项目名称八数码难题指导教师 刘英莉教师评语该同学是否了解实验原理:A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、上机目的及内容1.上机内容用确定性推理算法求解教材65-66页介绍的八
2、数码难题。2.上机目的(1)复习程序设计和数据结构课程的相关知识,实现课程间的平滑过渡;(2)掌握并实现在小规模状态空间中进行图搜索的方法;(3)理解并掌握图搜索的技术要点。二、实验原理及基本技术路线图(方框原理图或程序流程图)(1)设计并实现程序,求解出正确的解答路径;(2)对所设计的算法采用大O符号进行时间复杂性和空间复杂性分析;(3)对一般图搜索的技术要点和技术难点进行评述性分析。三、所用仪器、材料(设备名称、型号、规格等或使用软件)1台PC及VISUAL C+6.0软件四、实验方法、步骤(或:程序代码或操作过程)1、先创建项目,新建Source File文件:main.cpp。#inc
3、lude #include Node.h#include Queue.h#include Search.h#include Tree.hvoid 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.pus
4、h_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.
5、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);
6、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 sea
7、rch(&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
8、);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;CreateNode1(s);std:vector d;CreateNode27(d);Node source(s);Node dest(d);source.Display();dest.Display();Sear
9、ch search(&source);search.Find( & dest);search.DisplayRoute();int main(int argc, char* argv)/ test_expand();/ test_search();/ test_search2level();/ test_search_lab1();std:vector s;CreateNode1(s);std:vector d;CreateNode27(d);Node source(s);Node dest(d);source.Display();dest.Display();Search search(&s
10、ource);search.Find( & dest);search.DisplayRoute();return 0;2、新建Source File文件:Node.cpp#ifndef PROGECT_1_NODE#define PROGECT_1_NODE#include #include Search.henum OPEMPTY,UP,DOWN,LEFT,RIGHT;bool IsOpposite(OP opa, OP opb);class Nodepublic:Node(std:vector const& state);bool Expand(Node const& destNode,
11、Search& search);void Display() const;void DisplayRoute() const;bool operator=(Node const& v) const;private:Node* CreateChild(OP op);int FindEmptySpaceId() const;std:vector GenerateLegalOperators(int spaceId) const;int CalIdBasedOP(OP op, int spaceId) const;bool IsWithinRange(OP op, int spaceId) cons
12、t;std:vector m_state;Node *m_pParent;std:vector m_children;OP m_op;#endif / PROGECT_1_NODE3新建Heard File文件:node.h。代码:#include #include #include Node.hbool IsOpposite(OP opa, OP opb)if (LEFT=opa & RIGHT = opb)return true;if (RIGHT=opa & LEFT = opb)return true;if (UP=opa & DOWN = opb)return true;if (DO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 昆明 理工大学 人工智能 数码 难题 实验 报告
限制150内