过桥问题——图论解法
生活随笔
收集整理的這篇文章主要介紹了
过桥问题——图论解法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
微軟過橋問題的圖論解法 微軟的過橋問題說的是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)節點間的最短路徑。 <?XML:NAMESPACE PREFIX = V />?<?XML:NAMESPACE PREFIX = O />?? 根據Dijkstra最短路徑算法很容易求出其最短路徑,如圖中的粗線所示。 這樣總時間為2+1+10+2+2=17分鐘 所以能夠活學圖論的話,這類智力問題就變成了圖論的入門級的問題。
轉載于:https://blog.51cto.com/tewuxiaoqiang/112981
總結
以上是生活随笔為你收集整理的过桥问题——图论解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: *.ashx文件
- 下一篇: java checkbox