人工智能实验报告

合集下载

人工智能实验报告

人工智能实验报告

人工智能实验报告一、实验目的。

本次实验旨在通过对人工智能相关算法的实验操作,深入了解人工智能的基本原理和实际应用,提高对人工智能技术的理解和掌握。

二、实验内容。

1. 人工智能算法的原理及应用。

2. 人工智能在图像识别、语音识别等领域的实际应用案例分析。

3. 人工智能算法在实际项目中的具体运用。

三、实验步骤。

1. 理论学习,通过学习相关教材和资料,掌握人工智能算法的基本原理和应用场景。

2. 实际操作,运用Python等编程语言,实现人工智能算法的实际应用,如图像识别、语音识别等。

3. 案例分析,结合实际案例,分析人工智能在不同领域的具体应用,了解其在实际项目中的运用情况。

四、实验结果。

通过本次实验,我们深入了解了人工智能算法的基本原理和应用场景,掌握了人工智能在图像识别、语音识别等领域的实际应用案例,并对人工智能算法在实际项目中的具体运用有了更深入的了解。

五、实验总结。

人工智能作为当今科技领域的热门话题,其应用场景和前景备受关注。

通过本次实验,我们不仅对人工智能算法有了更深入的理解,也对其在实际项目中的应用有了更清晰的认识。

人工智能技术的不断发展,必将为各行各业带来更多的创新和改变。

六、展望。

随着人工智能技术的不断进步和应用,我们相信在不久的将来,人工智能将会在更多的领域发挥重要作用,为人类社会带来更多的便利和进步。

我们也将继续深入学习和研究人工智能技术,不断提升自己的技术水平,为人工智能技术的发展贡献自己的力量。

七、参考资料。

1. 《人工智能导论》,XXX,XXX出版社,2018年。

2. 《Python人工智能编程实践》,XXX,XXX出版社,2019年。

3. 《深度学习与人工智能》,XXX,XXX出版社,2020年。

以上为本次人工智能实验的报告内容,谢谢。

人工智能实习报告

人工智能实习报告

人工智能实习报告1. 引言人工智能作为一种新兴的技术,已经在各个领域中展现出了巨大的潜力。

为了更好地了解和应用人工智能技术,我参与了一次人工智能的实习项目。

本篇报告将详细介绍我在实习过程中所参与的项目内容、工作经历以及所取得的成果。

2. 项目背景人工智能实习项目旨在通过实践探索人工智能技术在现实生活中的应用。

该项目团队由来自不同专业背景的成员组成,合作共同完成项目的各项任务。

3. 实习内容在实习的初期,我首先通过学习人工智能的基本原理和算法,了解了人工智能的基础知识。

然后,我参与了一个文本分类的实践项目。

该项目要求我们设计并实现一个能够根据文本内容自动分类的人工智能系统。

首先,我们收集了大量的文本数据,并对数据进行了预处理,包括分词、去除停用词等。

然后,我们选择了合适的分类算法,使用机器学习方法训练模型,并对模型进行评估和优化。

最后,我们将模型部署到一个在线服务上,以便用户可以通过输入文本内容来获取相应的分类结果。

在实习过程中,我主要负责数据处理和特征工程的部分工作。

我研究了不同的分词和特征表示方法,并通过比较实验选择了最优的处理方案。

我还参与了训练模型和评估效果的工作,并提出了一些优化的建议。

4. 工作经历在实习过程中,我与团队成员密切合作,在会议中讨论和分享了各自的进展和问题。

我们相互协助,共同解决了项目中遇到的困难和挑战。

通过参与团队合作,我不仅学到了专业知识和技术,更锻炼了沟通和合作的能力。

此外,我还参与了一些相关的研讨会和讲座,在与业界专家的交流中了解了最新的人工智能技术发展趋势和应用案例。

这些活动为我的实习经历增添了丰富的内容和价值。

5. 取得的成果在实习项目结束后,我们成功地完成了文本分类系统的开发和部署。

该系统在测试中表现出了良好的分类准确性和效率。

我们还将该系统应用到实际场景中,取得了一定的应用效果和用户反馈。

