【发布时间】:2014-09-02 03:30:57
【问题描述】:
假设我有许多用户,每个用户都有一组介于0 和n 之间的数字。例如,一个用户可能有一组{3, 7},另一个可能有{7, 8, 9},等等。
我想获得最少数量的用户,如果我取他们所有集合的并集,我将获得0 和n 之间所有数字的集合。
如果您想出一种方法,让我为每个用户分配可变价格(而不是像上面那样使用 1),那么该算法将找到具有最低总价的用户组合。
我见过在 Python (like this one) 中处理约束满足的包,但我不知道如何使用它们。如果它们可以用于此,那就太好了。
【问题讨论】:
-
看起来是个难题。我认为暴力破解是不可能的?
-
确实是被套住了,所以很可能没有多项式时间解。您可以使用指数动态程序或将问题表述为 ILP 并为此使用通用求解器。
标签: python algorithm constraints