社区
数据结构与算法
帖子详情
求解算法,敬请各位指点
homerlu
2002-07-24 09:00:43
二维平面上存在包含A、B点在内的n+2个点,无序排列。现需求从A至B的最短路线,要求经过平面上所有n个点(A、B为始点、终点)。已知所有点都可两两直线连通
...全文
34
15
打赏
收藏
求解算法,敬请各位指点
二维平面上存在包含A、B点在内的n+2个点,无序排列。现需求从A至B的最短路线,要求经过平面上所有n个点(A、B为始点、终点)。已知所有点都可两两直线连通
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
homerlu
2002-07-25
打赏
举报
回复
GGJJDDMM,是啊
我现在需要计算N=0-11的所有种情况.
zzwu
2002-07-25
打赏
举报
回复
n不大,来一次简单的穷举拉倒了.
例如,如果中间还有p1,p2,p3三个点,那就是计算
A-P1-P2-P3-B
A-P1-P3-P2-B
A-P2-P1-P2-B
A-P2-P3-P1-B
A-P3-P1-P2-B
A-P3-P2-P1-B
的路径长,取其最短者
homerlu
2002-07-25
打赏
举报
回复
怎么给分啊?
我点管理怎么仍然不让我给分?
homerlu
2002-07-25
打赏
举报
回复
我多少了解问题的境况了.
现在看来得到一个准确的最优算法不太可能.
也只能得近似算法,以我的上面的思路,从路径两边分别向前寻路,
可以比从一边单向寻路将精确度提高一倍,但同时时间代价也相应增加了一倍.
问:大家那位还有更好的算法或建议.
谢谢
项目花园范德彪
2002-07-24
打赏
举报
回复
如不考虑效率,可以把所有的走法都完成一遍,
一比越可,
所能走法,
IF 没通
LOOP
通
shotcut=min(shotcut ,curcut)
end
shotcut为最短
所有走法,只要所走的点序列不同,通通视为不同走法
homerlu
2002-07-24
打赏
举报
回复
wanbaocheng(www) 看了TSP算法的介绍,确实相似,但也不同.
以下是对这个问题我的思路,欢迎各位讨论:
在这里S=A,E=B.(START,END)
0.准备:将2+n个点组成一数组.S为首,E为末.
ARRAY[n+2],ARRAY[0]=A,ARRAY[n+1]=A;
1.比较S.E两点到各点的距离,共2N次,并求得其最短一条,
设此最短距离对应点M,
如果
M距离S近,则ARRAY[1]与M位置互换;
并将新的ARRAY[1](M)设为S;
如果
M距离E近,则ARRAY[N+1 - 1]与M位置互换;
并将新的ARRAY[N+1 - 1](M)设为E;
2.依次循环递归,直至最后两点.
这是我的简单思路,但此方法未曾证明,不知道合不合理,另外其他方法如何设计,谢谢各位.
homerlu
2002-07-24
打赏
举报
回复
呵呵,没关系,再来.
zzwu
2002-07-24
打赏
举报
回复
对不起,题目看错了. 上面的作废!
zzwu
2002-07-24
打赏
举报
回复
方法:
把起点A与终点B直接连起来,一步就完成!
zzwu
2002-07-24
打赏
举报
回复
方法:
把起点A与终点B直接连起来,一步就完成!
homerlu
2002-07-24
打赏
举报
回复
up
homerlu
2002-07-24
打赏
举报
回复
多谢指教,但是我不是太明白,您所说的相关算法我只是听说过,还没接触:(
能否给点其他提示.谢谢.我会去看你说的算法的.
wanbaocheng
2002-07-24
打赏
举报
回复
这是TSP问题的变形,也是NP难问题,是不存在多项式时间复杂度的算法的。
不过可以用启发式算法:最近插入法,局部搜索法,遗传算法,模拟退火算法等等。
homerlu
2002-07-24
打赏
举报
回复
不好意思,我的这个思路已经被证反,请大家想想其他办法
回复人: homerlu(碧水澄月) ( ) 信誉:100 2002-07-24 12:37:00 得分:0
wanbaocheng(www) 看了TSP算法的介绍,确实相似,但也不同.
以下是对这个问题我的思路,欢迎各位讨论:
在这里S=A,E=B.(START,END)
0.准备:将2+n个点组成一数组.S为首,E为末.
ARRAY[n+2],ARRAY[0]=A,ARRAY[n+1]=A;
1.比较S.E两点到各点的距离,共2N次,并求得其最短一条,
设此最短距离对应点M,
如果
M距离S近,则ARRAY[1]与M位置互换;
并将新的ARRAY[1](M)设为S;
如果
M距离E近,则ARRAY[N+1 - 1]与M位置互换;
并将新的ARRAY[N+1 - 1](M)设为E;
2.依次循环递归,直至最后两点.
这是我的简单思路,但此方法未曾证明,不知道合不合理,另外其他方法如何设计,谢谢各位.
homerlu
2002-07-24
打赏
举报
回复
dear,研究算法不可能不考虑效率,尤其这种不考虑空间代价的,就只能考虑算法的复杂度和时间代价了.
同样谢谢你.
算法
之道—形而之上谓之道
文 / 邹恒明 1966年3月的一天,美国加州大学洛杉矶分校的Andrew J. Viterbi教授在给研究生讲解缠绕编码的时序译码
算法
SDCD。但不管他如何讲解,学生就是听不明白。思来想去,Viterbi觉得学生不能理解的原因是该
算法
的证明过于复杂。于是他开始考虑如何简化这个证明。在经历了持久的烦躁和困惑后,他灵感顿现:需要简化的不是
算法
的证明,而是
算法
本身。于是Viterbi对SDCD
算法
进...
数据结构笔记:Josephus问题
求解
Josephus问题是一个基于数据结构中链表运用的一个实例,通过目前的主流程序设计语言(C C++ Java)均可进行
算法
的演示。本人作为大二的电信程序小白一枚,曾花了将近2天的时间去完成老师布置的C++实现方法,希望本程序菜鸟的经验分享可以为广大小白提供些许帮助:) 百度百科上给出的Josephus问题的历史原型是这样的: 在罗马人占领乔塔帕特後,39 个犹太人与Josephus及他的朋友躲...
[VB.NET]100分
求解
:如何屏蔽VB2005中TREEVIEW控件的AfterSelect事件?????
100分
求解
:如何屏蔽VB2005中TREEVIEW控件的AfterSelect事件?????当选择了一个TREEVIEW控件的焦点时就会触发AfterSelect事件,那么如果我想点击TREEVIEW控件中其它焦点,但又不想触发AfterSelect事件的话应该用什么语句来实现呢?? 请高手
指点
!________________________________________________
非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)
牛顿法及牛顿下山法
起泡排序与快速排序
此篇为原创,如需转载,请注明出处:http://blog.csdn.NET/qq_36759732 起泡法和快排都是以交换元素为方式的排序方法,所以我放在一起说。 起泡法:原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。起泡法就像一趟之后找到一个一个最大或最小的值,
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章