2014-人工智能应用技术实验报告-启发式搜索程序设计.doc

2014-人工智能应用技术实验报告-启发式搜索程序设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2014-人工智能应用技术实验报告-启发式搜索程序设计剖析

实 验 报 告 课程名称 实验项目 实验仪器 Windows/VisualStudio 学 院 信息专 业班级/学号学生姓名 ony 实验日期 2016-5-17 成 绩 指导教师 赵刚 北京信息科技大学 信息管理学院 (课程上机)实验报告 实验课程名称: 人工智能应用技术 专业: 信息安全 学号: 姓名: 实验名称 启发式搜索 程序设计 实验地点 学院机房 实验时间 5/17 1-4节 实验目的: 在掌握启发式搜索原理的基础上,完成八数码问题的求解算法与程序设计,并根据实验数据分析初始状态、启发式函数对求解过程的影响;通过实验,使学生掌握启发式搜索算法程序设计方法、加深对启发式搜索原理的理解。 实验内容: 学习并掌握启发式搜索技术原理; 设计八数码问题求解的启发式搜索算法; 掌握启发式搜索算法程序设计与实现方法; 改变启发式函数、初始状态,分析求解过程的变化、并对结果做出评价和分析; 按照要求撰写实验报告。 实验要求: 初步理解相关知识:启发式搜索原理;八数码问题求解方法; 熟悉相关实验环境:Microsoft Windows、Visual C++; 课堂演示程序执行结果。 实验准备: 掌握启发式搜索原理 设计八数码问题的求解算法 实验过程: #include stdio.h #include malloc.h #include assert.h //#include rand.h #include stdlib.h #include time.h #define RANDINIT() srand(time(NULL)) #define RANDOM() ((float)rand() / (float)RAND_MAX) #define RANDMAX(x) (int)((float)(x)*rand()/(RAND_MAX+1.0)) #define MAX_BOARD 9 #define ALPHA (double)1.0 /* Depth Bias */ #define BETA (double)2.0 /* Misplaced Tile Bias */ #define MAX_DEPTH 26 struct board_s; typedef struct board_s { struct board_s *pred; double f; double g; double h; char array[MAX_BOARD]; char blank; char depth; } board_t; /* Node Functions */ board_t *nodeAlloc( void ) { board_t *board_p; board_p = (board_t *)malloc( sizeof(board_t) ); assert(board_p); board_p-pred = NULL; board_p-f = board_p-g = board_p-h = (double)0.0; return board_p; } void nodeFree( board_t *board_p ) { assert(board_p); free(board_p); return; } /* List Functions */ #define MAX_LIST_ELEMENTS 100000 typedef struct { int numElements; board_t *elements[MAX_LIST_ELEMENTS]; } list_t; #define listCount(x) ((x)-numElements) list_t openList_p; list_t closedList_p; void initList( list_t *list_p ) { int i; assert(list_p); list_p-numElements = 0; for (i = 0 ; i MAX_LIST_ELEMENTS ; i++) { list_p-elements[i] = (board_t *)0; } return; } int onList( list_t *list_p, char *board_p, int *pos ) { int i, j; assert(list_p);

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档