好的,首先我知道Dijkstra不適用於負重,我們可以使用Bellman-ford來代替它。但是在一個問題中,我給出了它的所有邊都有從0到1的權重(0和1不包括在內)。而路徑的成本實際上就是產品。Dijkstra的負重算法
所以我在想的就是取日誌。現在所有的邊緣都是負面的。現在我知道迪克斯特拉不會爲負面權重工作,但在這種情況下,所有的邊緣都是負面的,所以我們不能做點什麼來讓迪克斯特拉工作。
我雖然所有的權重乘以-1,但最短的路徑成爲最長的路徑。
因此,無論如何,我可以避免在這種情況下的貝爾曼 - 福特算法。
確切的問題是:「假設對於某些應用,路徑的成本等於路徑中所有邊的權重乘積。在這種情況下,您將如何使用Dijkstra算法?所有權重邊緣從0到1(0和1不包括在內)「。
首先,我假設圖是指向的。現在,如果權重在0到1之間,並且成本是通過權重的乘積來衡量的,那麼您的確在尋找最長的路徑。如果圖中有任何週期,那麼它相當於一個負成本週期。 –
因此Dijkstra會工作。我只需要找到最長的路徑。另外,沒有額外的要求,因此我很困惑。 –
你確定你不想要最可能的路徑嗎? –