将机器的工作速度添加到程序中以优化生产

euoag5mw  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(141)

我正在为生产优化做这个程序。我工作很好,给我正确的结果。有许多工作需要在许多机器上进行。
现在我想给机器增加一个工作速度,每台机器以不同的速度工作。我已经给了作业一个持续时间,程序通过random.randint添加到作业中。
机器的工作速度也需要在0,5和1,5的速度之间随机变化,这样,如果作业的持续时间为2,但机器的工作速度为0,5,则需要4个持续时间才能完成,如果机器的工作速度为1,5,则只需要1个持续时间
我只是不知道如何才能把这个添加到我的程序中。目前我的程序是这样的

import random
random.seed(1)

number_of_jobs = 30 #define the number of Jobs
number_of_machines = 3 #define the number of machines

class Job(object):
    def __init__(self, duration, duedate, done): #characteristics for the jobs
        self.duration = duration
        self.duedate = random.randint(12,22)
        self.done = done

all_jobs = [] #list of all jobs
for i in range(number_of_jobs): 
    all_jobs.append(Job(random.randint(1,3),{},False)) # defines characteristics for all jobs
all_jobs.sort(key = lambda x: x.duedate, reverse = False)

print("\nAusgangssituation: \n") 

for job in all_jobs:
    print(job.duration, job.duedate, job.done)

class Machine(object):
    def __init__(self, workload, workspeed): #characteristics of the machines
        self.workload = workload

print("") #add space for clear separation

all_machines =[] #list of all machines
for i in range(number_of_machines):
    all_machines.append(Machine(0)) #inizialisation for all machines workload to 0 

for machine in all_machines: 
    print(machine.workload)

##### here starts the loop #####

for job in all_jobs:
    iterations = 0 
    while iterations < number_of_machines:
        if job.duration + all_machines[iterations].workload <= job.duedate:
            job.done = True 
            all_machines[iterations].workload = all_machines[iterations].workload + job.duration
            iterations = 0 
            all_machines.sort(key = lambda x: x.workload, reverse = False) 
            break
        else:
            iterations = iterations + 1
            continue

#### Results #####

print("\nErgebnis: \n") 

for job in all_jobs: 
    print(job.duration, job.duedate, job.done)

print("") 

for machine in all_machines: 
    print(machine.workload)

possible_jobs = sum(job.done == True for job in all_jobs)
print("\nDie Anzahl der pünktlichen Jobs ist:",possible_jobs,"\n")

我想我应该在机器类中添加一个类似这样的东西: self.workspeed = random.randint(0.5,1.5) 但是我不知道我怎么能告诉程序连接随机的工作速度,这样一个特定的工作可以在不同的时间内完成,这取决于它是在机器上生产的。
一些想法甚至解决方案将不胜感激。
提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题