最小化带最后期限的总完成时间/调度算法/python

import numpy as np
import math



def min(n1):

    for k in range(n1) :

      Tour = sum(p)
      print(Tour)
      if d[k] >= Tour :
        temp_ord.append(k)#储存大于工时和的工件序号
    n3 = len(temp_ord)
    print(temp_ord)

    for j in range(0,n3-1):
        value=temp_ord[j]#工序号
        kk.insert(0,p[value])
        max=np.amax(kk)

        if p[value] >= max:
              order.insert(0,value)

              p[value] = 0
              d[value] = 0
              temp_ord.clear()
              kk.clear()
              print(p)
              print(d)

    return (order)

p = np.array([])  # 工时
d = np.array([])  # 期限

p = input("请输入一串工时,用空格分隔:").split()
p = [int(x) for x in p]
print(p)
d = input("请输入一串工期,用空格分隔:").split()
d = [int(x) for x in d]
print(d)

n1 = len(p)
n2 = len(d)
if n1 != n2:
    print("工时与工期不匹配")
kk=[]
temp_ord = []
order = [] # 最后工期
if __name__ == '__main__':

 #for g in range(n1):
      for i in range(n1):
        order=min(n1)
        print(order)
        if len(order)==n1-1 :
            end= []
            for i in range(len(p)):
                if p[i] != 0:
                    end.append(i)
            last=end[0]
            order.insert(0, last)
            print("最后结果")
            print(order)
            exit(0)

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值