2017中南大学人工智能实验报告

合集下载

中南大学人工智能实验研究报告

中南大学人工智能实验研究报告

“人工智能”实验报告老师:黄芳班级:计科1001学号:0909090430姓名:赵鼎平日期:2013.11.7目录一、神经网络实验群4二、生产式系统实验群5三、搜索策略实验群6四、自动规划实验群8五、实验心得和体会11神经网络实验群姓名赵鼎平指导老师: 黄芳日期:2013年11月7日实验目地理解反向传播网络地结构和原理,掌握反向传播算法对神经元地训练过程,了解反向传播公式.通过构建BP网络实例,熟悉前馈网络地原理及结构.网络拓朴图训练数据集(输入节点0,输入节点1,输入节点2,输入节点5)(0,0,0,0)(0,0,1,0)(0,1,1,1)(1,0,0,0)(1,0,1,1)(1,1,0,1)(1,1,1,1)(输入节点0,输入节点1,输入节点4)(0,0,0)(0,1,0)(1,0,1)(Known,New,Short,Home,Reads)(1,1,0,1,0)(0,1,1,0,1)(0,0,0,0,0)(1,0,0,1,0)(1,1,1,1,1)(1,0,0,0,0)(0,0,1,0,0)(0,1,1,0,1)(1,0,0,1,0)(1,1,0,0,0)(0,0,1,1,0)(1,1,0,0,0)(1,0,1,1,1)(1,1,1,0,1)(1,1,1,1,1)(1,0,1,0,1)(1,1,1,1,1)(0,1,1,0,1)训练误差第1代误差 1.68第51代误差 0.52第101代误差 0.11第151代误差 0.05第201代误差 0.03第1代误差 0.018第51代误差 0.010第101代误差 0.010第151代误差 0.010第201代误差 0.010第1代误差 4.67第51代误差 0.66第101代误差 0.12第151代误差 0.06第201代误差 0.03生产式系统实验群姓名赵鼎平指导老师黄芳日期2013.11.7实验目地熟悉和掌握产生式系统地运行机制,掌握基于规则推理地基本方法.推理方法逆向推理建立规则库建立事实库该动物是哺乳动物<- 该动物有毛发.该动物是哺乳动物<- 该动物有奶.该动物是鸟<- 该动物有羽毛.该动物是鸟<- 该动物会飞&会下蛋.该动物是食肉动物<- 该动物吃肉.该动物是食肉动物<- 该动物有犬齿&有爪&眼盯前方.该动物是有蹄类动物<- 该动物是哺乳动物&有蹄. 该动物是有蹄类动物<- 该动物是哺乳动物& 是嚼反刍动物.该动物是金钱豹<- 该动物是哺乳动物&是食肉动%------动物识别系统事实集:%会游泳. %--该动物是企鹅%不会飞.%有黑白二色.%该动物是鸟.%-------- %--该动物是鸟%该动物会飞.%会下蛋.%----该动物是金钱豹<- 该动物是哺乳动物&是食肉模拟地问题或函数多数赞成表决器异或问题MailReading(邮件信息识别)观测结果经过200代地进化,误差以明显地阶梯型降低由于初始误差比较低,故经过50代地进化,误差已经极大地降低,几乎不再变化经过200代地进化,误差极大地降低学生结论神经计算能够实现“多数赞成表决器”功能单层地神经网络无法实现异或问题,但是含有中间层地BP网络却可以很好地解决异或问题经过训练地BP网络可以进行邮件识别,解决信息识别地难题,可以极大地提高生产力物&是黄褐色&身上有暗斑点.该动物是虎<- 该动物是哺乳动物&该动物是食肉动物&是黄褐色&身上有黑色条纹.该动物是长颈鹿<- 该动物是有蹄类动物&有长脖子&有长腿&身上有暗斑点.该动物是斑马<- 该动物是有蹄类动物&身上有黑色条纹.该动物是鸵鸟<- 该动物是鸟&有长脖子&有长腿&不会飞&有黑白二色.该动物是企鹅<- 该动物是鸟&会游泳&不会飞&有黑白二色.该动物是信天翁<- 该动物是鸟&善飞. 动物&是黄褐色&身上有暗斑点.%该动物有毛发.%是食肉动物.%是黄褐色.%身上有暗斑点.%----该动物是虎<- 该动物是哺乳动物&该动物是食肉动物&是黄褐色&身上有黑色条纹.%该动物是哺乳动物.%是食肉动物.%是黄褐色.%身上有暗斑点.%----该动物是长颈鹿<- 该动物是有蹄类动物&有长脖子&有长腿&身上有暗斑点.%该动物是有蹄类动物.%有长脖子.%有长腿.%身上有暗斑点.预测结果假设目标为该动物是金钱豹,则结果为true.实验过程及结果(注意观测规则地匹配过程和方法) (1)假设这个动物是金钱豹.为了检验这个假设,根据规则,要求这个动物是哺乳动物&是食肉动物&是黄褐色&身上有暗斑点.(2)必须检验这个动物是否为哺乳动物.先由规则库中地:该动物是哺乳动物<- 该动物有毛发.该动物是哺乳动物<- 该动物有奶.可知,均不和事实相匹匹配,这条链是失败地,但事实库中有:该动物是哺乳动物.这个事实,故存在成功地链路.(3)同理对于其他三者,事实库中均存在给点地事实即:是食肉动物.是黄褐色.身上有黑色条纹.所以存在一条成功地链路,使所有地规则与事实匹配.故结果为True.根据逆向推理可以逐步确定学生结论在产生式系统地推理过程中,我们需要恰当地设置好规则与事实,同时应注意两者之间地匹配.在逆向推理中,必须寻找所存在地规则,最终找到存在事实库,若所需条件存在则为true,否则为false指导老师意见搜索策略实验群姓名赵鼎平年级计科1001班指导老师黄芳日期2013年11月7日实验目地熟悉和掌握启发式搜索地定义、估价函数和算法过程,并利用A*算法求解N数码难题,理解求解流程和搜索顺序.搜索图使用地是实验环境中已经建立好地“多重路径修建”搜索图算法比较深度优先Best First(贪婪算法)A*算法Open 表{0}{1.3.4}{3.4.2}{4.2.6}{2.6.5.7.8}{6.5.7.8}{5.7.8}{7.8}{8}{空}{0}{1.3.4}{3.4.2}{4.2.6}{2.6.5.7.8}{6.5.7.8}{5.7.8}{7.8}{8}{空}{0}{1.3.4}{3.4.2}{4.2.6}{2.6.5.7.8}{6.5.7.8}{5.7.8}{7.8}{8}{空}Close 表{空}{0}{0.1}{0.1.3}{0.1.3.4}{0.1.3.4.2}{0.1.3.4.2.6}{0.1.3.4.2.6.5}{0.1.3.4.2.6.5.7}{0.1.3.4.2.6.5.7.8}{空}{0}{0.1}{0.1.3}{0.1.3.4}{0.1.3.4.2}{0.1.3.4.2.6}{0.1.3.4.2.6.5}{0.1.3.4.2.6.5.7}{0.1.3.4.2.6.5.7.8}{空}{0}{0.1}{0.1.3}{0.1.3.4}{0.1.3.4.2}{0.1.3.4.2.6}{0.1.3.4.2.6.5}{0.1.3.4.2.6.5.7}{0.1.3.4.2.6.5.7.8}估价函数f(x)=g(x) f(x)=h(x) f(x)*=g(x)*+h(x)*搜索节点次序记录节点0->节点1->节点3->节点4->节点2->节点4->节点6->节点4->节点7->节点5->节点6->节点8节点0->节点1->节点3->节点4->节点2->节点4->节点6->节点4->节点7->节点5->节点6->节点8节点0->节点1->节点3->节点4->节点2->节点4->节点6->节点5->节点7->节点6->节点8观测结果最终路径是节点0->节点4->节点8最终路径是节点0->节点4->节点8最终路径是节点0->节点4->节点8学生结论广度优先搜索算法是一种搜索策略,与之相对应地还有深度优先搜索算法.广度优先是指从图G中地某点为始点出发,标记出所有与之相邻地点,并再以所有与之相邻地点为始点,搜索所有与这些点相邻地点,从而逐层向下扩展,实现对图地遍历.同理,深度优先搜索是指从某点出发,逐层向下扩展,直到无路可扩展时向上回溯,它是优先考虑图地深度(指从某点地扩展深度),而广度优先则优先考虑图地广度(指从某点地可扩展量).贪婪算法是一种不追求最优解,只希望得到较为满意解地方法.贪婪算法一般可以快速得到满意地解,因为它省去了为找最优解要穷尽所有可能而必须耗费地大量时间.贪婪算法常以当前情况为基础作最优选择,而不考虑各种可能地整体情况,所以贪婪法不要回溯.A*算法结合了启发式方法(这种方法通过充分利用图给出地信息来动态地作出决定而使搜索次数大大降低)和形式化方法(这种方法不利用图给出地信息,而仅通过数学地形式分析,如Dijkstra算法).它通过一个估价函数(Heuristic Function)f(h)来估计图中地当前点p到终点地距离(带权值),并由此决定它地搜索方向,当这条路径失败时,它会尝试其它路径.我们说如果在一般地图搜索算法中应用了上面地估价函数对OPEN表进行排序地,就称A算法.在A算法之上,如果加上一个条件,对于所有地结点x,都有h(x)<=h*(x),那就称为A*算法.如果取h(n)=0同样是A*算法,这样它就退化成了有序算法.A*算法是否成功,也就是说是否在效率上胜过蛮力搜索算法,就在于h(n)地选取,它不能大于实际地h*(n),要保守一点,但越接近h*(n)给我们地启发性就越大,是一个难把握地东西.自动规划实验群姓名赵鼎平班级计科1001 指导老师黄芳日期2013.11.7实验目地熟悉和掌握自动规划地基本原理,方法和主要技术.实验原理规划是一种问子题求解技术,它从某个特定地问题状态出发,寻求一系列行为动作,并建立一个操作序列,直到求得目标状态为止.简而言之,规划是一个行动过程地描述.一个总规划可以含有若干个子规划.实验环境实验环境转载相关源文件转载相关源文件单步观察实验算法实现过程算法结果分析观测结果通过规定规则,确定initial state和goal state,使得移动臂按照规则进行移动. 分别进行clear holding pickup putdown putdowntable等实现对木块地移动.实现过程先进行逆向推理选择,找出途径后再进行移动.学生结论对于不同地规则将会出现不同地移动过程. 通过规定不同地动作可实现不通过地移动.实验心得和体会当初觉得好奇报了人工智能这一个学科,接触了一学期后发现人工智能挺有趣地.其中涉及到了很多与我们地生活息息相关地知识以及它所代表地也是我们科学进步发展最前沿地体现.b5E2R。

