2015-10-28 134 views
0

所以,我試圖用遺傳算法來解決TSP問題。爲此,我需要創建一個人口池。我想要完成的是創建一個隨機排列的列表,它將代表一個人口池。我正在嘗試使用random.shuffle來做到這一點。這是我的代碼,應該處理該部分。城市是城市和路線的名單,我要保持人口池(N隨機排列的列表):生成另一個列表的隨機排列列表

for x in range(n): 
    random.shuffle(cities) 
    routes.append(cities) 

什麼情況是,它只是附加相同的置換n次。任何人都知道我可能會錯過什麼?

回答

0
import random 
print [random.sample(cities,n) for i in xrange(n)] 

你可以試試這個。

2

shuffle就地修改列表。您需要將該列表的副本添加到您的routes;否則將添加將處於其最後混洗狀態的對同一列表的引用。

for x in range(n): 
    random.shuffle(cities) 
    routes.append(cities.copy())