实验四:粒子群算法
一、实验目的
问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小。假设N=5,每个人工作和报酬之间的关系如下表所示,求解该问题的最优解
表1.1 任务分配
work1 work2 work3 work4 work5
person1 90 75 75 80 60
person2 35 85 55 65 48
person3 125 95 90 105 100
person4 45 110 95 105 98
person5 76 64 57 88 90
二、实验要求
(1)做好实验预习
(2)独立完成实验
(3)撰写实验报告
三、实验题目
本实验由于要求较少,只是寻求最优解,因此采用简单的方法。
四、实验环境
本文的编程环境为Ubantu16.04。
本文的编程语言为Python3.7。
五、实验分析与设计思路
本实验采用的是矩阵的方式进行计算,但是其中包含了列表的计算方法,矩阵的相乘。
主要采用的程序:
np.array([])生成一个想要的数组 包括列向量,和行向量。
b=numpy.array([b]).T 行向量转成列向量。
a.dot(b) 向量的乘法。
a*b 只是对应相乘不是矩阵的乘法。
a[[1,2],:]=a[[2,1],:] 矩阵的一二两行对调。
左乘单位行向量再乘以已知矩阵再乘以变换矩阵再乘以单位列向量。
程序源码
#本实验要求计算利润的最小值杠杠简单
#本次实验打算采用矩阵的方式,不懂勿扰
#np.array([])生成一个想要的数组 包括列向量,和行向量
#b=numpy.array([b]).T 行向量转成列向量
#a.dot(b) 向量的乘法
#a*b 只是对应相乘不是矩阵的乘法
#a[[1,2],:]=a[[2,1],:] 矩阵的一二两行对调
#左乘单位行向量再乘以已知矩阵再乘以变换矩阵再乘以单位列向量
#========================================================================
#智能优化算法---计算工作分配方案(原创)
#作者:Vince
#版本号:1.0
#创作日期:2018.10.31
#如需转载,请电联.
#耗时:4h
#=========================================================================
import random
import math
import numpy as np
class Min(object):
def __init__(self,newList = [],n=5):
self.newList = newList #初始列表工作的选择
self.diag = np.identity(5) #生成一个五维单位矩阵
self.dhxl = np.array([1,1,1,1,1]) #单位行向量
self.dlxl = np.array([[1],[1],[1],[1],[1]])#单位列向量
self.value = 0#每一次的报酬
self.bestvalue = 0 #每一次初始种群的最佳报酬
self.bestchoice = np.identity(5) #每一次的初始种群的最佳方案
self.empty = [] #禁忌表
self.n=n #人数或工作的量
self.num = (((self.n-1)+1)*4/2) #计算循环次数
def Pso(self):
i = 0
while i < self.num:
index1 = random.randint(0,self.n-1) #生成初始种群需要互换的两行
index2 = random.randint(0,self.n-1)
self.empty.append((index1,index2))#将互换两行的行号放入禁忌表
if (((index1,index2) and (index2,index1)) not in self.empty)&(index1!=index2):#比对禁忌表中是否存在
self.diag[[index1,index2],:] = self.diag[[index2,index1],:]#将两行互换
self.value = self.Cul(self.diag)#计算报酬
if self.value > self.bestvalue:#
self.bestvalue = self.value
self.bestchoice = self.newList*self.diag
i += 1
def Cul(self,diag):
diag = self.newList*diag
diag = self.dhxl.dot(diag)
value = diag.dot(self.dlxl)
return value
def getValue(self):#返回局部最佳值
return self.bestvalue
def getchoice(self):#返回局部最佳方案
return self.bestchoice
def main(turn):
newList = np.array([[90,75,75,80,60],[35,85,55,65,48],[125,95,90,105,100],[45,110,95,105,98],[76,64,57,88,90]])
num = 5
tbv = []
tbc = []
i=0
while i<turn:
min = Min(newList,num)
min.Pso()
value = min.getValue()
tbv.append(value)
choice = min.getchoice()
tbc.append(choice)
print('这是第%d次选择'%(i+1))
print('报酬的最小值:%d'%value)
print('最佳选择为:')
print(str(choice))
i += 1
print('\n')
nb = tbv
nb.sort() #将所有的局部最佳值进行排序
i = 0
while i<turn:
if tbv[i] == nb[0]:
break
print('全局报酬最优解:%d'%tbv[i])
print('最佳选择为:')
print(str(tbc[i]))
main(100)
结果
这是第1次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第2次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第3次选择
报酬的最小值:471
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第4次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第5次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第6次选择
报酬的最小值:471
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第7次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第8次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第9次选择
报酬的最小值:439
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 98.]
[ 76. 0. 0. 0. 0.]]
这是第10次选择
报酬的最小值:427
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 0. 0. 65. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 64. 0. 0. 0.]]
这是第11次选择
报酬的最小值:465
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 0. 0. 65. 0.]
[125. 0. 0. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第12次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第13次选择
报酬的最小值:458
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第14次选择
报酬的最小值:471
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第15次选择
报酬的最小值:458
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第16次选择
报酬的最小值:450
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第17次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第18次选择
报酬的最小值:420
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 57. 0. 0.]]
这是第19次选择
报酬的最小值:416
最佳选择为:
[[ 0. 0. 0. 0. 60.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 76. 0. 0. 0. 0.]]
这是第20次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第21次选择
报酬的最小值:435
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第22次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第23次选择
报酬的最小值:416
最佳选择为:
[[ 0. 0. 0. 0. 60.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 76. 0. 0. 0. 0.]]
这是第24次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第25次选择
报酬的最小值:432
最佳选择为:
[[ 0. 0. 0. 0. 60.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第26次选择
报酬的最小值:421
最佳选择为:
[[ 0. 0. 0. 0. 60.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 76. 0. 0. 0. 0.]]
这是第27次选择
报酬的最小值:435
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第28次选择
报酬的最小值:445
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第29次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第30次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第31次选择
报酬的最小值:475
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第32次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第33次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第34次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第35次选择
报酬的最小值:445
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第36次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第37次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第38次选择
报酬的最小值:414
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 64. 0. 0. 0.]]
这是第39次选择
报酬的最小值:429
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[76. 0. 0. 0. 0.]]
这是第40次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第41次选择
报酬的最小值:471
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第42次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第43次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第44次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第45次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第46次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第47次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第48次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第49次选择
报酬的最小值:439
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 98.]
[ 76. 0. 0. 0. 0.]]
这是第50次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第51次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第52次选择
报酬的最小值:445
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第53次选择
报酬的最小值:460
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 0. 55. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第54次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第55次选择
报酬的最小值:458
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第56次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第57次选择
报酬的最小值:435
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第58次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第59次选择
报酬的最小值:446
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 0. 0. 0. 48.]
[125. 0. 0. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第60次选择
报酬的最小值:471
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第61次选择
报酬的最小值:390
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[45. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第62次选择
报酬的最小值:451
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 0. 0. 88. 0.]]
这是第63次选择
报酬的最小值:465
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 0. 0. 65. 0.]
[125. 0. 0. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第64次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第65次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第66次选择
报酬的最小值:411
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 76. 0. 0. 0. 0.]]
这是第67次选择
报酬的最小值:450
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第68次选择
报酬的最小值:426
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 48.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第69次选择
报酬的最小值:445
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第70次选择
报酬的最小值:407
最佳选择为:
[[90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 0. 98.]
[ 0. 64. 0. 0. 0.]]
这是第71次选择
报酬的最小值:445
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 65. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第72次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第73次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第74次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第75次选择
报酬的最小值:408
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 35. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第76次选择
报酬的最小值:436
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 95. 0. 0.]
[ 76. 0. 0. 0. 0.]]
这是第77次选择
报酬的最小值:397
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 48.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 64. 0. 0. 0.]]
这是第78次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第79次选择
报酬的最小值:450
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第80次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第81次选择
报酬的最小值:465
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 0. 0. 65. 0.]
[125. 0. 0. 0. 0.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第82次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第83次选择
报酬的最小值:443
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第84次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第85次选择
报酬的最小值:395
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 35. 0. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第86次选择
报酬的最小值:431
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 0. 0. 0. 0. 48.]
[125. 0. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第87次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第88次选择
报酬的最小值:475
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第89次选择
报酬的最小值:436
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 95. 0. 0.]
[ 76. 0. 0. 0. 0.]]
这是第90次选择
报酬的最小值:475
最佳选择为:
[[ 0. 0. 0. 80. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第91次选择
报酬的最小值:395
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 35. 0. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第92次选择
报酬的最小值:450
最佳选择为:
[[ 0. 75. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第93次选择
报酬的最小值:460
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 90. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第94次选择
报酬的最小值:465
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 95. 0. 0.]
[ 0. 0. 0. 0. 90.]]
这是第95次选择
报酬的最小值:437
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 85. 0. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 57. 0. 0.]]
这是第96次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第97次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第98次选择
报酬的最小值:443
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 0. 0. 0. 100.]
[ 0. 110. 0. 0. 0.]
[ 0. 0. 0. 88. 0.]]
这是第99次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
这是第100次选择
报酬的最小值:480
最佳选择为:
[[ 0. 0. 75. 0. 0.]
[ 0. 85. 0. 0. 0.]
[125. 0. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]
全局报酬最优解:390
最佳选择为:
[[ 90. 0. 0. 0. 0.]
[ 0. 0. 55. 0. 0.]
[ 0. 95. 0. 0. 0.]
[ 0. 0. 0. 105. 0.]
[ 0. 0. 0. 0. 90.]]