最適性条件
最適化問題の最適性条件について
考える問題
考える問題はとして、
という最適化問題。 等号条件は
のように分解すればいいし、右辺にでない数値がくるような
といった条件はとして
のように変形すればいい。このような問題を制約付き最適化問題という。
許容領域
制約付き最適化問題において、
で表される空間を許容領域とか実行可能領域とかいう。
局所的最適解
制約付き最適化問題の許容領域をとして、点が
を満たすとき、を局所的最適解(local optimum)という。ただし、。
たとえば、という問題の局所的最適解はである。
この例だと局所最適解は1つなのだけど、局所最適解は1つとは限らず複数個あることがる。たとえばだと、局所最適解はの4つある。
John条件
の局所最適解をとしたとき、は次の関係を満たすようなベクトルが存在する:
\begin{array}{l} \xi_0\nabla f(\boldsymbol{x}^*) + \sum_{i=1}^m\xi_i\nabla g_i(\boldsymbol{x}^*) = \boldsymbol{0} \newline \xi_ig_i(\boldsymbol{x}^*) = 0 \enspace (i = 1, \cdots, m) \newline g_i(\boldsymbol{x}^*) \leq 0 \enspace (i = 1, \cdots, m) \newline \xi_i \geq 0 \enspace (i = 0, \cdots, m) \end{array}
このような条件を John条件(John condtion) という。つまり、これを調べればが局所最適解か調べることができるのだ。しかし、この条件はあまり使われないで次に紹介するKKT条件の方が良く使われる。
KKT条件
カルーシュ・キューン・タッカー条件(karush-Kuhn-Tucker condition) という。ながいし発音しづらいのでKKT条件といわれることの方が圧倒的に多い。具体的にどんな条件かというと
\begin{array}{l} \nabla f(\boldsymbol{x}^*) + \sum_{i=1}^m\lambda_i\nabla g_i(\boldsymbol{x}^*) = \boldsymbol{0} \newline \lambda_ig_i(\boldsymbol{x}^*) = 0 \enspace (i = 1, \cdots, m) \newline g_i(\boldsymbol{x}^*) \leq 0 \enspace (i = 1, \cdots, m) \newline \lambda_i \geq 0 \enspace (i = 1, \cdots, m). \end{array}
John条件の各をで割ったものをにしたもの。をKKTベクトルというらしい。あんまりそういう名称聞いたことない。
なんでで割ったものを考えるのかというと、ということは最適性条件が目的関数に一切依存しないという自体を招き、そんな場合はかなり例外的な状況しかないから。理論系だとJohn条件よりもこっちの条件を良く使う。ただ、の条件を考えてないので、実際にはこの条件は必要条件ではないことに注意しなければいけないが、多くの非常に有用な条件となっている。