教材一覧
教材一覧
教材検索
OPTIMIZATION OF FUNCTIONS

複数の線型不等式制約条件のもとでの関数の最適化(クーン・タッカーの条件)

目次

Share on twitter
Twitterで共有
Share on email
メールで共有

複数の線型不等式制約条件のもとでの関数の最小化

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)に加えて有限\(m\)個ずつの非ゼロベクトル\(a_{1},\cdots ,a_{m}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)およびスカラー\(c_{1},\cdots ,c_{m}\in \mathbb{R} \)が与えられているものとします。ベクトルとスカラーの組\(\left(a_{i},c_{i}\right) \ \left( i=1,\cdots ,m\right) \)からは制約集合\begin{eqnarray*}G_{i} &=&\left\{ x\in \mathbb{R} ^{n}\ |\ a_{i}\cdot x\leq c_{i}\right\} \\
&=&\left\{ \left( x_{1},\cdots ,x_{n}\right) \in \mathbb{R} ^{n}\ |\ a_{i1}x_{1}+\cdots +a_{in}x_{n}\leq c_{i}\right\}
\end{eqnarray*}が定義されるため、これを\(i\)番目の制約集合(\(i\) th constraint set)と呼びます。その上で、すべての制約集合\(G_{1},\cdots ,G_{m}\)の共通部分を、\begin{equation*}G=\bigcap_{i=1}^{m}G_{i}
\end{equation*}で表記し、これを制約集合(constraint set)と呼びます。その上で、\(f\)の変数\(x\)がとり得る値の範囲を以下の集合\begin{equation*}X\cap G
\end{equation*}に制限した場合の\(f\)の最小点\begin{equation*}\mathrm{argmin}_{x\in X\cap G}f\left( x\right)
\end{equation*}を特定する問題を線型不等式制約付き最小化問題(minimization problem with one linear inequality constraint)と呼び、これを、

$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}\cdot x\leq c_{1} \\
& \quad \vdots \\
& a_{m}\cdot x\leq c_{m}
\end{array}$$で表記します。集合\(X\cap G\)を最小化問題の定義域(domain of the minimization problem)と呼びます。\(X=\mathbb{R} ^{n}\)の場合には\(X\cap G=G\)です。最小化問題において最小化する対象となる関数\(f\)を目的関数(objective function)と呼び、制約集合\(G\)を規定する条件\(a_{i}\cdot x\leq c_{i}\)を不等式制約条件(inequality constraint )と呼びます。

点\(x\in X\)が制約集合\(G\)の要素である場合、すなわち、\begin{equation*}\forall i\in \left\{ 1,\cdots ,m\right\} :a_{i}\cdot x\leq c_{i}
\end{equation*}が成り立つ場合、点\(x\)は実行可能(feasible)であると言います。点\(x\in X\)が\(i\)番目の制約集合\(G_{i}\)の内点である場合、すなわち、\begin{equation*}a_{i}\cdot x<c_{i}
\end{equation*}が成り立つ場合、点\(x\)のもとで\(i\)番目の制約条件はバインドしない(not binded)とか有効ではない(inactive)などと言います。点\(x\in X\)が\(i\)番目の制約集合\(G_{i}\)の境界点である場合、すなわち、\begin{equation*}a_{i}\cdot x=c_{i}
\end{equation*}が成り立つ場合、点\(x\)のもとで\(i\)番目の制約条件はバインドする(binded)とか有効である(active)などと言います。

非ゼロベクトル\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)およびスカラー\(c_{i}\in \mathbb{R} \)が与えられたとき、それぞれの\(x\in \mathbb{R} ^{n}\)に対して、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}を定める多変数関数\(g_{i}:\mathbb{R} ^{n}\rightarrow \mathbb{R} \)を定義すれば、\(i\)番目の制約集合を、\begin{equation*}G_{i}=\left\{ x\in \mathbb{R} ^{n}\ |\ g_{i}\left( x\right) \leq 0\right\}
\end{equation*}と表現できるため、目的関数を\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)とする線型不等式制約付き最小化問題を、
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$と表現することもできます。

例(線型不等式制約付き最小化問題)
1変数関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)に関する2つの線型不等式制約付き最小化問題は、
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}x\leq c_{1} \\
& a_{2}x\leq c_{2}
\end{array}$$と定式化されます。ただし、任意の\(i\in \left\{1,2\right\} \)について\(a_{i}\in \mathbb{R} \backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。
例(線型不等式制約付き最小化問題)
2変数関数\(f:\mathbb{R} ^{2}\supset X\rightarrow \mathbb{R} \)に関する2つの線型不等式制約付き最小化問題は、
$$\begin{array}{cl}\min\limits_{\left( x_{1}x_{2}\right) \in X} & f\left( x_{1},x_{2}\right) \\
s.t. & a_{11}x_{1}+a_{12}x_{2}\leq c_{1} \\
& a_{21}x_{1}+a_{22}x_{2}\leq c_{2}
\end{array}$$と定式化されます。ただし、任意の\(i\in \left\{1,2\right\} \)について\(\left( a_{i1},a_{i2}\right)\in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)かつ\(c_{i}\in \mathbb{R} \)です。
例(線型不等式制約付き最小化問題)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)を目的関数とする以下の問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}\cdot x\geq c_{1} \\
& \quad \vdots \\
& a_{m}\cdot x\geq c_{m}
\end{array}$$を構成します。ただし、任意の\(i\in \left\{ 1,\cdots ,m\right\} \)について\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。先に定式化した最小化問題とは異なり、制約条件\(a_{i}\cdot x\geq c_{i}\)の不等号の向きが逆になっています。ただし、これを以下の問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & -a_{1}\cdot x\leq -c_{1} \\
& \quad \vdots \\
& -a_{m}\cdot x\leq -c_{m}
\end{array}$$に読み替えることにより、通常の最小化問題として扱うことができます。

 

最小点であるための必要条件

最小化問題の解が存在する場合、それはどのような条件を満たすのでしょうか。2変数関数を目的関数とする2つの制約条件のもとでの最小化問題について議論した上で、後に結論を一般化します。