人工智能实验报告内容

人工智能实验报告内容

人工智能实验报告内容人工智能实验报告内容人工智能(Artificial Intelligence, AI)作为一种重要的技术,正在逐渐影响到我们的日常生活和工作。

本次实验旨在学习和探索人工智能的基本技术,并通过实践加深对其原理和应用的理解。

首先,本次实验分为两个部分:人工智能基础技术的学习和人工智能应用的实践。

在人工智能基础技术学习的部分,我们研究了人工智能的核心技术包括机器学习、神经网络、深度学习等。

我们首先学习了机器学习的基本概念和算法,包括监督学习、无监督学习和强化学习等。

我们使用Python编程语言,利用机器学习库进行了实践,例如使用Scikit-learn库实现了线性回归和K-means 聚类算法。

其次,我们学习了神经网络的基本原理和算法,在激活函数、损失函数、优化算法等方面进行了深入研究。

我们利用TensorFlow库搭建了神经网络模型,并使用MNIST数据集进行了手写数字识别的实验。

通过不断调整网络结构和参数,我们逐渐提高了模型的准确率。

最后,我们学习了深度学习的原理和常用的深度学习模型,包括卷积神经网络(Convolutional Neural Network, CNN)、循环神经网络(Recurrent Neural Network, RNN)等。

我们使用Keras库搭建了CNN模型,并使用CIFAR-10数据集进行了图像分类实验。

通过优化网络结构和参数,我们的模型在测试集上取得了较高的准确率。

在人工智能应用的实践部分,我们选择了自然语言处理(Natural Language Processing, NLP)为主题,具体研究了文本分类和情感分析两个任务。

我们使用了Python编程语言和NLTK(Natural Language Toolkit)库进行了实践。

首先,我们使用朴素贝叶斯算法实现了文本分类的任务,通过比较不同的特征提取方法,我们找到了最适合该任务的特征提取方法。

其次,我们使用情感词典和机器学习算法实现了情感分析的任务,通过对情感分析模型进行评估和调优,我们提高了模型的准确率和鲁棒性。

人工智能导论实验报告

人工智能导论实验报告

