在CPLEX中运行以下代码后;
nmbl = 521466;
nbi = 5;
int As[nbi] =...;
int amb[nmbl] = ...;
dvar boolean I[nmbl][nbi];
minimize
sum (a in nmbl, b in nbi, c in nmbl: c>a,d in nbi: d != b) I[a][b]*I[c][d]*10;
subject to
{
**cons1:**
forall (i in nmbl)
I[i][1] + I[i][2] + I[i][3] + I[i][4]+ I[i][5] == 1;
**cons2:**
forall (j in nbi)
sum (i in nmbl)
I[i][j]*amb[i] <= As[j];
}在运行这段代码时,我发现了一个CPLEX 1016:Promotional。超出问题大小限制。
不过,如果我们想要解决目前的问题,使用相同版本的软件。
如果我们一次提供50个元素作为模型的输入。
有什么办法吗?如果有人能给我举个小例子,我会感谢你的。
发布于 2016-12-01 21:58:02
我真的不明白这种方法有什么意义。如果你的问题真的可以分为很多不相交的子问题,像这样的子问题,它可能会起作用。但从你所告诉我们的问题上看,它听起来是不可分离的。仅仅解决大量的小问题几乎肯定是行不通的。要找到可行的解决办法是很困难的。要找到一个好的解决办法是非常困难的。为任何大型问题设计一个分解方法是复杂和困难的,并且与这样的小子问题的可能收敛将非常缓慢。你几乎肯定需要一个更大的解决者许可证。
https://stackoverflow.com/questions/40907855
复制相似问题