いよいよ本記事の主題である相補性について説明します.x と y をそれぞれ主・双対問題の実行可能解とします.もし x と y がともに最適解であれば,強双対定理から c^\top x = y^\top b となりますが,特に式 (1) より c^\top x = y^\top A x = y^\top b となります.さて,c^\top x = y^\top A x が何を意味するか考えてみましょう.移項すると (y^\top A - c^\top)x = 0 です.総和記号を使って書き下すと
\tag{2}
\sum_{i=1}^n ((y^\top A)_i - c_i) x_i = 0
となります.x と y の実行可能性から,任意の i = 1, \dotsc, n に対して x_i \ge 0 かつ (y^\top A)_i \ge c_i なので,((y^\top A)_i - c_i) x_i \ge 0 となります.これらの i = 1, \dotsc, n に対する和が 0 ということは,すべての i に対して ((y^\top A)_i - c_i) x_i = 0 でなくてはならず,これはつまり x_i = 0 または (y^\top A)_i = c_i の少なくとも一方が成立するということを意味します.同様に y^\top A x = y^\top b からは,すべての j = 1, \dotsc, m に対して y_j = 0 または (Ax)_j = b_j の少なくとも一方が成立するという結論が得られます.
まとめると,実行可能解 x, y が最適ならば,条件
すべての i = 1, \dotsc, n に対し,x_i = 0 または (y^\top A)_i = c_i
が成立します.これらの条件を相補性条件 (complementarity condition) とよびます.逆に,実行可能解 x, y が相補性条件を満たすならば c^\top x = y^\top A x = y^\top b を満たすことも分かります.すなわち,x と y の目的関数値が一致しているので,弱双対定理より,これらは最適解となります.したがって,次の定理が得られます.
なんということでしょう,これらは主問題のいくつかの制約の不等式を等式に変えたものではありませんか! 繰り返しますが,主問題の任意の実行可能解 x に対して,x が最適であることとこれらの等式制約が成立することが等価です.したがって,主問題の不等式制約 Ax \le b において,双対最適解 y^* を好きに一つ選ぶと定まるこれらの制約を不等式から等式に変える(または単に Ax \le b に加える)と,それが最適解全体の集合を表す制約集合になっているわけです.
双対問題の最適解を一つ持ってくるだけで主問題の最適解全体を記述できてしまうと主張しているこの事実は個人的に驚愕に値すると思っています.なお,双対問題の最適解も一般に一意でないので,異なる双対最適解 y^*, z^* から得られる等式制約は違うものになり得ますが,主問題の不等式制約 Ax \le b と合わせると定めている領域は同じものとなります.
組合せ最適化における例
最後に組合せ最適化での応用例を紹介します.G = (U, V; E) を(孤立点のない)二部グラフとします.辺部分集合 M \subseteq E はその中の相異なる任意の二辺が端点を共有しないときにマッチング (matching) とよばれます.辺重み w \in \R^E の和 w(M) \coloneqq \sum_{e \in M} w_e を最大化するマッチング全体がどのような構造をもつか調べましょう.
として記述できます.ここで二値変数 x_{uv} の値は,辺 uv \in E をマッチングに採用するなら1,しないなら0に対応します.一番目と二番目の制約はそれぞれ U, V の各頂点まわりで辺を高々一本しか選ぶことができないことを表しています.この問題の係数行列は完全単模[6]なので,整数制約を緩和[7]した以下のLP
\tag{LP}
\begin{array}{lll}
\text{maximize} & w^\top x \\
\text{subject to} & \displaystyle \sum_{v \in V} x_{uv} \le 1 & (u \in U), \\
& \displaystyle \sum_{u \in U} x_{uv} \le 1 & (v \in V), \\
& x \ge 0
\end{array}
は目的関数値を変化させない緩和となります((IP) の実行可能解全体の凸包 = (LP) の実行可能領域).(LP) の双対問題は s \in \mathbb{R}^U, t \in \mathbb{R}^V を変数とする以下の問題
K. Murota. Computing the degree of determinants via combinatorial relaxation. SIAM Journal on Computing, 24(4):765–96, 1990.
脚注
linear programming は線形目的関数・線形制約であるような問題に対する最適化手法を意味する線形計画(法),各々具体的な問題のことは linear programming problem または linear program というのが正しいかもしれません.この辺の語句の意味や和語と英語の対応は自信がないです.この記事では全部LPと書いてごまかします. ↩︎
Discussion