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