24小时热门版块排行榜    

查看: 2119  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

gnss

铜虫 (正式写手)

[求助] 30金币求助:最长路径问题,要求遍历每个节点,总路径最长

   
某地区150个地面点,每个点坐标(x,y,z),任意两点i,j间组成基线,基线的长度为L(i,j)。
问题:找出一条路径,要求:
1, 经过每一个站点;
2, 每个站点可能不止使用一次;
3, 任何两条基线不相关,即如果路径含有i->j->k,则不允许存在i->k;
4 即该路径含150个节点,149条互不相关的基线;
5, 对L(i,j)求和,要求总路径最长。

这是一个什么问题呢?暴力枚举搞不定,计算量太大了。
30金币求助一下。我同时也在学习中。


[ Last edited by gnss on 2012-6-12 at 15:07 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smswt

铁杆木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
gnss: 金币+5, ★★★很有帮助, 您这个算法每个点只能使用一次,我的没有这个限制 2012-06-14 08:37:01
没学过图论,看下这个方法可以不
1.把给的N个点分成两个集合A,B
2.对有限集合,A,B之间点的距离肯定有一个最大值,把这个距离设成L(A,B)
现在实行算法如下:
1,让A为空集,B为N所有点的集合,从B中任意选一个点放到A(不知道任意选对不对)
2,计算L(A,B),找到A,B中对应该距离的点(假设分别为i,j)
3.连接i->j,同时把j点从B中去掉,放入A中
4.重复2,3,直到B为空集

这种方法可以保证已经有通路的点不会再连接,同时每次连接都找的是最大距离,应该可以的到你要的结果,就是理论证明起来有点难
6楼2012-06-13 15:09:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

lijie169

铜虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
动态规划,一般分为自底向上和自顶向下
2楼2012-06-12 15:52:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
最优化问题有很多子分类,楼上说的动态规划是解决此类问题的一个途径
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2012-06-13 02:12:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxwbucea

铁虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
gnss: 金币+10, 货郎担问题要求每个点只能使用一次,我的没有这个限制 2012-06-13 19:10:34
是图论中的货郎担问题的变化,只需要选出一个比最长的基站长度还大的数M,用此数M分别减去每个基站长度作为新的基站长度,则转化为标准的货郎担问题了。货郎担问题有算法求解。
4楼2012-06-13 07:49:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见