我正在尝试将lp与以下情况放在一起。
我有10个具有5个特征(C1-C5)的物体(O1-O10)。我想找到一组3个具有权重的对象,使得每个特征的总权重为Y.
这样的事情: O1 * C1 + O1 * C2 + ... + O1 * C5 = Y. 。 。 。 O5 * C1 + O5 * C2 + ... + O5 * C5 = Y
只有3个O1-O10大于0。
这可能吗?
答案 0 :(得分:1)
你需要更精确。我会尝试迈出第一步。我假设我们需要选择每个对象的整数来说x(i)
。我们只想要3个不同的对象。即:
0 <= x(i) <= MAXX * z(i)
sum(i, z(i)) <= 3
z(i) in {0,1} (binary variable)
x(i) integer variable (make continuous if we can choose fractional values)
此处x(i)
是所选类型i
的对象数量,z(i)=0 or 1
表示我们是否可以选择i
类型的对象。这使问题不再是连续的LP问题,而是MIP。
条件O1*C1+O1*C2+...+O1*C5 = Y . . . O5*C1+O5*C2+...+O5*C5 = Y
看起来很奇怪。我的意思是:
x(i) * d(i) = z(i)*Y for all i
where d(i) = sum(j, c(i,j)) (constant)
不知道目标是什么。