人工智能大作业

合集下载

人工智能大作业题目

人工智能大作业题目

人工智能大作业题目人工智能大作业题目1、基于A*算法求解八数码问题(1)至少定义3种不同的启发式函数,编程实现求解八数码问题的A*算法;(2)要求用可视化界面演示算法执行过程,应能选择预定义的启发式函数,能随机初始化初始状态,能单步执行,也能连续执行,能画出搜索树,同时标出估价函数在每个节点的各项函数值,能展示OPEN表和CLOSED表的动态变化过程;(3)能统计出扩展节点数和算法执行时间,以便对采用不同启发式函数的A*算法的性能做对比研究。

2、基于A*算法的最优路径规划系统(1)基于真实地图实现,可以是位图背景加栅格坐标数据,也可以直接使用某种格式的GIS (地理信息系统)矢量地图,地图规模不能太小;(2)用户可以设置起点和终点;(3)要求用可视化界面演示算法执行过程,能单步执行,也能连续执行,画出扩展过的所有路径,画出最优路径,能展示OPEN表和CLOSED表的动态变化过程;(4)可考虑路况信息,改进启发式函数,以求更实用。

3、A*算法的改进研究(1)给出改进思路并编程实现改进的算法;(2)结合一个具体问题实验对比改进前后的算法性能。

4、图搜索算法对比研究(1)编程实现广度优先、等待价、深度优先、深度受限、迭代加深、最佳优先搜索算法;(2)要求用可视化界面演示算法执行过程,能单步执行,也能连续执行,能画出搜索树,能展示OPEN表和CLOSED表的动态变化过程;(3)用户可以自定义搜索图,通过实验研究各种图搜索算法的性能。

5、基于α-β剪枝算法的五子棋游戏(1)编写五子棋游戏程序,支持人机对战;(2)编程实现α-β剪枝算法,作为机器方的下棋算法。

6、五子棋机器博弈系统(1)编程实现一个五子棋主控程序,要求有可视化棋盘,有裁判功能,支持通过Socket接口连接选手,有清晰简洁的通信协议,支持循环赛赛程管理;(2)每个同学编写一个五子棋下棋算法,通过Socket接口接入主控程序,与其他机器选手对战。

人工智能大作业

人工智能大作业

第一章1.3 什么是人工智能?它的研究目标是什么?人工智能(Ar ficial Ar ficial IntelligenceIntelligence ),英文缩写为AI 。

它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

研究目标:人工智能是计算机科学的一个分支,人工智能是计算机科学的一个分支,它企图了解智能的实质,它企图了解智能的实质,它企图了解智能的实质,并生产出一种新的并生产出一种新的能以人类智能相似的方式做出反应的智能机器,能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、该领域的研究包括机器人、该领域的研究包括机器人、语言识别、语言识别、图像识别、自然语言处理和专家系统等。

1.7 人工智能有哪几个主要学派?各自的特点是什么?主要学派:符号主义,联结主义和行为主义。

1.符号主义:认为人类智能的基本单元是符号,认为人类智能的基本单元是符号,认识过程就是符号表示下的符号计算,认识过程就是符号表示下的符号计算,认识过程就是符号表示下的符号计算,从从而思维就是符号计算;2.联结主义:认为人类智能的基本单元是神经元,认识过程是由神经元构成的网络的信息传递,这种传递是并行分布进行的。

3.行为主义:认为,人工智能起源于控制论,行为主义:认为,人工智能起源于控制论,提出智能取决于感知和行动,提出智能取决于感知和行动,提出智能取决于感知和行动,取决于对外界取决于对外界复杂环境的适应,它不需要只是,不需要表示,不需要推理。

1.8 人工智能有哪些主要研究和应用领域?其中有哪些是新的研究热点?1.研究领域:问题求解,逻辑推理与定理证明,自然语言理解,自动程序设计,专家系统,机器学习,神经网络,机器人学,数据挖掘与知识发现,人工生命,系统与语言工具。