2変数関数\(f:\mathbb{R} ^{2}\supset X\rightarrow \mathbb{R} \)に関する2つの線型不等式制約付き最小化問題
$$\begin{array}{cl}\min\limits_{\left( x_{1}x_{2}\right) \in X} & f\left( x_{1},x_{2}\right) \\
s.t. & a_{11}x_{1}+a_{12}x_{2}\leq c_{1} \\
& a_{21}x_{1}+a_{22}x_{2}\leq c_{2}
\end{array}$$について考えます。ただし、任意の\(i\in \left\{1,2\right\} \)について\(\left( a_{i1},a_{i2}\right)\in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)かつ\(c_{i}\in \mathbb{R} \)です。最小点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X\cap G\)が存在する場合、そこではどのような条件が成り立つのでしょうか。ただし、\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)は\(f\)の定義域\(X\)の内点であるものとします。つまり\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\cap G\)です。すると\(f\)は点\(\left(x_{1}^{\ast },x_{2}^{\ast }\right) \)の周辺の任意の点において定義されていることが保証されるため、\(f\)の微分可能性より、勾配ベクトル\begin{equation*}\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in \mathbb{R} ^{2}
\end{equation*}が存在します。以降では\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)が最小点であるための必要条件を明らかにします。

まずは最小点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X^{i}\cap G\)のもとで2つの制約条件がともにバインドしない場合、すなわち、\begin{eqnarray*}a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast } &<&c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast } &<&c_{2}
\end{eqnarray*}が成り立つ場合について考えます。これは\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)が制約集合\(G\)の内点であることを意味します。つまり\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\cap G^{i}\)です。内部の共通部分は共通部分の内部と一致するため\(\left(x_{1}^{\ast },x_{2}^{\ast }\right) \in \left( X\cap G\right) ^{i}\)でもあります。すると点\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)の周辺の任意の点が\(X\cap G\)の要素であるため、\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)は最小化問題の極小点です。したがって、極小点であるための1階の必要条件より、\begin{equation*}\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =\left( 0,0\right)
\end{equation*}が成り立ちます。

続いて、最小点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X^{i}\cap G\)のもとで1番目の制約条件がバインドする一方で2番目の制約条件がバインドしない場合、すなわち、\begin{eqnarray*}a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast } &=&c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast } &<&c_{2}
\end{eqnarray*}が成り立つ場合について考えます。これは\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)が制約集合\(G_{1}\)の境界点である一方で制約集合\(G_{2}\)の内点であることを意味します。つまり\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\cap G_{1}^{f}\cap G_{2}^{i}\)です。この場合には、\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)は直線\(a_{11}x_{1}+a_{12}x_{2}=c_{1}\)上の点である一方で直線\(a_{21}x_{1}+a_{22}x_{2}=c_{2}\)上の点ではありません。なお、直線\(a_{11}x_{1}+a_{12}x_{2}=c_{1}\)の法線ベクトルは\(\left( a_{11},a_{12}\right) \)です(下図)。

図:一方の制約条件がバインドする解
図:一方の制約条件がバインドする解

点\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\cap G_{1}^{f}\cap G_{2}^{i}\)が与えられたとき、十分小さい\(t>0\)について、\begin{equation}\left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left( d_{1},d_{2}\right) \in
X\cap G \quad \cdots (1)
\end{equation}を満たす方向ベクトル\(\left( d_{1},d_{2}\right) \in \mathbb{R} ^{2}\)を任意に選びます。つまり、始点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)から方向\(\left(d_{1},d_{2}\right) \)にわずかに移動して得られる点が\(X\cap G\)の点であるということです。このような方向ベクトル\(\left( d_{1},d_{2}\right) \)を実行可能な方向(feasible direction)と呼びます。このとき、\begin{eqnarray*}\left( 1\right) &\Rightarrow &\left( a_{11},a_{12}\right) \cdot \left(
x_{1}^{\ast }+td_{1},x_{2}^{\ast }+td_{2}\right) \leq c_{1}\quad \because G\text{の定義} \\
&\Leftrightarrow &\left( a_{11},a_{12}\right) \cdot \left( x_{1}^{\ast
}+td_{1},x_{2}^{\ast }+td_{2}\right) \leq a_{11}x_{1}+a_{12}x_{2}\quad
\because a_{11}x_{1}+a_{12}x_{2}=c_{1} \\
&\Leftrightarrow &\left( a_{11},a_{12}\right) \cdot \left(
d_{1},d_{2}\right) \leq 0\quad \because t>0
\end{eqnarray*}という関係が成り立ちます。つまり、\(\left(d_{1},d_{2}\right) \)が\(\left( 1\right) \)を満たす場合、すなわち実行可能な方向である場合には\(\left( a_{11},a_{12}\right) \)と\(\left( d_{1},d_{2}\right) \)が作る角が鈍角になります。任意の実行可能な方向\(\left(d_{1},d_{2}\right) \)について同様の議論が成立します(下図)。

図:一方の制約条件がバインドする解
図:一方の制約条件がバインドする解

\(\left( 1\right) \)を満たす\(\left( d_{1},d_{2}\right) \)すなわち実行可能な方向ベクトルを任意に選んだとき、\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)が最小点であることから、十分小さい任意の\(t>0\)について、\begin{equation*}f\left( \left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left(
d_{1},d_{2}\right) \right) \geq f\left( x_{1}^{\ast },x_{2}^{\ast }\right)
\end{equation*}が成り立ちます。すると\(t>0\)より、\begin{equation*}\frac{f\left( \left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left(
d_{1},d_{2}\right) \right) -f\left( x_{1}^{\ast },x_{2}^{\ast }\right) }{t}\geq 0
\end{equation*}を得るため、このとき、\begin{equation*}
\lim_{t\rightarrow 0+}\frac{f\left( \left( x_{1}^{\ast },x_{2}^{\ast
}\right) +t\left( d_{1},d_{2}\right) \right) -f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) }{t}\geq \lim_{t\rightarrow 0+}0
\end{equation*}すなわち、\begin{equation*}
\lim_{t\rightarrow 0+}\frac{f\left( \left( x_{1}^{\ast },x_{2}^{\ast
}\right) +t\left( d_{1},d_{2}\right) \right) -f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) }{t}\geq 0
\end{equation*}を得ます。仮定より\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\)であるため、\(f\)は\(\left( x_{1}^{\ast },x_{2}^{\ast}\right) \)において微分可能であり、このとき、\begin{equation*}\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \cdot \left(
d_{1},d_{2}\right) \geq 0
\end{equation*}すなわち、\begin{equation*}
-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \cdot \left(
d_{1},d_{2}\right) \leq 0
\end{equation*}が成り立ちます。これは\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)と\(\left( d_{1},d_{2}\right) \)が作る角が鈍角であることを意味します。