人工智能导论实验报告
一、实验要求
实验要求是使用Python实现一个简单的人工智能(AI)程序,包括
使用数据挖掘,机器学习,自然语言处理,语音识别,计算机视觉等技术,通过提供用户输入的信息,实现基于信息的自动响应和推理。

二、实验步骤
1. 数据采集:编写爬虫程序或者使用预先定义的数据集(如movielens)从互联网收集数据;
2. 数据预处理:使用numpy对数据进行标准化处理,以便机器学习
程序能够有效地解析数据;
3. 模型构建:使用scikit-learn或者tensorflow等工具,构建机
器学习模型,从已经采集到的数据中学习规律;
4.模型训练:使用构建完成的模型,开始训练,通过反复调整参数,
使得模型在训练集上的效果达到最优;
5.模型评估:使用构建完成的模型,对测试集进行预测,并与实际结
果进行比较,从而评估模型的效果;
6. 部署:使用flask或者django等web框架,将模型部署为网络应用,从而实现模型的实时响应;
三、实验结果
实验结果表明,使用数据挖掘,机器学习,自然语言处理,语音识别,计算机视觉等技术,可以得到很高的模型预测精度,模型的准确性可以明
显提高。

《人工智能》实验报告

《人工智能》实验报告

《人工智能》实验报告
一、实验目的
本实验旨在通过实际操作,加深对人工智能的理解,探索人工智能在不同领域的应用。

二、实验过程
1. 准备数据集:选取一个合适的数据集作为实验对象,确保数据质量和多样性。

2. 数据预处理:对选取的数据进行清洗、去噪和标准化等预处理操作。

3. 选择模型:根据实验要求,选择适合的人工智能模型,如神经网络、决策树等。

5. 模型评估:使用测试数据评估模型的性能指标,如准确率、召回率等。

6. 结果分析:对模型的性能进行分析和解释,提出改进意见。

三、实验结果
根据实验所选取的数据集和模型,得到了以下实验结果:
- 在测试数据集上,模型的准确率达到了 Y%。

- 模型的召回率为 Z%。

四、实验总结
通过本次实验,我更深入地了解了人工智能的工作原理和应用
方法,掌握了数据预处理、模型训练和评估的基本流程。

同时,也
发现了一些可以改进的地方,如增加数据集规模、尝试其他模型等。

这些经验对于今后的研究和实践具有重要意义。

五、参考文献
[1] 参考文献1
[2] 参考文献2
...。

人工智能实验报告

人工智能实验报告

人工智能实验报告人工智能课内实验报告主观贝叶斯方法的研究一、实验题目主观Bayes方法的研究。

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

三、实验原理1、证据不确定性的表示1. 在主观Bayes方法中,证据的不确定性用概率表示。

对于证据E,由用户根据观察S给出P(E|S),即动态强度。

用P(E|S)描述证据的不确定性(证据E 不是可以直接观测的)。

2. 证据肯定存在时,P(E|S)=1;3. 证据肯定不存在时, P(E|S)=0;4. 证据具有不确定性时, 01.当证据E愈是支持H为真时,则应是使相应的LS值愈大。

若证据E 对H愈是必要,则相应LN的值愈小。

2. 不能出现LS>1且LN>1的取值因为: LS>1:表明证据E是对H有利的证据。

LN>1:表明证据?E是对H有利的证据。

3. 不能出现LS<1且LN<1的取值因为:LS<1: 表明证据 E是对H不利的证据。

LN<1:表明证据?E是对H不利的证据。

4. 一般情况下,取LS>1, LN<1。

3、证据不确定的情况在现实中,证据肯定存在和肯定不存在的极端情况是不多的,更多的是介于二者之间的不确定情况。

对初始证据来说,由于用户对客观事物或现象的观察不是很精确,因而所提供的证据是不确定的;另外,一条知识的证据往往来源于另一条知识推出的结论,一般也具有某种程度的不确定性。

所以我们要在S对E的观察的先验概率0进一步讨论:P(H/S)?P(H/E)*P(E/S)?P(H/?E)*P(?E/S)分四种情况讨论这个公式: 1. P(E/S)=1当P(E/S)=1时,P(-E/S)=0。

此时公式变成(肯定存在的情况):P(H/S)?P(H/E)?LS*P(H)(LS?1)*P(H)?12. P(E/S)=0当P(E/S)=0时,P(-E/S)=1.此时公式变成(肯定不存在的情况):P(H/S)?P(H/?E)?LN*P(H)(LN?1)*P(H)?13. P(E/S)=P(E) 当P(E/S)=P(E)时,表示E与S无关。

人工智能实验报告

人工智能实验报告

人工智能实验报告摘要:人工智能(AI)是一种模拟和模仿人类智能的技术,它可以模拟人类的思维和决策过程。

本实验报告旨在介绍人工智能的基本概念、发展历程、应用领域以及实验结果。

实验结果显示,人工智能在各个领域都取得了显著的成果,并且在未来的发展中有着广泛的应用前景。

引言:人工智能是一个非常有趣和有挑战性的领域,吸引了许多研究人员和企业的关注。

人工智能技术可以应用于各种领域,包括医疗、金融、交通、教育等。

本实验报告将通过介绍人工智能的基本概念和应用案例,以及展示实验结果,来展示人工智能的潜力和发展前景。

一、人工智能的基本概念人工智能是一种模拟和模仿人类智能的技术,主要包括以下几个方面:1. 机器学习:机器学习是人工智能的一个重要分支,它通过让机器学习自己的模式和规则来实现智能化。

机器学习的方法包括监督学习和无监督学习。

2. 深度学习:深度学习是机器学习的一个子集,它模拟了人类大脑的神经网络结构,可以处理更复杂的问题并取得更好的结果。

3. 自然语言处理:自然语言处理是指让计算机理解和处理人类语言的能力。

这个领域涉及到语音识别、语义分析、机器翻译等技术。

二、人工智能的发展历程人工智能的发展可以追溯到上世纪50年代,当时研究人员开始探索如何使计算机具备智能。

但是由于当时计算机的处理能力和算法的限制,人工智能的发展进展缓慢。

直到近年来,随着计算机技术和机器学习算法的快速发展,人工智能迎来了一个新的发展阶段。

如今, 人工智能技术在各个领域中得到了广泛的应用。

三、人工智能的应用领域1. 医疗领域:人工智能可以应用于医疗影像分析、疾病诊断和预测等方面。

例如,利用人工智能技术,可以提高病理切片的诊断准确率,帮助医生更好地判断病情。

