| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1541 人关注过本帖
标题:求最短路径问题
只看楼主 加入收藏
hf201089
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2012-3-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
求最短路径问题
图片附件: 游客没有浏览图片的权限,请 登录注册

我在网上找到的解答是这样的思想:
创建两个表,OPEN, CLOSE。   
OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。   
1. 访问路网中距离起始点最近且没有被检查过的点,把这个点放入OPEN组中等待检查。   
2. 从OPEN表中找出距起始点最近的点,找出这个点的所有子节点,把这个点放到CLOSE表中。   
3. 遍历考察这个点的子节点。求出这些子节点距起始点的距离值,放子节点到OPEN表中。   
4. 重复第2和第3步,直到OPEN表为空,或找到目标点。
找V0到V5的最短路径
但有个地方想不通,找到V4的时候再往下找有2种到V3和到V5如果按照它所说的那么是不是就找到V3了?
那如果V3到V5之间的距离为10呢?那么10+3不是>6了吗?
搜索更多相关主题的帖子: 检查 
2012-04-05 17:46
cuijunchao
Rank: 5Rank: 5
来 自:湖南桂东
等 级:职业侠客
威 望:3
帖 子:132
专家分:386
注 册:2012-4-4
收藏
得分:0 
题目具点好吗?
2012-04-05 21:29
hf201089
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2012-3-4
收藏
得分:0 
回复 2楼 cuijunchao
我问的那个图是离散书上的
具体的题目是http://acm.hdu.
我想问的是具体的思想
2012-04-05 21:33
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:20 
但有个地方想不通,找到V4的时候再往下找有2种到V3和到V5如果按照它所说的那么是不是就找到V3了?
 那如果V3到V5之间的距离为10呢?那么10+3不是>6了吗?

上面的假设 是什么意思?
2012-04-05 22:41
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
input:
{
v0--v1(1)--v2(4)
v1--v0(1)--v2(2)--v3(7)--v4(5)
v2--v0(4)--v1(2)--v4(1)
v3--v1(7)--v4(3)--v5(2)
v4--v2(1)--v2(5)--v3(3)--v5(6)
v5--v3(2)--v4(6)
}

output:
{
v0----v5
}

v0        v1              v2                 v3             v4                v5

0         {v0,v1},1       {v0,v2},4          oo             oo                oo    ->{v0, v1}, 1
  
          0               {v0,v1,v2},3       {v0,v1,v3},8  {v0,v1,v4},6       oo    ->{v0,v1,v2},3

                          0                  {v0,v1,v3},8  {v0,v1,v2,v4},4    oo    ->{v0,v1,v2,v4},4
          
                                             {v0,v1,v3},8  0                  {v0,v1,v2,v4,v5},10     ->{v0,v1,v3},8

                                             0                                {v0,v1,v3,v5},10 / {v0,v1,v2,v4,v5},10  ->end

                                                                              0    
2012-04-05 23:13
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 
这个应该用到图的数据结构吧,从v0定点开始每次选择最短的路径走。同时再计算所有已经遍历过顶点的对外的最短路径作为下一步的路径。这样其实它能都v0都各个点的最短路径。

如果3-〉5的距离是10,程序会走4-〉5这条路。
2012-04-05 23:35
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
程序代码:
v0        v1              v2                 v3                     v4                v5

0         {v0,v1},1       {v0,v2},4          oo                     oo                oo    ->{v0, v1}

 
           0              {v0,v1,v2},3       {v0,v1,v3},8          {v0,v1,v4},6       oo    ->{v0,v1,v2}

                          0                  {v0,v1,v3},8          {v0,v1,v2,v4},4    oo    ->{v0,v1,v2,v4}
         
                                             {v0,v1,v2,v4,v3},7      0                {v0,v1,v2,v4,v5},10     ->{v0,v1,v2,v4,v3}

                                             0                                       {v0,v1,v2,v4,v3,v5},9   ->end

                                                                                     0    
2012-04-06 09:00
hf201089
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2012-3-4
收藏
得分:0 
回复 7楼 寒风中的细雨
程序代码:
v0        v1              v2                 v3                     v4                v5

0         {v0,v1},1       {v0,v2},4          oo                     oo                oo    ->{v0, v1}

           0              {v0,v1,v2},3       {v0,v1,v3},8          {v0,v1,v4},6       oo    ->{v0,v1,v2}

                          0                  {v0,v1,v3},8          {v0,v1,v2,v4},4    oo    ->{v0,v1,v2,v4}
        
                                             {v0,v1,v2,v4,v3},7      0                {v0,v1,v2,v4,v5},10     ->{v0,v1,v2,v4,v3}

                                             0                                       {v0,v1,v2,v4,v3,v5},9   ->end

                                                                                     0    
我想问的是如果V3->V5的距离不是2,而是10的话,那么到V3 {v0,v1,v2,v4,v3},7 后只能寻找V5只能利用7+10了吗?
这么以来不是大于 {v0,v1,v2,v4,v5},10     了吗?
2012-04-06 09:33
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
是试探性的   {v0,v1,v2,v4,v5} ,10   得到到得权值是10
                如果v3--v5的权值是10 按照{v0,v1,v2,v4,v3,v5},得到的权值是17
显然10<17, 则{v0,v1,v2,v4,v3,v5} 就不会更新上次的路径{v0,v1,v2,v4,v5}  
2012-04-06 10:24
hf201089
Rank: 2
等 级:论坛游民
帖 子:48
专家分:25
注 册:2012-3-4
收藏
得分:0 
回复 9楼 寒风中的细雨
当找到V4时,只能找到与它相邻的两个点V3和V5吗?
试探性的查找不是找与它相邻的最短距离的吗?
能发散到下一个结点的下一个结点吗?
那么这样的话怎么知道V4-V3-V5 和V4-V5谁大谁小呢?
2012-04-06 13:07
快速回复:求最短路径问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045854 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved