演算法導論 15 1 雙調歐幾里得旅行商問題

2021-06-08 22:36:13 字數 571 閱讀 1053

先做以下定義:

對所有點按x座標排序,從0開始依次為每個點編號,令

(1)兩條路徑分別為a和b,且起點都是點0,方向嚴格向右

(2)a[i]表示路徑a的一種狀態,起點為點0,終點為點i,方向嚴格向右,0<=i

(3)b[j]表示路徑b的一種狀態,起點為點0,終點為點i,方向嚴格向右,0<=j

(4)d[i][j]為點i與點j之間的距離

(5)s[i][j]為滿足以下條件的a[i]和b[j]的路徑和的最小長度:a)a[i]和b[j]包含了所有的0-max(i,j)中的點;b)a[i]和b[j]中沒有重複了點(除了點0,或i=j時的點i)

經過以上定義,題目可以化簡為求s[n-1][n-1]的值。

推導過程畫圖就可以得出。

程式不複雜,根據以上公式對照寫出

標頭檔案產品**

測試**

雙調歐幾里得旅行商問題 《演算法導論》

題目描述 給定平面上n個點作為輸入,要求從最左端的點開始,嚴格向右前進,直到最右端的點,再嚴格向左前進到第乙個點,每乙個點只能經過一次。主演算法 d i,j 表示兩個人第乙個點出發沿著不同的路徑分別走到i,j 並且經過1 max i,j 的所有點到達終點還需要的距離。di st i j 表示i,j ...

演算法筆記 雙調歐幾里得旅行商問題

reference 1 演算法導論 15 3 2 將所有點按x座標從小到大排序後 假設不存在重複 從左至右標記為0,1,2 n 1 那麼這問題的關鍵乙個性質是,對於一點i i 0 和任意包含它的雙調路徑,i 1一定是i的前繼或者後繼。如果我們假設乙個環遊的順序,比如逆時針 f i j i j 表示從...

演算法學習 雙調歐幾里得旅行商問題(動態規劃)

雙調歐幾里得旅行商問題是乙個經典動態規劃問題。演算法導論 第二版 思考題15 1和北京大學oj2677都出現了這個題目。旅行商問題描述 平面上n個點,確定一條連線各點的最短閉合旅程。這個解的一般形式為np的 在多項式時間內可以求出 j.l.bentley 建議通過只考慮雙調旅程 bitonictou...