Loading article…
最適化プログラミング言語(OPL)は、数学的最適化モデルのための代数モデリング言語であり、汎用プログラミング言語よりもコーディングが簡単かつ短時間で済みます。
これはCPLEXソフトウェア パッケージの一部であり、IBM ILOG CPLEX および IBM ILOG CPLEX CP オプティマイザ向けに調整されています。OPL のオリジナル作者はPascal Van Hentenryckです。[ 1 ]
OPLを使用すると、ユーザーは高レベルの数式表記法を用いてモデルを定義できます。主な機能は以下のとおりです。
以下は、ナップサック問題のためのシンプルなOPLモデル(.modファイル)です。
// ナップサックの容量。データファイルで外部から提供されるint capacity = ...;// アイテムインデックス範囲を設定するItems = 1..5 ;// アイテムパラメータ: Items 内のアイテムごとに 1 つの値と 1 つの重みint value [ Items ] = [ 6 , 7 , 3 , 9 , 6 ]; int weight [ Items ] = [ 11 , 7 , 9 , 13 , 12 ];// 決定変数: // アイテム i が選択されている場合は x[i] = 1 // それ以外の場合は x[i] = 0 dvar boolean x [ Items ];// obj: 選択されたアイテムの合計値を最大化するmaximum obj : sum ( i in Items ) value [ i ] * x [ i ];制約条件{ // 選択されたアイテムの合計重量は容量を超えてはならないsum ( i in Items ) weight [ i ] * x [ i ] <= capacity ; }関連データ(.dat)ファイルは
容量 = 10 OPLは通常CPLEX Studio IDE内で使用されますが、本番環境にも展開可能です。IBMは、 Java、C++、. NET、PythonからOPLモデルを呼び出すことができるAPI(Concert Technologyなど)を提供しています。