【发布时间】:2019-11-29 11:39:39
【问题描述】:
我有一个想要解决的问题,但我不知道如何对其建模在问这里之前,我进行了研究并找到了有用的东西,但我无法解决这个问题。我在下面遇到的问题示例
所以我有很多项目,比如说 40 个,每个项目有 2 或 3 个功能,每个功能只有在有 3、4、5、...时才有用,具体取决于功能。
目标是通过 10 个不同的项目
获得最大数量的不同的有用功能示例(如果 3 个或更多不同的项目包含 a,则特征 a 有用,如果 5 个或更多不同的项目包含 b,则特征 b 有用,c 8 或更多项目等)
Items Features (a,b,c,...)
item1 a,c,d
item2 a,b
item3 a,b,e,
item4 a,c
item5 b,e,f
item6 b,d,e
item7 b,c,d
item8 c,f
item9 c,d,e
item10 d,f
... ...
一个示例组合
item1+item2+...+item10 = a(3), b(5)
所以 a 和 b 有用的特性(c 没用,因为有 5 个我们需要 8 个才能使它有用)
我想我想对一个混合整数线性程序建模并使用分支定界求解器对其进行求解目标是每个项目和每个特征的特征权重的数量(?)我曾考虑将其建模为背包问题,但后来我不知道如何应用这个容量是 10 但价值和重量?对有用的功能有最低要求,我需要一些指导或通用算法来解决这个问题,如果我有什么要开始的,我可以进一步调查
【问题讨论】:
-
在示例中,您有 3 个具有“a”功能的项目,但在输出中您编写了 a(3)。对吗?
标签: python mixed-integer-programming branch-and-bound