資源簡介
使用模擬退火算法解決旅行商問題(TSP)
運行環(huán)境
- python2.7
- 默認是9個城市,城市由鄰接矩陣表示,為了方便鄰接矩陣由代碼隨機生成
代碼片段和文件信息
#?coding:?utf-8
#?In[1]:
import?numpy?as?np
import?random
import?matplotlib.pyplot?as?plt
#?In[2]:
#?用鄰接矩陣表示圖?
#?隨機生成一個無向圖的鄰接矩陣
#?nodes代表城市的數(shù)量
nodes?=?9
G?=?np.zeros([nodesnodes])
for?i?in?range(nodes-1):
????G[ii+1:]?=?random.sample(range(1nodes+20)nodes-1-i)
for?i?in?range(nodes-1):
????G[:i]?=?G[i:]
????
print(G)
#?In[3]:
init_path?=?np.array(range(nodes))
#?In[4]:
#?根據(jù)前一條路徑產(chǎn)生新的路徑
def?generatePath(pre_path):?
????#?隨機選擇2個節(jié)點,將路徑中這2個節(jié)點間的節(jié)點順序逆轉,生成新的路徑
????index1index2?=random.sample(range(0nodes)2)
????new_path?=?pre_path.copy()
????temp?=?new_path[index2]
????new_path[index2]?=?new_path[index1]
????new_path[index1]?=?temp
????return?new_path
#generatePath(init_path)
#?In[5]:
print(‘init_path?‘init_path)
#?In[6]:
def?pathCost(path):
????nodeNum?=?len(p
評論
共有 條評論