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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

哈密顿回路与旅行商问题的求解

發布時間:2024/3/24 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 哈密顿回路与旅行商问题的求解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

哈密頓圖:圖G的一個回路,若它通過圖的每一個節點一次,且僅一次,就是哈密頓回路.存在哈密頓回路的圖就是哈密頓圖.哈密頓圖就是從一點出發,經過所有的必須且只能一次,最終回到起點的路徑.圖中有的邊可以不經過,但是不會有邊被經過兩次.

哈密頓回路之中的圖并不要求是完全圖,而當這個圖的完全圖也就是每個頂點之間都存在路徑,并且是加權圖的時候,哈密頓回路的問題就演變成了旅行商問題,因此上述兩個問題的求解方法十分相似。

首先來求哈密頓回路問題

1.我們很容易想到用蠻力法,即對于給定的無向圖(V,E) 依次考察圖中所有頂點的全排列,而當滿足相鄰頂點之間存在邊并且最后一個頂點與第一個頂點之間也存在邊時就符合條件。

2.采用dfs,并且適當減枝。 下面我們采用這種方法求解

input:

5
0 1 1 1 0
1 0 1 0 1
0 1 0 1 1
1 0 1 0 1
0 1 1 1 0

?

//哈密頓回路問題 #include<stdio.h> int x[100]; int visit[100]; int arc[6 ][6]; int n; void dfs(int step) {int i,j;if(step==n&&arc[x[step-1]][0]==1) //最后一步到達的頂點與起點之間存在路徑 {printf("路徑:");for(i=0;i<n;i++)printf("%d ",x[i]+1);printf("\n");return ;}else{for(j=0;j<n;j++){if(visit[j]==0&&arc[x[step-1]][j]==1) //j未訪問并且當前頂點與j頂點之間存在路徑 {visit[j]=1;x[step]=j; //下一個訪問的頂點為j dfs(step+1);visit[j]=0;x[step]=0; }}}} int main(void) {int i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&arc[i][j]);visit[0]=1; //起點置為已經訪問x[0]=0;dfs(1);return 0;}

?

旅行商問題的求解?:有若干個城市,任何兩個城市之間的距離都是確定的,現要求一旅行商從某城市出發必須經過每一個城市且只在一個城市逗留一次,最后回到出發的城市,問如何事先確定一條最短的線路已保證其旅行的費用最少?

旅行商問題與哈密頓回路問題十分相似,都是經過每一個頂點一次最后回到出發的城市,不同的是旅行商問題對應的是完全圖,即每個頂點之間都存在路徑,并且路徑長度已知。

?

input:

4
0 2 5 7
2 0 8 3
5 8 0 1
7 3 1 0
output:

11

//旅行商問題,對應完全圖 //哈密頓回路問題 對應非完全圖 #include<stdio.h> int x[100]; int visit[100]; int arc[6][6]; int n,count,bestCount=9999999; void dfs(int step,int count) {int i,j; if(bestCount<count) //減枝,當然所經過的路徑長度大于最小長度 return;if(step==n) //已經走過n個頂點 {count+=arc[x[step-1]][0];bestCount=count; return ;}else{for(j=0;j<n;j++){if(visit[j]==0) //j未訪問{visit[j]=1;//置為已經訪問 x[step]=j; //訪問該頂點 dfs(step+1,count+arc[x[step-1]][j]); visit[j]=0;x[step]=0; }}}} int main(void) {int i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&arc[i][j]);visit[0]=1;x[0]=0;dfs(1,0);printf("%d ",bestCount); return 0;}

?

總結

以上是生活随笔為你收集整理的哈密顿回路与旅行商问题的求解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 中文字幕亚洲欧美日韩 | 九色激情网 | 亚洲天堂自拍 | 十大黄台在线观看 | 操碰97| 中文字幕在线观看视频www | 欧洲亚洲一区二区 | 国产一级内谢 | 中文字幕无码日韩专区免费 | 狠狠操操 | 美丽的姑娘在线观看 | 午夜婷婷色 | 日本偷拍一区 | 91午夜免费视频 | 免费在线看黄网站 | 久久有精品 | 女人洗澡一级特黄毛片 | 国产黄av | 国产做爰免费观看 | 高清成人 | 一区二区三区四区在线观看视频 | 亚洲第一在线播放 | 好屌妞视频这里只有精品 | 精品视频一区二区三区四区五区 | av高清不卡 | 亚洲蜜桃精久久久久久久久久久久 | 日产国产亚洲精品系列 | 超碰成人免费在线 | 日本r级电影在线观看 | 女人私密又肥又大 | 伊人超碰 | 福利免费视频 | 亚洲av无码一区二区三区在线 | 黄色片免费看 | 美女的胸给男人玩视频 | 麻豆社| 欧美一级黄视频 | 欧美伊人网 | 天堂精品久久 | 久久久久中文字幕亚洲精品 | 日韩三级视频 | 少妇高潮惨叫久久久久 | 欧美日韩在线视频观看 | 图书馆的女友动漫在线观看 | 欧美精品免费看 | 青草视屏 | 激情四射网 | 99热影院| 国产剧情久久久 | 亚洲字幕在线观看 | 免费啊v在线观看 | 久久亚洲精少妇毛片午夜无码 | 亚洲精品高清视频在线观看 | 外国黄色录像 | 色女人网站| 亚洲第三十七页 | 日韩欧美爱爱 | 日韩精品人妻一区二区三区免费 | 日韩一二三四区 | 国内久久精品视频 | 男插女在线观看 | 国产精品1区2区3区 在线看黄的网站 | 西西444www大胆无视频 | 成人午夜福利视频 | 国产情侣露脸自拍 | 97精品一区二区三区 | 天堂男人av | 女人夜夜春 | av在线精品| 红桃视频91 | 国产成人免费在线观看 | 日韩a级一片 | 操人视频网站 | 青娱乐在线免费观看 | 欧美色视频在线 | 99热这里只有精品在线 | 亚洲免费三区 | 国产xxx在线 | 乱妇乱女熟妇熟女网站 | 亚洲风情亚aⅴ在线发布 | av影片在线看 | 欧美三级图片 | 99re在线| 变态 另类 国产 亚洲 | 偷拍亚洲色图 | avtt男人天堂 | 国产网址 | 亚洲a v网站 | 亚洲乱码在线 | 日本特黄一级片 | 伊人久久久久久久久久 | 天天综合网站 | 香蕉91视频| 色悠悠国产精品 | 日韩一区二区免费在线观看 | 四虎午夜 | 999一区二区三区 | 成人羞羞网站 | 成年人国产精品 |