深搜减枝旅行家算法_第1页
深搜减枝旅行家算法_第2页
深搜减枝旅行家算法_第3页
深搜减枝旅行家算法_第4页
深搜减枝旅行家算法_第5页
全文预览已结束

下载本文档

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

文档简介

1、算法思想:使用Floyd算法求出两点间最小距离,算法使用深度优先搜索,在搜索到可行结果之后,使用Floyd条件,进行算法剪枝。剪枝条件:(curdis+disnodei+mindisi49=disbound)|(mincosti49+costnodei+curcost=costbound) 如果当前距离+本次搜到的节点i到node的距离+i到城市50的最小距离大于我们的最小花费,则必然剪枝,costbound为1500,题目设定条件运行结果:程序代码:/ branch.cpp : Defines the entry point for the console application./#inc

2、lude stdafx.h#include#includeusing namespace std;const int maxint=9999;int dis5050=0;int cost5050=0;int mindis5050=0;int mincost5050=0;int disbound=9999;int costbound=1500;int bestpath50=-1; void floyd(int d5050) int n=50; for (int k=0;kn;k+) for (int i=0;i50;i+) for (int j=0;j50;j+) if (dik+dkjdij)

3、 dij=dik+dkj; /* struct st int cur; int pre; int dis; int cost; ;void branch(int dis,int cost,int mindis,int mincost) struct st q1000=0; q0.cur=0; q0.pre=-1; int l=0; int r=0; int disbound=9999; int costbound=1500;while (l=r) for (int i=0;i=disbound)|(ql.dis+mincosti49=costbound) */void DFS(int node

4、,int curdis,int curcost,int path,int step) if (node=49) if (curdisdisbound) for (int i=0;istep;i+) bestpathi=pathi; bestpathstep=-1; disbound=curdis;/ coutdisbound ; / for (int s=0;sstep;s+) coutpaths ; / cout endl; return; if (node=47) int a=1;for (int i=0;i=maxint) continue; if (curdis+disnodei+mi

5、ndisi49=disbound)|(mincosti49+costnodei+curcost=costbound) continue; int flag=0; for (int j=0;jstep;j+) if (pathj=i) flag=1; if (flag=1) continue; pathstep=i; step+; / if (pathi!=0) continue; / for (int i=0;istep;i+)/ coutpathi ; coutendl;/ coutcurdisendl; DFS(i,curdis+disnodei,curcost+costnodei,pat

6、h,step); step-; pathstep=-1; int main() fstream f; f.open(m1.txt,ios:in); for (int i=0;i50;i+) for(int j=0;jdisij; disii=0; mindisij=disij; f.close(); f.open(m2.txt,ios:in); for (int i=0;i50;i+) for(int j=0;jcostij; mincostij=costij; f.close(); floyd(mindis); floyd(mincost); int path50=-1; cout - endl;/ path0=0; DFS(0,0,0,path,0); int i=0; cout

温馨提示

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

评论

0/150

提交评论