我有一个与此处描述的问题非常相似的问题:
我正在尝试安排一个会面五次的研讨会。我有十天的时间来选择会议日期,每天有三个重叠的可能会议时间。因此,我将 30 列分为十组(天),每组三列(会议时间)。我需要根据以下条件选择 5 列(或会议日期-时间组合):每天只选择一个会议时间(每组一列);可以参加所有 5 次会议的受访者(行)的数量最大化。理想情况下,如果我放宽受访者必须参加所有 5 次会议的标准,只要求他们参加 4 次或 3 次等,我还想知道最佳列选择如何变化。
对于简单的可视化,假设我想知道我应该选择哪两列——V1、V2 和 V3 中的每一个不超过一个——这样我就可以最大化没有零的行数(即行总和为 2)。
V1A V1B V1C V2A V2B V2C V3A V3B V3C
1 0 1 0 1 1 1 0 1
1 1 0 0 1 1 0 1 1
0 0 1 1 1 0 0 1 1
1 1 1 1 0 0 1 0 0
1 0 0 0 1 1 0 1 0
0 1 1 0 1 1 0 0 0
1 0 1 1 1 0 1 0 1
实际数据在这里:https : //drive.google.com/file/d/0B03dE9-8088aMklOUVhuV3gtRHc/view 组是 mon1* tue1* [...] mon2* tue2* [...] fri2*。
如果不是我需要从组中选择列的情况,上面链接中提出的代码将解决我的问题。理想情况下,我还可以说明在行可能有一个零的较弱条件下(即行总和为 5 或 4 或 3 等),我应该选择哪些列以最大化行数。
非常感谢!