多陆行商问题,求算法思路

iefus 2009-12-08 03:24:37
多旅行商问题(Multip le Traveling Salesman
Problem, MTSP)是指M 个旅行商从同一个城市(或不同城
市)出发,分别走一条旅行路线,使得每个城市有且仅有一个
旅行商经过(出发城市除外) ,且总路程最短

这个问题可以用什么好的算法实现呢,大家给点思路
...全文
151 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
丈八涯 2009-12-15
  • 打赏
  • 举报
回复
这个属于中心配货子问题。
建议参考一下VRP算法论文

可以使用扫描法,效果不错。再有节省法,最近邻。
配上两阶段,k-opt什么的优化一下。
如果想深入研究,这些国外有不少论文并且有试验数据及当前最好解。
iefus 2009-12-14
  • 打赏
  • 举报
回复
感觉那些智能算法好复杂
iefus 2009-12-09
  • 打赏
  • 举报
回复
那用什么算法解决下啊,我想的是动态规划:
旅行商1、2、........M,城市:1、2、......N,现实中M>N是没有意义的,因为人不可能比城市数量多
然后根据N解决问题:
1、当N是一个整体时,即只有一个旅行商,他走遍了所有的城市
2、当N是2份时,情况为:1和N-1,2和N-2,3和N-3,。。。。。。这时只有两个旅行商旅行
3、当N是3份时,情况为:1,1,N-2 ; 1,2,N-3; 1,3,N-4。。。。。2,2,N-4; 2,3,N-5
.................
N、当N是N份时,情况为:1,1,1,............


然后针对每一种情况动态规划求解,这样前面N分情况时有点类似于分治,这样得用一个递归实现。
后面就没想好
gbb21 2009-12-09
  • 打赏
  • 举报
回复
NPHard 问题,没有有效解法~
gbb21 2009-12-09
  • 打赏
  • 举报
回复
NP难问题没有有效解法,唯一办法就是搜索。
如果想得到一个“较优解”,可以随机化搜索,
比如模拟褪火,随机+局部调整等,方法很多,不一一列举了。
iefus 2009-12-08
  • 打赏
  • 举报
回复
这个能解决一个旅行商,好像解决多旅行商不是很好弄啊
pw_Start 2009-12-08
  • 打赏
  • 举报
回复
可以采取类似解决最小生成树的Prim算法的思路,大致的思路如下:
旅行商出发的城市构成一个起点城市的集合S,假如有p个,则S={sc1,sc2,…,scp},剩下的城市假如有q个,构成集合E,则E={ec1,ec2,…,ecq},每次选择两个集合之间权值最小的边,如边Edge(sci,ecj),则将ecj从集合E中减去,更新起点集合,即将sci更新为ecj,重复上面的过程,直到集合E为空,这时选择的所有边正好满足总路程最短。

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