作为个人成果,我在数据处理和特征工程方面做出了一些创新和贡献。

我的工作得到了项目组及导师的认可和赞扬,对我的个人能力和潜力给予了一定的肯定。

《人工智能》实验报告

《人工智能》实验报告

一、实验目的1. 了解机器学习的基本概念和常用算法。

2. 掌握使用Python编程语言实现图像识别系统的方法。

3. 培养分析问题、解决问题的能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 开发工具:PyCharm4. 机器学习库:TensorFlow、Keras三、实验内容1. 数据预处理2. 模型构建3. 模型训练4. 模型评估5. 模型应用四、实验步骤1. 数据预处理(1)下载图像数据集:选择一个适合的图像数据集,例如MNIST手写数字数据集。

(2)数据加载与处理:使用TensorFlow和Keras库加载图像数据集,并进行预处理,如归一化、调整图像大小等。

2. 模型构建(1)定义网络结构:使用Keras库定义神经网络结构,包括输入层、隐藏层和输出层。

(2)选择激活函数:根据问题特点选择合适的激活函数,如ReLU、Sigmoid等。

(3)定义损失函数:选择损失函数,如交叉熵损失函数。

(4)定义优化器:选择优化器,如Adam、SGD等。

3. 模型训练(1)将数据集分为训练集、验证集和测试集。

(2)使用训练集对模型进行训练,同时监控验证集的性能。

(3)调整模型参数,如学习率、批大小等,以优化模型性能。

4. 模型评估(1)使用测试集评估模型性能,计算准确率、召回率、F1值等指标。

(2)分析模型在测试集上的表现,找出模型的优点和不足。

5. 模型应用(1)将训练好的模型保存为模型文件。

(2)使用保存的模型对新的图像进行识别,展示模型在实际应用中的效果。

五、实验结果与分析1. 模型性能:在测试集上,模型的准确率为98.5%,召回率为98.3%,F1值为98.4%。

2. 模型优化:通过调整学习率、批大小等参数,模型性能得到了一定程度的提升。

3. 模型不足:在测试集中,模型对部分图像的识别效果不佳,可能需要进一步优化模型结构或改进训练方法。

六、实验总结通过本次实验,我们了解了机器学习的基本概念和常用算法,掌握了使用Python编程语言实现图像识别系统的方法。

人工智能实训报告

人工智能实训报告

人工智能实训报告《人工智能实训报告》一、初识人工智能,像打开魔法盒的好奇“哇塞,老师说我们要开始人工智能实训啦!这就像是要打开一个装满魔法的盒子一样。

”我兴奋地对同桌说。

记得那是一个阳光明媚的早晨,教室里的窗帘被风吹得轻轻飘动。

老师抱着一堆关于人工智能的资料走进来,同学们都伸长了脖子张望。

当老师提到人工智能这个词的时候,我脑海里瞬间浮现出科幻电影里那些超级智能的机器人。

同桌眼睛亮晶晶的,凑过来小声说:“你说我们会不会做出像电影里一样厉害的东西呀?”我毫不犹豫地回答:“肯定会的,这肯定超级有趣。

”就像我们在期待一场神秘的冒险,充满了未知的惊喜。

这时候的人工智能在我心里,就像是一个充满无限可能的宝藏,等着我们去挖掘。

二、编程中的迷茫,像迷失在迷宫里的小老鼠“哎呀,这编程怎么这么难啊!我感觉自己像一只迷失在迷宫里的小老鼠。

”我沮丧地跟小组伙伴抱怨。

那天下午,教室里的气氛格外沉闷。

我们坐在电脑前,面对着满屏幕的代码,眼睛都花了。

我敲了几行代码,结果运行的时候总是出错。

我皱着眉头,眼睛死死地盯着屏幕,试图找出问题所在。

小组伙伴在旁边也着急,他说:“你看这里,这个变量是不是定义错了?”我看了看,还是一头雾水。

“我怎么感觉这代码就像一团乱麻,根本理不清。

”我叹了口气。

旁边的另一个同学也说:“我觉得我们就像在黑暗里摸索,根本不知道哪里是出口。

”我们都有点垂头丧气,这时候的人工智能编程就像一座难以翻越的大山,让我们不知所措。