2. 金融领域:人工智能可以应用于风险管理、投资决策和交易监测等方面。

例如,利用机器学习和数据分析,可以预测股票市场的走势并制定相应的投资策略。

3. 交通领域:人工智能可以应用于交通管理、无人驾驶和交通预测等方面。

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

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

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

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

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

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

三、实验环境在本次实验中,我们使用了以下硬件和软件环境: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、数据预处理图像数据:进行图像的裁剪、缩放、归一化等操作,以提高模型的训练效率和准确性。

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

人工智能实验报告

人工智能实验报告

人工智能实验报告人工智能第二次实验报告一.实验题目:遗传算法的设计与实现二.实验目的:通过人工智能课程的学习,熟悉遗传算法的简单应用。

三.实验内容用遗传算法求解 f (x) = x2的最大值,x∈[0,31],x取整数。

可以看出该函数比较简单,只要是为了体现遗传算法的思想,在问题选择上,选了一个比较容易实现的,把主要精力放在遗传算法的实现,以及核心思想体会上。

四.实验过程:1.实现过程(1)编码使用二进制编码,随机产生一个初始种群。

L 表示编码长度,通常由对问题的求解精度决定,编码长度L 越长,可期望的最优解的精度也就越高,过大的L 会增大运算量。

针对该问题进行了简化,因为题设中x∈[0,31],所以将二进制长度定为5就够用了;(2)生成初始群体种群规模表示每一代种群中所含个体数目。

随机产生N个初始串结构数据,每个串结构数据成为一个个体,N个个体组成一个初始群体,N表示种群规模的大小。

当N取值较小时,可提高遗传算法的运算速度,但却降低种群的多样性,容易引起遗传算法早熟,出现假收敛;而N当取值较大时,又会使得遗传算法效率降低。

一般建议的取值范围是20—100。

(3)适应度检测根据实际标准计算个体的适应度,评判个体的优劣,即该个体所代表的可行解的优劣。

本例中适应度即为所求的目标函数;(4)选择从当前群体中选择优良(适应度高的)个体,使它们有机会被选中进入下一次迭代过程,舍弃适应度低的个体。

本例中采用轮盘赌的选择方法,即个体被选择的几率与其适应度值大小成正比;(5)交叉遗传操作,根据设置的交叉概率对交配池中个体进行基因交叉操作,形成新一代的种群,新一代中间个体的信息来自父辈个体,体现了信息交换的原则。

交叉概率控制着交叉操作的频率,由于交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率通常应取较大值;但若过大的话,又可能破坏群体的优良模式。

一般取到。

(6)变异随机选择中间群体中的某个个体,以变异概率大小改变个体某位基因的值。

最新中南大学人工智能实验报告

最新中南大学人工智能实验报告

人工智能实验报告学院:专业班级:指导老师:学号:姓名:第一次实验:搜索策略1.节点静态图(Node1为起点,Node0为终点)2.DFS搜索策略:当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。

这一过程一直进行到已发现从源节点可达的所有节点为止。

如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。

属于盲目搜索。

搜索结果前四步open表和close表的变化3.BFS搜索策略:BFS并不使用经验法则算法。

从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。

依次对出队的结点进行搜索,直至找到目标节点搜索结果前四步open表和close表的变化4.Lowest cost first搜索策略:类似于BFS,但在搜索结点时,并不按照队列的顺序进行搜索,而选取队列中与起始结点距离最近的结点进行搜索。

搜索结果前四步open表和close表的变化5.best first搜索策略:最佳优先搜索通过扩展最有可能到达目标节点的节点,根据指定的规则,探索一个图。

搜索结果前四步open表和close表的变化6.层次深度优先搜索策略:令k=1,进行k层的深度优先搜索,如果没有找到目标,则k+1,进行k+1层的深度优先搜索,以此类推。

搜索结果前四步open表和close表的变化7.A*算法搜索策略:A*[1](A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。

公式表示为:f(n)=g(n)+h(n),其中f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n) 是从n到目标节点最佳路径的估计代价。

保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取:估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。

中南大学人工智能实验报告

中南大学人工智能实验报告

“人工智能”实验报告专业班级学号姓名目录一、实验八自动规划实验群 (3)二、实验一生产式系统实验群 (6)三、实验二搜索策略实验群 (7)四、实验七神经网络 (9)五、实验心得和体会 (10)实验八自动规划实验群实验目 熟悉和掌握 自动规划的基本原理,方法和主要技术。

的规划是一种问子题求解技术,它从某个特定的问题状态出发,寻求一系列行为动 实验原 作,并建立一个操作序列,直到求得目标状态为止。

简而言之,规划是一个行动 理 过程的描述。

一个总规划可以含有若干个子规划。

实验环 境 转载相 关源文 件实现过单步观察实验算法 程姓名 班级 指导老师日期2011.12实验环境转载相关源文件p uftdErwnl9l^l<ri T^='tfQ 沖 puMownpl^ Z B 丰懂沖_____ itWlDi-i : al# it Fin^ulD&cal«JPfLuii Cnmpleiec p®n直 ZJmrn*l通过规定规则,确定initial state 和goal state ,使得移动臂按照规则进行移动。

分别进行 clear holding pickup putdown putdowntable 等实现对木块的移动。

实现过程先进行逆向推理选择,找出途径后再进行移动。

通过规定不同的动作可实现不通过的移动。

匾?1■“ iMHJ1 , IEC'r'aair S^vaMjln SI"Run - ianvvi-dc^-(ii :hUCM^b-^ I1AHttH miTi阿haWinjC^Flft^'算法结Appta-t 1.1 — Ki-nl果分析 FII& Edit DpIICi 帖 HelpU ■西Y Salve1tfripn?;Ti*(曲说“2,瞇习阿出聊柑1.H±P 打J r1 / \ — 7、/ \■:hc-id滞⑥if.nF 栅2> 咋 mm 叩冲豁 1,矗sit 宜ivh- v -w *urenisiu'^ pirkdp lfit 己住块71Vffc^CuilHnE Pl^i!Fiunrian uuiri 自 n 輕■.祐.9 r 卩卜■»■ __ ―工 _______ yZZ-Z5-Z^-——_r-pnfepie?r<-pr "ableff®vcIgarfKift'f i 』:8EEf1* A 、 一 一 一一』 X S1_^X学生结对于不同的规则将会出现不同的移动过程。

人工智能技术实训报告

人工智能技术实训报告

一、实训背景随着人工智能技术的快速发展,其在各行各业的应用日益广泛。

