2015-10-28 105 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())