【发布时间】:2016-01-18 13:51:30
【问题描述】:
对于我的模型,我有大约 120 个人和 650 个任务。我现在想用 choco 3.3.3 分配这些任务。为此,我有一个 boolMatrix "assignment" 120x650,如果任务分配给该人,则为 1,否则为 0。但现在我必须以不同的标准进行优化,例如尽量减少加班,遵守人民的意愿等等。最好的方法是什么?
我的直觉:我看不到只累积惩罚的方法,所以我的直觉是有一个矩阵,其中每个人都有一系列“惩罚”,所以如果我有加班,惩罚[i][例如,0] 有罚分 5,如果他不想执行任务,罚分[i][1] 有罚分 4。然后我有一个 IntVar 分数,这是罚分的总和,我优化分数。
- 惩罚矩阵是否可行?
- 如何初始化这些变量?
- 是否可以在合理的时间内使用 choco 进行优化(每个可行的解决方案都有一个分数)?
在护士调度示例中,使用了此策略: solver.set(IntStrategyFactory.domOverWDeg(ArrayUtils.flatten(assignment), System.currentTimeMillis()));
- 我应该使用什么策略?阅读 choco 用户指南并没有帮助我找到一个好主意...
【问题讨论】:
标签: optimization modeling constraint-programming choco