簡體   English   中英

給定加權無向圖,如何找到總權重接近給定值的路徑?

[英]Given a weighted undirected graph, how do I find a path which has the total weights close to a given value?

假設我有一個加權的無向圖。 每條邊都有一個正權重。 我想找到一條從給定源節點(s)到目標節點(t)的簡單路徑(路徑中沒有出現兩次頂點),其權重總和接近給定值(P)。

盡管這聽起來像是一個經過充分研究的問題,但我找不到令人滿意的解決方案。 許多圖算法旨在找到最短路徑(在步驟或成本的意義上),而不是找到“匹配”的成本路徑。

一個簡單的解決方案是找到從 s 到 t 的所有路徑,計算每條路徑的權重總和並選擇接近 P 的路徑。但是,已知在圖中找到兩個節點之間的所有路徑是#P-hard。

一種可能的解決方案可以修改 A* 算法,以便對於邊界中的每個節點,我們得到從根到該節點的成本 (g),並估計從該節點到目標的成本 (h)。 然后,我們不選擇具有最小 g+h 的節點,而是選擇具有最小 |P - (g+h)| 的節點。 但是,我不確定這是否是最佳解決方案。

另一個想法來自線性規划,因為這個問題的目標函數是總和(從 s 到 t 的路徑的權重) - P = 0。我知道最短路徑問題可以形成為線性規划任務,但不確定如何將這個問題表述為一個問題。

請幫忙,提前謝謝!

這個問題是 NP 難的,通過簡化哈密頓路徑問題。 在那個問題中,給你一個圖和一對節點 s 和 t,並詢問是否有一條從 s 到 t 的簡單路徑穿過圖中的所有節點。 您可以通過您的問題解決哈密頓路徑問題,如下所示:

  • 為圖中的每條邊分配權重 1。
  • 找到權重盡可能接近 n-1 的 st 簡單路徑,其中 n 是圖中的節點數。
  • 返回此路徑的成本是否恰好為 n-1。

如果該圖有一條哈密頓路徑,則該路徑的成本為 n-1。 否則,它不會,並且找到的最佳路徑的成本將低於 n-1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM