为每个作业选择机器进行调度

时间:2017-03-03 14:00:11

标签: optimization mathematical-optimization

首先我要说的是,我不是在寻求全局最优解决方案 - “足够好”就足够了。

我有4种类型的机器,每台机器都有多个实例。

假设我有5个工作J1,...,J5 对于要完成的每个作业,必须执行1个或2个步骤。第一步后的第二步(可以在第一步后等待一段时间)。

作为额外的复杂功能,有4个选项可以完成工作 - 所以基本上是工作J1a,J1b,J1c,J1d,J2a等。

让我们看一个例子:

  • J1a必须在机器类型1上运行10分钟,然后在机器类型2上运行 持续5分钟
  • J1b必须在机器类型1上运行10分钟,然后 机器类型3持续8分钟
  • J1c必须在机器类型3上运行5分钟,然后在机器类型4上运行 10分钟。

等......尤其是J1a和J2a的机器要求不一定相同。

跨机器分发的方式有以下几种: 给定一系列工作,例如J4a,J2c,J3a,J1b,J5c,它们像这样分布在整个设备上(让我们假设每个作业有两个步骤):

J4a步骤1在兼容机器可用的最早时间分配。 J4a第2步是在兼容机器可用的最早时间分配的,但在J4a第一步完成之前不会分配。

这将最终分发所有工作(见图)。

所以这里有两件事要做: 工作顺序和“路径”。

我写了一个遗传算法,可以产生好的结果......

当然现在有了新的想法: - 不同的选项a,b,c,d具有不同的成本。所以,只要总体完工时间相同,就有一些选择。

我有点担心已经不适合这类问题的遗传算法最终会失败。

您是否看到了其他方法?我的一个主要问题是,我不知道调度问题的这种变化是什么 - 所以我不能直接搜索合适的文献...

example schedult

0 个答案:

没有答案