精華區beta Prob_Solve 關於我們 聯絡資訊
請問有現存的最短路徑演算法滿足以下條件的嗎? 1. node 可以重複 2. link 不可以重複 最短路徑演算法的比較我都已經忘光光了 XDDDDDD 假設我們已經知道上面這種演算法好了,先叫他作 A1 那我們可以根據這個演算法實作出一個變形, 除了起點 s 跟終點 e ,還可以接受第三個參數 "必經點" c, 我們叫這個演算法 A2。 A2 的方法是把 c 分開成兩點, c'c", (c消失) c' 跟 c" 中間加上一條 link CL, CL 的 weight 極低, 而所有本來跟 c 相鄰的 node, 我們加上 link 使其依然跟 c', c" 相鄰, 這樣只要對 s 跟 e 作 A1, 得到的路徑就一定會經過 CL。 現在我們已經有 A2, 提供以下功能:找到 s 經過 c 到 e 的最短路徑。 此時令起點為 S,終點為 S,必經點為 E, 就可以求得一個從 S 出發跟結束, 而且一定經過 E 的 loop. 這個 loop 在 S 跟 E 的兩邊的部分,就是所求的兩條路徑。 (路徑和最短,沒有重複的link,且起點跟終點相同.) 然後是 S1 → E1, S2 → E2 這題... 在 E1 跟 S2 中間加一條 link T, weight 極低 施行 A1 ( S1, E2 ), 一定會經過 T, 就可以得到一條 S1 → E1 S2 → E2 的路徑, 紫色部分就是答案。 ============================================================ 這樣有沒有錯? 我不知道 XDDDDDDDD -- To iterate is human, to recurse is divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.129.180