微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

寻找 NxM 数组的每列 x 数和每行 y 数的最佳选择

如何解决寻找 NxM 数组的每列 x 数和每行 y 数的最佳选择

给定一个 NxM 的正整数数组,如何选择整数以便在每行中有最多 x 个选择、每列中有 y 个选择的情况下实现最大的值总和。这是我在制作 NCAA 游泳阵容时试图面对的问题的抽象。每个游泳运动员在每个事件中都有一个时间,可以使用 USA Swimming Power Points Calculator 将其转换为整数,越高越好。一旦你转换了这些时间,我想为每个项目分配不超过 3 名游泳运动员,每个游泳运动员不超过 3 场比赛,以便使力量得分的总和最大化。我认为这与 Weapon-targeting assignment problem 类似,但该问题允许武器类型多次攻击同一个目标(在我的情况下允许单个游泳者在同一事件中比赛两次)并且这对我不起作用案件。有人知道 wta 问题的这种变化被称为什么吗?如果知道的话,您知道我可以寻找的任何解决方案或资源吗?

解决方法

这是一个数学模型:

数据

Let a[i,j] be the data matrix
and   
    x: max number of selected cells in each row 
    y: max number of selected cells in each column 

(注意:这有点不寻常:我们通常为变量保留名称 x 和 y。这些约定有助于提高可读性)。

变量

 δ[i,j] ∈ {0,1} are binary variables indicating if cell (i,j) is selected.

优化模型

 max sum((i,j),a[i,j]*δ[i,j])
 sum(j,δ[i,j]) ≤ x   ∀i
 sum(i,j]) ≤ y   ∀j
 δ[i,1}

这可以输入任何 MIP 求解器。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。