Optimization[ImportMPS] - MPSファイルを取り込む
使い方
ImportMPS(filename, maxm, maxn, lowbnd, upbnd, opts)
パラメータ
filename - MPS(X) データのファイル名
maxm - (オプション) 入力できる線形制約条件の最大数
maxn - (オプション) 入力できる変数の最大数
lowbnd - (オプション) 変数の下界
upbnd - (オプション) 変数の上界
opts - (オプション) option=value の形。 option は objectivename, rhsname, rangename または boundsname
|
説明
|
|
•
|
Optimization[ImportMPS] コマンドはMPS(X) ファイルから (LP) を取り込みます。結果は LP をあらわす行列とベクトルの列を返します。問題の形を直接 Optimization[LPSolve] コマンドに Optimization[LPSolveMatrixForm] にあるような行列の形で入力することができます。
|
•
|
第 1 引数 filename は MPS(X) データファイル名を入力します。
第 2 引数 maxm は データファイルから読み込む制約条件式の数の上限を入力します。maxm の初期値は 50 です。
第 3 引数 maxn は データファイルから読み込む変数の数の上限を入力します。maxn の初期値は 50 です。
第 4 引数 upbnd は変数が動くときの下界を浮動小数で与えます。はじめは -1.0e21 で設定されています。変数が非負の値をとるようにしたいときは、0.0 を設定します。
第 5 引数 upbnd は変数が動くときの上界を浮動小数で与えます。はじめは 1.0e21 で設定されています。
第 6 引数は次のようにオプションで入力します。リストの第 1 項が整数であれば maxm として読まれ、第 2 項は maxn として読まれます。浮動小数であれば、 lowbnd と upbnd の列となります。
|
•
|
引数 opts は次のオプションからいくつか選ぶことができます。
|
|
objectivename=objname -- 名前 objname の目的関数を使います。objname ははじめ空であり、この場合目的関数はデータファイルから決定されます。
|
|
rhsname=RHSname -- 名前 RHSname の右辺から定義される式を使います。 RHSname ははじめ空であり、この場合目的関数はデータファイルから決定されます。
|
|
rangename=rngname -- 名前 rngname のから定義される領域を使います。rngname ははじめ空であり、この場合目的関数はデータファイルから決定されます。
|
|
boundsname=bndname -- 名前 bndname で定義される境界条件を使います。 bndname ははじめ空であり、この場合目的関数はデータファイルから決定されます。
|
|
cvec は線形目的関数の係数をあらわすベクトルです。
|
|
A は不等式制約条件の左辺の係数をあらわす行列です。
|
|
b は不等式制約条件の右辺の係数をあらわすベクトルです。
|
|
Aeq は等式制約条件の左辺の係数をあらわす行列です。
|
|
beq は等式制約条件の右辺の係数をあらわすベクトルです。
|
|
bl は n 個の変数の下界をあらわすベクトルです。
|
|
bu は n 個の変数の上界をあらわすベクトルです。
|
•
|
maxm および maxn はオプションで与えますが、ImportMPS は設定した以上の変数または線形制約条件のある MPS ファイルを入れるとエラーを返します。
|
|
|
例
|
|
ImportMPS の基本的な使い方を紹介します。すべての変数に対して下界および上界をそれぞれ 0.0 および 1.0e21 で設定します。
>
|
data := Optimization[ImportMPS]( "example01.mps", 0.0, 1.0e21 ):
if nops([data]) = 7 then
(sprob,cvec,A,b,bl,bu,x):=data;
else
(sprob,cvec,A,b,Aeq,beq,bl,bu,x):=data;
end if:
sol := Optimization:-LPSolve(cvec,[A,b],[bl,bu]);
|
[ 4. ]
[ ]
[ 0. ]
[ ]
[ 0. ]
sol := [92.5000000000000, [ ]]
[4.50000000000000000]
[ ]
[ 2. ]
[ ]
[ 0. ]
| |
|
|
参考文献
|
|
|
MPSX Mathematical programming system Program Number 5734 XM4 IBM Trade Corporation, New York (1971).
|
|
|