【问题标题】:CPLEX: How to solve same cplex "model" with different "data"CPLEX:如何用不同的“数据”解决相同的 cplex“模型”
【发布时间】:2017-04-15 22:14:28
【问题描述】:

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 数据迭代模型?

有什么办法吗?如果有人能提供我的小例子,我将不胜感激。

【问题讨论】:

    标签: scripting cplex opl


    【解决方案1】:

    我真的不明白这种方法的意义。如果您的问题真的可以分成许多不相交的子问题,那么它可能会起作用。但从你告诉我们的关于这个问题的情况来看,这听起来是不可分割的。仅仅解决整个问题的一小部分几乎肯定是行不通的。找到一个可行的解决方案将是困难的。获得一个好的解决方案将非常困难。为任何大问题设计分解方法是复杂和困难的,并且与这些小子问题的可能收敛将非常缓慢。您几乎肯定需要获得更大的求解器许可证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多