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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现)

發(fā)布時間:2023/12/15 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  1.什么是TSP問題

  一個售貨員必須訪問n個城市,這n個城市是一個完全圖,售貨員需要恰好訪問所有城市的一次,并且回到最終的城市。

  城市于城市之間有一個旅行費(fèi)用,售貨員希望旅行費(fèi)用之和最少。

  完全圖:完全圖是一個簡單的無向圖,其中每對不同的頂點(diǎn)之間都恰連有一條邊相連。

  

  2.TSP問題前提

    回朔法:把所有的解列出來,形成一棵樹,利用剪枝深度優(yōu)先進(jìn)行遍歷,遍歷的過程記錄和尋找最優(yōu)解。(剪枝就是把一條再深搜下去也不是最優(yōu)解的分支剪去)。

    動態(tài)規(guī)劃:把一個大問題拆分成小問題,把小問題的最優(yōu)結(jié)果通過表保留,在新問題需要用到的時候可以直接獲取。

    PS:下面的圖,文字中出現(xiàn)1,2,3,4分別表示城市1,城市2,城市3,城市4

  3.回朔法實(shí)現(xiàn)TSP問題

    上面提到回朔法就是把所有的解列出來,形成一棵樹,上面的例子形成的樹如下:我們假設(shè)城市1為起點(diǎn)

    

    上面介紹回溯法就是把所有解列出來,然后剪枝深搜。那么我們需要解決的就是剪枝深搜了。剪枝深搜中最麻煩的就是找到何時剪枝的條件了。

    首先我們假設(shè)不知道剪枝條件,先模擬深搜跑一遍。

    

     從1深搜到4回到1,花費(fèi)11,記錄這個數(shù)值。接下來回溯,繼續(xù)深搜。一步一步深搜的時候,遇到了一個特殊的時候:

    

    還記得我們之前記錄的最短花費(fèi)為11嗎,1->2->4->3 花費(fèi)已經(jīng)11了,3回到1,還需要進(jìn)行花費(fèi),不管花費(fèi)多少,反正已經(jīng)比我之前找出來的要大了,那這個時候我再深搜下去就沒什么意義了,所以可以進(jìn)行剪枝。我不繼續(xù)找了,直接回溯。

    所以剪枝條件出來了: 走下一步的距離 + 之前已經(jīng)走過的距離的總和 >之前算出的最短路徑 。

    4.動態(tài)規(guī)劃實(shí)現(xiàn)TSP

      上面介紹了動態(tài)規(guī)劃就是把大問題分解成小問題。我們現(xiàn)在的大問題是從1 經(jīng)過2,3,4 回到1花費(fèi)最少,那么我們把他分解一下。

      我們從1出發(fā)有三種方案

      

    1、 從1出發(fā),到2,然后再從2出發(fā),經(jīng)過[3,4]這幾個城市,然后回到1,使得花費(fèi)最少。

     2、 從1出發(fā),到3,然后再從3出發(fā),經(jīng)過[2,4]這幾個城市,然后回到1,使得花費(fèi)最少。

     3、 從1出發(fā),到4,然后再從4出發(fā),經(jīng)過[2,3]這幾個城市,然后回到1,使得花費(fèi)最少。

    上面也提到了最優(yōu)結(jié)果通過表來保留:設(shè)置一個二維的動態(tài)規(guī)劃表dp ,dp[1]{2,3,4}表示從1號城市出發(fā),經(jīng)過2,3,4 回到1花費(fèi)最少。    

    要求上面三個方案的最小值意味:(D12表示1到2的距離,其他同理)

    dp[1] [{2,3,4}] = min{ D12+dp[2]{3,4},D13+dp[3]{2,4}, D14+dp[4]{2,3}}      

    由于D12,D13,D14是已知的,那么我們現(xiàn)在的目的就是求dp[2]{3,4},dp[3]{2,4},dp[4]{2,3},

    照貓畫虎,我們可以列出:(這里只列出dp[2]{3,4} ,其他兩個類似)

    dp[2]{3,4}= min{ D23+dp[3]{4},D24+dp[4][3}}

    dp[3]{4}]= D43+dp[4]{}

    dp[4]{}=D41

    那么經(jīng)過慢慢的分解,我們知道了我們已知了從4到1的最小花費(fèi),那么就可以推出從3出發(fā)經(jīng)過4回到1的花費(fèi)。。。。。。。從而推出我們所要求的最優(yōu)解。

    

5.時間復(fù)雜度分析

  回溯法:

  動態(tài)規(guī)劃法:

  

    

      

    

    

    

總結(jié)

以上是生活随笔為你收集整理的TSP(Traveling Salesman Problem)-----浅谈旅行商问题(动态规划,回溯实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。