二次計画法

二次計画法（にじけいかくほう、英: quadratic programming, QP）は、数理最適化における非線形計画法の代表例の一つであり、いくつかの変数からなる二次関数を線形制約の下で最適化（最小化ないしは最大化）する方法である。二次計画法の対象となる最適化問題を二次計画問題という。 n の変数と m の制約からなる二次計画問題は以下のように定式化することができる。 以下を所与とする： 実数値の n 次元ベクトル c n 行 n 列の実数値対称行列 Q m 行 n 列の実数値行列 A 実数値の m 次元ベクトル b 二次計画問題の目的は以下の問題の解となる n 次元ベクトル x を見つけることである。 ここで xT はベクトル x の転置を表す。Ax ≤ b という記法はベクトル Ax の全ての要素が対応するベクトル b の要素より小さいもしくは等しいことを意味する。 関係する最適化問題として、二次制約付き二次計画問題（英語版）があり、二次制約付き二次計画問題では二次の制約が足されている。 一般の問題について、多様な解法が広く用いられており、例えば 内点法 有効制約法（英語版） 拡張ラグランジュ乗数法（英語版） 共役勾配法 勾配射影法 シンプレックス法の拡張 などがある。行列 Q が正値定符号ならば、問題はより一般的な凸最適化の領域の特殊ケースとなる。 二次計画問題は行列 Q が正値定符号であり、等式制約のみを含む時、特に簡単になり、解の過程は線形となる。ラグランジュの未定乗数法を用い、ラグランジアンの極値を探せば、以下の等式制約問題 Minimize 1 2 x T Q x + c T x {\displaystyle {\text{Minimize}}\quad {\tfrac {1}{2}}\mathbf {x} ^{\mathrm {T} }Q\mathbf {x} +\mathbf {c} ^{\mathrm {T} }\mathbf {x} } , subject to E x = d {\displaystyle {\text{subject to}}\quad E\mathbf {x} =\mathbf {d} } . の解は次の線形システム [ Q E T E 0 ] [ x λ ] = [ − c d ] {\displaystyle {\begin{bmatrix}Q&E^{T}\\E&0\end{bmatrix}}{\begin{bmatrix}\mathbf {x} \\\lambda \end{bmatrix}}={\begin{bmatrix}-\mathbf {c} \\\mathbf {d} \end{bmatrix}}} . の解として与えられることが容易に示される。ここで λ {\displaystyle \lambda } はラグランジュ乗数の集合で x と共に計算される。 このシステムを解く最も簡単な方法は直接的に問題を解くこと（例えばLU分解）で、問題の規模が小さければ非常に有用である。問題の規模が大きければ、このシステムは特異な難しさに直面する。もっとも重要なのは（Q が正値定符号であったとしても、）問題自体は正値定符号と決してならないことである。そのためうまくいく数値解法を見いだすことは非常に難しいので、問題に依存した様々な方法がある。 もしも、制約があまり多くの変数を含んでいなければ、比較的簡単な方法として制約を無条件で満たすように変数を変換する方法がある。例えば、d = 0（非ゼロの場合にも一般化できる）と仮定する。制約方程式を見ると E x = 0 {\displaystyle E\mathbf {x} =0} . となる。新しい変数として y を以下のように定義する。 Z y = x {\displaystyle Z\mathbf {y} =\mathbf {x} } . ここで y の次元は x の次元から制約の数を引いたものである。この時、 E Z y = 0 {\displaystyle EZ\mathbf {y} =0} . であり、もし Z を EZ = 0 となるように選べば、制約方程式は常に満たされるようになる。このような Z を見つけるということは E の零空間を見つけることを意味し、E の構造に依存するが多かれ少なかれ単純である。二次形式に代入すると次の無制約の最小化問題が得られる。 1 2 x T Q x + c T x ⇒ 1 2 y T Z T Q Z y + ( Z T c ) T y . {\displaystyle {\tfrac {1}{2}}\mathbf {x} ^{T}Q\mathbf {x} +\mathbf {c} ^{T}\mathbf {x} \quad \Rightarrow \quad {\tfrac {1}{2}}\mathbf {y} ^{T}Z^{T}QZ\mathbf {y} +(Z^{T}\mathbf {c} )^{T}\mathbf {y} .} この解は以下で与えられる。 Z T Q Z y = − Z T c . {\displaystyle Z^{T}QZ\mathbf {y} =-Z^{T}\mathbf {c} .} Q についてのある条件の下で、退化した行列 ZTQZ は正値定符号となる。Z の陽な計算を避けた共役勾配法のバリエーションとして書くことも可能である。 二次計画問題のラグランジュ双対はまた二次計画問題となる。これを見るために、c = 0 かつ Q が正値定符号であるケースに着目しよう。ラグランジュ関数は以下のように書ける。 L ( x , λ ) = 1 2 x T Q x + λ T ( A x − b ) . {\displaystyle L(x,\lambda )={\tfrac {1}{2}}x^{T}Qx+\lambda ^{T}(Ax-b).} （ラグランジュ）双対関数を g ( λ ) {\displaystyle g(\lambda )} とし、 g ( λ ) = inf x L ( x , λ ) {\displaystyle g(\lambda )=\inf _{x}L(x,\lambda )} を満たすものとすれば、 ∇ x L ( x , λ ) = 0 {\displaystyle \nabla _{x}L(x,\lambda )=0} という条件と Q の正値定符号性を用いることで、L の下限を見つけることができる。 x ∗ = − Q − 1 A T λ . {\displaystyle x^{*}=-Q^{-1}A^{T}\lambda .} ゆえに双対関数は g ( λ ) = − 1 2 λ T A Q − 1 A T λ − λ T b , {\displaystyle g(\lambda )=-{\tfrac {1}{2}}\lambda ^{T}AQ^{-1}A^{T}\lambda -\lambda ^{T}b,} であり、二次計画問題のラグランジュ双対は  maximize − 1 2 λ T A Q − 1 A T λ − λ T b {\displaystyle {\text{ maximize}}\quad -{\tfrac {1}{2}}\lambda ^{T}AQ^{-1}A^{T}\lambda -\lambda ^{T}b} subject to λ ⩾ 0 {\displaystyle \,\,{\text{subject to}}\quad \lambda \geqslant 0} となる。ラグランジュ双対理論の他にも他の双対性が存在する（例えばWolfe双対（英語版））。 正値定符号行列である Q について楕円体法（英語版）は多項式時間で二次計画問題を解くことができる。一方で、Q の符号が不定ならば、二次計画問題はNP困難となる。実際、Q のただ一つの固有値だけが負であったとしても、二次計画問題はNP困難である。 サポートベクターマシン 逐次二次計画法 線形計画法 ^ Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization (2nd ed.). Berlin, New York: Springer-Verlag. p. 449. ISBN 978-0-387-30303-1 . ^ a b Murty, Katta G. (1988). Linear complementarity, linear and nonlinear programming. Sigma Series in Applied Mathematics. 3. Berlin: Heldermann Verlag. pp. xlviii+629 pp.. ISBN 3-88538-403-5. MR949214. オリジナルの2010年4月1日時点におけるアーカイブ。. https://web.archive.org/web/20100401043940/http://ioe.engin.umich.edu/people/fac/books/murty/linear_complementarity_webbook/  ^ Delbos, F.; Gilbert, J.Ch. (2005). “Global linear convergence of an augmented Lagrangian algorithm for solving convex quadratic optimization problems”. Journal of Convex Analysis 12: 45–69. http://www.heldermann-verlag.de/jca/jca12/jca1203_b.pdf.  ^ Google search. ^ Gould, Nicholas I. M.; Hribar, Mary E.; Nocedal, Jorge (April 2001). On the Solution of Equality Constrained Quadratic Programming Problems Arising in Optimization. 23. SIAM Journal of Scientific Computing. pp. 1376–1395. CiteSeerx: 10.1.1.129.7555.  ^ Kozlov, M. K.; S. P. Tarasov; Leonid G. Khachiyan (1979). “[Polynomial solvability of convex quadratic programming]”. Doklady Akademii Nauk SSSR 248: 1049–1051.  Translated in: Soviet Mathematics - Doklady 20: 1108–1111.  ^ Sahni, S. (1974). “Computationally related problems”. SIAM Journal on Computing 3: 262–279. doi:10.1137/0203021.  ^ Pardalos, Panos M.; Vavasis, Stephen A. (1991). “Quadratic programming with one negative eigenvalue is NP-hard”. Journal of Global Optimization 1 (1): 15–22. doi:10.1007/bf00120662.  ^ Mixed Integer Nonlinear Programming. 混合整数非線形計画問題のこと。 ^ “Object-Oriented Software for Quadratic Programming (Paper)” (PDF). University of Wisconsin-Madison (25 February 2003). 11 July 2014閲覧。 ^ “Source repository for OOQP, a quadratic programming solver (and more)”. GitHub. 11 July 2014閲覧。 ^ OptimJ used in an optimization model for mixed-model assembly lines. University of Münster. http://www.in-ter-trans.eu/resources/Zesch_Hellingrath_2010_Integrated+Production-Distribution+Planning.pdf.  ^ OptimJ used in an Approximate Subgame-Perfect Equilibrium Computation Technique for Repeated Games. http://www.aaai.org/ocs/index.php/AAAI/AAAI10/paper/viewFile/1769/2076.  Cottle, Richard W.; Pang, Jong-Shi; Stone, Richard E. (1992). The linear complementarity problem. Computer Science and Scientific Computing. Boston, MA: Academic Press, Inc.. pp. xxiv+762 pp.. ISBN 0-12-192350-9. MR1150683  Garey, Michael R.; Johnson, David S. (1979). Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freeman. ISBN 0-7167-1045-5  A6: MP2, pg.245. 二次計画法についてのページ (英語) NEOS Optimization Guide: Quadratic Programming Solve an example Quadratic Programming (QP) problem