为了紧跟时代步伐,提高自身技能,我参加了人工智能技术实训。

本次实训旨在了解人工智能的基本原理、应用场景,掌握相关技术,并培养实际操作能力。

二、实训目标1. 熟悉人工智能的基本概念、原理和发展趋势。

2. 掌握常见的人工智能算法和应用场景。

3. 学习并实践人工智能开发工具和平台。

4. 提高实际操作能力,解决实际问题。

三、实训内容1. 人工智能基础知识本次实训首先对人工智能的基本概念、原理和发展趋势进行了学习。

了解了人工智能的定义、发展历程、应用领域以及未来发展趋势。

学习了人工智能的三大流派:符号主义、连接主义和强化学习。

2. 人工智能算法实训中,我们学习了常见的人工智能算法,包括:(1)监督学习:线性回归、逻辑回归、支持向量机(SVM)、决策树、随机森林等。

(2)无监督学习:聚类、关联规则、主成分分析(PCA)等。

(3)强化学习:Q学习、深度Q网络(DQN)等。

3. 人工智能开发工具和平台实训中,我们学习了以下人工智能开发工具和平台:(1)Python编程语言及其相关库:NumPy、Pandas、Scikit-learn、TensorFlow、Keras等。

(2)Jupyter Notebook:用于编写和运行Python代码。

(3)TensorFlow:用于构建和训练深度学习模型。

(4)Keras:基于TensorFlow的深度学习库。

4. 实践项目在实训过程中,我们完成了以下实践项目:(1)使用Python编程语言和Scikit-learn库实现线性回归、逻辑回归等算法,并分析数据。

(2)使用TensorFlow和Keras库构建和训练神经网络,实现图像分类、语音识别等任务。

(3)利用ROS机器人实训平台进行机器人编程,实现路径规划、避障等功能。

四、实训成果1. 掌握了人工智能的基本原理、算法和应用场景。

2. 熟练运用Python编程语言及其相关库进行数据分析和模型构建。

中南大学人工智能实验报告

中南大学人工智能实验报告

