WIIS

関数の最適化

多変数関数の局所最適解

目次

関連知識

Mailで保存
Xで共有

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

復習になりますが、多変数関数\(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\)の極小点です(演習問題)。

 

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

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

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

関連知識

Mailで保存
Xで共有

質問とコメント

プレミアム会員専用コンテンツです

会員登録

有料のプレミアム会員であれば、質問やコメントの投稿と閲覧、プレミアムコンテンツ(命題の証明や演習問題とその解答)へのアクセスなどが可能になります。

ワイズのユーザーは年齢・性別・学歴・社会的立場などとは関係なく「学ぶ人」として対等であり、お互いを人格として尊重することが求められます。ユーザーが快適かつ安心して「学ぶ」ことに集中できる環境を整備するため、広告やスパム投稿、他のユーザーを貶めたり威圧する発言、学んでいる内容とは関係のない不毛な議論などはブロックすることになっています。詳細はガイドラインをご覧ください。

誤字脱字、リンク切れ、内容の誤りを発見した場合にはコメントに投稿するのではなく、以下のフォームからご連絡をお願い致します。

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

関数の最適化