議論を整理しましょう。1番目の制約条件がバインドする一方で2番目の制約条件がバインドしない最小点\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)に対して、実行可能な方向、すなわち、\begin{equation*}\left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left( d_{1},d_{2}\right) \in
X\cap G
\end{equation*}を満たす\(\left( d_{1},d_{2}\right) \in \mathbb{R} ^{2}\)を任意に選んだときに、\begin{eqnarray*}&&\left( a\right) \ \left( a_{11},a_{12}\right) \cdot \left(
d_{1},d_{2}\right) \leq 0 \\
&&\left( b\right) \ -\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \cdot
\left( d_{1},d_{2}\right) \leq 0
\end{eqnarray*}がともに成り立つことが保証されます。つまり、\(\left( a_{11},a_{12}\right) \)と鈍角をなす\(\left( d_{1},d_{2}\right) \)を任意に選んだとき、この\(\left( d_{1},d_{2}\right) \)は\(-\nabla f\left(x_{1}^{\ast },x_{2}^{\ast }\right) \)とも鈍角をなすことが保証されるということです。このような条件を満たすためには\(\left( a_{11},a_{12}\right) \)と\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)は同方向である必要があります(下図)。なぜなら、\(\left( a_{11},a_{12}\right) \)と\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)の方向が異なる場合には\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)と直線\(a_{11}x_{1}+a_{12}x_{2}=c_{1}\)が作る角は鋭角になるため、\(\left(a_{11},a_{12}\right) \)とは鈍角をなす一方で\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast}\right) \)とは鋭角をなす\(\left(d_{1},d_{2}\right) \)が存在してしまうからです。

図:一方の制約条件がバインドする解
図:一方の制約条件がバインドする解

以上の議論より、\begin{equation*}
-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =\lambda \left(
a_{11},a_{12}\right)
\end{equation*}すなわち、\begin{equation*}
\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =-\lambda \left(
a_{11},a_{12}\right)
\end{equation*}を満たす非負の実数\(\lambda \geq 0\)が存在することが明らかになりました。

続いて、最小点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X^{i}\cap G\)のもとで1番目の制約条件がバインドしない一方で2番目の制約条件がする場合、すなわち、\begin{eqnarray*}a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast } &<&c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast } &=&c_{2}
\end{eqnarray*}が成り立つ場合について考えます。この場合には先と同様の議論より、\begin{equation*}
\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =-\lambda \left(
a_{21},a_{22}\right)
\end{equation*}を満たす非負の実数\(\lambda \geq 0\)が存在することが明らかになります。

最後に、最小点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X^{i}\cap G\)のもとで2つの制約条件がともにバインドする場合、すなわち、\begin{eqnarray*}a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast } &=&c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast } &=&c_{2}
\end{eqnarray*}が成り立つ場合について考えます。これは\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)が\(G_{1}\)の境界点であるとともに\(G_{2}\)の境界点でもあることを意味します。つまり\(\left( x_{1}^{\ast },x_{2}^{\ast }\right)\in X^{i}\cap G_{1}^{f}\cap G_{2}^{f}\)です。この場合には、\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)は2つの直線\(a_{11}x_{1}+a_{12}x_{2}=c_{1}\)と\(a_{21}x_{1}+a_{22}x_{2}=c_{2}\)の交点です(下図)。

図:両方の制約条件がバインドする解
図:両方の制約条件がバインドする解

点\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\cap G_{1}^{f}\cap G_{2}^{f}\)が与えられたとき、十分小さい\(t>0\)について、\begin{equation}\left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left( d_{1},d_{2}\right) \in
X\cap G \quad \cdots (1)
\end{equation}を満たす実行可能な方向\(\left( d_{1},d_{2}\right) \in \mathbb{R} ^{2}\)を任意に選びます。このとき、\begin{eqnarray*}\left( 1\right) &\Leftrightarrow &\forall i\in \left\{ 1,2\right\} :\left(
a_{i1},a_{i2}\right) \cdot \left( x_{1}^{\ast }+td_{1},x_{2}^{\ast
}+td_{2}\right) \leq c_{i}\quad \because G\text{の定義} \\
&\Leftrightarrow &\forall i\in \left\{ 1,2\right\} :\left(
a_{i1},a_{i2}\right) \cdot \left( x_{1}^{\ast }+td_{1},x_{2}^{\ast
}+td_{2}\right) \leq a_{i1}x_{1}+a_{i2}x_{2}\quad \because
a_{i1}x_{1}+a_{i2}x_{2}=c_{i} \\
&\Leftrightarrow &\forall i\in \left\{ 1,2\right\} :\left(
a_{i1},a_{i2}\right) \cdot \left( d_{1},d_{2}\right) \leq 0\quad \because t>0
\end{eqnarray*}という関係が成り立ちます。つまり、\(\left(d_{1},d_{2}\right) \)が\(\left( 1\right) \)を満たすこと、すなわち実行可能な方向であることは、\(\left( a_{11},a_{12}\right) \)と\(\left( d_{1},d_{2}\right) \)が作る角と\(\left(a_{21},a_{22}\right) \)と\(\left( d_{1},d_{2}\right) \)が作る角がともに鈍角であることと必要十分です。任意の実行可能な方向\(\left( d_{1},d_{2}\right) \)について同様の議論が成立します(下図)。

図:両方の制約条件がバインドする解
図:両方の制約条件がバインドする解

\(\left( 1\right) \)を満たす\(\left( d_{1},d_{2}\right) \)すなわち実行可能な方向ベクトルを任意に選んだとき、\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)が最小点であることから、先と同様の理由により、\begin{equation*}-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \cdot \left(
d_{1},d_{2}\right) \leq 0
\end{equation*}が成り立ちます。これは\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)と\(\left( d_{1},d_{2}\right) \)が作る角が鈍角であることを意味します。

