找到总计给定限制的记录组合

时间:2014-08-31 01:35:33

标签: algorithm combinations

给定仅包含整数元素的记录集,找到总计达到给定限制的(一个或所有)记录组合。例如,如果有记录代表水果及其特征(元素)是维生素A,B和C

Apple - A=10, B=5, C=15
Orange - A=1, B=20, C=14
Banana - A=4, B=9, C=5

限制是

For A - 13 to 15
For B - 10 to 15
For C - 20 to 25

在这种情况下,满足限制的组合将是Apple和Banana。有没有比蛮力更好的算法?

1 个答案:

答案 0 :(得分:0)

这是一个整数线性程序(具有恒定的目标函数)。

解决这样的问题是NP,但有些解决方案可以有效地解决实际问题(甚至是非常大的问题)。

一个这样的解算器是GLPK

寻找有效解决ILP的算法是一个活跃的研究领域。在Integer Programming的维基百科页面上有一些信息。