中南大学人工智能实验报告(总24页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--人工智能实验报告学院:专业班级:指导老师:学号:姓名:第一次实验:搜索策略1.节点静态图(Node1为起点,Node0为终点)搜索策略:当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。

这一过程一直进行到已发现从源节点可达的所有节点为止。

如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。

属于盲目搜索。

搜索结果前四步open表和close表的变化搜索策略:BFS并不使用经验法则算法。

从算法的观点,所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。

依次对出队的结点进行搜索,直至找到目标节点搜索结果前四步open表和close表的变化cost first搜索策略:类似于BFS,但在搜索结点时,并不按照队列的顺序进行搜索,而选取队列中与起始结点距离最近的结点进行搜索。

搜索结果前四步open表和close表的变化first搜索策略:最佳优先搜索通过扩展最有可能到达目标节点的节点,根据指定的规则,探索一个图。

搜索结果前四步open表和close表的变化6.层次深度优先搜索策略:令k=1,进行k层的深度优先搜索,如果没有找到目标,则k+1,进行k+1层的深度优先搜索,以此类推。

搜索结果前四步open表和close表的变化*算法搜索策略:A*[1](A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。

公式表示为: f(n)=g(n)+h(n),其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n) 是从n到目标节点最佳路径的估计代价。

保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取:估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。

人工智能实验报告大全

人工智能实验报告大全

人工智能课内实验报告(8次)学院:自动化学院班级:智能1501姓名:刘少鹏(34)学号:06153034目录课内实验1:猴子摘香蕉问题的V C编程实现 (1)课内实验2:编程实现简单动物识别系统的知识表示 (5)课内实验3:盲目搜索求解8数码问题 (18)课内实验4:回溯算法求解四皇后问题 (33)课内实验5:编程实现一字棋游戏 (37)课内实验6:字句集消解实验 (46)课内实验7:简单动物识别系统的产生式推理 (66)课内实验8:编程实现D-S证据推理算法 (78)人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现学院:自动化学院班级:智能1501姓名:刘少鹏(33)学号:06153034日期:2017-3-8 10:15-12:00实验1:猴子摘香蕉问题的VC编程实现一、实验目的(1)熟悉谓词逻辑表示法;(2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。

二、编程环境VC语言三、问题描述房子里有一只猴子(即机器人),位于a处。

在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。

房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。

如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。

要求通过VC语言编程实现猴子摘香蕉问题的求解过程。

图1 猴子摘香蕉问题四、源代码#include<stdio.h>unsigned int i;void Monkey_Go_Box(unsigned char x, unsigned char y){printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置}void Monkey_Move_Box(char x, char y){printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置}void Monkey_On_Box(){printf("Step %d:monkey爬上箱子\n", ++i);}void Monkey_Get_Banana(){printf("Step %d:monkey摘到香蕉\n", ++i);}void main(){unsigned char Monkey, Box, Banana;printf("********智能1501班**********\n");printf("********06153034************\n");printf("********刘少鹏**************\n");printf("请用a b c来表示猴子箱子香蕉的位置\n");printf("Monkey\tbox\tbanana\n");scanf("%c", &Monkey);getchar();printf("\t");scanf("%c", &Box);getchar();printf("\t\t");scanf("%c", &Banana);getchar();printf("\n操作步骤如下\n");if (Monkey != Box){Monkey_Go_Box(Monkey, Box);}if (Box != Banana){Monkey_Move_Box(Box, Banana);}Monkey_On_Box();Monkey_Get_Banana();printf("\n");getchar();}五、实验结果相关截图六、心得体会通过本次实验,我初步了学会了使用VC的新建工程,并且进行简单的程序编写。

人工智能实验报告

人工智能实验报告

人工智能实验报告[实验目的]本实验旨在探索人工智能在图像识别任务中的应用,并研究不同的模型结构和参数设置对其性能的影响。

[实验背景]随着人工智能技术的不断发展,图像识别逐渐成为人工智能领域的一个重要研究方向。

许多深度学习模型被应用于图像识别,并在各种任务中取得了显著的成果。

本实验将使用一个常见的图像数据集,通过训练模型来实现图像分类任务。

[实验方法]1. 数据集准备:本实验选取了MNIST数据集作为实验数据集。

MNIST数据集包含了一系列手写数字图片,每张图片为28x28的灰度图像。

2. 模型选择:本实验选择了经典的卷积神经网络(Convolutional Neural Network, CNN)作为图像分类模型。

CNN模型在图像识别领域有着广泛应用,并取得了一些突破性的成果。

3. 模型训练:使用TensorFlow框架搭建CNN模型,并将MNIST 数据集分为训练集、验证集和测试集。

使用训练集对模型进行训练,并通过验证集来调整模型的参数和结构,以提高模型性能。

4. 模型评价:使用测试集对训练好的模型进行评价。

选择准确率作为评价指标,即模型预测正确的样本占总样本数的比例。

[实验结果]经过多次实验和参数调整,得到了如下结果:1. 模型结构:CNN模型的结构如下所示:- 卷积层1:使用32个大小为3x3的卷积核,激活函数为ReLU,步长为1- 池化层1:使用2x2的最大池化,步长为2- 卷积层2:使用64个大小为3x3的卷积核,激活函数为ReLU,步长为1- 池化层2:使用2x2的最大池化,步长为2- 全连接层1:神经元个数为128,激活函数为ReLU- 全连接层2(输出层):神经元个数为10,激活函数为Softmax2. 实验结果:经过训练和评价,模型在测试集上的准确率达到了98.5%。

[实验讨论]通过实验结果的分析,我们可以得出以下结论:1. CNN模型在图像识别任务中表现出色,可以取得较高的准确率。

人工智能 实验报告

人工智能 实验报告

人工智能实验报告人工智能实验报告引言:人工智能(Artificial Intelligence,简称AI)是一门研究如何使计算机能够像人类一样思考、学习和解决问题的科学。

随着科技的发展,人工智能已经在各个领域展现出巨大的潜力和应用价值。

本实验报告将介绍我对人工智能的实验研究和探索。

一、人工智能的定义与分类人工智能是指通过计算机技术实现的、模拟人类智能的一种能力。

根据不同的研究方向和应用领域,人工智能可以分为强人工智能和弱人工智能。

强人工智能是指能够完全模拟人类智能的计算机系统,而弱人工智能则是指在特定领域内模拟人类智能的计算机系统。

二、人工智能的应用领域人工智能的应用领域非常广泛,包括但不限于以下几个方面:1. 机器学习机器学习是人工智能的核心技术之一,通过让计算机从大量数据中学习并自动调整算法,实现对未知数据的预测和分析。

机器学习已经在图像识别、语音识别、自然语言处理等领域取得了重大突破。

2. 自动驾驶自动驾驶是人工智能在交通领域的应用之一,通过计算机系统对车辆的感知、决策和控制,实现无人驾驶。

自动驾驶技术的发展将极大地提升交通安全性和效率。

3. 机器人技术机器人技术是人工智能在制造业和服务业中的应用之一,通过模拟人类的感知、思考和行动能力,实现自主操作和协作工作。

机器人技术已经广泛应用于工业生产、医疗护理、农业等领域。

4. 金融科技金融科技是人工智能在金融行业中的应用之一,通过数据分析和算法模型,实现智能风控、智能投资和智能客服等功能。

金融科技的发展将推动金融行业的创新和变革。

三、人工智能的挑战与未来发展尽管人工智能取得了许多成果,但仍然面临着一些挑战和难题。

首先,人工智能的算法和模型需要更加精确和可解释,以提高其可靠性和可信度。

其次,人工智能的伦理和法律问题也需要重视和解决,例如隐私保护、人工智能武器等。

此外,人工智能的发展还受到数据质量和计算能力的限制。

然而,人工智能的未来发展依然充满希望。

人工智能实验报告范文

人工智能实验报告范文

人工智能实验报告范文一、实验名称。

[具体的人工智能实验名称,例如:基于神经网络的图像识别实验]二、实验目的。

咱为啥要做这个实验呢?其实就是想搞清楚人工智能这神奇的玩意儿是咋在特定任务里大显神通的。

比如说这个实验,就是想看看神经网络这个超酷的技术能不能像人眼一样识别图像中的东西。

这就好比训练一个超级智能的小助手,让它一眼就能看出图片里是猫猫还是狗狗,或者是其他啥玩意儿。

这不仅能让我们深入了解人工智能的工作原理,说不定以后还能应用到好多超有趣的地方呢,像智能安防系统,一眼就能发现监控画面里的可疑人物或者物体;或者是在医疗影像识别里,帮助医生更快更准地发现病症。

三、实验环境。

1. 硬件环境。

咱用的电脑就像是这个实验的战场,配置还挺重要的呢。

我的这台电脑处理器是[具体型号],就像是大脑的核心部分,负责处理各种复杂的计算。

内存有[X]GB,这就好比是大脑的短期记忆空间,越大就能同时处理越多的数据。

显卡是[显卡型号],这可是在图像识别实验里的得力助手,就像专门负责图像相关计算的小专家。

2. 软件环境。

编程用的是Python,这可是人工智能领域的明星语言,简单又强大。

就像一把万能钥匙,可以打开很多人工智能算法的大门。

用到的深度学习框架是TensorFlow,这就像是一个装满各种工具和模型的大工具箱,里面有好多现成的函数和类,能让我们轻松搭建神经网络,就像搭积木一样简单又有趣。

四、实验原理。

神经网络这个概念听起来就很科幻,但其实理解起来也不是那么难啦。

想象一下,我们的大脑是由无数个神经元组成的,每个神经元都能接收和传递信息。

神经网络也是类似的,它由好多人工神经元组成,这些神经元分层排列,就像一个超级复杂的信息传递网络。

在图像识别里,我们把图像的数据输入到这个网络里,第一层的神经元会对图像的一些简单特征进行提取,比如说图像的边缘、颜色的深浅等。

然后这些特征会被传递到下一层神经元,下一层神经元再对这些特征进行组合和进一步处理,就像搭金字塔一样,一层一层地构建出对图像更高级、更复杂的理解,最后在输出层得出图像到底是什么东西的结论。

2017中南大学人工智能实验报告

2017中南大学人工智能实验报告

“人工智能”实验报告专业:班级:学号:姓名:2017年4月日实验一搜索策略(一)实验内容1.熟悉和掌握启发式搜索的定义、估价函数和算法过程;比较不同算法的性能。

2.修改八数码问题或路径规划问题的源程序,改变其启发函数定义,观察结果的变化,分析原因。

(二)实验思路1.利用已有程序“search.jar”,利用已有的“简单搜索树”图或自行构建一个图,选择DFS/BFS/Lowest Cost First/Best-First/Heuristic Depth First/A*等不同的搜索策略,观察程序运行中,OPEN表和CLOSED表的变化,观察搜索过程的变化,理解各个算法的原理。

2.任选八数码问题或路径规划问题的源程序,思考程序如何解决该问题,并对其启发函数进行修改,观察结果的变化,并分析原因(三)程序清单此处我选择了路径规划问题:由于篇幅原因,只附上启发函数的定义部分。

原启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));return (xd + yd);}第一次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=sqrt(xd*xd+yd*yd);return d;}第二次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=3*sqrt(xd*xd+yd*yd);return d;}第三次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=xd*xd+yd*yd;return d;}(四)运行结果说明1.首先对实验内容1进行说明图一图一展示A*算法的搜索过程(此处的g(n),h(n)由系统自动给定),绿色表示可拓展节点(在OPEN表内),灰色表示已扩展结点(CLOSED表),没有颜色表示未入表,红色代表当前路径由课上学习我们易知f(n)= g(n)+h(n)下面我们通过改变g(n),h(n)来验证上式是否成立。

