久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3833|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

回溯法之-旅行售貨員問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-5 20:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   回溯法有“通用的解題法”之稱。應(yīng)用回溯法解問題時(shí),首先應(yīng)該明確問題的解空間。一個(gè)復(fù)雜問題的解決往往由多部分構(gòu)成,即,一個(gè)大的解決方案可以看作是由若干個(gè)小的決策組成。很多時(shí)候它們構(gòu)成一個(gè)決策序列。解決一個(gè)問題的所有可能的決策序列構(gòu)成該問題的解空間。解空間中滿足約束條件的決策序列稱為可行解。一般說來,解任何問題都有一個(gè)目標(biāo),在約束條件下使目標(biāo)達(dá)優(yōu)的可行解稱為該問題的最優(yōu)解。在解空間中,前 k 項(xiàng)決策已經(jīng)確定的所有決策序列之集稱為 k 定子解空間。 0 定子解空間即是該問題的解空間。

    旅行商問題:某售貨員要到若干個(gè)城市去推銷商品。已知各個(gè)城市之間的路程(或旅費(fèi))。他要選定一條從駐地出發(fā),經(jīng)過每個(gè)城市一次,最后回到駐地的路線,使得總的路程(或總旅費(fèi))最短。


    我們用一個(gè)帶權(quán)圖 G(V, E) 來表示,頂點(diǎn)代表城市,邊表示城市之間的道路。圖中各邊所帶的權(quán)即是城市間的距離(或城市間的旅費(fèi))。則旅行商問題即是:在帶權(quán)圖 G 中找到一條路程最短的周游路線,即權(quán)值之和最小的 Hamilton 圈。
    如果假定城市 A 是駐地。則推銷員從 A 地出發(fā),第一站有 3 種選擇:城市 B 、 C 或城市 D ;第一站選定后,第二站有兩種選擇:如第一站選定 B ,則第二站只能選 C 、 D 兩者之一。當(dāng)?shù)谝弧⒌诙䞍烧径歼x定時(shí),第三站只有一種選擇:比如,當(dāng)?shù)谝弧⒌诙䞍烧鞠群筮x擇了 B 和 C 時(shí),第三站只能選擇 D 。最后推銷員由城市 D 返回駐地 A 。
用JAVA解決,代碼如下:
  1. public class Traveling {

  2. public  static  int NUM = 4;
  3. public  static  int n  = NUM;
  4. public  static int NoEdge=1000;
  5. public  static int x[]  = new int [NUM+1];
  6. public  static int bestx[]  = new int [NUM+1];
  7. public  static int a[][] ={{},
  8.     {0,0 , 30 , 6 , 4 } ,
  9.     {0,30 , 0 , 5 , 10   } ,
  10.     {0,6 , 5 , 0 , 20   } ,
  11.     {0,4 , 10 , 20, 0} ,
  12.     };
  13. public  static int cc =0;
  14. public  static int bestc=1000;
  15.    
  16. public static  int TSP(int a[][],int v[],int n,int NoEdge){
  17.   return 0 ;
  18.    
  19. }
  20. private static void Backtrack(int i){
  21.   if(i==n){
  22.    if(a[x[n-1]][x[n]] != NoEdge &&
  23.      a[x[n]][1] != NoEdge &&
  24.      (cc+a[x[n-1]][x[n]]+a[x[n]][1]<bestc||bestc == NoEdge)){
  25.     for(int j=1 ; j<=n; j++)
  26.      bestx[j] = x[j];
  27.     bestc = cc+ a[x[n-1]][x[n]] + a[x[n]][1];
  28.    }
  29.   }
  30.   else{
  31.    for(int j = i ; j<=n ;j++)
  32.     if(a[x[i-1]][x[j]]!= NoEdge && (cc+a[x[i-1]][x[i]] < bestc||bestc == NoEdge)){
  33.      int t = x[i];x[i]=x[j];x[j]=t;
  34.      cc+=a[x[i-1]][x[i]];
  35.      Backtrack(i+1);
  36.      cc -= a[x[i-1]][x[i]];
  37.       t = x[i];x[i]=x[j];x[j]=t;
  38.     }
  39.   }
  40. }
  41. public static void main(String[] args) {
  42.   // TODO Auto-generated method stub
  43. for(int i=1;i<=n;i++)
  44.   x[i] = i;
  45. Backtrack(2);
  46. for(int i=1;i<=n;i++){
  47.   for(int j=1;j<=n;j++)
  48.    System.out.print(a[i][j]+"\t");
  49.   System.out.println();
  50. }

  51. System.out.println("最小費(fèi)用為:"+Traveling.bestc);
  52. System.out.println("所經(jīng)節(jié)點(diǎn)為:");
  53. for(int i=1;i<=n;i++)
  54.   System.out.print(+Traveling.bestx [i]+"\t");
  55. System.out.print("1");
  56. }

  57. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:711500 發(fā)表于 2020-3-19 12:59 | 只看該作者
請(qǐng)問距離的話最后的那個(gè)最短路程是什么單位
回復(fù)

使用道具 舉報(bào)

板凳
ID:711500 發(fā)表于 2020-3-19 13:01 | 只看該作者
您好,請(qǐng)問如果是算最短路程,最后輸出的單位是什么
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 先锋资源站| 久久久久久久国产精品 | 99精品久久 | 欧美久久久久久 | 日本 欧美 三级 高清 视频 | 久久久久久九九九九 | 欧产日产国产精品国产 | 国产午夜精品一区二区三区嫩草 | 国产精品一区二区三区99 | 性色在线| 一区二区在线免费观看视频 | 国产精品毛片一区二区三区 | 午夜精品久久久久久 | 九九热在线免费观看 | 国产精品视频播放 | 国产精品国产精品国产专区不片 | 欧美精品一区三区 | 特级丰满少妇一级aaaa爱毛片 | 黄色大片在线视频 | 2018国产精品| 99精品网站| 久久精品国产99国产精品 | 在线观看中文字幕一区二区 | 国产sm主人调教女m视频 | 国产欧美日韩精品一区 | 午夜精品一区二区三区在线观看 | 国产精品视频网站 | 中文字幕日韩欧美一区二区三区 | 日本福利在线观看 | 国产免费一区 | 亚洲国产精品久久人人爱 | 国产成人精品一区二区在线 | www久久99 | 日韩成人在线播放 | 久草.com| 久久九九99 | 欧美日韩福利视频 | 国产三级精品三级在线观看四季网 | 成人免费三级电影 | 中文字幕国产视频 | 国产亚洲精品精品国产亚洲综合 |