CPLEX:如何解决同样的cplex" model"用不同的数据"

时间:2016-12-01 10:14:32

标签: scripting cplex opl

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个元素作为模型的输入。

  • 由于nmbl的尺寸太大,因此无法手动操作 如果我们在时间上采用50个元素,则需要 521466/50 迭代 做。有没有办法为每组50个nmbl数据迭代模型?

有没有办法做到这一点?如果有人能为我提供一些小例子,我将感谢你。

1 个答案:

答案 0 :(得分:0)

我真的没有看到这种方法的重点。如果你的问题真的可以分成很多不相干的子问题,那就可能有用了。但是从你告诉我们的问题来看,这听起来像是不可分割的。只是解决整个问题的许多小问题几乎肯定是行不通的。找到可行的解决方案将很困难。获得一个好的解决方案将非常困难。为任何大问题设计分解方法既复杂又困难,并且这些微小子问题的可能收敛将非常缓慢。您几乎肯定需要获得更大的求解器许可证。