我確實有一個圖(〜250個節點)。要連接到節點,我必須用點 - >加權圖購買它。 有總是被採取的節點(「被要求的節點」),並且那些我能開始連接到其他節點。此外,我確實擁有有限的積分。所有節點可以連接在一起。圖中有多個「必須有」節點的最短路徑
有什麼方法可以得到一個圖,所有必須有節點連接在一起,用最少的點?如果可能的話給定最大點數。
2nd)有沒有辦法不需要一個完全連接的Graph?例如:一個「必須擁有節點」的節點直接連接到一個「被聲明的節點」,因此獲得它的最便宜的方法就是獲得必須擁有的節點,而不是將其與剩餘的圖形連接起來。
編輯(關於前三個問題):我必須購買節點本身,而不是連接。所以,我不計算行程距離,而是計算節點成本。例如:如果我有一個從A到B的圖形,B到C和A到C和B是一個「必須有節點」,我可以從A到B然後從B到A和從A到C(如果它比B到C短),因爲從B到A沒有額外的成本,因爲B已經被要求。
我想出了這個算法: 我做了一個表,所有的「必須有節點」,並從其中一個開始。我使用呼吸優先搜索或深度優先搜索(什麼會更好?),並讓它分支,只要它沒有找到「必須有節點」,並且將在必要時更新最短距離。當它找到「必須有節點」時,它結束該分支並存儲它的路徑。距離將被登記在表中。它會運行,只要它發現沒有「必須有節點」。完成後,我將在表格中繼續前進,並採取下一個「必須有節點」,執行相同的操作並構建表格。
當我完成所有的節點時,我將在表格上運行最小生成樹算法,並且應該得到我的最優圖。
任何人都會發現此問題?
你發現並嘗試了哪些算法? –
我不太瞭解這個問題的描述......但我猜它與Minimun Spanning Trees有關,因爲它存在快速算法。 – WhatsUp
這聽起來並不像你試圖找到*路徑*。 – user2357112