議論を整理しましょう。2つの制約条件がバインドする最小点\(\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)に対して、実行可能な方向、すなわち、\begin{equation*}\left( x_{1}^{\ast },x_{2}^{\ast }\right) +t\left( d_{1},d_{2}\right) \in
X\cap G
\end{equation*}を満たす\(\left( d_{1},d_{2}\right) \in \mathbb{R} ^{2}\)を任意に選んだときに、\begin{eqnarray*}&&\left( a\right) \ \left( a_{11},a_{12}\right) \cdot \left(
d_{1},d_{2}\right) \leq 0 \\
&&\left( b\right) \ \left( a_{21},a_{22}\right) \cdot \left(
d_{1},d_{2}\right) \leq 0 \\
&&\left( c\right) \ -\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \cdot
\left( d_{1},d_{2}\right) \leq 0
\end{eqnarray*}がともに成り立つことが保証されます。つまり、\(\left( a_{11},a_{12}\right) \)や\(\left( a_{21},a_{22}\right) \)と鈍角をなす\(\left( d_{1},d_{2}\right) \)を任意に選んだとき、この\(\left( d_{1},d_{2}\right) \)は\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)とも鈍角をなすことが保証されるということです。このような条件を満たすためには\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)は\(\left(a_{11},a_{12}\right) \)と\(\left( a_{21},a_{22}\right) \)が作る角の間にある必要があります(下図)。なぜなら、そうでない場合には\(-\nabla f\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)と少なくとも一本の直線が作る角が鈍角になるため、\(\left( a_{11},a_{12}\right) \)と\(\left( a_{21},a_{22}\right) \)の一方と鈍角をなす一方で\(-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) \)とは鋭角をなす\(\left( d_{1},d_{2}\right) \)が存在してしまうからです。

図:両方の制約条件がバインドする解
図:両方の制約条件がバインドする解

以上の議論より、\begin{equation*}
-\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =\lambda _{1}\left(
a_{11},a_{12}\right) +\lambda _{2}\left( a_{21},a_{22}\right)
\end{equation*}すなわち、\begin{equation*}
\nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right) =-\lambda _{1}\left(
a_{11},a_{12}\right) -\lambda _{2}\left( a_{21},a_{22}\right)
\end{equation*}を満たす非負の実数\(\lambda _{1},\lambda _{2}\geq 0\)が存在することが明らかになりました。

得られた結果を整理します。2変数関数\(f\)の定義域の内点\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \in X^{i}\cap G\)が最小点である場合、\begin{eqnarray*}&&\left( 1\right) \ \left.
\begin{array}{c}
a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast }<c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast }<c_{2}\end{array}\right\} \Rightarrow \nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right)
=\left( 0,0\right) \\
&&\left( 2\right) \ \left.
\begin{array}{c}
a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast }=c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast }<c_{2}\end{array}\right\} \Rightarrow \exists \lambda \geq 0:\nabla f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) =-\lambda \left( a_{11},a_{12}\right) \\
&&\left( 3\right) \ \left.
\begin{array}{c}
a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast }<c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast }=c_{2}\end{array}\right\} \Rightarrow \exists \lambda \geq 0:\nabla f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) =-\lambda \left( a_{21},a_{22}\right) \\
&&\left( 4\right) \ \left.
\begin{array}{c}
a_{11}x_{1}^{\ast }+a_{12}x_{2}^{\ast }=c_{1} \\
a_{21}x_{1}^{\ast }+a_{22}x_{2}^{\ast }=c_{2}\end{array}\right\} \Rightarrow \exists \lambda _{1},\lambda _{2}\geq 0:\nabla f\left(
x_{1}^{\ast },x_{2}^{\ast }\right) =-\lambda _{1}\left( a_{11},a_{12}\right)
-\lambda _{2}\left( a_{21},a_{22}\right)
\end{eqnarray*}が成り立つことが明らかになりました。それぞれの\(\left( x_{1},x_{2}\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}g_{i}\left( x_{1},x_{2}\right) =a_{i1}x_{1}+a_{i2}x_{2}-c_{i}\quad \left(
i=1,2\right)
\end{equation*}を定める関数\(g_{i}:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)を導入すると、\begin{equation*}\nabla g_{i}\left( x_{1},x_{2}\right) =\left( a_{11},a_{12}\right) \quad
\left( i=1,2\right)
\end{equation*}となるため、先の結果を、\begin{eqnarray*}
&&\left( 1\right) \ \left.
\begin{array}{c}
g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right) <0 \\
g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) <0\end{array}\right\} \Rightarrow \nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right)
=\left( 0,0\right) \\
&&\left( 2\right) \ \left.
\begin{array}{c}
g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =c_{1} \\
g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) <c_{2}\end{array}\right\} \Rightarrow \exists \lambda \geq 0:\nabla f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) +\lambda \cdot \nabla g_{1}\left( x_{1}^{\ast
},x_{2}^{\ast }\right) =0 \\
&&\left( 3\right) \ \left.
\begin{array}{c}
g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right) <c_{1} \\
g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =c_{2}\end{array}\right\} \Rightarrow \exists \lambda \geq 0:\nabla f\left( x_{1}^{\ast
},x_{2}^{\ast }\right) +\lambda \cdot \nabla g_{2}\left( x_{1}^{\ast
},x_{2}^{\ast }\right) =0 \\
&&\left( 4\right) \ \left.
\begin{array}{c}
g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =c_{1} \\
g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =c_{2}\end{array}\right\} \Rightarrow \exists \lambda _{1},\lambda _{2}\geq 0:\nabla f\left(
x_{1}^{\ast },x_{2}^{\ast }\right) +\lambda _{1}\cdot \nabla g_{1}\left(
x_{1}^{\ast },x_{2}^{\ast }\right) +\lambda _{2}\cdot \nabla g_{2}\left(
x_{1}^{\ast },x_{2}^{\ast }\right) =0
\end{eqnarray*}と表現できます。

