algorithm - 作业队列优化算法

标签 algorithm scheduling

我们有一个应用程序需要将作业分配给资源。资源具有许多定义其对特定工作的适用性的属性——一些是偏好,一些是硬性约束(所有成员种类,例如“资源 A 适合颜色为 X、Y 或 Z 的工作”。

资源有与之相关的成本(他们在线花费的时间)。我们有能力招募资源——这需要不同的时间。我们可以在固定的时间间隔内招聘。

给出规模的概念:在任何给定时间都会有大约 20 种资源,100 个未完成的工作。完成作业需要 5-15 秒。招募资源大约需要 1-2 分钟,我们可以在 1-30 分钟的时间内招募(允许重新招募)。我们对正在提交的作业没有太多提醒,可能需要几秒钟。

目标是在给定的平均延迟(作业完成时间)内以最低成本(资源使用)完成作业。

如果能提供算法、软件库或解决此问题的方法,我将不胜感激。

最佳答案

可能想查看 knapsack problembin packing问题,因为这些原则上与您在此处尝试执行的操作类似。

在您的问题描述中,您提到目标是以最低延迟完成作业。如果这实际上是您唯一的目标,那么解决方案很简单——雇用所有可用资源。他们中的许多人大部分时间都是空闲的,但它几乎可以保证尽可能低的延迟。

我怀疑您的真正目标是尽可能地减少延迟和空闲资源,因此这里总是会在延迟和浪费的资源之间进行权衡。

关于algorithm - 作业队列优化算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033099/

相关文章:

algorithm - 线程间负载均衡的启发式算法

kubernetes - 如何调试 kubernetes 调度?

c - ARM单核简单高效的调度实现

database - 如何存储时间表?

algorithm - 修改正割法算法

algorithm - 动态问题中的重叠子问题(硬币找零问题)

grails - 如何使用 quartz 启动在Grails中加载页面的作业

具有相同代码的算法在应用于不同容器时可以实现不同的有用目标

algorithm - 计算最佳毛坯长度

django - 哪个是更好的 django 事件应用程序?