




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验一:搜索算法问题求解智能1402 1 李帅玲目录一、实验目的1. 了解一致代价搜索算法的基本原理;2. 能够运用计算机语言实现一致代价搜索算法;3. 应用搜索算法解决罗马尼亚问题;4. 能够通过实验分析了解算法性能的优劣;二、实验的硬件、软件平台硬件:计算机软件:操作系统;WINDOWS 2000应用软件:C,Java或者MATLAB三、实验内容及步骤图一:罗马尼亚地图1、根据图一创建搜索树,以Arad为初始状态,Bucharest为目标状态;2、实现一致代价搜索的图搜索算法并记录搜索路径。四、思考题1、根据实验结果分析一致代价搜索的完备性,最优性,时间和空间复杂
2、度。2、指出无信息搜索策略和有信息搜索策略的不同。3、分析一致代价搜索如何保证算法的最优性五实验报告(一)算法的基本原理1.基本原理一致代价搜索总是扩展路径消耗最小的结点n。n点的路径消耗等于前一结点n-1的路径消耗加上n-1到n的路径消耗。2.算法实现流程a.相关函数:地图初始化函数: 其中map.txt为图搜索树信息: 路径数目23条,路径起始点s,结束点t,路径消耗cost:下标获取函数:主函数实现流程:首先初始化地图,创建优先队列,输入起始城市和目标城市并获取城市的下标,将起始结点入队列。一致搜索过程:将优先队列中当前路径消耗最小的头结点弹出,(因为结点在优先队列中,其头结点必然为队列
3、中路径消耗最小的才会弹出。)对其进行扩展标记,判断当前结点是否为目标结点,如果不是,将该结点的后继结点入队列,并记录其前继结点,后继结点的路径消耗值等于当前结点的路径消耗加上当前结点到它的路径消耗;如果当前结点为目标结点,则将路线及路径总耗散输出,即把记录的前继结点结点输出。一致搜索结束后,若还没有找到路径,则说明目标结点可能不在地图中。(二)算法的实验结果1实验结果2.结果说明起点Arad,终点Bucharest:结点扩展遍历过程:Arad->Zerind->Timisoara->Sibiu->Oradea->Rimnicu_Vilcea->Lugoj-&
4、gt;Fagaras->Oradea->Mehadia->Pitesti->Craiova->Drobeta->Bucharest最终路线:Arad-> Sibiu-> Rimnicu_Vilcea-> Pitesti-> Bucharest路径总耗散值:418(三)实验分析和思考题1、根据实验结果分析一致代价搜索的完备性,最优性,时间和空间复杂度。完备性:一致代价搜索对解路径的步数并不关心,只关心路径总代价。所以,如果存在零代价行动就可能陷入死循环。如果每一步的代价都大于等于某个小的正常数,那么一致代价搜索是完备的。从算法中也可以看
5、到,一致搜索将地图中相关联的路径都入了队列,不存在遗漏的点线,所以如果目标结点在图中,最终总会找到一条路径到达目标结点。最优性:一致代价搜索是最优的。一致代价搜索目标检测应用于结点被选择扩展时,而不是在结点生成的时候,因为第一个生成的目标结点可能在次优路径上。而且如果边缘中的结点有更好的路径到达该结点那么会引入一个测试。简单来说,优先队列保证了每一个出队扩展的结点都是最优的,如此得到了一个最优的路径。时间和空间复杂度:一致代价搜索由路径代价而不是深度来导引。引入表示最优解的代价,假设每个行动的代价至少为,那么最坏情况下,算法的时间和空间复杂度为()。2、指出无信息搜索策略和有信息搜索策略的不同
6、。无信息搜索指的是除了问题定义中提供的状态信息外没有任何附加信息。搜索算法要做的是生成后继并区分目标状态与非目标状态。这些搜索是以结点扩展的次序来分类的。而有信息搜索策略知道一个非目标状态是否比其他状态更有希望接近目标。而它这种判断希望的想法可能会让它错失最优解。3、分析一致代价搜索如何保证算法的最优性首先一致代价搜索选择结点去扩展时就已经找到到达结点的最优路径;接着由于每一步的代价是非负的,随着结点的增加路径绝不会变短。这两点说明了一致代价搜索按结点的最优路径顺序扩展结点。所以第一个被选择扩展的目标结点一定是最优解。(四)实验源代码#include<iostream>#inclu
7、de<fstream>#include<string>#include<queue>using namespace std;#define INF 0x7FFFFFstring CityName="Oradea","Zerind","Arad","Sibiu","Fagaras","Timisoara","Lugoj","Rimnicu_Vilcea","Pitesti",&quo
8、t;Mehadia","Drobeta","Craiova","Bucharest","Giurgiu","Urziceni","Hirsova","Vaslui","Iasi","Neamt","Eforie"int map2121;/存储地图信息 bool visit21;/标记是否已遍历 int num;/地图路径数 int cost; /路径的耗散值int pre21; /存储前
9、继结点 struct nodeint city; /城市编号 int cost; /当前耗散值 node()node(int mcity,int mcost)city=mcity;cost=mcost;/优先队列排序定义 bool operator > (const node &s) const return cost<s.cost; bool operator < (const node &s) const return cost>s.cost; bool operator = (const node &s) const return cost
10、=s.cost; ;int getIndex(string city); /对地图进行初始化 void initMap()string s,t;int a,b;ifstream fin("map.txt");for(int i=0;i<20;i+)for(int j=0;j<20;j+)mapij=INF; for(int i=0;i<20;i+)prei=-1; fin>>num;while(num-)fin>>s>>t>>cost;a=getIndex(s);b=getIndex(t);mapab=map
11、ba=cost;fin.close();/与CityName比对,获取城市下标 int getIndex(string city)for(int i=0;i<20;i+)if(CityNamei=city)return i;return -1;/主函数 int main()initMap(); /初始化地图 priority_queue<node> q; /优先队列 string source,target; /起始城市和目标城市 cout<<"请输入起始城市和目标城市:"<<endl;cin>>source>&g
12、t;target;/获取城市对应编号 int s=getIndex(source);int goal=getIndex(target);q.push(node(s,0);cout<<"结点生成: "<<CityNames<<" 路径耗散:0"<<endl; node CurNode; /一致搜索 while(!q.empty()int temp;CurNode=q.top();q.pop();/通过优先队列,出来的结点必然是路径耗散最小的 cout<<"结点扩展:"<&
13、lt;CityNameCurNode.city<<" 路径耗散:"<<CurNode.cost<<endl;visitCurNode.city=true;/访问标记 if(CurNode.city=goal) /找到目标结点 int k=goal;cout<<"路线:"<<CityNamegoal<<"<-"while(prek!=s)cout<<CityNameprek<<"<-"k=prek; cout<<CityNames<<endl;cout<<"路径总耗散: "<<CurNode.cost<<endl;return 0;/没有到达目标结点,生成后继结点 for(int i=0;i<20;i+)if(mapCurNode.cityi!=INF && visiti=false)prei=CurNode.city;/保存i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人股权转让培训课件
- 《智慧健康守护者:益康卫士课件概览》
- 工程合同管理系统
- 《制作前调研》课件
- 特殊作业安全生产培训
- 《医疗机构消毒管理指南》课件
- 新编英语听力教程课件l
- 2025年企业营销部门个人年终工作总结模版
- 电工实习心得体会模版
- 食堂人员知识培训内容
- 桌面推演应急演练方案脚本
- 3.4沉淀溶解平衡及影响因素的探究课件高二上学期化学人教版选择性必修1
- 总体取值规律的估计教学设计 高一下学期数学人教A版(2019)必修第二册
- 城市轨道交通车辆制动系统(高职)教学课件
- 公共基础知识1000题题库
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 低空经济解决方案
- 2019年浙江省初中毕业升学考试说明(科学)
- ISO9001-ISO14001-ISO45001三体系内部审核检查表
- 热力管网技术标
- JT-T-1094-2016营运客车安全技术条件
评论
0/150
提交评论