三、小突破的惊喜,像在黑暗中看到一丝曙光“哈哈,我找到问题所在了!这感觉就像在黑暗中突然看到了一丝曙光。

”我兴奋地大喊。

那是一个有点闷热的傍晚,教室里只有我们小组还在奋战。

我一遍又一遍地检查代码,突然发现是一个符号用错了。

当我改正这个错误,程序成功运行出结果的时候,我简直要跳起来了。

小组伙伴们也围了过来,脸上都洋溢着惊喜的笑容。

一个同学说:“哇,你可太厉害了。

这就像在绝望的时候突然有人给了我们希望一样。

人工智能_实验报告

人工智能_实验报告

人工智能_实验报告
一、实验目标
本次实验的目的是对人工智能进行深入的理解,主要针对以下几个方面:
1.理论基础:了解人工智能的概念、定义和发展历史;
2.技术原理:学习人工智能的基本技术原理,如机器学习、自然语言处理、图像处理等;
3. 设计实现: 熟悉基于Python的人工智能开发;
4.实践应用:了解常见的应用场景,例如语音识别、图像分析等;
二、实验环境
本次实验基于Python3.7语言编写,实验环境如下:
1. 操作系统:Windows10
3. 基础库和工具:Numpy, Matplotlib, Pandas, Scikit-Learn, TensorFlow, Keras
三、实验内容
1. 机器学习
机器学习是一门深受人们喜爱的人工智能领域,基于机器学习,我们可以让计算机自动学习现象,并做出相应的预测。

主要用于语音识别、图像处理和自然语言处理等领域。

本次实验主要通过一个关于房价预测的实例,结合 Scikit-Learn 库,实现了机器学习的基本步骤。

主要包括以下几步:
(1)数据探索:分析并观察数据,以及相关的统计数据;
(2)数据预处理:包括缺失值处理、标准化等;
(3)建模:使用线性回归、决策树等监督学习模型,建立房价预测
模型;。

人工智能实践报告总结范文(4篇)

人工智能实践报告总结范文(4篇)

人工智能实践报告总结范文(4篇)人工智能实践报告总结1今天是我学习人工智能的第一堂课,也是我上大学以来第一次接触人工智能这门课,通过老师的讲解,我对人工智能有了一些简单的感性认识,我知道了人工智能从诞生,发展到今天经历一个漫长的过程,许多人为此做出了不懈的努力。

我觉得这门课真的是一门富有挑战性的科学,而从事这项工作的人不仅要懂得计算机知识,还必须懂得心理学和哲学。

人工智能在很多领域得到了发展,在我们的日常生活和学习中发挥了重要的作用。

如:机器翻译,机器翻译是利用计算机把一种自然语言转变成另一种自然语言的过程,用以完成这一过程的软件系统叫做机器翻译系统。

利用这些机器翻译系统我们可以很方便的完成一些语言翻译工作。

目前,国内的机器翻译软件有很多,富有代表性意义的当属“金山词霸”,它可以迅速的查询英文单词和词组句子翻译,重要的是它还可以提供发音功能,为用户提供了极大的方便。

人工智能实践报告总结2浅谈逻辑学与人工智能人工智能主要研究用人工方法模拟和扩展人的智能,最终实现机器智能。

人工智能研究与人的思维研究密切相关。

逻辑学始终是人工智能研究中的基础科学问题,它为人工智能研究提供了根本观点与方法。

1人工智能学科的诞生12世纪末13世纪初,西班牙罗门·卢乐提出制造可解决各种问题的通用逻辑机。

17世纪,英国培根在《新工具》中提出了归纳法。

随后,德国莱布尼兹做出了四则运算的手摇计算器,并提出了“通用符号”和“推理计算”的思想。

19世纪,英国布尔创立了布尔代数,奠定了现代形式逻辑研究的基础。

德国弗雷格完善了命题逻辑,创建了一阶谓词演算系统。

20世纪,哥德尔对一阶谓词完全性定理与N形式系统的不完全性定理进行了证明。

在此基础上,克林对一般递归函数理论作了深入的研究,建立了演算理论。

