一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線

北京很大,附上地鐵圖,不要迷路!!!


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


作為一個程序員,在北京,你很有可能住在回龍觀地區,經常從龍澤上地鐵,然後暢遊北京。

當有一天,你老家的朋友來北京了,希望你能夠帶她去天安門玩一玩,你該怎麼坐地鐵呢?


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


基本要求,我們乘坐地鐵,綠色出行,但希望換乘的最少。

此時,有可能你並不懂廣度優先搜索算法,但實際上你已經運用了它。

找出從龍澤到天安門東的最短路徑問題,就叫做廣度優先搜索

下圖列除了部分可以到達的路線:


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


從龍澤前往天安門東的最短路徑需要三步,這種問題被稱之為最短路徑問題,那麼解決最短路徑問題的算法被稱之為廣度優先搜索

是不是這種概念,非常容易理解。

那我們進一步對廣度優先搜索進行一個說明:

  • 廣度優先搜索是一種用於圖的查找算法,可以解決兩類問題
  • 從節點A出發,能夠到達節點B麼!
  • 從節點A出發,前往節點B的路徑中,最短的是哪條路徑!

舉個

金融場景下,借款人A到平臺借款,逾期未還,假定我們知道他的朋友中(朋友13)會幫助他還,這個例子可能不是特別的恰當,但可以幫助大家說明問題,並深入理解廣度優先搜索


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


廣度優先搜索,不僅查找從借款人A到朋友13的路徑,而且找到的是最短路徑,為什麼要找到最短路徑呢,原因是圖關係中,越近找到,說明關係越緊密。

如果你懂知識圖譜技術的話,那可能直接用最短路徑算法,就可以直接獲取到。那麼不用知識圖譜的圖計算技術,就可以用到隊列的技術來實現

一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


那麼這裡需要注意一個問題,這個問題就是當執行到朋友1時,要把借款人自己給去除掉,否則就變成了死循環了

一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


一個AI算法帶你遊北京:廣度優先搜索算法詳解全國最複雜地鐵路線


最後的總結:

  • 廣度優先搜索指出是否有從A到B的路徑
  • 廣度優先搜索將會找出最短路徑
  • 可以先創建圖,然後再根據圖關係使用廣度優先搜索算法來解決問題
  • 你需要按照加入的順序去檢查,否則找到的不是最短路徑,因此如果你用的不是知識圖譜的圖算法技術,那麼就必須是隊列
  • 對於檢查過的人,就不要再檢查了,否則會造成死循環


分享到:


相關文章: