我在尝试安排以下内容时遇到问题。 for循环中似乎有错误。特别是在这部分:mM [iRow,j] = p [k]。但我不明白出了什么问题。
m = 2#…
p数组的长度为4,每次进入if条件时都会递增k。您需要在if条件中添加一个检查或在外部循环中重置k。
例如:
import numpy as np m=2 # machines n= 4 # number of jobs p= np.array([1,2,3,4]) # processing times iTimemax = np.sum(p) # Initialisation iTime = 0 k= 0 iRow = 0 # the iRowth job of the machine mM=np.zeros((n,m)) for i in range (iTimemax): for j in range (m): if np.sum(mM[:,j]) <= iTime and k < len(p): mM[iRow,j] = p[k] k = k + 1 # next job to be assigned iRow = iRow + 1 iTime = iTime +1