分支限界 旅行商 java_用分支限界法求解旅行商问题.pdf

本文介绍了使用分支限界法来解决旅行商问题,通过C++编程实现寻找路径长度最短的旅行路线。该算法遵循广度优先或最小耗费优先的搜索策略,舍弃非最优解,直至找到所需解或活结点表为空。主要代码展示了算法的主搜索函数及其关键步骤。
摘要由CSDN通过智能技术生成

用分支限界法求解旅行商问题.pdf

吴茂献①侯丽萍②李安宁③

(D炮兵学院(函河南信阳农业高等专科学校(爹河南驻马店市委党校

摘要:用分支限界法求解旅行商问题,用c++语言编程实现

关键字:分支限界法、旅行商问题、C++语言

1.引言 stancIntrm吐)1st=ⅣLaxCost:

旅行商问题(1'SP问题1就是一销售商从n个城市中 sta石cPATHminpath:

的某一城市出发,不重复地走完其余n一1个城市并回 EDGE

sdecte(1Edge;

到原出发点,在所有可能的路径中求出路径长度最短 NoDE★le矗,★right;

的一条。它是组合优化中研究最多的问题之一,是一个 /★如果当前矩阵大小为2.说明还有两条边没有

经典的NP难题。吸引了许多不同领域的研究工作者, 选,而这两条边必定只能有一种组合,

包括数学、运筹学、物理、生物和人工智能等领域,它是 ★才能构成整体回路.所以事实上所有路线已经

目前优化领域里的研究热点。 确定。★/

目前解决旅行商问题有诸多算法.神经网络、遗传

算法、免疫算法等,在各种解决旅行商问题的算法中, if(root.LowCost

还是存在很多问题。本次设计尝试使用分支限界法来 minDist=root.LowCost:

求旅行商问题的最优解。并用C++语言编程实现。该算

法可以取得较好的效果。 cin.get0;

2.分支限界法的基本思想 retum(r11inPath);})

分支限界法以广度优先或最小耗费f最大效益1优

先的方式搜索问题的解空间树.其搜索策略是:在扩展 下界尽量大的原则选分枝边★/

结点处,先生成其所有的儿子结点(分支),在这些儿子 le丘=newNoDE:

结点中。那些导致不可行解或导致非最优鳃的儿子结 /★建立左右分枝结点★/

点被舍弃,其余儿子结点被加入活结点表中。此后,从 2new

ri曲t NoDE;

活结点表中取下一个结点成为当前扩展结点,并重复 leR一>LowCost=root.LowCost:

上述结点扩展过程。这个过程一直持续到找到所需的 /★继承父结点的下界★/

解或活结点表为空时为止。

3.用C++语言编程求解旅行商问题的主要代码如 /★删掉分枝边★/

下: le丘一>path=root.path;

/★算法主搜索函数.root是当前的根结点★/ /★继承父结点的路径,没有增加新边★/

PATH leR一>1eR=NULL:

Search(NoDEroot){

电膀翔识与技术

5

囊甏鏊萎i瀚赣麓蠛

le丘一>right=NULL; for(col=0:col

right一>LowCost=mot.LowCost;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值