給定G =(V,E)每條邊都有這三種顏色{綠,紅,藍}中的一種。 如果他擁有所有三種顏色,我們稱之爲「彩色路徑」。如何找到最短的彩色路徑?
Input: graph G(V,E),weight function w:E->Q+ , colored edges and vertices s .
output: algorithm that finds for every vertices v, a shortest path from s
that is Colored path
我的解決方案是通過圖形行走,計數每個頂點的路徑具有顏色數。創建名爲G1,G2的圖形的3個拷貝,G3
對於每一個信息v C(V)= 2(c是從s的顏色編號,以該路徑)連接V1的第二曲線(G2)到V2與邊緣權重= 0。
對於每個邊緣c(v)= 3從邊緣權重= 0的v2(從G2)到v3(到G3)連接。
將dijkstra從s運行到t3(在G3中)。
我的解決方案是否正確?
與'古典'全對最短路徑問題不同的是,可能存在頂點「u」,「v」,其中根本沒有從u到v的彩色路徑,即使圖已連接;由於邊的類別,問題似乎也不容易分解,因爲彩色路徑可以分解爲不是彩色路徑的路徑。 – Codor
你能舉一個更詳細的建築例子嗎? – Codor
你的算法的描述是沒有意義的。什麼是「每邊c(v)= 3」?什麼是「從s到這個路徑的顏色數量」? – user31264