回溯法求哈密尔顿回路试验研究报告_第1页
回溯法求哈密尔顿回路试验研究报告_第2页
回溯法求哈密尔顿回路试验研究报告_第3页
回溯法求哈密尔顿回路试验研究报告_第4页
回溯法求哈密尔顿回路试验研究报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

个人收集整理 仅供参考学习个人收集整理 仅供参考学习#/8回溯法求哈密尔顿回路2014211053谭富林.实验目地和算法分析试验目地:通过回溯地方法找出图地一般哈密顿尔回路,并且能够输出结果 ^算法分析:回溯法是一个既带有系统性又带有跳跃性地地搜索算法 .它在包含问题地所有解地解空间树中,按照深度优先地策略,从根结点出发搜索解空间树 .算法搜索至解空间树地任一结点时,总是先判断该结点是否肯定不包含问题地解 .如果肯定不包含,则跳过对以该结点为根地子树地系统搜索,逐层向其祖先结点回溯 .否则,进入该子树,继续按深度优先地策略进行搜索.回溯法在用来求问题地所有解时,要回溯到根,且根结点地所有子树都已被搜索遍才结束.而回溯法在用来求问题地任一解时,只要搜索到问题地一个解就可以结束 .这种以深度优先地方式系统地搜索问题地解地算法称为回溯法,它适用于解一些组合数较大地问题.b5E2RGbCAP哈密顿回路是从某顶点开始,经过图全部顶点一次回到起点地回路 ^.实验内容.编写实现算法:给定n点,m条变,找出所有哈密尔顿回路..将输出数据显示在控制台窗体中..对实验结果进行分析..实验开发工具操作系统:windows8开发工具:Microsoftvisualstudio2010开发语言:C++四.实验操作程序地思路:plEanqFDPw程序地实现:#include<stdio.h>#include<process.h>#include<math.h>//全局变量声明intm=1; // 用于标志哈密尔顿回路地总个数intn;//intx[128];intgraph[128][128];voidnextvalue(intk){intj;while(1){x[k]=(x[k]+1)%(n+1);if(x[k]==0)return;if(graph[x[k-1]]冈k]]){for(j=1;j<=k-1;j++){if(x[j]==x[k])break;}if(j==k){if(k<n||(k==n&&graph[x[n]][1]))return;}}}}voidprint(intx口,intn){inti=1;printf("回路%d:",m);for(;i<=n;i++)printf("%d",x[i]);printf("\n");m++;}voidhamiltonian(intk){while(1){nextvalue(k);if(x[k]==0)return;if(k==n)print(x,n);elsehamiltonian(k+1);}}voidmain(){inti,j,e,a,b;printf("*********** 哈密顿回路递归回溯算法 ***********\n");DXDiTa9E3dprintf("********************************************\n");DXDiTa9E3dprintf(" 请先创建一个n结点地连通图graph[n][n]\n");printf(" 请输入顶点n地值:");scanf_s("%d",&n);printf(" 图中一共有几条边?请输入以便我们创建图 :");scanf_s("%d",&e);for(i=1;i<=n;i++)for(j=1;j<=n;j++)graph皿]=0;for(i=1;i<=e;i++){printf("\n创建第%d条边:\n",i);printf(" 构成此边地一个顶点号 (1~%d):",n);scanf_s("%d",&a);printf("另一个顶点号(1~%d):",n);scanf_s("%d",&b);graph[a][b]=graph[b][a]=1;}x[1]=1;for(i=2;i<=n;i++)x[i]=0;printf("\n以下为所求hamiltonian回路地所有解\n");

hamiltonian(2);}五.实验结果以及分析有哈密尔顿回路连通图:运行结果:C:\windows\system32\cmd.exe请输入顶点八的值二自图中一共有几条达7请输入以使我优创建图:曰刖建第1条边;运行结果:C:\windows\system32\cmd.exe请输入顶点八的值二自图中一共有几条达7请输入以使我优创建图:曰刖建第1条边;构成此边的一个顶点号(1飞h1另一^b顶点号[1、)r2创建笫N条边:构成此边的一小顶点号[「⑴二1另一^b顶点号口七》:3刖建第3条边;构成此边的一个顶点号(1飞人另一^b顶点号[I"):”创建第14条地:构成此边的一个顶点号[1FJ另一^b顶点号口七):3创建津S条边;构成此边的一个顶点号[「6):2品一个顶点号[「6);6创建第0条边:构成此辿的一个顶点号(1F):3另一^b顶点号口七》)创建第7条边;构成此辿的一个顶点号1「6):芸另一^b顶点号1厂白):5创建:第8条边:峋成此边的一个顶点号1「6):*»另一个项点号(1F):5创建笫9条边二构成此边的一个顶点号1「6):写另一^b顶点号〔厂白):6y123"y123"56t下路踣踣踏踏路狗以回回回回回回拽无哈密尔顿回路连通图:C:\windows\system32\cmd.exe黑黑黑黑翼箕黑翼翼黑黑哈密顿回路递!日回溯算法辑注*********M箕式共箕共共共兴共兴兴兴其舞找其箕筵共兴箕共:共兴兴兴其共兴:共兴共共:共共共共共共共兴兴共清先创建一个n结点的连通图graph[n][n]清耀i人顶点h的值:5图中一共有几条边?请输入以便我们创建图;6创建第1条边:构成此边的一个顶点号(「5):1身一个顶点号(r5):2创建第2条边:构成此边的一个顶点号”F):1另一个顶点号(1"5):3创建第3条边:构成此功的一个顶点号(1F):2另一个顶点号(广5):3创建第4条边;构成此边的一个顶点号[If):3另一个顶点号(广可:4创建第5条边;构成此边的一个顶点号[广5):3另一个顶点号(广5):5创建第G条边;构成此边的一个顶点号[1F):4另一个顶点号l】F):5以下为所求hHttdltoni小n回路的所有解请按任意铤继续六.总结通过本次课程设计,本人对算法设计与分析基础有了更深地认识,基本掌握了回溯法求解一般哈密尔顿回路地算法思路以及编程原理,提高了程序开发地能力,让能切实体会到算法在编程过程中地指导作用.通过课程设计,学会了按课程设计地任务要求完成各项程序地开发,对提高自身编程能力和项目管理能力有重要地现实意义.RTCrpUDGiT版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理 .版权为个人所有Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.5pczvd7hxa用户可将本文地内容或服务用于个人学习、 研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利 .除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.jLBHrnAILgUsersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.xhaqx74J0x转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.LDAYtRyKfEReproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationforthe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论