代码之家  ›  专栏  ›  技术社区  ›  martine

索引器:索引2超出大小为2的轴0的界限(列表调度)

  •  0
  • martine  · 技术社区  · 7 年前

    我在安排以下项目时遇到了问题。for循环中似乎有错误。特别是在本部分中: mM[iRow,j] = p[k] 但我不明白怎么了。

    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:
                mM[iRow,j] = p[k]
                k = k + 1  # next job to be assigned
        iRow = iRow + 1
        iTime = iTime +1
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Tejas    7 年前

    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