以上の条件をよりシンプルに表現しましょう。\(\left( 4\right) \)において\(\lambda _{1}=\lambda _{2}=0\)とすれば\(\left( 1\right) \)を得て、\(\left( 4\right) \)において\(\lambda _{2}=0\)とすれば\(\left( 2\right) \)を得て、\(\left( 4\right) \)において\(\lambda _{1}=0\)とすれば\(\left( 3\right) \)を得ます。したがって、以上の条件を、\begin{eqnarray*}&&\left( a\right) \ \nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right)
+\lambda _{1}\cdot \nabla g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right)
+\lambda _{2}\cdot \nabla g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0
\\
&&\left( b\right) \ \forall i\in \left\{ 1,2\right\} :\lambda _{i}\geq 0
\end{eqnarray*}を満たす\(\lambda _{1},\lambda _{2}\in \mathbb{R} \)が存在することとして表現できます。\(i\ \left(=1,2\right) \)番目の制約条件がバインドする場合、すなわち\(g_{i}\left( x_{1}^{\ast },x_{2}^{\ast}\right) =0\)である場合には\(\lambda_{i}\cdot g_{i}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0\)が成り立ちます。一方、\(i\)番目の制約条件がバインドしない場合、すなわち\(g_{i}\left( x_{1}^{\ast },x_{2}^{\ast}\right) <0\)である場合には\(\lambda_{i}=0\)となるため、やはり\(\lambda _{i}\cdot g_{i}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0\)が成り立ちます。したがって、\begin{equation*}\left( c\right) \ \forall i\in \left\{ 1,2\right\} :\lambda _{i}\cdot
g_{i}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0
\end{equation*}が成り立ちます。さらに、最適解\(\left( x_{1}^{\ast},x_{2}^{\ast }\right) \)が2つの制約条件をともに満たすことを明示するのであれば、\begin{equation*}\left( d\right) \ \forall i\in \left\{ 1,2\right\} :g_{i}\left( x_{1}^{\ast
},x_{2}^{\ast }\right) \leq 0
\end{equation*}となります。\(\left( a\right) \)を1階の条件(first order condition)と呼び、\(\left( b\right) ,\left( c\right),\left( d\right) \)をまとめて相補スラック条件(complementary slackness condition)と呼びます。また、\(\left( a\right) \)から\(\left( d\right) \)までの条件をまとめてカルーシュ・クーン・タッカー条件(Karush-Kuhn-Tucker condition)と呼びます。

命題(線型不等式制約付き最小化問題の解であるための必要条件)
2変数関数\(f:\mathbb{R} ^{2}\supset X\rightarrow \mathbb{R} \)から最小化問題
$$\begin{array}{cl}\min\limits_{\left( x_{1}x_{2}\right) \in X} & f\left( x_{1},x_{2}\right) \\
s.t. & g_{1}\left( x_{1},x_{2}\right) \leq 0 \\
& g_{2}\left( x_{1},x_{2}\right) \leq 0
\end{array}$$を構成する。ただし、関数\(g_{i}:\mathbb{R} ^{2}\rightarrow \mathbb{R} \ \left( i=1,2\right) \)がそれぞれの\(\left( x_{1},x_{2}\right) \in \mathbb{R} ^{2}\)に対して定める値は、\begin{equation*}g_{i}\left( x_{1},x_{2}\right) =a_{i1}x_{1}+a_{i2}x_{2}-c_{i}
\end{equation*}である。\(\left( a_{i1},a_{i2}\right) \in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)かつ\(c_{i}\in \mathbb{R} \)である。関数\(f\)が微分可能であるとともに、\(f\)の定義域の内点\(\left(x_{1}^{\ast },x_{2}^{\ast }\right) \in X^{i}\)が最小点である場合には、\begin{eqnarray*}&&\left( a\right) \ \nabla f\left( x_{1}^{\ast },x_{2}^{\ast }\right)
+\lambda _{1}\cdot \nabla g_{1}\left( x_{1}^{\ast },x_{2}^{\ast }\right)
+\lambda _{2}\cdot \nabla g_{2}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0
\\
&&\left( b\right) \ \forall i\in \left\{ 1,2\right\} :\lambda _{i}\cdot
g_{i}\left( x_{1}^{\ast },x_{2}^{\ast }\right) =0 \\
&&\left( c\right) \ \forall i\in \left\{ 1,2\right\} :g_{i}\left(
x_{1}^{\ast },x_{2}^{\ast }\right) \leq 0 \\
&&\left( d\right) \ \forall i\in \left\{ 1,2\right\} :\lambda _{i}\geq 0
\end{eqnarray*}を満たす実数\(\lambda _{1},\lambda_{2}\in \mathbb{R} \)が存在する。

目的関数が一般の多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)であるとともに、制約条件の個数\(m\)が任意である場合の最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}\cdot x\leq c_{1} \\
& \quad \vdots \\
& a_{m}\cdot x\leq c_{m}
\end{array}$$についても同様の議論が成立するため以下の命題を得ます。

