Python 2.7 Python:如何对优化问题的解决方案进行编码

Python 2.7 Python:如何对优化问题的解决方案进行编码,python-2.7,Python 2.7,我正在处理一个优化问题,需要对问题的解决方案进行编码。下面是我为这个任务编写的一段代码。第一部分摘录了分配给每个销售人员的相应城市。在代码的第二部分中,我想插入每个销售人员的起始站点和结束站点(城市)。我希望这个过程是动态的,因为开始/结束仓库列表将随着“num_salesmen”变量的变化而变化。“人口名单”将容纳人口中的成员。我举了一个例子来帮助你处理这个请求 请让我知道,如果你需要进一步澄清我在插入部分的逻辑 ####____BELOW CODE is being designed enc

我正在处理一个优化问题,需要对问题的解决方案进行编码。下面是我为这个任务编写的一段代码。第一部分摘录了分配给每个销售人员的相应城市。在代码的第二部分中,我想插入每个销售人员的起始站点和结束站点(城市)。我希望这个过程是动态的,因为开始/结束仓库列表将随着“num_salesmen”变量的变化而变化。“人口名单”将容纳人口中的成员。我举了一个例子来帮助你处理这个请求

请让我知道,如果你需要进一步澄清我在插入部分的逻辑

####____BELOW CODE is being designed encode a solution for a GA_____#
populationSize = 1 (this will be varied)
num_salesmen = 2
population_list = [[4, 2, 3], [0, 1, 0], [1, 0], [1, 0]]

    ## - where [4, 2, 3] is a list of cities to be visited by salesmen, 
    ## - [0, 1, 0] the list of salesman, and 
    ## - [1, 0], [1, 0] are the lists of starting and ending depots of the 
          salesman one (0) and salesman two (1) respectively.

for pop in population_list:  
    ##----Part ONE: determine cities assigned to each salesman:
    Assigned_cites = [[] for x in range(num_salesmen)]
    for i in range(len(pop[1])):
        for man in range(num_salesmen):
            if pop[1][i] == man:
               Assigned_cites[man].append(pop[0][i])

##---- Part TWO: inserting the starting and ending depots: 
for s_man in range(num_salesmen):
    for s_e_d in range(2,num_salesmen+2):         
        Assigned_cites[s_man].insert(0,pop[s_e_d][0])
        Assigned_cites[s_man].append(pop[s_e_d][1])

    ###- expected result from Part TWO Should look like below, but I am not getting it:
       [[1, 4, 3, 0], [1, 2, 0]]
提前感谢你的帮助

#your extraction logic need a bit of tweaking    
Assigned_cites = [[] for x in range(num_salesmen)]
    for i in range(len(population_list[1])):
        for man in range(num_salesmen):
            if population_list[1][i] == man:
               Assigned_cites[man].append(population_list[0][i])
    print Assigned_cites
    s_man = 0 # no need of an outer for loop for sales man
    for s_e_d in range(2,num_salesmen+2):         
        Assigned_cites[s_man].insert(0,population_list[s_e_d][0])
        Assigned_cites[s_man].append(population_list[s_e_d][1])
        s_man = s_man + 1
    print Assigned_cites