簡體   English   中英

找到具有特定權重的某個節點的循環路徑

[英]find a cyclic path with a certain node with a certain weight

我正在嘗試構建導航應用程序。 我試圖想一個算法來找到一個包含某個節點的循環路徑並總結到一定的權重。 算法的輸入將是節點和權重。

示例:algo(a,30) - 算法將返回一個路徑,該路徑可以從節點A開始並在節點A中完成,並且它的總和為30。

額外信息:對於所有w:權重w> 0,圖形是方向性的(如街道所示)。

感謝Gal

這個問題比哈密​​頓循環問題更強(更難)。 因為如果我們已經有了這個問題algo(a,b) ,對於任何哈密頓循環問題P,我們可以設計一個新的圖,其中權重= 1表示P的邊緣,0表示邊緣不是,然后使用algo(1,n)找到哈密頓循環,其中n是圖中節點的數量。 所以我們這里有一個NP完全問題。

對於小n應用程序,具有某些“修剪”的強力搜索應該足夠快。

一般問題是NP-Hard,並且可以從最長路徑問題中減少 ,因此是NP-Hard ,並且沒有已知的多項式解決該問題(並且一般假設是這樣的解決方案不存在)。

最長的路徑問題是:給定具有權重函數w的圖G和一對頂點uv - 找到從uv的最長路徑。

證明:
假設你的問題有一個多項式算法 - 可以用最大路徑問題構建算法,用二進制搜索(指數增加所需權重,直到沒有解,然后 - 二分搜索)。 每個步驟都是多項式,並且有O(log|PATH|)步驟。 log|PATH| 是輸入中的多項式(假設是簡單的路徑),算法是多項式的。

它也與漢密爾頓路徑問題旅行商問題密切相關

暫無
暫無

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

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