命題(線型不等式制約付き最小化問題の解であるための必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$を構成する。ただし、関数\(g_{i}:\mathbb{R} ^{n}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}である。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)である。関数\(f\)が微分可能であるとともに、\(f\)の定義域の内点\(x^{\ast}\in X^{i}\)が最小点である場合には、\begin{eqnarray*}&&\left( a\right) \ \nabla f\left( x^{\ast }\right) +\sum_{i=1}^{m}\left[
\lambda _{i}\cdot \nabla g_{i}\left( x^{\ast }\right) \right] =0 \\
&&\left( b\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :\lambda
_{i}\cdot g_{i}\left( x^{\ast }\right) =0 \\
&&\left( c\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :g_{i}\left(
x^{\ast }\right) \leq 0 \\
&&\left( d\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :\lambda
_{i}\geq 0
\end{eqnarray*}を満たす実数\(\lambda _{1},\cdots,\lambda _{m}\in \mathbb{R} \)が存在する。

上の命題の逆は成立するとは限りません。つまり、クーン・タッカー条件を満たす点は最小点であるとは限りません。以下の例より明らかです。

例(線型不等式制約付き最小化問題)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =x^{3}
\end{equation*}を定めるものとします。\(f\)は微分可能です。以下の制約付き最小化問題
$$\begin{array}{cl}\min\limits_{x\in \mathbb{R} } & f\left( x\right) \\
s.t. & -x\leq 1 \\
& x\leq 1
\end{array}$$について考えます。\begin{eqnarray*}
g_{1}\left( x\right) &=&-x-1 \\
g_{2}\left( x\right) &=&x-1
\end{eqnarray*}です。点\(0\)において、\begin{equation*}f^{\prime }\left( 0\right) +\lambda _{1}\cdot g_{1}^{\prime }\left( 0\right)
+\lambda _{2}\cdot g_{2}^{\prime }\left( 0\right) =0
\end{equation*}すなわち、\begin{equation*}
-\lambda _{1}+\lambda _{2}=0
\end{equation*}となるため、\begin{equation*}
\lambda _{1}=\lambda _{2}=0
\end{equation*}のもとで1階の条件が満たされます。相補スラック条件も明らかに成立します。したがって、点\(0\)はクーン・タッカー条件を満たします。ただ、\(f\)は狭義単調増加関数であるため最小点は\(-1\)であり、点\(0\)は最小点ではありません。

先の命題は\(f\)の定義域の内点が最小点であるための必要条件を与えており、内点ではない点、すなわち境界点については何も語っていません。\(f\)の定義域が境界点を含む場合、境界点が最小点になる状況は起こり得ます。以下の例より明らかです。

例(線型不等式制約付き最小化問題)
関数\(f:\mathbb{R} \supset \left[ -1,1\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ -1,1\right] \)に対して、\begin{equation*}f\left( x\right) =x^{3}
\end{equation*}を定めるものとします。\(f\)は微分可能です。以下の制約付き最小化問題
$$\begin{array}{cl}\min\limits_{x\in \mathbb{R} } & f\left( x\right) \\
s.t. & x\leq \frac{1}{2}
\end{array}$$について考えます。\(f\)は狭義単調増加関数であるため最小点は\(-1\)ですが、これは\(f\)の定義域\(\left[ -1,1\right] \)の境界点です。

以上を踏まえると、線型不等式制約条件のもとでの関数の最小点を求めるためには以下の手順にしたがえばよいということになります。

  1. 最小点が存在することを確認する。その際、最大値・最小値の定理などを利用する。
  2. 関数の定義域の内点であるとともにクーン・タッカー条件を満たす点をすべて特定する。
  3. 関数の定義域の要素であるような境界点であるとともに制約条件を満たす点をすべて特定する。
  4. 以上のすべての点の中でも関数の値を最小化する点が最小点である。

 

複数の線型不等式制約条件のもとでの関数の最大化

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)に加えて有限\(m\)個ずつの非ゼロベクトル\(a_{1},\cdots ,a_{m}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)およびスカラー\(c_{1},\cdots ,c_{m}\in \mathbb{R} \)が与えられているものとします。ベクトルとスカラーの組\(\left(a_{i},c_{i}\right) \ \left( i=1,\cdots ,m\right) \)から\(i\)番目の制約集合\begin{equation*}G_{i}=\left\{ x\in \mathbb{R} ^{n}\ |\ a_{i}\cdot x\leq c_{i}\right\}
\end{equation*}を定義し、さらに制約集合\begin{equation*}
G=\bigcap_{i=1}^{m}G_{i}
\end{equation*}を定義します。その上で、\(f\)の変数\(x\)がとり得る値の範囲を以下の集合\begin{equation*}X\cap G
\end{equation*}に制限した場合の\(f\)の最大点\begin{equation*}\mathrm{argmax}_{x\in X\cap G}f\left( x\right)
\end{equation*}を特定する問題を線型不等式制約付き最大化問題(maximization problem with one linear inequality constraint)と呼び、これを、

$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}\cdot x\leq c_{1} \\
& \quad \vdots \\
& a_{m}\cdot x\leq c_{m}
\end{array}$$で表記します。集合\(X\cap G\)を最大化問題の定義域(domain of the maximization problem)と呼びます。\(X=\mathbb{R} ^{n}\)の場合には\(X\cap G=G\)です。

非ゼロベクトル\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)およびスカラー\(c_{i}\in \mathbb{R} \)が与えられたとき、それぞれの\(x\in \mathbb{R} ^{n}\)に対して、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}を定める多変数関数\(g_{i}:\mathbb{R} ^{n}\rightarrow \mathbb{R} \)を定義すれば、\(i\)番目の制約集合を、\begin{equation*}G_{i}=\left\{ x\in \mathbb{R} ^{n}\ |\ g_{i}\left( x\right) \leq 0\right\}
\end{equation*}と表現できるため、目的関数を\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)とする線型不等式制約付き最大化問題を、
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$と表現することもできます。

例(線型不等式制約付き最大化問題)
1変数関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)に関する2つの線型不等式制約付き最大化問題は、
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}x\leq c_{1} \\
& a_{2}x\leq c_{2}
\end{array}$$と定式化されます。ただし、任意の\(i\in \left\{1,2\right\} \)について\(a_{i}\in \mathbb{R} \backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。
例(線型不等式制約付き最大化問題)
2変数関数\(f:\mathbb{R} ^{2}\supset X\rightarrow \mathbb{R} \)に関する2つの線型不等式制約付き最大化問題は、
$$\begin{array}{cl}\max\limits_{\left( x_{1}x_{2}\right) \in X} & f\left( x_{1},x_{2}\right) \\
s.t. & a_{11}x_{1}+a_{12}x_{2}\leq c_{1} \\
& a_{21}x_{1}+a_{22}x_{2}\leq c_{2}
\end{array}$$と定式化されます。ただし、任意の\(i\in \left\{1,2\right\} \)について\(\left( a_{i1},a_{i2}\right)\in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)かつ\(c_{i}\in \mathbb{R} \)です。
例(線型不等式制約付き最大化問題)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)を目的関数とする以下の問題
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & a_{1}\cdot x\geq c_{1} \\
& \quad \vdots \\
& a_{m}\cdot x\geq c_{m}
\end{array}$$を構成します。ただし、任意の\(i\in \left\{ 1,\cdots ,m\right\} \)について\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。先に定式化した最大化問題とは異なり、制約条件\(a_{i}\cdot x\geq c_{i}\)の不等号の向きが逆になっています。ただし、これを以下の問題
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & -a_{1}\cdot x\leq -c_{1} \\
& \quad \vdots \\
& -a_{m}\cdot x\leq -c_{m}
\end{array}$$に読み替えることにより、通常の最大化問題として扱うことができます。

 

最大点であるための必要条件

