免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5667 | 回复: 5
打印 上一主题 下一主题

[算法]巡回售货员问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-02 12:58 |只看该作者 |倒序浏览
今天在看时间复杂度的时候看见有个据说是著名的巡回售货员问题,据说目前的算法都是指数级的,我随便想了想,搞了个算法,当然纰漏可能是大大的存在。各位牛哥、牛姐、牛弟、牛妹给拍拍砖,俺们讨论讨论。
1.将所有路径倒排序。
2.尝试删除长度最大的路径,如果有同样长度路径(按顺序尝试)。
2.1 如果要删除的路径的两个端点中有一个的路径数小于2,返回不允许删除。
2.2 如果删除该路径后,图中还存在哈密尔顿路径(即回路),返回允许删除。否则返回不允许删除。
简单吧。拍砖欢迎,证明的没想到。

论坛徽章:
0
2 [报告]
发表于 2009-06-02 13:12 |只看该作者
再给介绍点背景资料吧:
巡回售货员问题也称为货郎担问题。有一个售货员,从他所在城市出发去访问n-1个城市,要求经过每个城市恰好一次,然后返回原地,问他的旅行路线怎样安排才最经济(即线路最短)?就是求最短的哈密尔顿路径。
如果将所有城市以及所有路径用图表示出来就是赋值完全图。每个城市作为节点,每两个城市之间的路线长度作为赋值路径(任意两个城市之间都有路径)。

论坛徽章:
0
3 [报告]
发表于 2009-06-02 13:53 |只看该作者
怎么没人给提提意见,牛都不知道跑哪去吃草去了吗?

论坛徽章:
0
4 [报告]
发表于 2009-06-02 14:03 |只看该作者
唉,牛儿还在山坡吃草,晚上再来看看吧

论坛徽章:
0
5 [报告]
发表于 2009-06-03 17:00 |只看该作者
贪心法么?
我举个反例不知道对不对
ab=6,bc=1,cd=1,da=1,ac=5,bd=5.
这样最短是abcda=9,
如果用你的算法岂不是第一次就把ab删除了.

论坛徽章:
0
6 [报告]
发表于 2009-06-05 19:43 |只看该作者
原帖由 haohao06 于 2009-6-3 17:00 发表
贪心法么?
我举个反例不知道对不对
ab=6,bc=1,cd=1,da=1,ac=5,bd=5.
这样最短是abcda=9,
如果用你的算法岂不是第一次就把ab删除了.

谢谢这位兄的,我再想想,想好了再卷土重来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP