在 CPLEX OPL IDE中运行以下代码;
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 :促销版本。问题大小限制已超出。
如果我们想使用相同版本的软件来解决当前问题,那么
如果我们一次提供50个元素作为模型的输入。
有没有办法做到这一点?如果有人能为我提供一些小例子,我将感谢你。
答案 0 :(得分:0)
我真的没有看到这种方法的重点。如果你的问题真的可以分成很多不相干的子问题,那就可能有用了。但是从你告诉我们的问题来看,这听起来像是不可分割的。只是解决整个问题的许多小问题几乎肯定是行不通的。找到可行的解决方案将很困难。获得一个好的解决方案将非常困难。为任何大问题设计分解方法既复杂又困难,并且这些微小子问题的可能收敛将非常缓慢。您几乎肯定需要获得更大的求解器许可证。