簡體   English   中英

CPLEX:如何用不同的“數據”解決相同的復雜“模型”

[英]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 Error 1016促銷版本。 問題大小超出限制

不過,如果我們想使用相同版本的軟件來解決當前問題。

如果我們一次提供50個元素作為模型的輸入。

  • 由於手動操作是不可能的,因為nmbl的大小太大,如果我們一次取50個元素,則需要521466/50次迭代。 有沒有辦法為每50組nmbl數據迭代模型?

有什么辦法嗎? 如果有人可以給我一個小例子,我將非常感謝您。

我真的不知道這種方法的意義。 如果您的問題確實可以分解成許多不相交的子問題,那么它可能會起作用。 但是從您告訴我們的問題來看,聽起來這不是可分離的。 幾乎肯定地解決了整個問題中的許多小問題幾乎是行不通的。 尋找可行的解決方案將很困難。 獲得一個好的解決方案將非常困難。 設計針對任何大問題的分解方法既復雜又困難,並且可能會與如此微小的子問題發生收斂,而且速度將非常緩慢。 您幾乎肯定會需要獲得更大的求解器許可證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM