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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

模拟退火算法求解TSP问题

發(fā)布時間:2024/7/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟退火算法求解TSP问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:模擬退火(simulated annealing)技術(shù),在每一步都以一定的概率接受比當前結(jié)果更差的結(jié)果,從而有助于“跳出”局部極小。在每次迭代過程中,接受“次優(yōu)解”的概率要隨著時間的推移而逐漸降低,從而保證算法的穩(wěn)定性。

嘻嘻嘻,推薦一篇好文章讓你快速學(xué)習(xí)模擬退火算法求解旅行商問題

作者用的是c++編寫的程序,而且作者在程序中設(shè)置的是每個城市的坐標,也就默認city a 到city b的距離和city b 到city a的距離一樣了,和老師題目要求的用非對稱矩陣來描述城市之間的距離是不一樣的。

下面我參考作者代碼,按老師的要求(A-B的距離不等于 B-A的距離)用 python 實現(xiàn)了TSP問題,其中參數(shù)也調(diào)了調(diào)。
不得不說,python真是個簡單便捷的語言呢!!!

''' 設(shè)有n個城市和距離矩陣D=[dij], 其中dij表示城市i到城市j的距離,i,j=1,2 … n, 則問題是要找出遍訪每個城市恰好一次的一條回路并使其路徑長度為最短。 '''from time import time from copy import copy from numpy import exp import numpy as np import randomT0 = 10.0 # 初始溫度 T_end = 0.001 # 最低溫度 q = 0.98 # 退火系數(shù) L = 10 # 每個溫度時的迭代此時,即鏈長 N = 5 # 城市數(shù)量 city_list = [i for i in range(N)] # 初始化一個解 city_dis = np.floor(10 * np.random.random((N, N)) + 1) # 城市之間的距離矩陣# 計算路徑長度 def path_len(path_list):path = 0for i in range(len(path_list) - 1):city1 = path_list[i]city2 = path_list[i + 1]dis = city_dis[city1][city2]path += dislast_city = path_list[-1]first_city = path_list[0]dis = city_dis[last_city][first_city]path += disreturn path# 采用隨機交換位置的方式產(chǎn)生新解 def create_new():pos1 = random.randint(0, N - 1) # randint閉區(qū)間pos2 = random.randint(0, N - 1)temp = city_list[pos1]city_list[pos1] = city_list[pos2]city_list[pos2] = tempif __name__ == '__main__':t1 = time()count = 0 # 記錄降溫次數(shù)T = T0city_list_copy = [] # 保存原始解while T > T_end: # 當溫度低于結(jié)束溫度時,退火結(jié)束for i in range(L):city_list_copy = copy(city_list) # 復(fù)制數(shù)組create_new() # 產(chǎn)生新解f1 = path_len(city_list_copy) # 初始解目標函數(shù)值f2 = path_len(city_list) # 新解目標函數(shù)值df = f2 - f1# Metropolis 準則if df >= 0:print("df:", df)print("exp:", exp(-df / T))if exp(-df / T) <= random.random(): # 保留原來解city_list = copy(city_list_copy)T *= q # 降溫count += 1t2 = time()print("城市之間的距離矩陣:\n", city_dis)print("模擬退火算法,初始溫度T0=%.2f,降溫系數(shù)q=%.2f,每個溫度迭代%d次,共降溫%d次\n" % (T0, q, L, count))print("TSP最優(yōu)路徑為:", city_list)print("最優(yōu)路勁長度為:%1f\n" % (path_len(city_list)))print("程序耗時:%1f秒\n" % (t2 - t1))

結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的模拟退火算法求解TSP问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩欧美国产一区二区三区在线观看 | 亚洲草逼 | 少妇高潮网站 | 国产精品国产一区二区三区四区 | 国产精品高潮呻吟视频 | 久久久精品一区二区 | 精品人妻人人做人人爽 | 一级黄色片免费观看 | 亚洲色大成网站www www.97ai.com | 国产精品男同 | 一直草| 日b视频免费看 | 国产一区视频在线免费观看 | 国产熟妇搡bbbb搡bbbb | 精品91在线 | 欧美性猛交xxxx黑人猛交 | 成年人黄色大片 | 日本aⅴ在线观看 | 日本调教电影 | 国产精品久久久久久久久久久免费看 | 老司机激情影院 | 国产高清免费在线观看 | 无码人妻精品一区二区三区在线 | 自拍三级视频 | 国产激情av一区二区三区 | 靠逼视频免费网站 | 久久大尺度 | 中文字幕在线看 | 精品人妻午夜一区二区三区四区 | 在线观看的av网址 | 国产精品探花一区二区在线观看 | 中文字幕在线视频免费观看 | 无码国产69精品久久久久同性 | 波多野结衣亚洲天堂 | 一本到在线观看 | 日本偷拍一区 | 国产视频污 | 四虎成人av | 人人妻人人澡人人爽欧美一区 | 欧美日韩在线一区二区三区 | av在线资源网站 | 亚洲91网站| 欧美亚洲第一页 | 全部孕妇毛片丰满孕妇孕交 | 亚洲六月丁香色婷婷综合久久 | 丁香婷婷成人 | 国产91丝袜 | 在线麻豆av | 鲁一鲁一鲁一鲁一av | 国产精品一区二区免费在线观看 | 亚洲hhh | 综合久久一区二区 | 精品一区二区三区毛片 | 国产精品2020| 四虎免费在线观看 | 国产精品久久久久不卡 | 精品国产伦一区二区三区免费 | 99热| 一区二区三区日韩在线 | 亚洲一区二区三区影视 | 精品人妻在线视频 | 69精品无码成人久久久久久 | 亚洲天堂日韩在线 | 成年人免费看的视频 | 婷婷综合网 | av片在线免费看 | 在线免费观看亚洲视频 | 日韩毛片视频 | 伊人天堂av| 精品丰满人妻无套内射 | av一区二区在线观看 | 国产av一区二区三区 | 国产区精品在线观看 | 99爱爱视频| 国产精品麻豆欧美日韩ww | 日韩影视一区二区三区 | 国内成人在线 | 亚洲精品白浆 | 97中文字幕在线观看 | 国产精品国产精品国产专区 | 欧美亚洲精品一区 | 高清18麻豆| 免费在线观看亚洲 | 久久人人爱| 香港日本韩国三级网站 | 伊人狠狠操 | 日本a在线观看 | 国产自产视频 | 成人欧美在线观看 | 香蕉国产片 | 国产老头和老头xxxx× | 婷婷色五| 亚洲春色在线 | 亚洲高h | 特级西西444www高清大胆免费看 | 国内精品嫩模av私拍在线观看 | 亚洲理论视频 | 日韩精品一区二区三区久久 | 欧美性欧美zzzzzzzzz |