algorithm - 作业车间调度 : which solutions should I consider?

标签 algorithm job-scheduling resource-scheduling

给定一家软件公司,开发人员团队合作处理多个问题 不同的项目。项目需要分配的特定技能 开发商。出于我的目的,我想保持简单并将其限制为一个 技能,即编程语言。所以有些项目需要Java,有些需要 C 等 项目有固定的工期,每个项目应该有两个开发人员 分配给它。

在任何时间点,一些项目在进行中,新的项目来了 并且需要在未来的某个时间点进行规划。我想计算一个时间表,确定哪些开发人员应该在什么时间从事什么项目。

我不是在寻找最佳解决方案(如果可能的话)。我很满足 具有人类经理可以创建的时间表。

我读过有关资源受限调度问题的文章 和作业问题,但我很少接受正式的 CS 培训,而且我 经常迷失在这些问题的不同变体的所有细微差别中。

我认为我的问题是作业车间调度的一个更简单的变体,其中作业是 项目和开发人员是机器,所以工作需要多台机器同时 同一时间。只有一个先例约束,即正在运行的项目 无法中止,因此必须先完成。

在我阅读过的所有可能的解决方案中,我倾向于使用 遗传算法,主要是因为我读过人们用 他们,因为我刚才在另一个项目中使用了一个。 我也读过线性规划的好结果,但我知之甚少 关于那个。

对于这类问题,遗传算法是可行的解决方案吗?或者有更好的解决方案吗?

最佳答案

创建一个二分图,一侧是开发人员,另一侧是需要的项目成员。 “需要的项目成员”是指,如果一个项目 P 需要 3 个开发人员,您将添加 3 个节点,可能命名为 P0P1P2

如果开发人员具备该项目所需的所有技能,则在开发人员和所需的项目成员之间划一条界线。你的问题然后减少到找到一个 matching在此图中;您可以使用标准算法来执行此操作。

关于algorithm - 作业车间调度 : which solutions should I consider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572462/

相关文章:

java - 为什么我的帕斯卡三角代码不起作用?

scala - Apache Spark - spark 中的内部作业调度程序如何定义用户和池

java - 异构任务集的动态优先级

javascript - JavaScript 数组的大 O

c++ - 使用boost库找到图形的最小切割

java - 连接到互联网时,Firebase Jobdispatcher 不会每次都触发

algorithm - 如何为这个调度和资源分配问题建模

python - 向 cp_model、ortools 添加多项选择约束

algorithm - 如何确定这个算法的时间复杂度?