【发布时间】:2019-07-18 08:31:16
【问题描述】:
我正在寻找一种将数据集与数字组合在一起的方法,以使组合的总数最小化。约束是每个组合的总和必须小于某个数字。
问题示例如下所示:
数据集:
[11, 10, 19, 2, 12]约束:组合
=< 21和每个数字只能使用一次的总和。手动可以发现最优组合是:
[11, 10], [19, 2], [12]目标:尽量减少组合数
但是,对于大型数据集,手动操作是不可能的。
我已经研究了使用、排列和线性方程组的可能性,但老实说,我真的不知道如何解决这个问题。有人可以给我一些想法吗?提前谢谢你。
【问题讨论】:
-
到目前为止你尝试过什么代码?有没有额外的限制?是什么让您建议的手动组合比例如更好?
[11, 10], [12, 2], [19]?顺序是否应该保持不变?子列表中是否允许超过 2 个项目? -
这个问题完全可以用linear programming技术解决,但是它们的高效实现几乎是微不足道的。
标签: python python-3.x optimization combinations