人工智能实验报告一

人工智能实验报告一

评定成绩:批阅教师:年月日
实验内容、方法和步骤
一)实验内容:
1、熟悉Turbo prolog的运行环境,包括所用的机器的硬件与软件环境。

2、学习使用Turbo prolog,包括进入Prolog主程序、编辑源程序、修改
环境目录、退出等基本操作。

3、学习Turbo prolog的简单程序结构,掌握分析问题、询问解释技巧。

4、了解PROLOG语言中常量、变量的表示方法;
5、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询
问;
6、利用PROLOG中的谓词asserta和retract进行数据管理。

二)实验步骤:
1、启动Windows操作环境。

2、打开目录,执行prolog应用程序,启动Turbo prolog,并按空格键
(SPACE)集成开发环境。

3、选择Setup项,打开下拉菜单,选择Directories项,将工作目录进行
修改,按Esc键退出,选择Save Configuration项,保存修改。

选择Example 1示例程序,再选择Edit项,可以进行编辑源程序。

即外部目标的执行,并分析程序之功能。

6、仿前例,运行Example 11、Example 15,分析程序功能。

7、退出,选择Quit项,可以退出Turbo Prolog程序,返回到Windows环
境。

实验结果
Example 1:
Example 11:
Example 15:。

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

“人工智能”实验报告专业:班级:学号:姓名:2017年4月日实验一搜索策略(一)实验内容1.熟悉和掌握启发式搜索的定义、估价函数和算法过程;比较不同算法的性能。

2.修改八数码问题或路径规划问题的源程序,改变其启发函数定义,观察结果的变化,分析原因。

(二)实验思路1.利用已有程序“search.jar”,利用已有的“简单搜索树”图或自行构建一个图,选择DFS/BFS/Lowest Cost First/Best-First/Heuristic Depth First/A*等不同的搜索策略,观察程序运行中,OPEN表和CLOSED表的变化,观察搜索过程的变化,理解各个算法的原理。

2.任选八数码问题或路径规划问题的源程序,思考程序如何解决该问题,并对其启发函数进行修改,观察结果的变化,并分析原因(三)程序清单此处我选择了路径规划问题:由于篇幅原因,只附上启发函数的定义部分。

原启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));return (xd + yd);}第一次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=sqrt(xd*xd+yd*yd);return d;}第二次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=3*sqrt(xd*xd+yd*yd);return d;}第三次修改后的启发函数:float MapSearchNode::GoalDistanceEstimate( MapSearchNode &nodeGoal ) {float xd = fabs(float(((float)x - (float)nodeGoal.x)));float yd = fabs(float(((float)y - (float)nodeGoal.y)));float d=xd*xd+yd*yd;return d;}(四)运行结果说明1.首先对实验内容1进行说明图一图一展示A*算法的搜索过程(此处的g(n),h(n)由系统自动给定),绿色表示可拓展节点(在OPEN表内),灰色表示已扩展结点(CLOSED表),没有颜色表示未入表,红色代表当前路径由课上学习我们易知f(n)= g(n)+h(n)下面我们通过改变g(n),h(n)来验证上式是否成立。

图二①图二为图一的放大图,我们可以看出f(Node1)= g(Node1) +h(Node1)=26.9+56.8=83.7f(Node2)= g(Node2) +h(Node2)=34.2+31.5=65.7显然f(Node1)> f(Node2),因此由A*算法,我们选择Node2图三②在图三中,我修改了Node2的启发值,其他不变f(Node1)= g(Node1) +h(Node1)=26.9+56.8=83.7f(Node2)= g(Node2) +h(Node2)=34.2+100.0=134.2显然f(Node1)<f(Node2),因此由A*算法,我们选择Node1图四③在图四中,我修改了Node2的当前路径值,其他不变f(Node1)= g(Node1) +h(Node1)=26.9+56.8=83.7f(Node2)= g(Node2) +h(Node2)=100.0+31.5=131.5显然f(Node1)<f(Node2),因此由A*算法,我们选择Node1经过上述简单实验论证,我们可以发现,A*算法的确是根据f(n)的值来进行搜索的2.对实验内容2的说明实验内容2我一共做了三次启发函数值的修改①float d=sqrt(xd*xd+yd*yd);②float d=3*sqrt(xd*xd+yd*yd);③float d=xd*xd+yd*yd;图五图五是未进行修改的结果,此时路径经过22个点,搜索了23个点未进行修改,原程序采用的是曼哈顿距离(Manhattan distance):也就是在一个可以向四个方向移动的方向网格中采用的距离,本问题移动方向也只有四个方向,可以说采用曼哈顿距离是当前我所知道中最好的解决方法图六图六是修改成欧几里得距离的结果,对应①情况很显然,这样进行修改,使得搜索次数变多,没有修改前表现良好(同时采用sqrt函数也增加了计算时间),原因我想主要为欧几里得距离表示允许沿任何角度移动,而当前问题只有四个方向,且当前问题的地图直线距离上的障碍物太多。

图七图七对应②③情况,②:欧几里得距离乘上了移动代价D(此处设为3,多次尝试发现设为3或更大之后,搜索次数表现更好),个人理解为移动代价增大使得h(n)比重增大③:既然我们乘上了移动代价D,而且代价>3后搜索次数表现良好,为什么我们不把sqrt函数去掉,采用平方后的欧几里得距离呢?这样不是省去了平方根的耗时计算吗?我认为这样有一个很严重的问题,它会导致启发式函数的估价值过高,也就是h(n)过高,有退化成Gready Best-First-Search的危险实验二推理技术(一)实验内容对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库或(和)事实库,进行正反向推理,了解其推理过程和机制。

