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

多変数関数の局所最適解

目次

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

多変数関数の極大点と極大値

復習になりますが、多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、\(f\left( x\right) \)の値を最大化するような点\(a\)が\(f\)の定義域\(X\)上に存在する場合には、すなわち、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の最大点と呼び、\(f\)が最大点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最大値と呼びます。つまり、関数\(f\)の最大点とは、変数\(x\)が定義域\(X\)上のすべての値を取り得ることを認めた場合に、\(f\left( x\right) \)の値を最大化するような\(X\)上の点\(x\)に相当します。

一方、変数\(x\)がとり得る値を\(X\)の部分集合に制限した上で、その限定された範囲の中で\(f\left( x\right) \)の値を最大化するような最大点\(x\)を考えることもできます。

関数\(f\)の定義域上の点\(a\in X\)が与えられたとき、変数\(x\)がとり得る値の範囲を点\(a\)の周辺に限定し、その範囲内において\(f\left( x\right) \)の値が点\(a\)のもとで最大化されるのであれば、点\(a\)は\(f\)の局所的な最大点であると言えます。そのような場合、点\(a\)は関数\(f\)の極大点(maximal point)であると言います。

具体的には、関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)および定義域上の点\(a\in X\)が与えられたとき、点\(a\)が中心で半径が\(\varepsilon >0\)であるような近傍\(N_{\varepsilon }\left( a\right) \)をとります。さらに、これと関数\(f\)の定義域\(X\)の共通部分\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}をとります(理由は後述します)。\(a\in X\)かつ\(a\in N_{\varepsilon }\left( a\right) \)および共通部分の定義より\(a\in N_{\varepsilon }\left( a\right) \cap X\)であることに注意してください。十分小さい半径\(\varepsilon \)を選んだ上で、変数\(x\)がとり得る範囲を\(N_{\varepsilon }\left( a\right) \cap X\)に制限したとき、\(f\left( x\right) \)の値が\(a\)のもとで最大化されるのであれば、すなわち、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の極大点(maximal point)や局所的最大点(local maximum point)もしくは相対的最大点(relative maximum point)などと呼びます。また、\(f\)の極大点\(a\)が存在する場合、\(f\)が点\(a\)に対して定める値\(f\left(a\right) \)を\(f\)の極大値(maximal value)や局所的最大値(local maximum value)もしくは相対的最大値(relativemaximum value)などと呼びます。

関数の極大点の定義において、変数\(x\)がとり得る値の範囲として点の近傍\(N_{\varepsilon }\left( a\right) \)を採用するのではなく、それと関数\(f\)の定義域\(X\)の共通部分である\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}を採用するのはなぜでしょうか。その理由を理解するために、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\begin{equation}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right)
:f\left( a\right) \geq f\left( x\right) \quad \cdots (1)
\end{equation}を採用した場合に何が起こるかを確認します。例えば、問題としている点\(a\)が関数の定義域の境界点である場合には、そもそも点\(a\)を中心とする開近傍\(N_{\varepsilon }\left( a\right) \)のすべての点において\(f\)が定義されていることにならないため、\(\left(1\right) \)は意味をなさなくなってします。一方、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \geq f\left( x\right)
\end{equation*}を採用すれば、関数\(f\)が\(N_{\varepsilon }\left( a\right) \cap X\)上のすべての点において定義されていることが保証されるため、点\(a\)が局所的な最大点であることを検討できます。

例(関数の極大点と極大値)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{2}-y^{2}
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

図:関数の極大点
図:関数の極大点

点\(\left( 0,0\right) \)はこの関数\(f\)の極大点です。実際、\begin{equation*}f\left( 0,0\right) =-0^{2}-0^{2}=0
\end{equation*}である一方で、ゼロベクトルに限りなく近い\(\left( h_{1},h_{2}\right) \in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)を任意に選んだとき、\begin{equation*}f\left( h_{1},h_{2}\right) =-h_{1}^{2}-h_{2}^{2}<0
\end{equation*}となるため、\begin{equation*}
f\left( 0,0\right) \geq f\left( h_{1},h_{2}\right)
\end{equation*}が成り立つからです。

関数の極大点は存在するとは限りません。以下の例より明らかです。

例(関数の極大点と極大値)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x+y
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

図:関数の極大点
図:関数の極大点

