这个算法叫什么?

时间:2009-02-24 18:28:49

标签: algorithm

我正在尝试查找这个问题,但我不知道它叫什么。前提是:

鉴于m个机器和j个作业,每个作业只能分配给机器i到j,我需要将作业分配给机器,以便我一次最大化繁忙的机器。我只关心他们在时间0的分配方式。我不关心如何在工作完成后安排剩余的工作。

一旦将作业和机器分配给彼此,任何其他作业或机器都不能对任何一个成员起作用。

6 个答案:

答案 0 :(得分:17)

答案 1 :(得分:3)

正如其他人所说,你描述的是一个问题,而不是算法。您可以使用许多技术来解决问题。您应该选择哪一个取决于您的需求。如果您需要最佳解决方案,则必须使用称为整数编程的技术。如果你想要一个非常好的解决方案,不一定是最优的解决方案,你可以使用许多启发式方法。

答案 2 :(得分:1)

就像他们说你基本上是在写'调度员'。

由于你的'j'工作似乎具有同等重要性,你可能正在考虑'Round robin - time sliced scheduling algorithm'.

答案 3 :(得分:1)

问题是垃圾箱包装问题的一种变体,它具有比处理器调度更广泛的文献。

典型的现实操作系统多处理器调度算法不会在知道长作业将如何运行的情况下运行,并且会考虑其他问题,例如内存亲和性,并通过调度的好处来交换调度程序的复杂性。

我遇到过在模块化航空电子系统中遇到这种问题,你将工作分配到节点,并且你知道在工作执行之前他们的工作的预期时间和内存要求。

答案 4 :(得分:0)

听起来像是一个调度程序。

答案 5 :(得分:0)

正如其他人所说,它是一个调度程序。

这也是用于演示OOPS开发的经典问题,特别是它曾经被用作Smalltalk编程的一个非常常见的示例应用程序。

相关问题