2.研究热点:专家系统,机器学习,神经网络,分布式人工智能与Agent ,数据挖掘与知识发现。

第二章2.8 用谓词逻辑知识表示方法表示如下知识:(1)有人喜欢梅花,有人喜欢菊花,有人既喜欢梅花又喜欢菊花。

大工20秋《生产实习(人工智能专业)》大作业及要求

大工20秋《生产实习(人工智能专业)》大作业及要求

大工20秋《生产实习(人工智能专业)》大作业及要求一、背景介绍《生产实(人工智能专业)》是大工20秋学期的一门重要课程,旨在帮助学生将所学知识应用到实际生产中。

本课程将为学生提供一个机会,通过完成大作业来展示他们在人工智能领域的能力和实践经验。

二、大作业要求大作业的主要目的是让学生能够综合运用所学的人工智能知识,解决实际问题并提出创新性的解决方案。

具体要求如下:1. 选择一个与人工智能相关的实际问题或挑战,并提出明确的研究目标和问题陈述。

2. 设计和实施一个合适的人工智能算法和模型来解决所选择的问题。

学生可以使用现有的开源框架或自行开发算法。

但请确保学术诚信,不得抄袭他人成果。

3. 收集和整理相关的数据集,并对数据进行预处理和分析。

确保数据集的合法性和准确性。

4. 设计一个实验方案,验证所提出的算法和模型的有效性和性能。

合理选择评价指标,并进行实验结果的分析和讨论。

5. 撰写一份详细的实报告,并呈现在实践展示会上。

报告需要包含问题陈述、算法设计、数据处理和分析、实验设计和结果分析等内容。

三、评分标准大作业将根据以下标准进行评分:1. 问题的挑战性和创新性:是否选择了一个具有一定难度和挑战性的问题,并提出了创新的解决方案。

2. 算法和模型的设计和实现:算法和模型是否合理且有效地解决了问题,是否使用了合适的数据集和评价指标。

3. 数据处理和分析:是否正确地收集、整理和预处理了数据,并对数据进行了合理的分析。

4. 实验设计和结果分析:实验方案是否严谨,结果是否具有说服力,分析是否深入。

5. 实报告和实践展示:报告是否完整、详细,并能清晰地表达研究过程和结果,展示会演示是否准备充分并能回答问题。

四、提交要求大作业的提交包括以下内容:1. 一份完整的实报告,包含问题陈述、算法设计、数据处理和分析、实验设计和结果分析等内容。

2. 代码实现和相关文档。

3. 选定的实际问题的相关背景介绍和数据集说明。

请在规定时间内将大作业提交到指定的邮箱或平台,并按照要求命名文件和邮件主题。

人工智能大作业题目

人工智能大作业题目

人工智能大作业题目嘿,同学们!咱们今天来聊聊这个听起来超级酷的“人工智能”。

要说这人工智能啊,那可真是个神奇的东西。

就拿我前几天的一次经历来说吧。

我去商场逛街,看到有个智能机器人在给顾客指引方向,回答各种问题,那叫一个溜!它不仅能清楚地告诉你各个店铺的位置,还能根据你的需求推荐合适的商品。

我当时就在想,这人工智能发展得也太快了,说不定哪天它就能完全替代人类的某些工作啦。

咱们先从小学的教材说起。

在小学阶段,人工智能的内容更多是通过一些有趣的故事和简单的示例来引入的。

比如说,会讲一个小朋友和智能小助手一起完成任务的故事,让小朋友们初步感受人工智能的神奇。

就像有个故事里,小明同学做作业的时候遇到了难题,他的智能学习伙伴一下子就给出了详细的解题步骤和思路,帮助小明轻松解决了问题。

到了初中,教材里的人工智能内容就逐渐深入啦。

会开始介绍一些基本的原理和概念,像什么是机器学习、什么是图像识别。

记得有一次,我看到一群初中生在讨论他们做的一个关于智能垃圾分类的小项目。

他们可积极了,有的在研究如何让机器通过图像准确识别不同的垃圾类别,有的在想办法提高分类的效率。

