如何在DEAPPython中创建城市作为个人的列表?

如何在DEAPPython中创建城市作为个人的列表?,python,genetic-algorithm,deap,Python,Genetic Algorithm,Deap,我从Python中的DEAP开始,我假装实现了一个GA来解决这个问题 我想知道是否有可能创建一个以城市名称(字符串)作为个人的列表。例如,个人可以是:[“马德里”、“巴黎”、“伦敦”、“罗马”] 此时,我用整数表示城市: creator.create("Individual", list, fitness=creator.FitnessMin) IND_SIZE=8 toolbox = base.Toolbox() toolbox.register("indices"

我从Python中的DEAP开始,我假装实现了一个GA来解决这个问题

我想知道是否有可能创建一个以城市名称(字符串)作为个人的列表。例如,个人可以是:
[“马德里”、“巴黎”、“伦敦”、“罗马”]

此时,我用整数表示城市:

creator.create("Individual", list, fitness=creator.FitnessMin)

    IND_SIZE=8

    toolbox = base.Toolbox()
    toolbox.register("indices", random.sample, range(IND_SIZE), IND_SIZE) 
    toolbox.register("individual", tools.initIterate, creator.Individual, toolbox.indices)

我找到了一个可能的方法。我声明一个新函数,如下所示:

def generate_individual():
    return ["Almeria","Cadiz","Cordoba","Granada","Huelva","Jaen","Malaga", "Seville"]
[['Almeria', 'Cadiz', 'Cordoba', 'Granada', 'Huelva', 'Jaen', 'Malaga', 'Seville'], ..., ['Almeria', 'Cadiz', 'Cordoba', 'Granada', 'Huelva', 'Jaen', 'Malaga', 'Seville']]
申报个人:

toolbox = base.Toolbox()
toolbox.register("indices", generate_individual) # Gen, in this case, a number which represents a city.
toolbox.register("individual", tools.initIterate, creator.Individual, toolbox.indices) # Define a route of cities. A chromosome.
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
POP_SIZE = 50
pop = toolbox.population(n=POP_SIZE)
输出如下所示:

def generate_individual():
    return ["Almeria","Cadiz","Cordoba","Granada","Huelva","Jaen","Malaga", "Seville"]
[['Almeria', 'Cadiz', 'Cordoba', 'Granada', 'Huelva', 'Jaen', 'Malaga', 'Seville'], ..., ['Almeria', 'Cadiz', 'Cordoba', 'Granada', 'Huelva', 'Jaen', 'Malaga', 'Seville']]

作为一般评论,您可以在Jupyter笔记本中查看Peter Norvig出色的TSP演练。他思考了一个完整的巡回演出的表现。很有趣,谢谢分享。我的目标有点不同。我假装学DEAP。此时,城市是整数,运行良好。我想知道城市使用字符串的情况。在这个链接中,我找不到我问题的答案。