日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用动态规划法求解TSP问题

發(fā)布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用动态规划法求解TSP问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、求解TSP問題
1、問題描述

  • TSP問題(擔貨郎問題,旅行商問題)是指旅行家要旅行n個城市,要求各個城市經歷且僅經歷一次然后回到出發(fā)城市,并要求所走的路程最短
  • 各個城市間的距離可以用代價矩陣來表示。

    2、【應用】
    例如:校車怎樣以最短的路線行走而接送到所有學生?報紙和牛奶的配送路線怎樣最優(yōu)?循環(huán)旅游怎樣選取才能實現開支最少?公司視察子公司怎樣出差更高效?
    3、【蠻力法求解】
    用蠻力法解決TSP問題,可以找出所有可能的旅行路線,即依次考察圖中所有頂點的全排列,從中選取路徑長度最短的簡單回路。


    4、證明TSP問題滿足最優(yōu)性原理
    設s,s1,s2, …,sp,s是從s出發(fā)的一條路徑長度最短的簡單回路,假設從s到下一個城市s1已經求出,則問題轉化為求從s1到s的最短路徑,顯然s1,s2,…,sp,s一定構成一條從s1到s的最短路徑。
    如若不然,設s1,r1,r2,…,rq,s是一條從s1到s的最短路徑且經過n-1個不同城市,則s,s1,r1,r2,…,rq,s將是一條從s出發(fā)的路徑長度最短的簡單回路且比s,s1,s2,…,sp,s要短,從而導致矛盾。所以,TSP問題滿足最優(yōu)性原理。
    5、動態(tài)規(guī)劃法求解過程——示例

    6、動態(tài)規(guī)劃求解問題的步驟
    (1)劃分子問題—找到“狀態(tài)”

    (2)狀態(tài)方程
    (3)填表


    7、算法設計
    (1)【數據結構設計】
    二維數組c[n][n]存放頂點之間的代價,n個頂點用0~n-1的數字編號
    一維數組V[2n-1]存放1~n-1個元素的所有子集
    二維數組dp[n][2n-1]存放遞推結果,其中dp[i][j]表示從頂點i經過子集V[j]中的頂點一次且僅一次,最后回到出發(fā)點0的最短路徑長度。
    (2)【動態(tài)規(guī)劃法算法】
    算法——TSP問題
    1.for(i=1; i<n; i++) d[i][0]=c[i][0]; //初始化第0列
    2.for(j=1; j<2n-1-1; j++)
    for(i=1; i<n; i++) //依次進行第i次迭代
    if(子集V[j]中不包含i)
    對V[j]中的每個元素k,計算d[i][j]=min(c[i][k]+d[k][j-1]);
    3.對V[2n-1-1]中的每一個元素k,計算d[0][2n-1-1]=min(c[0][k]+d[k][2n-1-2]);
    4.輸出最短路徑長度d[0][2n-1-1];

8、算法分析

總結

以上是生活随笔為你收集整理的用动态规划法求解TSP问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。