関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最大化問題
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$を構成します。ただし、関数\(g_{i}:\mathbb{R} ^{n}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x=c_{i}
\end{equation*}です。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。これは以下の最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & -f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$に読み替え可能であるため、最小化問題に関する先の議論を通じて、最大化問題の解すなわち最大点が満たす必要条件、すなわちクーン・タッカー条件を特定できます。具体的には以下の通りです。

命題(線型不等式制約付き最大化問題の解であるための必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最大化問題
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$を構成する。ただし、関数\(g_{i}:\mathbb{R} ^{n}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}である。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)である。関数\(f\)が微分可能であるとともに、\(f\)の定義域の内点\(x^{\ast}\in X^{i}\)が最大点である場合には、\begin{eqnarray*}&&\left( a\right) \ \nabla f\left( x^{\ast }\right) -\sum_{i=1}^{m}\left[
\lambda _{i}\cdot \nabla g_{i}\left( x^{\ast }\right) \right] =0 \\
&&\left( b\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :\lambda
_{i}\cdot g_{i}\left( x^{\ast }\right) =0 \\
&&\left( c\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :g_{i}\left(
x^{\ast }\right) \leq 0 \\
&&\left( d\right) \ \forall i\in \left\{ 1,\cdots ,m\right\} :\lambda
_{i}\geq 0
\end{eqnarray*}を満たす実数\(\lambda _{1},\cdots,\lambda _{m}\in \mathbb{R} \)が存在する。

上の命題の逆は成立するとは限りません。つまり、クーン・タッカー条件を満たす点は最小点であるとは限りません。以下の例より明らかです。

例(線型不等式制約付き最大化問題)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =x^{3}
\end{equation*}を定めるものとします。\(f\)は微分可能です。以下の制約付き最小化問題
$$\begin{array}{cl}\min\limits_{x\in \mathbb{R} } & f\left( x\right) \\
s.t. & -x\leq 1 \\
& x\leq 1
\end{array}$$について考えます。\begin{eqnarray*}
g_{1}\left( x\right) &=&-x-1 \\
g_{2}\left( x\right) &=&x-1
\end{eqnarray*}です。点\(0\)において、\begin{equation*}f^{\prime }\left( 0\right) -\lambda _{1}\cdot g_{1}^{\prime }\left( 0\right)
-\lambda _{2}\cdot g_{2}^{\prime }\left( 0\right) =0
\end{equation*}すなわち、\begin{equation*}
\lambda _{1}-\lambda _{2}=0
\end{equation*}となるため、\begin{equation*}
\lambda _{1}=\lambda _{2}=0
\end{equation*}のもとで1階の条件が満たされます。相補スラック条件も明らかに成立します。したがって、点\(0\)はクーン・タッカー条件を満たします。ただ、\(f\)は狭義単調増加関数であるため最大点は\(1\)であり、点\(0\)は最小点ではありません。

先の命題は\(f\)の定義域の内点が最小点であるための必要条件を与えており、内点ではない点、すなわち境界点については何も語っていません。\(f\)の定義域が境界点を含む場合、境界点が最小点になる状況は起こり得ます。以下の例より明らかです。

例(線型不等式制約付き最大化問題)
関数\(f:\mathbb{R} \supset \left[ -1,1\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ -1,1\right] \)に対して、\begin{equation*}f\left( x\right) =x^{3}
\end{equation*}を定めるものとします。\(f\)は微分可能です。以下の制約付き最小化問題
$$\begin{array}{cl}\min\limits_{x\in \mathbb{R} } & f\left( x\right) \\
s.t. & -x\leq \frac{1}{2}
\end{array}$$について考えます。\(f\)は狭義単調増加関数であるため最大点は\(1\)ですが、これは\(f\)の定義域\(\left[ -1,1\right] \)の境界点です。

以上を踏まえると、線型不等式制約条件のもとでの関数の最大点を求めるためには以下の手順にしたがえばよいということになります。

  1. 最大点が存在することを確認する。その際、最大値・最小値の定理などを利用する。
  2. 関数の定義域の内点であるとともにクーン・タッカー条件を満たす点をすべて特定する。
  3. 関数の定義域の要素であるような境界点であるとともに制約条件を満たす点をすべて特定する。
  4. 以上のすべての点の中でも関数の値を最大化する点が最大点である。

 

ラグランジュの未定乗数法

クーン・タッカー条件を満たす点を特定する作業は煩雑になりがちです。このような問題を解消するのがラグランジュの未定乗数法です。

関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$を構成します。ただし、関数\(g_{i}:\mathbb{R} ^{2}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}です。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。このとき、それぞれの\(\left( x,\lambda _{1},\cdots ,\lambda_{m}\right) \in X\times \mathbb{R} ^{m}\)に対して、\begin{equation*}L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right) =f\left( x\right)
+\sum_{i=1}^{m}\left[ \lambda _{i}\cdot g_{i}\left( x\right) \right] \end{equation*}を定める関数\(L:X\times \mathbb{R} ^{m}\rightarrow \mathbb{R} \)を定義し、これをラグランジュ関数(Lagrangian)と呼びます。

目的関数\(f\)が微分可能である場合にはラグランジュ関数\(L\)もまた微分可能であるため、\(L\)をそれぞれの変数\(x_{i}\ \left( i=1,\cdots ,n\right) \)に関して偏微分して\(0\)とおくと、\begin{eqnarray*}\forall i:\frac{\partial L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right)
}{\partial x_{i}}=0 &\Leftrightarrow &\forall i:\frac{\partial f\left(
x\right) }{\partial x_{i}}+\sum_{i=1}^{m}\left[ \lambda _{i}\cdot \frac{\partial g_{i}\left( x\right) }{\partial x_{i}}\right] =0\quad \because L\text{の定義} \\
&\Leftrightarrow &\nabla f\left( x\right) =\sum_{i=1}^{m}\left[ \lambda
_{i}\cdot \nabla g_{i}\left( x\right) \right] \end{eqnarray*}すなわち、\begin{equation}
\forall i:\frac{\partial L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right)
}{\partial x_{i}}=0\Leftrightarrow \nabla f\left( x\right) =\sum_{i=1}^{m}\left[ \lambda _{i}\cdot \nabla g_{i}\left( x\right) \right] \quad \cdots (1)
\end{equation}を得ます。\(L\)をそれぞれの変数\(\lambda _{i}\ \left( i=1,\cdots ,n\right) \)に関して偏微分し、得られた結果と\(\lambda _{i}\)の積を\(0\)とおくと、\begin{equation}\forall i:\lambda _{i}\frac{\partial L\left( x,\lambda _{1},\cdots ,\lambda
_{m}\right) }{\partial \lambda _{i}}=0\Leftrightarrow \forall i:\lambda
_{i}\cdot g_{i}\left( x\right) =0 \quad \cdots (2)
\end{equation}を得ます。また、\begin{equation}
\forall i:\frac{\partial L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right)
}{\partial \lambda _{i}}\leq 0\Leftrightarrow \forall i:g_{i}\left( x\right)
\leq 0 \quad \cdots (3)
\end{equation}を得ます。\(\left( 1\right) ,\left( 2\right),\left( 3\right) \)より、最小点\(x^{\ast }\)が存在する場合には、クーン・タッカー条件を、\begin{eqnarray*}&&\left( a\right) \ \frac{\partial L\left( x^{\ast },\lambda _{1},\cdots
,\lambda _{m}\right) }{\partial x_{i}}=0\quad \left( i=1,\cdots ,n\right) \\
&&\left( b\right) \ \lambda _{i}\frac{\partial L\left( x,\lambda _{1},\cdots
,\lambda _{m}\right) }{\partial \lambda _{i}}=0\quad \left( i=1,\cdots
,m\right) \\
&&\left( c\right) \ \frac{\partial L\left( x,\lambda _{1},\cdots ,\lambda
_{m}\right) }{\partial \lambda _{i}}\leq 0\quad \left( i=1,\cdots ,m\right)
\\
&&\left( d\right) \ \lambda _{i}\geq 0\quad \left( i=1,\cdots ,m\right)
\end{eqnarray*}と言い換えることができます。つまり、最小化問題の解が存在する場合、ラグランジュ関数を構成した上で以上の4つの条件を満たす点\(x^{\ast }\)を特定すれば、その点はクーン・タッカー条件を満たすことが保証されるということです。したがって、その点は最小化問題の解の候補になります。これをラグランジュの未定乗数法(method of Lagrange multipler)と呼びます。

