1. 程式人生 > >【python3】任務分配問題

【python3】任務分配問題

實驗四:粒子群演算法

一、實驗目的

問題描述: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.]]

程式原圖

程式原圖