この関数\(f\)は極大点を持ちません。実際、点\(\left( a,b\right) \in \mathbb{R} ^{2}\)を任意に選んだとき、\begin{equation*}f\left( a,b\right) =a+b
\end{equation*}である一方で、ゼロベクトルに限りなく近い\(\left( h_{1},h_{2}\right) \in \mathbb{R} _{+}^{2}\backslash \left\{ \left( 0,0\right) \right\} \)を任意に選んだとき、\begin{equation*}f\left( a+h_{1},b+h_{2}\right) =a+b+h_{1}+h_{2}>0
\end{equation*}となるため、\begin{equation*}
f\left( a+h_{1},b+h_{2}\right) >f\left( a,b\right)
\end{equation*}が成り立つからです。

関数の最大点は極大点でもあります。

命題(関数の最大点は極大点)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(a\in X\)が\(X\)における\(f\)の最大点であるならば、点\(a\)は\(f\)の極大点でもある。
証明

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

上の命題の逆は成立しません。つまり、関数の極大点は最大点であるとは限りません。また、関数の最大点は存在しないものの、極大点は存在するような状況は起こり得ます。以下の例より明らかです。

例(最大点が存在せず極大点が存在する場合)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{3}-y^{3}+3xy
\end{equation*}を定めるものとします。この関数\(f\)のグラフが下図で与えられています。

図:最大点は存在しないが極大点は存在するケース
図:最大点は存在しないが極大点は存在するケース

この関数\(f\)は定義域\(\mathbb{R} ^{2}\)上で最大点を持ちません。\(x\)と\(y\)を小さくすれば\(f\left( x,y\right) \)はいくらでも大きくなるからです。一方、点\(\left( 1,1\right) \)は\(f\)の極大点です(演習問題)。

 

多変数関数の極小点と極小値

復習になりますが、多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、\(f\left( x\right) \)の値を最小化するような点\(a\)が\(f\)の定義域\(X\)上に存在する場合には、すなわち、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \leq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の最小点と呼び、\(f\)が最小点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最小値と呼びます。つまり、関数\(f\)の最小点とは、変数\(x\)が定義域\(X\)上のすべての値を取り得ることを認めた場合に、\(f\left( x\right) \)の値を最小化するような\(X\)上の点\(x\)に相当します。

一方、変数\(x\)がとり得る値を\(X\)の部分集合に制限した上で、その限定された範囲の中で\(f\left( x\right) \)の値を最小化するような最大点\(x\)を考えることもできます。

関数\(f\)の定義域上の点\(a\in X\)が与えられたとき、変数\(x\)がとり得る値の範囲を点\(a\)の周辺に限定し、その範囲内において\(f\left( x\right) \)の値が点\(a\)のもとで最小化されるのであれば、点\(a\)は\(f\)の局所的な最小点であると言えます。そのような場合、点\(a\)は関数\(f\)の極小点(minimal point)であると言います。

具体的には、関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)および定義域上の点\(a\in X\)が与えられたとき、点\(a\)が中心で半径が\(\varepsilon >0\)であるような近傍\(N_{\varepsilon }\left( a\right) \)をとります。さらに、これと関数\(f\)の定義域\(X\)の共通部分\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}をとります(理由は後述します)。\(a\in X\)かつ\(a\in N_{\varepsilon }\left( a\right) \)および共通部分の定義より\(a\in N_{\varepsilon }\left( a\right) \cap X\)であることに注意してください。十分小さい半径\(\varepsilon \)を選んだ上で、変数\(x\)がとり得る範囲を\(N_{\varepsilon }\left( a\right) \cap X\)に制限したとき、\(f\left( x\right) \)の値が\(a\)のもとで最小化されるのであれば、すなわち、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \leq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の極小点(minimal point)や局所的最小点(local minimum point)もしくは相対的最小点(relative minimum point)などと呼びます。また、\(f\)の極小点\(a\)が存在する場合、\(f\)が点\(a\)に対して定める値\(f\left(a\right) \)を\(f\)の極小値(minimal value)や局所的最小値(local minimum value)もしくは相対的最小値(relativeminimum value)などと呼びます。

