2016-12-01 94 views
0

中運行以下代碼後,CPLEX OPL IDE;CPLEX:如何使用不同的「數據」解決相同的cplex「模型」

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個元素,將採取五十〇分之五十二萬一千四百六十六迭代 做。有沒有什麼方法可以爲每組50個nmbl數據迭代模型?

有沒有辦法做到這一點?如果有人能提供我一個小例子,我會很感激你。

回答

0

我真的沒有看到這種方法的重點。如果你的問題真的可以分解成許多不相干的子問題,那麼它可能會起作用。但從你告訴我們的問題來看,這聽起來像是不可分離的。僅僅解決整個問題的很多小部分幾乎肯定是行不通的。找到一個可行的解決方案將是困難的。獲得一個好的解決方案將是非常困難的。爲任何大問題設計分解方法都很複雜且困難,而且這種小問題的可能收斂速度將非常緩慢。你幾乎肯定需要獲得更大的解算器許可證。