自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。

这为学生亲手建造产生式系统并进行推理提供了一种有效的实验环境。

(二)实验思路利用已有程序”Tree.jar”,读取现有知识数据库,对默认的例子进行演示,同时改变其规则库,了解其推理过程(三)程序清单本实验不需要编程(四)运行结果说明图八①图八展示了推理成功的结果,程序进行的是逆向链接推理。

首先假设这一只动物是虎。

为了检验这个假设,根据规则,要求虎是哺乳动物,食肉动物,黄褐色且身上有黑色条纹。

那么我们首先检验这个动物是否是哺乳动物,由规则库,是哺乳动物的动物必须有毛发,或者有奶。

我们可以发现将哺乳动物替换成有毛发和有奶都无法继续执行下去。

由规则库,我们观察可知虎是哺乳动物,因此消去这一条件。

接下来只剩下了是肉食动物,是黄褐色,身上有黑色条纹。

我们都可以在规则库中发现这些子句,故可以顺利消解,生成NIL,即推理成功图九-1②图九-1展示了推理失败的结果从假设该动物是长颈鹿开始,最终无法得到结果,因为规则库没有相应子句可供消解。

图九-2图九-2展示了此时规则库中相应子句的情况,可以发现子句前有%存在使得子句无法被使用。

那么现在我们可以对规则库进行修改,使得该推理成功。

图十-1③图十-1展示了经过修改规则库后,成功的结果图十-2图十-2表示修改规则库后的情况,我们可以与图九-2对比,显然仅仅修改了“%”即可。

实验三神经网络(一)实验内容1.通过BP网络各项参数的不同设置,观察BP算法的学习效果。

观察比较BP网络拓朴结构及其它各项参数变化对于训练结果的影响。

观察并分析不同训练数据对相同拓朴结构的BP网络建模的影响。

2.编写简单的感知器训练算法,实现简单的逻辑运算(与、或)(二)实验思路1. 利用已有程序“neural.jar”,通过载入已有BP网络,观察BP算法的学习效果,比较各项参数变化对于训练结果的影响。

2.根据课上学习内容,编写简单的感知器训练算法。

(三)程序清单#include <iostream>#include <stdlib.h>using namespace std;const unsigned int nTests =4; //训练数据的数量const unsigned int nInputs =2; //输入端的数量const double alpha =0.3; //学习参数double weight1[nInputs]={0.0};double weight2[nInputs]={0.0};double b=-0.8; //阈值设为-0.8struct slp{double inputs[nInputs];double output;};//计算输出值double compute(double *inputs,double * weights,double b){double sum =0.0;for (int i = 0 ; i < nInputs; ++i){sum += weights[i]*inputs[i];}//biassum +=b;return sum;}int main(){/**正确的“与”操作,“或”操作的训练数据,也就是所谓的“target”*/slp yu[nTests] = {{0.0,0.0,0.0},{0.0,1.0,0.0},{1.0,0.0,0.0},{1.0,1.0,1.0}};slp huo[nTests] = {{0.0,0.0,0.0},{0.0,1.0,1.0},{1.0,0.0,1.0},{1.0,1.0,1.0}};bool bLearningOK = false;int count1=0;//感知器“与”操作学习算法while(!bLearningOK){bLearningOK = true;for (int i = 0 ; i < 4 ; i++){double output = compute(yu[i].inputs,weight1,b);while(output>0){weight1[0]=weight1[0]+alpha*(yu[i].output-output)*yu[i].inputs[0];weight1[1]=weight1[1]+alpha*(yu[i].output-output)*yu[i].inputs[1];output = compute(yu[i].inputs,weight1,b);count1 ++;if(count1 >500){cout<<"请重设参数"<<endl;exit(0);}}if(i==3){while(output<0){weight1[0]=weight1[0]+alpha*(yu[i].output-output)*yu[i].inputs[0];weight1[1]=weight1[1]+alpha*(yu[i].output-output)*yu[i].inputs[1];output = compute(yu[i].inputs,weight1,b);count1 ++;if(count1 >500){cout<<"请重设参数"<<endl;exit(0);}}}}}bLearningOK = false;int count2=0;//感知器“或”操作学习算法while(!bLearningOK){bLearningOK = true;//第一种情况要求小于0double output = compute(huo[0].inputs,weight2,b);while(output>=0){//cout<<output;weight2[0]=weight2[0]+alpha*(huo[0].output-output)*huo[0].inputs[0];weight2[1]=weight2[1]+alpha*(huo[0].output-output)*huo[0].inputs[1];output = compute(huo[0].inputs,weight2,b);count2 ++;if(count2 >500){cout<<"请重设参数"<<endl;exit(0);}}for (int i = 1 ; i < 4 ; i++){double output = compute(huo[i].inputs,weight2,b);while(output<0){weight2[0]=weight2[0]+alpha*(huo[i].output-output)*huo[i].inputs[0];weight2[1]=weight2[1]+alpha*(huo[i].output-output)*huo[i].inputs[1];output = compute(huo[i].inputs,weight2,b);count2 ++;if(count2 >500){cout<<"请重设参数"<<endl;exit(0);}}}}cout<<"学习数据:"<<endl;for(int w = 0 ; w < nInputs ; ++w){cout<<"yu_weight"<<w<<":"<<weight1[w] <<endl;}cout<<"\n";for (int i = 0 ;i < nTests ; ++i){cout<<"yu_rightresult:"<<yu[i].output<<"\t";cout<<"yu_caculateresult:" << compute(yu[i].inputs,weight1,b)<<endl;}for(int w = 0 ; w < nInputs ; ++w){cout<<"huo_weight"<<w<<":"<<weight2[w] <<endl;}cout<<"\n";for (int i = 0 ;i < nTests ; ++i){cout<<"huo_rightresult:"<<huo[i].output<<"\t";cout<<"huo_caculateresult:" << compute(huo[i].inputs,weight2,b)<<endl;}cout<<endl<<"学习完毕,请输入两个值:"<<endl;double test[2];cin>>test[0]>>test[1];double yu_result;double huo_result;if(compute(test,weight1,b)>0)yu_result=1;elseyu_result=0;if(compute(test,weight2,b)>0)huo_result=1;elsehuo_result=0;cout<<"与操作结果:"<<yu_result<<endl;cout<<"或操作结果:"<<huo_result<<endl;return 0;}(四)运行结果说明1.先对第一个实验内容进行说明,此处我选择了异或问题进行实验图十一①图十一展示了未经训练的情况。

相关文档
最新文档