首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPLEX:如何用不同的“数据”来解决同一个复用“模型”

CPLEX:如何用不同的“数据”来解决同一个复用“模型”
EN

Stack Overflow用户
提问于 2016-12-01 10:14:32
回答 1查看 346关注 0票数 0

在CPLEX中运行以下代码后;

代码语言:javascript
复制
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个元素作为模型的输入。

  • 由于手动操作是不可能的,因为nmbl的大小太高,如果我们同时使用50个元素,则需要执行521466/ 50 迭代。对于每50组nmbl数据有任何迭代模型的方法吗?

有什么办法吗?如果有人能给我举个小例子,我会感谢你的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 21:58:02

我真的不明白这种方法有什么意义。如果你的问题真的可以分为很多不相交的子问题,像这样的子问题,它可能会起作用。但从你所告诉我们的问题上看,它听起来是不可分离的。仅仅解决大量的小问题几乎肯定是行不通的。要找到可行的解决办法是很困难的。要找到一个好的解决办法是非常困难的。为任何大型问题设计一个分解方法是复杂和困难的,并且与这样的小子问题的可能收敛将非常缓慢。你几乎肯定需要一个更大的解决者许可证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40907855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档