所以我發現一個問題,旅行者可以在圖形中行進一定距離,所有雙向邊具有一定的長度(距離)。假設在旅行某個邊緣(任一方向)時,您可以獲得一些金錢/禮物(這是針對所有邊緣的問題),因此您必須找到您可以在可以旅行的給定距離上收集的最高金額。基本問題是如何找到給定距離的所有可能路徑(圖中可能有循環),並在找到所有可能的路徑後,收集最大費用的路徑就是答案。注意:你想出的任何可能的路徑都不應該有一個循環(直線路徑)。圖論,所有具有給定距離的路徑
0
A
回答
0
給出一個無邊連接圖,邊上有雙重權重(距離和獎勵)。 給定一個與可能距離相對應的固定數字d。
對於每對節點的(U,V)中,u不等於V,你正在尋找
- 所有u和v,沒有重複的節點,其總的距離爲d的連接路徑{P_j} 。
- 其獎勵最大的{P_j}子集{P_hat(j)}。
爲了得到第一個,我會嘗試使用Floyd-Warshall算法的修改版本,在這裏你不尋找最短的,但是對於任何路徑。 Floyd-Warshall使用基於考慮u和v之間的「中間節點」w的策略,遞歸地找到最小化u和v之間距離的路徑。
您可以做同樣的事情,同時採取所有路徑,而不是排除最小化,注意將已經在距離矩陣中訪問過的節點放入inf
中,並且在運行時排除遞歸中的距離大於d或到達結尾的每個部分路徑(它們連接u和v)距離比d短。
如果給出了可能的距離[d,D]的間隔,而不是單個值d,那麼可以推廣,因爲在第二種情況下,您可能會一直得到空集。
對於第二步,您只需比較解決第一步中找到的每條路徑的獎勵,然後選擇最好的一條。
更多的是一個建議的方向,而不是一個完整的答案,但我希望它有幫助!
相關問題
- 1. 給定距離計算所有可能的路徑
- 2. 獲取所有具有特定距離的點,在路上
- 3. 查找距離原點給定距離的圖形中路徑的所有組合
- 4. 通過路徑獲取一定距離內的所有點
- 5. 使用Floyd-Warshall尋找所有最短路徑和距離
- 6. 具有確定距離的空間線
- 7. 使用MapKit生成一條具有特定距離的路線
- 8. 查找給定圖python的所有路徑
- 9. 查找具有特定成本的有向圖中的所有路徑
- 10. 如何找到距給定像素一定距離內的所有像素?
- 11. 圖論:具有矢量權重的最短路徑
- 12. 檢查所有線段的指定距離內的所有點
- 13. 在給定源頂點的情況下查找具有有向圖中的循環的所有路徑
- 14. 將具有路徑的路徑作爲值傳遞給javascript
- 15. 找到最短路徑一定距離變換的圖像
- 16. 從源到目標節點的所有可能路徑的成本/距離
- 17. 如何找到具有特定距離函數的Voronoi圖?
- 18. 具有距離函數的集合的最大直徑
- 19. Dijkstra的最短路徑算法如果存在具有相同距離的路徑,該怎麼辦?
- 20. 具有時間戳的編輯/ Levenstein距離 - 具有類似(最小)成本的不同路徑
- 21. 如何計算距離路徑的最短距離?
- 22. Rails,距離郵編的距離內的所有郵編
- 23. Cypher:沒有環路的所有路徑
- 24. 有向無環圖:找到特定節點的所有路徑
- 25. 圖論:找到'n'長度的所有可能路徑(有一些限制)
- 26. 計算給定的距離
- 27. 數學複製距離d的路徑
- 28. 計算MKPolyline路徑的距離?
- 29. 所有給定項具有財產
- 30. 從給定路徑返回所有子目錄的類型
開始和結束節點被給出或需要優化?沒有給出 – SeF
..針對給定路徑長度的所有源和目的地進行優化。 –