英国图灵建立了描述算法的机械性思维过程,提出了理想计算机模型(即图灵机),创立了自动机理论。

这些都为1945年匈牙利冯·诺依曼提出存储程序的思想和建立通用电子数字计算机的冯·诺依曼型体系结构,以及1946年美国的莫克利和埃克特成功研制世界上第一台通用电子数学计算机ENIAC做出了开拓性的贡献。

人工智能课内实验报告1

人工智能课内实验报告1

人工智能课内实验报告(一)----主观贝叶斯一、实验目的1.学习了解编程语言, 掌握基本的算法实现;2.深入理解贝叶斯理论和不确定性推理理论;二、 3.学习运用主观贝叶斯公式进行不确定推理的原理和过程。

三、实验内容在证据不确定的情况下, 根据充分性量度LS 、必要性量度LN 、E 的先验概率P(E)和H 的先验概率P(H)作为前提条件, 分析P(H/S)和P(E/S)的关系。

具体要求如下:(1) 充分考虑各种证据情况: 证据肯定存在、证据肯定不存在、观察与证据 无关、其他情况;(2) 考虑EH 公式和CP 公式两种计算后验概率的方法;(3) 给出EH 公式的分段线性插值图。

三、实验原理1.知识不确定性的表示:在主观贝叶斯方法中, 知识是产生式规则表示的, 具体形式为:IF E THEN (LS,LN) H(P(H))LS 是充分性度量, 用于指出E 对H 的支持程度。

其定义为:LS=P(E|H)/P(E|¬H)。

LN 是必要性度量, 用于指出¬E 对H 的支持程度。

其定义为:LN=P(¬E|H)/P(¬E|¬H)=(1-P(E|H))/(1-P(E|¬H))2.证据不确定性的表示在证据不确定的情况下, 用户观察到的证据具有不确定性, 即0<P(E/S)<1。

此时就不能再用上面的公式计算后验概率了。

而要用杜达等人在1976年证明过的如下公式来计算后验概率P(H/S):P(H/S)=P(H/E)*P(E/S)+P(H/~E)*P(~E/S) (2-1)下面分四种情况对这个公式进行讨论。

(1) P (E/S)=1当P(E/S)=1时, P(~E/S)=0。