例(ラグランジュの未定乗数法)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最大化問題
$$\begin{array}{cl}\max\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$を構成します。ただし、関数\(g_{i}:\mathbb{R} ^{2}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}です。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。これは以下の最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & -f\left( x\right) \\
s.t. & g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \leq 0
\end{array}$$へと言い換え可能であるため、ラグランジュ関数を、\begin{equation*}
L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right) =-f\left( x\right)
+\sum_{i=1}^{m}\left[ \lambda _{i}\cdot g_{i}\left( x\right) \right] \end{equation*}と定義することになります。

例(ラグランジュの未定乗数法)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)から最大化問題問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & g_{1}\left( x\right) \geq 0 \\
& \quad \vdots \\
& g_{m}\left( x\right) \geq 0
\end{array}$$を構成します。ただし、関数\(g_{i}:\mathbb{R} ^{2}\rightarrow \mathbb{R} \ \left( i=1,\cdots ,m\right) \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値は、\begin{equation*}g_{i}\left( x\right) =a_{i}\cdot x-c_{i}
\end{equation*}です。\(a_{i}\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} \)かつ\(c_{i}\in \mathbb{R} \)です。本来の最小化問題とは異なり、制約条件\(g_{i}\left( x\right) \geq 0\)の不等号の向きが逆になっている点に注意してください。ただ、これは以下の最小化問題
$$\begin{array}{cl}\min\limits_{x\in X} & f\left( x\right) \\
s.t. & -g_{1}\left( x\right) \leq 0 \\
& \quad \vdots \\
& -g_{m}\left( x\right) \leq 0
\end{array}$$へと言い換え可能であるため、ラグランジュ関数を、\begin{equation*}
L\left( x,\lambda _{1},\cdots ,\lambda _{m}\right) =f\left( x\right)
-\sum_{i=1}^{m}\left[ \lambda _{i}\cdot g_{i}\left( x\right) \right] \end{equation*}と定義することになります。

 

演習問題

問題(線型不等式制約付き最適化問題)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x_{1},x_{2}\right)\in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x_{1},x_{2}\right) =-\left( x_{1}^{2}+2x_{2}^{2}\right)
\end{equation*}を定めるものとします。以下の最大化問題

$$\begin{array}{cl}\max\limits_{\left( x_{1}x_{2}\right) \in \mathbb{R} ^{2}} & f\left( x_{1},x_{2}\right) \\
s.t. & x_{1}+x_{2}\leq 4 \\
& x_{1}\geq 0 \\
& x_{2}\geq 0
\end{array}$$を構成します。この問題の最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

プレミアム会員専用コンテンツです
ログイン】【会員登録

問題(線型不等式制約付き最適化問題)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x_{1},x_{2}\right)\in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x_{1},x_{2}\right) =4x_{1}+3x_{2}
\end{equation*}を定めるものとします。以下の最大化問題

$$\begin{array}{cl}\max\limits_{\left( x_{1}x_{2}\right) \in \mathbb{R} ^{2}} & f\left( x_{1},x_{2}\right) \\
s.t. & 2x_{1}+x_{2}\leq 10 \\
& x_{1}\geq 0 \\
& x_{2}\geq 0
\end{array}$$を構成します。この問題の最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

プレミアム会員専用コンテンツです
ログイン】【会員登録

Share on twitter
Twitterで共有
Share on email
メールで共有
DISCUSSION

質問とコメント

プレミアム会員専用コンテンツです
ログイン】【会員登録

RELATED KNOWLEDGE

関連知識

1階の必要条件
1変数関数の最適化のための1階の必要条件

関数が定義域において局所最適解(極大点・極小点)を持つための1階の必要条件を明らかにするとともに、関数の大域的最適解(最小点・最大点)を具体的に求める方法について解説します。

2階の必要条件
1変数凸関数・凹関数の無制約最適化

1変数の凸関数を目的関数とする制約条件のない最小化問題や、1変数の凹関数を目的関数とする制約条件のない最大化問題を解く方法を解説します。

最大値・最小値
多変数関数の大域的最適解

多変数関数の値を最大化するような点が定義域上に存在する場合、そのような点を最大点や大域的最大点と呼びます。また、多変数関数が最大点に対して定める値を最大値や大域的最大値と呼びます。

最大値・最小値
多変数関数の局所最適解

多変数関数の値を最大化するような点が定義域上に存在しない場合でも、変数がとり得る値を限定することにより、その範囲内において関数の値を最大化するような点が存在する状況は起こり得ます。そのような点を極大点や局所的最大点と呼びます。また、関数が極大点に対して定める値を極大値や大域的最大値と呼びます。

1階の必要条件
多変数関数の最適化のための1階の必要条件

多変数関数が定義域において局所最適解(極大点・極小点)を持つための1階の必要条件を明らかにするとともに、関数の大域的最適解(最小点・最大点)を具体的に求める方法について解説します。

凸関数・凹関数
多変数凸関数・凹関数の無制約最適化

多変数の凸関数を目的関数とする制約条件のない最小化問題や、多変数の凹関数を目的関数とする制約条件のない最大化問題を解く方法を解説します。

クーン・タッカーの定理
効用最大化問題の解法

クーン・タッカーの定理を用いて、効用最大化問題の解が満たす条件を明らかにします。さらに、ラグランジュの未定乗数法を使って効用最大化問題の解を求める方法を解説します。

1生産物モデル
1生産物モデルにおける利潤最大化問題の解法

N生産要素1生産物モデルにおいてクーン・タッカー条件を満たす消費ベクトルが利潤最大化問題の解であるための条件を明らかにした上で、利潤最大化問題の解を求める手法について解説します。