微软过桥问题的图论解法
来源:互联网 发布:淘宝内容运营 编辑:程序博客网 时间:2024/04/20 16:38
微软过桥问题的图论解法
微软的过桥问题说的是4个人在晚上过一座小桥,过桥时必须要用到手电筒,只有一枚手电筒,每次最多只可以有两人通过, 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟,试问最少需要多长时间4人才可以全部通过小桥?
这个问题如果用图论来建模的话,就可以以4个人在桥两端的状态来作为节点来构造一个有向图,如下图所示,以已经过桥了的人的状态作为图的节点,初始时没有人过桥,所以以空表示,第一轮有两个人过桥,有6种可能的组合,(1,2)(1,5)(1,10)(2,5)(2,10)(5,10),从空的状态转换到这些状态的需要的时间分别为2,5,10,5,10,10分钟,时间就作为有向边的权值。当有两个人过桥后,需要一个人拿手电筒回去接其他人,这时有四种可能的情况,分别是1,2,5,10中的一人留在了河的对岸,(1,2)这种状态只能转换到(1)(2)两种状态,对应的边的权值分别为2,1分钟,(1,2)转换到(1)时也就是2返回了,返回需要耗时2分钟,以此类推可以建立以下的图论模型。
要求出最少需要多长时间4人全部通过小桥实际上就是在图中求出(空)节点到(1,2,5,10)节点间的最短路径。
根据Dijkstra最短路径算法很容易求出其最短路径,如图中的粗线所示。
这样总时间为2+1+10+2+2=17分钟
所以能够活学图论的话,这类智力问题就变成了图论的入门级的问题。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1340741
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法
- 微软过桥问题的图论解法-转帖
- 四人过桥问题的解法
- 四人过桥问题的解法
- 微软过桥问题的C++实现
- Google犯傻了,给我 403 Forbidden,竟提示我中病毒了,我会中毒么?
- IBM收购Bowstreet
- ASP.NET 2.0当中的Call back技术与ASP.NET AJAX
- Caucho Resin 开始支持 PHP
- Buildix 构建敏捷开发平台
- 微软过桥问题的图论解法
- Eclipse发布Web Tools Project 1.0
- 从一个中学的高考录取名单看中国高校的排名
- 日广告巨头看上博客 电通ADK合资专投博客
- 门户软件的价值不在门户本身
- 关于hook设置函数如何支持多核CPU的一个说明
- 脚本的威力:新一期的IBM周刊有四篇PHP的教程
- 数据挖掘有关术语(Glossary)
- Caucho Resin 开始支持 PHP