ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

mpsread

LP および MILP 最適化データの MPS ファイルの読み取り

構文

problem = mpsread(mpsfile)

説明

problem = mpsread(mpsfile) は、線形計画法 (LP) および混合整数線形計画法 (MILP) の問題のデータを読み取ります。これによって、intlinprog または linprog ソルバーが受け入れる構造体にデータが返されます。

すべて折りたたむ

mps ファイルを読み込み、記述されている問題を解きます。

公開リポジトリから eil33-2.mps ファイルを読み込みます。問題のタイプを表示します。

gunzip('http://miplib.zib.de/download/eil33-2.mps.gz')
problem = mpsread('eil33-2.mps')
problem = 

          f: [4516x1 double]
      Aineq: [0x4516 double]
      bineq: [0x1 double]
        Aeq: [32x4516 double]
        beq: [32x1 double]
         lb: [4516x1 double]
         ub: [4516x1 double]
     intcon: [4516x1 double]
     solver: 'intlinprog'
    options: [1x1 optim.options.Intlinprog]

problem.intcon が空ではなく、problem.solver'intlinprog' であることがわかります。これは、整数線形計画問題です。

反復表示を抑制し、ソルバーの進行状況に応じてプロットを生成するように、オプションを変更します。

options = optimoptions('intlinprog','Display','final','PlotFcn',@optimplotmilp);
problem.options = options;

intlinprog を呼び出して問題を解きます。

[x,fval,exitflag,output] = intlinprog(problem);
Optimal solution found.

Intlinprog stopped because the objective value is within a gap tolerance of the optimal
value, options.RelativeGapTolerance = 0.0001 (the default value). The intcon variables are
integer within tolerance, options.IntegerTolerance = 1e-05 (the default value).

入力引数

すべて折りたたむ

MPS ファイルへのパス。文字ベクトルとして指定されます。mpsfile は、MPS 形式のファイルでなければなりません。

メモ

  • mpsread は、半連続的な制約または SOS 制約をサポートしません。

  • mpsread は “固定書式” ファイルをサポートします。

  • mpsreadobjsense および objname などの拡張子をサポートしていません。

  • mpsread は、以前に MPS ファイルの COLUMNS セクションに表示されなかった BOUNDS セクションの変数を暗黙的に無視します。

例: 'documents/optimization/milpproblem.mps'

データ型: char

出力引数

すべて折りたたむ

問題構造体。次のフィールドをもつ構造体として返されます。

f目的関数 f'*x を表すベクトル
intcon整数値を取る変数を示すベクトル (LP では空、MILP では空でない)
Aineq線形不等式制約 Aineq*x  bineq の行列

bineq

線形不等式制約 Aineq*x  bineq のベクトル

Aeq

線形等式制約 Aeq*x = beq の行列

beq

線形等式制約 Aeq*x = beq のベクトル
lb下限のベクトル
ub上限のベクトル
solver'intlinprog' (intcon が空でない場合)、または 'linprog' (intcon が空の場合)

options

次のコマンドによって返される既定のオプション

optimoptions(solver)

mpsread は、problem.Aineq および problem.Aeq をスパース行列として返します。

R2015b で導入