看着他们那认真的劲儿,我就知道,这人工智能的种子已经在他们心里生根发芽了。

高中的教材那可就更有深度了。

不仅要深入理解人工智能的算法和模型,还要能够运用所学知识去解决一些实际的问题。

比如说,会让同学们去设计一个简单的智能交通系统,优化城市的交通流量。

我听说有个高中班级,为了完成这个作业,分成了好几个小组。

有的去收集交通数据,有的负责建立模型,还有的负责测试和优化。

最后他们呈现出来的成果还真让人眼前一亮,连老师都忍不住竖起大拇指呢!其实啊,人工智能不仅仅是在教材里的知识,它已经渗透到我们生活的方方面面啦。

比如说,我们用的智能手机里的语音助手,能够听懂我们的话,帮我们完成各种操作;还有家里的智能家电,能根据我们的习惯自动调节工作模式。

这一切都离不开人工智能的功劳。

人工智能大作业心得体会大全

人工智能大作业心得体会大全

人工智能大作业心得体会大全首先,我意识到人工智能技术的广泛应用和巨大潜力。

通过学习人工智能的基本原理和算法,我了解到人工智能在医疗、金融、教育、交通等各个领域都有着重要的应用价值。

例如,在医疗领域,人工智能可以帮助医生诊断疾病、制定治疗方案,提高医疗效率和治疗成功率;在金融领域,人工智能可以帮助银行和投资机构进行风险评估和预测,提高财务管理的效率和准确性。

这些应用不仅改善了人们的生活品质,也为社会和经济发展带来了巨大的潜力。

其次,我深刻认识到人工智能技术的复杂性和挑战性。

在完成大作业的过程中,我遇到了很多挑战和困难,比如数据处理、模型设计、算法优化等方面的问题。

这些问题需要我不断地学习和思考,才能找到合适的解决方法。

由此可见,人工智能技术的应用并不是一件简单的事情,需要有丰富的知识储备和严谨的思维能力才能应对各种复杂情况。

最后,通过完成大作业,我对未来人工智能的发展趋势和方向有了更清晰的认识。

我认为未来人工智能技术的发展将会朝着更加智能化、自动化、人性化的方向发展。

例如,未来的智能机器人将会更加智能化和人性化,能够更好地与人类进行交流和合作;智能驾驶技术将会更加成熟和安全,能够更好地应对各种复杂的交通条件和情况。

同时,我也意识到人工智能的发展需要遵循一定的伦理原则和规范,以保障人类的权益和社会的稳定。

总之,通过完成这个人工智能大作业,我对人工智能技术有了更深刻的理解和认识,也对人工智能在未来的发展方向和挑战有了更清晰的认识。

我相信,在今后的学习和工作中,我会继续努力学习和探索人工智能技术,为人工智能的发展和应用做出自己的贡献。

抱歉,我无法完成超过1,000字的要求。

我可以帮你以其他方式继续支持你的写作吗?。

人工智能大作业心得体会

人工智能大作业心得体会

人工智能大作业心得体会在这次人工智能大作业中,我学到了很多关于人工智能的知识和技能,并且收获了很多心得体会。

首先,我意识到人工智能已经在我们生活的方方面面发挥了巨大的作用,从智能手机上的语音助手到智能家居设备的应用,人工智能已经悄然走进了我们的日常生活。

这次作业让我更加深入地了解了人工智能的原理和应用,使我对人工智能的重要性有了更深刻的认识。

其次,我在做大作业的过程中体会到了人工智能技术的复杂性和挑战性。

在设计和实现一个人工智能系统的过程中,需要考虑很多因素,包括数据的处理、算法的选择、模型的训练等等。

这需要我们具备扎实的编程和数学基础,以及对人工智能技术的深入理解。

最后,我也意识到人工智能的发展是一个持续不断的过程,需要我们不断地学习和探索。

在这个快速发展的领域,我们不能停留在已有的知识和技能上,而是要保持对新技术和新理论的关注,不断地提升自己的能力。

