首页 > 解决方案 > 在约束下最大化子集选择

问题描述

我正在为一组志愿者解决日程安排问题。我将我的问题归结为以下算法问题:

我有一个矩阵,其中约 60 行代表志愿者,约 14 列代表天。每个条目都是一个介于 0 到 3 之间的整数,代表当天志愿者的空闲程度。我想从每列中准确选择 4 个条目(每天 4 个志愿者),这样(按重要性排序)

  1. 永远不会选择 0 条目。
  2. 工作量尽可能分散(先给每个人一个班,然后开始给第二班,等等。我们可以预期大多数志愿者每两周只有一个班,有些甚至可能没有。)
  3. 所选条目的总和最大化(志愿者获得他们喜欢的天数)。

我想在选择一天的志愿者时,输出具有1个具有1的决策矩阵,否则为0。我相信这是护士排班问题的一个例子,所以我不期待一个快速的解决方案,但我只想制作一个蛮力算法,可以在合理的时间内为我的约 60 人团队工作。我只是真的不确定如何开始解决这个问题。它是否适合回溯,或者有什么方法可以根据每个志愿者的日分分布计算出每个志愿者的最佳位置?

标签: algorithmsubset

解决方案


推荐阅读