CPLEX:如何用不同的 "data" 求解相同的 cplex "model"
CPLEX: How to solve same cplex "model" with different "data"
在 运行 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 数据迭代模型?
有什么办法吗?如果有人能给我提供小例子,我将不胜感激。
我真的不明白这种方法的意义。如果您的问题确实可以分成许多不相交的子问题,那么它可能会起作用。但是从你告诉我们的关于这个问题的内容来看,它似乎是不可分离的。仅仅解决整个问题的很多细节几乎肯定是行不通的。找到可行的解决方案将很困难。获得一个好的解决方案将非常困难。为任何大问题设计分解方法都是复杂而困难的,并且与如此小的子问题的收敛可能会非常缓慢。您几乎肯定需要获得更大的求解器许可证。
在 运行 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 数据迭代模型?
有什么办法吗?如果有人能给我提供小例子,我将不胜感激。
我真的不明白这种方法的意义。如果您的问题确实可以分成许多不相交的子问题,那么它可能会起作用。但是从你告诉我们的关于这个问题的内容来看,它似乎是不可分离的。仅仅解决整个问题的很多细节几乎肯定是行不通的。找到可行的解决方案将很困难。获得一个好的解决方案将非常困难。为任何大问题设计分解方法都是复杂而困难的,并且与如此小的子问题的收敛可能会非常缓慢。您几乎肯定需要获得更大的求解器许可证。