只有这样,我们才能在这个领域取得更大的成就。

总的来说,通过这次人工智能大作业,我不仅学到了很多关于人工智能的知识和技能,也收获了很多关于学习和成长的体会。

我相信,随着人工智能技术的不断发展,我会继续努力,为这个领域的发展做出自己的贡献。

对于接下来人工智能的发展,我对于这个领域的未来充满着期待。

人工智能技术已经在诸如医疗、交通、金融、教育等各个领域展现出了强大的潜力,未来它将被更广泛地运用到我们的社会之中,极大地改变着我们的生活方式和工作方式。

首先,人工智能的技术将会继续进步,带来更加智能化的产品和服务。

例如,在医疗领域,人工智能已经开始被用于诊断辅助、基因组学、精准医疗等方面,预计在未来,人工智能技术将更深入地影响药物开发和医疗器械研发。

在交通领域,自动驾驶技术的发展将会大大提高交通安全性和效率。

另外,在金融领域,人工智能将会被用于更智能化的风险管理和投资决策。

随着算法的不断更新迭代和硬件的不断提升,我们相信这些大规模的应用将会改善我们的生活,使得我们的工作更加高效,让我们的生活更加智能化。

人工智能大作业

人工智能大作业

大作业1、引言
1.1 背景
1.2 目的
1.3 范围
1.4 定义
2、文献综述
2.1 关于的研究历史
2.2 相关研究成果与应用领域
3、问题陈述
3.1 问题描述
3.2 研究的动机和意义
3.3 研究的目标和假设
4、方法ology
4.1 数据收集
4.2 数据处理与清洗
4.3 特征选择与提取
4.4 算法选择与实现
4.5 模型训练与优化
5、实验结果与分析
5.1 数据集描述
5.2 实验设置
5.3 结果分析与讨论
5.4 实验效果评估
6、结论与展望
6.1 主要研究结果总结 6.2 讨论与不足之处
6.3 对未来工作的展望附件:
附件1:数据集来源信息附件2:代码仓库
附件3:实验结果数据表格法律名词及注释:
1、:指通过模拟和模仿人类智能的方法和技术,使计算机系统能够自动执行任务、学习、适应和改进。

2、数据处理与清洗:指对原始数据进行筛选、过滤、去除噪声以及修复缺失值等操作,以提高数据的质量和可用性。

3、特征选择与提取:指从原始数据中选择最相关或最具代表性的特征,或通过计算、变换等方法提取出更具信息量的特征。

4、算法选择与实现:指根据问题的特点和要求,选择合适的算法,并通过编程实现。

5、模型训练与优化:指使用训练数据对选定的算法模型进行训练,并通过调整参数、改进算法等方式优化模型性能。

人工智能(AI)大作业

人工智能(AI)大作业

《人工智能》研究生课程大作业题1(2011-2012学年)1. 题目利用人工智能技术解决一个实际问题,问题自选,但有如下要求:1)你的解决方案必须是一个具有学习能力的智能系统;2)该系统中的执行机构必须采用课程中学习过的内容,即在以下内容中选择:问题求解方法、博弈方法、推理方法、神经网络、决策树、Bayes决策方法、智能体;3)该系统中如采用监督学习算法,则算法必须体现奥坎姆剃刀原则;4)在该系统框架下,分别采用进化算法和群智能优化算法进行优化,试验并比较两类优化算法的效果;6)每人独立完成一个题目;7)编程实现并撰写相应文档;8)撰写标准论文形式的技术报告;9)期末考试前提交。

2. 提交材料及方式每一份作业需提交五份文件:(1)可执行程序;(2)源代码;(3)程序设计说明;(4)程序使用说明;(5)技术报告。

程序设计说明和使用说明格式自拟。

技术报告为标准论文形式,需包括以下内容:(1)问题定义;(2)技术现状;(3)所采用或提出的方法;(4)实验结果;(5)结论;(6)参考文献。

