25.2 二次 Programming
Octaveは二次計画問題も解くことができます。これは
min 0.5 x'*H*x + x'*q
対象となる
A*x = b
lb <= x <= ub
A_lb <= A_in*x <= A_ub
: [x, obj, info, lambda] = qp (x0, H)
: [x, obj, info, lambda] = qp (x0, H, q)
: [x, obj, info, lambda] = qp (x0, H, q, A, b)
: [x, obj, info, lambda] = qp (x0, H, q, A, b, lb, ub)
: [x, obj, info, lambda] = qp (x0, H, q, A, b, lb, ub, A_lb, A_in, A_ub)
: [x, obj, info, lambda] = qp (…, options)
Solve a quadratic program (QP).
Solve the quadratic program defined by
min 0.5 x'*H*x + x'*q x
対象となる
A*x = b lb <= x <= ub A_lb <= A_in*x <= A_ub
ヌル空間アクティブセット法を使用します。
境界 ( A、b、lb、ub、A_in、A_lb、 A_ub ) は、存在しない場合は空の行列 ( []) に設定できます。制約AとA_inは、各行が 1 つの制約を表す行列です。その他の境界は、制約の数に応じてスカラーまたはベクトルになります。初期推測が実行可能である場合、アルゴリズムはより高速になります。
options は、アルゴリズムを制御する追加のパラメータを指定する構造体です。現在、 は、qp次のオプションを認識します: "MaxIter"、"TolX"。
"MaxIter"最適化が停止されるまでのアルゴリズム反復の最大回数を規定します。デフォルト値は 200 です。値は正の整数でなければなりません。
"TolX"未知の変数 xの終了許容値を指定します。デフォルトはsqrt (eps)約 1e-8 です。
返されるとき、x は最小値の位置であり、fvalにはxにおける目的関数の値が含まれます。
情報
アルゴリズムに関する実行時情報を格納する構造体。次のフィールドが定義されています。
solveiter
解を見つけるために必要な反復回数。
info
ソリューションのステータスを示す整数。
0
問題は実行可能かつ凸です。グローバルな解決策が見つかりました。
1
問題は凸ではありません。局所解が見つかりました。
2
この問題は凸型でも無限大でもありません。
3
反復の最大回数に達しました。
6
その問題は解決不可能だ。
See also: sqp.
: x = pqpnonneg (c, d)
: x = pqpnonneg (c, d, x0)
: x = pqpnonneg (c, d, x0, options)
: [x, minval] = pqpnonneg (…)
: [x, minval, exitflag] = pqpnonneg (…)
: [x, minval, exitflag, output] = pqpnonneg (…)
: [x, minval, exitflag, output, lambda] = pqpnonneg (…)
件名を に最小化します。 (1/2 * x' * c * x + d' * x) x >= 0
cとd は実行行列でなければならず、c は対称かつ正定値でなければなりません。
x0は、解xのオプションの初期推定値です。
options は、アルゴリズムの動作を変更するためのオプション構造体です (を参照optimset)。 は、 pqpnonneg 1 つのオプションを認識します: "MaxIter"。
出力:
x
ソリューションマトリックス
ミンバル
最小達成モデル値、 1/2*xmin'*c*xmin + d'*xmin
終了フラグ
収束の指標。0 は反復回数が超過したため、収束に達しなかったことを示します。>0 はアルゴリズムが収束したことを示します。(アルゴリズムは安定しており、十分な反復回数を行えば収束します。)
出力
2 つのフィールドを持つ構造体:
"algorithm": 使用されたアルゴリズム ( "nnls")
"iterations": 実行された反復回数。
ラムダ
ラグランジュ乗数。これらがゼロでない場合、対応するxx >= 0値はゼロになり、ソリューションが座標平面に押し付けられていることを示します。大きさは、その方向で制約が緩和された 場合に残差がどの程度改善されるかを示します。
See also: lsqnonneg, qp, optimset.