此时, 式(2-1)变成 P(H/S)=P(H/E)=1)()1()(+⨯-⨯H P LS H P LS (2-2) 这就是证据肯定存在的情况。

(2) P (E/S)=0当P(E/S)=0时, P(~E/S)=1。

人工智能深度学习实验报告

人工智能深度学习实验报告

人工智能深度学习实验报告一、实验背景随着科技的飞速发展,人工智能已经成为当今最热门的研究领域之一。

深度学习作为人工智能的一个重要分支,凭借其强大的学习能力和数据处理能力,在图像识别、语音识别、自然语言处理等多个领域取得了显著的成果。

为了更深入地了解和掌握人工智能深度学习的原理和应用,我们进行了一系列的实验。

二、实验目的本次实验的主要目的是通过实际操作和实践,深入探究人工智能深度学习的工作原理和应用方法,掌握深度学习模型的构建、训练和优化技巧,提高对深度学习算法的理解和应用能力,并通过实验结果验证深度学习在解决实际问题中的有效性和可行性。

三、实验环境在本次实验中,我们使用了以下硬件和软件环境:1、硬件:计算机:配备高性能 CPU 和 GPU 的台式计算机,以加速模型的训练过程。

存储设备:大容量硬盘,用于存储实验数据和模型文件。

2、软件:操作系统:Windows 10 专业版。

深度学习框架:TensorFlow 和 PyTorch。

编程语言:Python 37。

开发工具:Jupyter Notebook 和 PyCharm。

四、实验数据为了进行深度学习实验,我们收集了以下几种类型的数据:1、图像数据:包括 MNIST 手写数字数据集、CIFAR-10 图像分类数据集等。

2、文本数据:如 IMDb 电影评论数据集、20 Newsgroups 文本分类数据集等。

3、音频数据:使用了一些公开的语音识别数据集,如 TIMIT 语音数据集。

五、实验方法1、模型选择卷积神经网络(CNN):适用于图像数据的处理和分类任务。

循环神经网络(RNN):常用于处理序列数据,如文本和音频。

长短时记忆网络(LSTM)和门控循环单元(GRU):改进的RNN 架构,能够更好地处理长序列数据中的长期依赖关系。

2、数据预处理图像数据:进行图像的裁剪、缩放、归一化等操作,以提高模型的训练效率和准确性。

文本数据:进行词干提取、词向量化、去除停用词等处理,将文本转换为可被模型处理的数值形式。

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

****大学人工智能基础课程实验报告(2011-2012学年第一学期)启发式搜索王浩算法班级: *********** 学号: ********** 姓名: ****** 指导教师: ******成绩:2012年 1 月 10 日实验一 启发式搜索算法1. 实验内容:使用启发式搜索算法求解8数码问题。

⑴ 编制程序实现求解8数码问题A *算法,采用估价函数()()()()w n f n d n p n ⎧⎪=+⎨⎪⎩, 其中:()d n 是搜索树中结点n 的深度;()w n 为结点n 的数据库中错放的棋子个数;()p n 为结点n 的数据库中每个棋子与其目标位置之间的距离总和。

⑵ 分析上述⑴中两种估价函数求解8数码问题的效率差别,给出一个是()p n 的上界的()h n 的定义,并测试使用该估价函数是否使算法失去可采纳性。

2. 实验目的熟练掌握启发式搜索A *算法及其可采纳性。

3. 实验原理使用启发式信息知道搜索过程,可以在较大的程度上提高搜索算法的时间效率和空间效率;启发式搜索的效率在于启发式函数的优劣,在启发式函数构造不好的情况下,甚至在存在解的情形下也可能导致解丢失的现象或者找不到最优解,所以构造一个优秀的启发式函数是前提条件。

4.实验内容 1.问题描述在一个3*3的九宫格 里有1至8 八个数以及一个空格随机摆放在格子中,如下图:初始状态 目标状态现需将图一转化为图二的目标状态,调整的规则为:每次只能将空格与其相邻的一个数字进行交换。

实质是要求给出一个合法的移动步骤,实现从初始状态到目标状态的转变。

2.算法分析 (1)解存在性的讨论对于任意的一个初始状态,是否有解可通过线性代数的有关理论证明。

按数组存储后,算出初始状态的逆序数和目标状态的逆序数,若两者的奇偶性一致,则表明有解。

(2)估价函数的确定通过对八数码的特性的研究,找出一个相对好的函数,f(n)=d(n)+h(n)其中h(n)=2*compare(n)+3*S(n);d(n)为已搜索的深度;(compare(n)为当前节点与目标结点相同位置不相同的个数,S(n)为当前节点的无序度。

)(3)节点的处理取得一个结点后,判断是否有解,然后对其进行扩展,用估价函数从中取得一个最优节点,依次循环将路径得到,直到取的最后的目标状态。

(4)算法设计a.输入初始结点,判断解的存在性,并与目标节点对比。

b.若不是目标节点则进行扩展,生成其全部后继节点。

c.对于每个后继节点均求其f(n),并比较。

d.将最小f(n)存入正确路径,并与目标节点进行对比。

e.若不是目标节点则循环执行b,若是目标节点则输出5实验结果输入输出:源代码如下:#include<stdio.h>int final[9]={1,2,3,8,0,4,7,6,5};//目标状态节点int a[1000][9],c[9],e[9],f[9];//路径节点和扩展节点int deep=1,fn;//深度和估计值int b[9];char moveaction;//移动方向int fnjisuan(int b[9])//估价函数{int compare=0,s=0,fn1,d[9];d[0]=b[0];d[1]=b[1];d[2]=b[2];d[3]=b[5];d[4]=b[8];d[5]=b[7];d[6]=b[6];d[7]=b[3];d[ 8]=b[4];for(int i=0;i<9;i++){if(b[i]!=final[i]&&i!=4)compare++;}for(i=0;i<7;i++)if((d[i+1]-d[i])!=1)s++;fn1=2*compare+3*s+deep;//估价函数计算结果return fn1;}void show(int c[9])//输出节点{for(int i=0;i<9;i++)a[deep][i]=c[i];for(i=0;i<9;i++){if((i)%3==0)printf("\n");printf("%d\t",c[i]);}deep++;printf("\n");}int jingguo(int e[9])//测试当前节点是否已经经过避免回溯{for(int i=0;i<deep;i++){int k=0;for(int j=0;j<9;j++)if(e[j]==a[i][j])k++;if(k==9)return 0;}return 1;}int move_up(int c[9],int Zerosign)//上移操作{for(int i=0;i<9;i++)c[i]=b[i];c[Zerosign]=c[Zerosign-3];c[Zerosign-3]=0;int fn1=fnjisuan(c);return fn1;}int move_down(int c[9],int Zerosign)//下移操作{for(int i=0;i<9;i++)c[i]=b[i];c[Zerosign]=c[Zerosign+3];c[Zerosign+3]=0;int fn1=fnjisuan(c);return fn1;}int move_left(int c[9],int Zerosign)//左移操作{for(int i=0;i<9;i++)c[i]=b[i];c[Zerosign]=c[Zerosign-1];c[Zerosign-1]=0;int fn1=fnjisuan(c);return fn1;}int move_right(int c[9],int Zerosign)//右移操作{for(int i=0;i<9;i++)c[i]=b[i];c[Zerosign]=c[Zerosign+1];c[Zerosign+1]=0;int fn1=fnjisuan(c);return fn1;}int zuixiao(int fn1,int fn2,int fn3,int fn4)//求最小值{int f1,f2,f3;f1=(fn1<=fn2)?fn1:fn2;f2=(fn3<=fn4)?fn3:fn4;f3=(f1<=f2)?f1:f2;return f3;}int cixiao(int fn1,int fn2,int fn3,int fn4)//求次小值{int f1,f2,f3,f4;f1=(fn1<=fn2)?fn1:fn2;f3=(fn1>fn2)?fn1:fn2;f2=(fn3<=fn4)?fn3:fn4;f4=(fn1>fn2)?fn1:fn2;if(f1<=f2){if(f3<=f2)return f3;else return f2;}else if(f4<=f1)return f4;else return f1;}void budeng(int f1,int f2,int fn1,int fn2,int fn3,int fn4,int Zerosign)//处理估价函数最小值唯一的时候{if(f1==fn1){if(moveaction!='d'&&jingguo(c)){move_up(c,Zerosign);moveaction='u';}else{if(f2==fn2){move_right(c,Zerosign);moveaction='r';}if(f2==fn3){move_left(c,Zerosign);moveaction='l';}if(f2==fn4){move_down(c,Zerosign);moveaction='d';}}}if(f1==fn2){if(moveaction!='l'&&jingguo(c)){move_right(c,Zerosign);moveaction='r';}else{if(f2==fn3){move_left(c,Zerosign);moveaction='l';}if(f2==fn4){move_down(c,Zerosign);moveaction='d';}if(f2==fn1){move_up(c,Zerosign);moveaction='u';}}}if(f1==fn3){if(moveaction!='r'&&jingguo(c)){move_left(c,Zerosign);moveaction='l';}else{if(f2==fn1){move_up(c,Zerosign);moveaction='u';}if(f2==fn2){move_right(c,Zerosign);moveaction='r';}if(f2==fn4){move_down(c,Zerosign);moveaction='d';}}}if(f1==fn4){if(moveaction!='u'&&jingguo(c)){move_down(c,Zerosign);moveaction='d';}else{if(f2==fn2){move_right(c,Zerosign);moveaction='r';}if(f2==fn3){move_left(c,Zerosign);moveaction='l';}if(f2==fn1){move_up(c,Zerosign);moveaction='u';}}}}int ceshi(int k[9])//测试估价函数{int fn1=100,fn2=100,fn3=100,fn4=100,f1,Zerosign;for(int i=0;i<9;i++)if(0==k[i]){Zerosign=i;break;}if(Zerosign!=0&&Zerosign!=1&&Zerosign!=2&&moveaction!='d')fn1=move_up(c,Zerosign);if(Zerosign!=2&&Zerosign!=5&&Zerosign!=8&&moveaction!='l')fn2=move_right(c,Zerosign);if(Zerosign!=0&&Zerosign!=3&&Zerosign!=6&&moveaction!='r')fn3=move_left(c,Zerosign);if(Zerosign!=6&&Zerosign!=7&&Zerosign!=8&&moveaction!='u')fn4=move_down(c,Zerosign);f1=zuixiao(fn1,fn2,fn3,fn4);return f1;}void move(int c[9])//确定移动方向{int fn1=100,fn2=100,fn3=100,fn4=100,f1,f2,Zerosign;for(int i=0;i<9;i++)if(0==c[i]){Zerosign=i;break;}if(Zerosign!=0&&Zerosign!=1&&Zerosign!=2&&moveaction!='d')fn1=move_up(c,Zerosign);if(Zerosign!=2&&Zerosign!=5&&Zerosign!=8&&moveaction!='l')fn2=move_right(c,Zerosign);if(Zerosign!=0&&Zerosign!=3&&Zerosign!=6&&moveaction!='r')fn3=move_left(c,Zerosign);if(Zerosign!=6&&Zerosign!=7&&Zerosign!=8&&moveaction!='u')fn4=move_down(c,Zerosign);f1=zuixiao(fn1,fn2,fn3,fn4);f2=cixiao(fn1,fn2,fn3,fn4);if(f1==f2){if(fn1==fn2&&fn1==f1){move_up(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_right(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_up(c,Zerosign);moveaction='u';}else {move_right(c,Zerosign);moveaction='r';}}if(fn1==fn3&&fn1==f1){move_up(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_left(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_up(c,Zerosign);moveaction='u';} else {move_left(c,Zerosign);moveaction='l';}}if(fn1==fn4&&fn1==f1){move_up(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_down(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_up(c,Zerosign);moveaction='u';}else {move_down(c,Zerosign);moveaction='d';}}if(fn2==fn3&&fn2==f1){move_right(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_left(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_right(c,Zerosign);moveaction='r';}else {move_left(c,Zerosign);moveaction='l';}}if(fn2==fn4&&fn2==f1){move_right(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_down(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_right(c,Zerosign);moveaction='r';}else {move_down(c,Zerosign);moveaction='d';}}if(fn3==fn4&&fn3==f1){move_left(c,Zerosign);for(i=0;i<9;i++)e[i]=c[i];move_down(c,Zerosign);for(i=0;i<9;i++)f[i]=c[i];if((ceshi(e)<ceshi(f))&&jingguo(e)){move_left(c,Zerosign);moveaction='l';}else {move_down(c,Zerosign);moveaction='d';}}}else budeng(f1,f2,fn1,fn2,fn3,fn4,Zerosign);}int duibi(int c[9]) {//与目标节点比较for(int i=0;i<9;i++)if(c[i]!=final[i])break;if(i>=9)return 1;else return 0;}int cunzaixing(int c[9]) {//得出初始化节点是否存在路径到目标节点int nixu=0,nixu1=0,i,j;for( j=0;j<9;j++)for(int i=j+1;i<9;i++)if(final[j]>final[i]&&final[j]!=0&&final[i]!=0)nixu++;for(j=0;j<9;j++)for( i=j+1;i<9;i++)if(c[j]>c[i]&&c[j]!=0&&c[i]!=0)nixu1++;if((nixu%2)-(nixu1%2)==0)return 1;else return 0;}void main(){//主函数int sd=1;printf("请输入初始结点如(2 8 3 1 6 4 7 0 5)以空格隔开的九个0到9之间的不重复数: \n");for(int i=0;i<9;i++){scanf("%d",&b[i]);c[i]=b[i];}printf("您输入的初始矩阵为:\n");show(c);deep--;if(cunzaixing(c)==0)printf("此矩阵不存在路径至目标矩阵!\n");else{while(!duibi(c)&&deep<100){move(c);printf("第%d步移动后的矩阵为:\n",sd++);show(c);for(int i=0;i<9;i++) b[i]=c[i];}}}实验二王浩算法的实现1. 实验内容:实现命题逻辑框架内的王浩算法。

相关文档
最新文档