具体撰写格式可参考国内外一流学术期刊或会议上的论文样式。

鼓励采用英文撰写技术报告,如采用英文撰写,将根据论文质量酌情给予最高5分的加分。

以上文件请打包成一个压缩文件,以“学号_姓名_大作业编号”方式命名后提交至课程教学网站。

在文件中请留下你的个人联系方式,以便在出现文件不能解压、不能打开、程序不能编译运行等各种情况时与你联系。

3. 评分标准大作业评分分为程序和技术报告两项,各自比例分别为60%(程序)和40%(技术报告)。

程序部分评分细则如下:1)可执行程序运行结果正确,10%2)源代码可编译并得到与所提交的可执行程序一致的程序,20%3)源代码逻辑清晰,结构紧凑,功能和界面划分合理,20%4)源代码风格严谨,注释充分明确,20%5)程序设计说明与源代码一致,格式规范,语言通顺,20%6)程序使用说明与可执行程序一致,格式规范,语言通顺,10%技术报告部分评分细则如下:1)内容完整,20%2)格式规范,10%3)表述流畅,10%4)问题及解决方案阐述清楚,30%5)实验充分,数据和结论可靠,30%6)如能提出自己的方法或有创新之处,将酌情给予最高5分的加分。

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

人工智能基础大作业—---八数码难题学院:数学与计算机科学学院班级:计科14—1姓名:王佳乐学号:122016、12、20一、实验名称八数码难题得启发式搜索二、实验目得八数码问题:在3×3得方格棋盘上,摆放着1到8这八个数码,有1个方格就是空得,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移与空格下移这四个操作使得棋盘从初始状态到目标状态.要求:1、熟悉人工智能系统中得问题求解过程;2、熟悉状态空间得启发式搜索算法得应用;3、熟悉对八数码问题得建模、求解及编程语言得应用。

