相同并行机调度(Identical Parallel Machine Scheduling):
多机调度问题可表达为:n 个工件由 k 个可并行工作的机器加工,完成任务 i 需要的时间为 ti,调度目标是确定这 n 个工件完成的最佳加工顺序,使得完成全部任务的时间最早
数学描述:
声明:
首先申明,暴力穷举法肯定是最愚蠢的(也是最聪明的)方法,得到的结果(如果能在有限时间计算出来)肯定是100%正确的。
Why 我要写一个暴力穷举法?
论文里的小数据对比需要,而网上翻了一圈,也没有看到可以copy的代码
代码:
from itertools import product as product
def machine_sum(jobs, groups, machines):
# example:
# jobs: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# groups: [0, 0, 0, 0, 0, 1, 1, 1, 2, 2]
# machines: 3
result = [0 for _ in range(machines)]
for i in range(machines):
result[i] = sum([jobs[i] for i in get_location_in_list(groups,