急!求最短游览路线算法(在线等待)

yxq1227 2003-06-27 08:45:58
现有一游览图,以矩阵存储,现要求完成如下功能:根据用户输入的多个顶点求经过这几个顶点的最短路径。
比较急,请各位多多指点!
...全文
80 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdxx 2003-07-11
  • 打赏
  • 举报
回复
克鲁斯卡尔算法
----------
求最小生成树吧。
Skt32 2003-07-10
  • 打赏
  • 举报
回复
http://www.chinaoak.com/download/sources/arithmetic/shortcut.zip
pumame 2003-07-10
  • 打赏
  • 举报
回复
克鲁斯卡尔算法!!什么是克鲁斯卡尔算法?
cccloveyf 2003-07-05
  • 打赏
  • 举报
回复
是有向图还是无向图啊?
zhoukun666 2003-07-05
  • 打赏
  • 举报
回复
????????-----操,你这也叫在线等待亚?----------都快一个礼拜了,你要以对代码回家开养猪场呀?
  • 打赏
  • 举报
回复
我也感觉用离散可以解决吧,构件最优二叉树不就可以了
xiaoboshen 2003-07-04
  • 打赏
  • 举报
回复
你这个问题其实就是著名的TSP问题,计算结果一般都是近似值;(可以指定递归次数)
目前的最好解法是遗传算法;其次是分枝定界;
动态规划效率也不高。
可以参考ARC\INFO的文档
dawnhorizon 2003-07-02
  • 打赏
  • 举报
回复
ft,看你的算法知道你是谁了
maradana 2003-07-01
  • 打赏
  • 举报
回复
用最小生成树,来办。你可以看一下《离散》。
yxq1227 2003-06-30
  • 打赏
  • 举报
回复
其实这就是货郎担问题,但是对于景点不一定只要求只访问一次,但是难度还是NP的。我要解决55级的问题,真的头大!
yxq1227 2003-06-30
  • 打赏
  • 举报
回复
to: ZhangYv(分,我要分,快给我分)

我搜了一下,关于MCTH算法和最小代价多播路由算法都没有找到,你可以给我链接吗?谢谢!
yxq1227 2003-06-30
  • 打赏
  • 举报
回复
回去研究了一下,但还是不是很明白。

我想了一种方法,先任取一个点A作为出发点,然后找出所有其他顶点中到A最近的点作为B点。现在我有了一条线段AB。下一步再找出所有其他顶点中到A或B的距离最近的点作为C点。也就是到线段两个顶点中任一个最近的点,现在将获得的线段AC或者BC作为新的线段继续上述过程即可。但是这样找出的并不是最优的,其性能也还没有进行估计。
ZhangYv 2003-06-28
  • 打赏
  • 举报
回复
贪心可以的.类似于Dijkstra算法,所不同的是,新加入结点不是到源结点的最小代价,而是到生成树的最小代价.是NPC问题,目前的算法都是求近似的.
dawnhorizon 2003-06-28
  • 打赏
  • 举报
回复
用动态规划我觉得可以解决。
规定所经过的阶段数=城市数,可以保证必然经过每一个城市;每一阶段都包括所有的城市,新的城市[C(k+1)]到起点的距离为所有可达这个城市的城市[C(k)]与起点距离加上C(k)到C(k+1)的距离的最小值(有点拗口,呵呵)。
试试看。
楼主是bupt的吧,计院几班的啊?
yxq1227 2003-06-27
  • 打赏
  • 举报
回复
开始我想先用Floyd算法求出任两个顶点之间的最短路径和路径长度,然后对所有可能的游览顺序求出游览长度,但是这样计算的复杂度太高了,仅找出所有的游览顺序就有N!种可能。各位有什么好算法,请大虾们多多指点!
zhoukun666 2003-06-27
  • 打赏
  • 举报
回复
就是最短路径问题:

程序构思:

首先,你应该把图形建立成加权图性的邻接数组,在申明一个一维数组来纪录已经查找的的数组(Visited)和一个一维数组来用来纪录顶点间距离综合的变化(Distant)

取原来的距离总和于新加入顶点后的距离总和的最小值作为新的距离的总和,
Riemann 2003-06-27
  • 打赏
  • 举报
回复
确实是steiner树问题。
WYlslrt 2003-06-27
  • 打赏
  • 举报
回复
呢也是拨号,发帖子长了都得先下线写好后,在上线发贴
ZhangYv 2003-06-27
  • 打赏
  • 举报
回复
不过你可以自己去找,叫最小代价多播路由算法,有种MCTH算法类似于Dijkstra算法,自己搜搜
ZhangYv 2003-06-27
  • 打赏
  • 举报
回复
是求一棵steiner树,如dcyu所说,有种比较简单的近似算法,是贪心的.改天再说也可能没机会说,现在我是拨号上网,N贵!
加载更多回复(2)

33,008

社区成员

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

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