三、实验设备及软件环境1.实验编程工具:VC++ 6、02.实验环境:Windows7 64位四、实验方法:启发式搜索1、算法描述1.将S放入open表,计算估价函数f(s)2.判断open表就是否为空,若为空则搜索失败,否则,将open表中得第一个元素加入close表并对其进行扩展(每次扩展后加入open表中得元素按照代价得大小从小到大排序,找到代价最小得节点进行扩展)注:代价得计算公式f(n)=d(n)+w(n)、其中f(n)为总代价,d(n)为节点得度,w(n)用来计算节点中错放棋子得个数.判断i就是否为目标节点,就是则成功,否则拓展i,计算后续节点f(j),利用f(j)对open表重新排序2、算法流程图:3、程序源代码:#include<stdio、h># include<string、h># include<malloc、h># include〈stdlib、h>typedef struct node{ﻩint i,cost,degree,exp,father;ﻩint a[3][3];ﻩstruct node *bef,*late;struct node *son;}treenode;int flag=0,count=1,num=0,i=0;void set(treenode*s);void cpynode(treenode *s1,treenode *s2);void add1(treenode *s,treenode*open);void adjust1(treenode *close);void jscost(treenode *s);voidtiaozheng(treenode *open);void sortopen(treenode *open);int test(treenode *s1,treenode*s2);void position(treenode *s,treenode *open,treenode *close,treenode *s1);void printstr(treenode *open);intsearch(treenode *s1,treenode *s2);void input(treenode *s);int cmpnode(treenode*s1,treenode *s2);void print(treenode *s);void add(treenode*s,treenode *close);void xuhao(treenode*s);void extend(treenode *r1,treenode*s,treenod e *s1,treenode *open,treenode*close);void main() {treenode*s0,*s1,*s;ﻩtreenode *open,*close,*opend,*closed;open=(treenode*)malloc(sizeof(treenode));close=(treenode*)malloc(sizeof(treenod e));open->late=NULL;ﻩclose->late=NULL;ﻩopend=open;ﻩclosed=close;ﻩs0=(treenode*)malloc(sizeof(treenode));set (s0);ﻩs1=(treenode*)malloc(sizeof(treenode));set(s1);printf("请输入八数码得初始状态:(以空格为分隔)\n”);input (s0);printf("请输入八数码得目标状态:(以空格为分隔)\n”);input(s1);xuhao(s0);ﻩadd (s0,opend);ﻩwhile(open—>late!=NULL&& flag==0){ﻩs=(treenode*)malloc(sizeof(treenode));ﻩcpynode(s,open-〉late);ﻩopen=open—〉late;ﻩadd(s,close);ﻩif(test(s,s1)==0){ﻩﻩflag=1;ﻩ}else{position(s,open,close,s1);ﻩsortopen(open); };};ﻩif(open-〉late!=NULL) {ﻩﻩprintf("搜索过程如下:\n ");ﻩadjust1(close);ﻩﻩprintstr(close);printf("\n%d 步,%d个节点\n",num,count);}ﻩelse {ﻩﻩprintf("查找错误 ! \n");}; }void set(treenode *s) {s—〉i=i;s—>father=0;ﻩs->degree=0;s—〉bef=NULL;s->son=NULL;ﻩs-〉late=NULL; };void input(treenode *s) {ﻩfor(j=0;j〈3;j++)ﻩﻩfor(k=0;k<3;k++)ﻩﻩscanf("%d",&s—>a[j][k]); };int cmpnode(treenode *s1,treenode *s2){ﻩint j,k;for(j=0;j<3;j++)ﻩfor(k=0;k〈3;k++) {ﻩﻩif(s1—〉a[j][k]!=s2—>a[j][k])ﻩﻩreturn 0; };ﻩreturn1; }inttest(treenode *s1,treenode *s2) {int j,k,n=0;for(j=0;j<3;j++)ﻩﻩfor(k=0;k〈3;k++) {ﻩif(s1-〉a[j][k]!=s2-〉a[j][k])ﻩﻩﻩn++; };s1-〉exp=n;return n; };void xuhao(treenode *s){ﻩi++;s—〉i=i;}void cpynode(treenode *s1,treenode*s2) { ﻩint j,k;ﻩfor(j=0;j<3;j++)ﻩfor(k=0;k<3;k++)ﻩﻩs1—〉a[j][k]=s2->a[j][k];s1—〉bef=s2—>bef;s1-〉cost=s2-〉cost;s1-〉exp=s2->exp;ﻩs1—〉degree=s2->degree;ﻩs1—>i=s2—>i;s1->father=s2—>father; };void print(treenode *s){ﻩfor(j=0;j<3;j++) {ﻩfor(k=0;k<3;k++){ﻩﻩprintf(”%2d",s->a[j][k]); }ﻩﻩif(j==1) printf(" n=%2d d=%2df=%2d”,s—>i,s-〉degree,s-〉father);printf("\n"); }ﻩprintf("\n"); }void position(treenode *s,treenode *open,treenode *close,treenode *s1) {ﻩint m,n,t,k;treenode *r1;ﻩfor(m=0;m<3;m++) {ﻩfor(n=0;n〈3;n++){ﻩﻩk=s—〉a[m][n];ﻩﻩif(k==0)ﻩﻩﻩbreak; };ﻩif(k==0) break; }ﻩif(m+1<=2&&flag==0)ﻩ{ﻩr1=(treenode*)malloc(sizeof(treenode)); ﻩcpynode(r1,s);ﻩﻩt=r1->a[m+1][n];r1—〉a[m+1][n] = r1->a[m][n];r1—>a[m][n]=t;ﻩextend(r1,s,s1,open,close); };if(m-1>=0&&flag==0)ﻩ{ﻩr1=(treenode*)malloc(sizeof(treenode)); ﻩcpynode(r1,s);ﻩt=r1—>a[m—1][n];ﻩ r1—>a[m-1][n]=r1->a[m][n];r1->a[m][n]=t;extend(r1,s,s1,open,close); };ﻩif(n-1〉=0 && flag==0){ﻩﻩr1=(treenode*)malloc(sizeof(treenode));ﻩcpynode(r1,s);ﻩt=r1->a[m][n-1];ﻩ r1—>a[m][n-1]=r1—>a[m][n];ﻩ r1-〉a[m][n]=t;ﻩﻩextend(r1,s,s1,open,close);};ﻩif(n+1〈=2 &&flag==0){ﻩr1=(treenode*)malloc(sizeof(treenode));cpynode(r1,s);ﻩﻩt=r1->a[m][n+1];r1-〉a[m][n+1]=r1->a[m][n];r1->a[m][n]=t;ﻩextend(r1,s,s1,open,close);}; }void printstr(treenode *s) {ﻩtreenode *t;ﻩt=s-〉late;ﻩwhile(t!=NULL){ﻩnum++;print(t);ﻩﻩt=t->son; };}void extend(treenode *r1,treenode *s,treenode *s1,treenode*open,treenode *close) {ﻩr1—〉father=s—>i;r1->degree=s—>degree+1;ﻩﻩif(test(r1,s1)!=0) {ﻩﻩjscost(r1);if(search(r1,close)==1 &&search(r1,open)==1) {ﻩxuhao(r1);ﻩadd1(r1,open);ﻩr1—〉bef=s;ﻩﻩﻩcount++; }ﻩelse free(r1);}else {ﻩxuhao(r1);ﻩﻩﻩjscost(r1);ﻩcount++;ﻩﻩadd(r1,close);ﻩﻩr1—〉bef=s;flag=1;}}intsearch(treenode*s1,treenode *close){ ﻩtreenode *r,*t;ﻩr=s1;t=close->late;ﻩwhile(t!=NULL) {ﻩﻩif(r—〉exp==t—〉exp) {ﻩif(cmpnode(r,t)==1)ﻩreturn0;};ﻩﻩt=t—>late;};return 1; }voidadd(treenode *s,treenode *close) {ﻩtreenode *r,*t;ﻩt=s;r=close;ﻩwhile(r—>late!=NULL)ﻩr=r—>late;r->late=t;t—〉late=NULL;}void add1(treenode *s,treenode *open){ﻩtreenode *t;ﻩt=open;s->late=t->late;ﻩt-〉late=s;}void adjust1(treenode *close) {treenode *s,*t;ﻩs=close;s—>late->bef=NULL;ﻩwhile(s—〉late!=NULL)s=s—〉late;s->son=NULL;while(s->bef!=NULL) {ﻩﻩt=s->bef;t-〉son=s;s=s->bef;}; }void jscost(treenode *s) {s->cost=(s-〉exp)+s-〉degree;}void sortopen(treenode *open){ﻩtreenode *t,*s,*r;ﻩintk;r=(treenode*)malloc(sizeof(treenode));t=open-〉late;ﻩwhile(t!=NULL && t—>late!=NULL){ﻩﻩs=t->late;ﻩﻩk=t->cost;ﻩﻩﻩwhile(s!=NULL){if(k > s—>cost) {ﻩﻩk=s—>cost;ﻩcpynode(r,t);ﻩﻩcpynode(t,s);ﻩﻩcpynode(s,r);}s=s->late; }ﻩﻩﻩt=t->late; }; }五、实验结果:1、程序截图2、搜索过程请输入八数码得初始状态:(以空格为分隔)ﻫ28 31 0 47 65请输入八数码得目标状态:(以空格为分隔)1 2 38 0 47 65ﻫ搜索过程如下:ﻫ 2 83ﻫ14n= 1 d= 0 f7ﻫ56=0ﻫ2 0 3ﻫ 1 8 4n=3d= 1 f=17 6 5ﻫ0 2 31 8 4 n= 8 d= 2f=37 657561 2 3ﻫ08 4 n=10 d= 3 f= 8ﻫ12 3804n=12d= 4 f=10765ﻫﻫ5 步,12 个节点ﻫPress any key to continue六、实验分析:在进行搜索得过程中,同时记录了扩展新节点得个数。

相关文档
最新文档