【问题标题】:CPLEX Error 1016: Promotional versionCPLEX 错误 1016:促销版
【发布时间】:2017-04-07 08:16:24
【问题描述】:

我在CPLEX oplide中编写了一个解决整数规划模型的代码,如下所示:

nmbl = 521466;
nbi = 17;

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] + I[i][6] + I[i][7] + I[i][8] + I[i][9] + I[i][10] + I[i][11] + I[i][12] + I[i][13] + I[i][14] + I[i][15] + I[i][16] + I[i][17] == 1; 

cons2:
forall (j in nbi)
  sum (i in nmbl) I[i][j]*amb[i] <= As[j];
}

它显示 CPLEX 错误 1016:促销版本。超出问题大小限制。感谢您为我提供定位问题的想法。

【问题讨论】:

  • rpi.edu/dept/math/math-programming/cplex66/sun4x_56/doc/refman/… 说关于错误 1016“当前问题大小对于您的 CPLEX 版本来说太大。减少问题大小。”正如错误消息“促销服务”所示,这似乎是您的程序版本的问题,而不是代码本身的问题。
  • 小疑问,我是研究领域的新手,问题规模较大意味着什么? :-- 我使用的数据量很大(或)我的代码产生的约束数量很高。
  • 我想您会发现 CPLEX 的受限版本通常被限制为 1000 个变量和 1000 个约束。给定值 nmbl = 521466 和 nbi = 17,则声明 dvar boolean I[nmbl][nbi];将创建近 900 万个布尔变量,这方式超出了我对除了完整版 CPLEX 之外的任何东西的预期限制。事实上,这是一个非常大的二元问题,可能很难解决。
  • 感谢 PhillipD 抽出宝贵时间...我将尝试将此 IP 公式划分为子问题。
  • 谢谢 TimChippingtonDerrick...

标签: cplex opl


【解决方案1】:

当前问题对于您的 CPLEX Free 版本来说太大了。缩小问题的规模。 你可以下载这个版本: https://www.ibm.com/developerworks/community/blogs/jfp/entry/CPLEX_Is_Free_For_Students?lang=en

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多