2016-12-01 19 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分の521466反復を取ることはできません手動ので。 nmblデータの50セットごとにモデルを反復する方法はありますか?

これを行う方法はありますか?もし誰かが私に小さな事例を教えてくれれば、私はあなたに感謝します。

答えて

0

私は実際にそのアプローチのポイントを見ていません。あなたの問題が本当に分かれていて、それがうまくいくかもしれないというような別々の問題がある場合は、しかし、それはあなたのような分離可能ではないように聞こえる問題について私たちに語ったことから。全体的な問題の少しだけたくさんの問題を解決することは、ほとんど確実に機能しません。実行可能な解決策を見つけることは難しいでしょう。良い解決策を得ることは非常に難しいでしょう。大きな問題に対する分解アプローチを設計することは複雑で困難であり、そのような小さな問題の収束は非常に遅くなるだろう。ほとんどの場合、より大きなソルバーライセンスを取得する必要があります。

関連する問題