Fleury (弗罗莱) 算法通俗解释
Fleury (弗羅萊) 算法通俗解釋
1.定義
2.舉例說明
圖2為連通圖G,現利用Fleury算法求它的歐拉通路。(注意區分:歐拉通路、歐拉回路)
其中一種歐拉通路如下:4 5 8 7 6 8 9 1 5 3 2 4 6,其搜索路徑如下圖所示:
現在讓我們來分析算法實現過程:
???????? 假設我們這樣走:4,6,8,5,此時在5處有三種選擇(3,4,1),那么哪種能走通哪種走不通呢?答案是(3,4)通,1不通。為什么呢?來看下圖…
分析:
???????? 因為(5~1)之間的邊是除去已走過邊(E(G)-{E1(4~6),E2(6~8),E3(8~5)})圖G的一個橋,所謂橋即去掉該邊后,剩下的所有頂點將不能夠連通,即無法構成連通圖。
而選擇(5~3)和(5~4)則滿足定義中第二條(b)中的要求。當然當(5~3)和(5~4)都不存在,即定義中所說“除非無別的邊可供選擇時”,此時就就可以選擇(5~1),其他情況下一定要優先選擇非橋的邊,否則就可能出現無法走通的情況。也就是說該搜索方法無法構成歐拉通路。如下圖是選擇(5~1)的后果:
而(5~3)和(5~4)則可以順利完成歐拉圖通路的搜索,具體算法實現網上很多,不是本文討論重點。相信有了算法思想,算法的實現應該不難,有時間我會完善代碼。
另外:譬如灑水車問題也是利用歐拉通路解決的經典問題。
參考文章:http://www.cnblogs.com/Lyush/archive/2013/04/22/3036659.html
?
總結
以上是生活随笔為你收集整理的Fleury (弗罗莱) 算法通俗解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在eclipse中查看Android源代
- 下一篇: JAVA中Final的用法