- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定一家软件公司,开发人员团队合作处理多个问题不同的项目。项目需要分配的特定技能开发商。出于我的目的,我想保持简单并将其限制为一个技能,即编程语言。所以有些项目需要Java,有些需要C 等 项目有固定的工期,每个项目应该有两个开发人员分配给它。
在任何时间点,一些项目在进行中,新的项目来了并且需要在未来的某个时间点进行规划。我想计算一个时间表,确定哪些开发人员应该在什么时间从事什么项目。
我不是在寻找最佳解决方案(如果可能的话)。我很满足具有人类经理可以创建的时间表。
我读过有关资源受限调度问题的文章和作业问题,但我很少接受正式的 CS 培训,而且我经常迷失在这些问题的不同变体的所有细微差别中。
我认为我的问题是作业车间调度的一个更简单的变体,其中作业是项目和开发人员是机器,所以工作需要多台机器同时同一时间。只有一个先例约束,即正在运行的项目无法中止,因此必须先完成。
在我阅读过的所有可能的解决方案中,我倾向于使用遗传算法,主要是因为我读过人们用他们,因为我刚才在另一个项目中使用了一个。我也读过线性规划的好结果,但我知之甚少关于那个。
对于这类问题,遗传算法是可行的解决方案吗?或者有更好的解决方案吗?
最佳答案
创建一个二分图,一侧是开发人员,另一侧是需要的项目成员。 “需要的项目成员”是指,如果一个项目 P
需要 3 个开发人员,您将添加 3 个节点,可能命名为 P0
、P1
和 P2
。
如果开发人员具备该项目所需的所有技能,则在开发人员和所需的项目成员之间划一条界线。你的问题然后减少到找到一个 matching在此图中;您可以使用标准算法来执行此操作。
关于algorithm - 作业车间调度 : which solutions should I consider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572462/
我是一名优秀的程序员,十分优秀!