関数の極小点の定義において、変数\(x\)がとり得る値の範囲として点の近傍\(N_{\varepsilon }\left( a\right) \)を採用するのではなく、それと関数\(f\)の定義域\(X\)の共通部分である\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}を採用するのはなぜでしょうか。その理由を理解するために、点\(a\in X\)が関数\(f\)の極小点であることの定義として、\begin{equation}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right)
:f\left( a\right) \leq f\left( x\right) \quad \cdots (1)
\end{equation}を採用した場合に何が起こるかを確認します。例えば、問題としている点\(a\)が関数の定義域の境界点である場合には、そもそも点\(a\)を中心とする開近傍\(N_{\varepsilon }\left( a\right) \)のすべての点において\(f\)が定義されていることにならないため、\(\left(1\right) \)は意味をなさなくなってします。一方、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \leq f\left( x\right)
\end{equation*}を採用すれば、関数\(f\)が\(N_{\varepsilon }\left( a\right) \cap X\)上のすべての点において定義されていることが保証されるため、点\(a\)が局所的な最大点であることを検討できます。

例(関数の極小点と極小値)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x^{2}+y^{2}
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

図:関数の極小点
図:関数の極小点

点\(\left( 0,0\right) \)はこの関数\(f\)の極小点です。実際、\begin{equation*}f\left( 0,0\right) =0^{2}+0^{2}=0
\end{equation*}である一方で、ゼロベクトルに限りなく近い\(\left( h_{1},h_{2}\right) \in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)を任意に選んだとき、\begin{equation*}f\left( h_{1},h_{2}\right) =h_{1}^{2}+h_{2}^{2}>0
\end{equation*}となるため、\begin{equation*}
f\left( 0,0\right) \leq f\left( h_{1},h_{2}\right)
\end{equation*}が成り立つからです。

関数の極小点は存在するとは限りません。以下の例より明らかです。

例(関数の極小点と極小値)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x+y
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

図:関数の極小点
図:関数の極小点

この関数\(f\)は極小点を持ちません。実際、点\(\left( a,b\right) \in \mathbb{R} ^{2}\)を任意に選んだとき、\begin{equation*}f\left( a,b\right) =a+b
\end{equation*}である一方で、ゼロベクトルに限りなく近い\(\left( h_{1},h_{2}\right) \in \mathbb{R} _{-}^{2}\backslash \left\{ \left( 0,0\right) \right\} \)を任意に選んだとき、\begin{equation*}f\left( a+h_{1},b+h_{2}\right) =a+b+h_{1}+h_{2}<0
\end{equation*}となるため、\begin{equation*}
f\left( a+h_{1},b+h_{2}\right) <f\left( a,b\right)
\end{equation*}が成り立つからです。

関数の最小点は極小点でもあります。

命題(関数の最小点は極小点)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(a\in X\)が\(X\)における\(f\)の最小点であるならば、点\(a\)は\(f\)の極小点でもある。
証明

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

上の命題の逆は成立しません。つまり、関数の極小点は最小点であるとは限りません。また、関数の最小点は存在しないものの、極小点は存在するような状況は起こり得ます。以下の例より明らかです。

例(最小点が存在せず極小点が存在する場合)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x^{3}+y^{3}-3xy
\end{equation*}を定めるものとします。この関数\(f\)のグラフが下図で与えられています。

図:最小点は存在しないが極小点は存在するケース
図:最小点は存在しないが極小点は存在するケース

この関数\(f\)は定義域\(\mathbb{R} ^{2}\)上で最小点を持ちません。\(x\)と\(y\)を小さくすれば\(f\left( x,y\right) \)はいくらでも小さくなるからです。一方、点\(\left( 1,1\right) \)は\(f\)の極小点です(演習問題)。

 

関数が極大値や極小値をとるための条件

関数が最大点や最小点を持たない場合においても、極大点や極小点が存在する状況は起こり得ることが明らかになりました。同時に、関数が最大点や最小点を持つ場合、それは必ず極大点や極小点であることが保証されます。したがって、関数の最大点や最小点を探す際には、その候補としてまずは極大点や極小点を特定するアプローチが有効です。微分可能な関数を対象とした場合、定義域の点が極大点や極小点であるための条件が知られています。以降ではそのような条件について学びます。

次回は多変数関数の局所最適解について解説します。

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

質問とコメント

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

RELATED KNOWLEDGE

関連知識

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

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

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

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

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

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

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

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

最大・最小
実数集合の最大値・最小値

実数集合 R の空でない部分集合 A について、そのある要素 a が A の任意の実数以上ならば、a を A の最大値と呼びます。また、a が A の任意の実数以下ならば、a を A の最小値と呼びます。

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

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

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

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

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

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