「《大域的最適化》」の版間の差分

提供: ORWiki
ナビゲーションに移動 検索に移動
(新しいページ: ''''【たいいきてきさいてきか (global optimization)】'''  ユークリッド空間<math>\mathbf{R}^n\, </math>上で定義された連続な実数値関数<math>f...')
 
 
(3人の利用者による、間の3版が非表示)
4行目: 4行目:
  
  
:<math>\begin{array}{ll}
+
<table align="center">
 +
<tr>
 +
<td>
 +
<math>\begin{array}{ll}
 
\mbox{min.} & f (\boldsymbol{x})\\
 
\mbox{min.} & f (\boldsymbol{x})\\
\mbox{s. t.} & \boldsymbol{x} := (x_1, \ldots, x_n) \in D,
+
\mbox{s. t.} & \boldsymbol{x} := (x_1, \ldots, x_n) \in D
\end{array}\, </math>
+
\end{array}\, </math></td>
 +
</tr>
 +
</table>
  
  
[[大域的最適解]],つまり
+
に対して,その[[大域的最適解]],つまり
  
  
:<math>f(\boldsymbol{x}^*) \leq f(\boldsymbol{x}), \quad \forall\, \boldsymbol{x} \in D,\, </math>
+
<table align="center">
 +
<tr>
 +
<td>
 +
<math>f(\boldsymbol{x}^*) \leq f(\boldsymbol{x}), \quad \forall\, \boldsymbol{x} \in D,\, </math>
 +
</td>
 +
</tr>
 +
</table>
  
  
を満足する<math>\boldsymbol{x}^* \in D\, </math>を求める方法を[[大域的最適化]]という.目的関数<math>f\, </math>と実行可能集合<math>D\, </math>が共に凸性を満たす[[凸計画問題]]であれば,局所的な最適化によって<math>\boldsymbol{x}^*\, </math>を求めることができる.また,凸性を満たさなくとも,[[分数計画問題]](fractional programming problem)や[[幾何計画問題]](geometric programming problem)の一部は任意の[[局所的最適解]]で大域的にも最適となる.したがって,大域的最適化が本質的な意味をもつのは,値が異なる複数の局所的最適解をもつ[[非凸計画問題]]に対してであり,これを多極値大域的最適化問題(multiextremal global optimization problem)と呼ぶ.例えば,<math>f\, </math>が凹関数で<math>D\, </math>が凸多面体の凹最小化問題(concave minimization problem)の場合,局所的最適解は一般に<math>D\, </math>の複数の端点に現われる.しかし,端点の数は膨大であり,その中から大域的に最適なものを見つけだすのは容易な作業でない.実際,この単純な例でさえ最悪計算量の上では[[NP困難]]であることが知られている.そのため,現段階で一般の多極値大域的最適化問題を解決する有効な手段はなく,[[モンテカルロ法]](Monte Carlo method)などのヒューリスティクスが唯一現実的なアプローチとなっている [2].
+
を満足する<math>\boldsymbol{x}^* \in D\, </math>を求める方法を[[大域的最適化]]という.目的関数<math>f\, </math>と実行可能集合<math>D\, </math>が共に凸性を満たす[[凸計画問題]]であれば,局所的な最適化によって<math>\boldsymbol{x}^*\, </math>を求めることができる.また,凸性を満たさなくとも,[[分数計画問題]](fractional programming problem)や[[幾何計画問題]](geometric programming problem)の一部は任意の[[局所的最適解]]で大域的にも最適となる.したがって,大域的最適化が本質的な意味をもつのは,目的関数値が異なる複数の局所的最適解をもつ[[非凸計画問題]]に対してであり,これを多極値大域的最適化問題(multiextremal global optimization problem)と呼ぶ.例えば,<math>f\, </math>が凹関数で<math>D\, </math>が凸多面体の凹最小化問題(concave minimization problem)の場合,局所的最適解は一般に<math>D\, </math>の複数の端点に現われる.しかし,端点の数は膨大であり,その中から大域的に最適なものを見つけだすのは容易な作業でない.実際,この単純な例でさえ最悪計算量の上では[[NP困難]]であることが知られている.そのため,現段階で一般の多極値大域的最適化問題を解決する有効な手段はなく,[[モンテカルロ法]](Monte Carlo method)などのヒューリスティクスが唯一現実的なアプローチとなっている [2].
  
 
 このように困難な問題クラスではあるが,個々の問題の中には,その構造を利用することで現実的な計算時間のうちに大域的最適解の求められるものも少なくない [1].その代表例が,実は上にも述べた凹最小化問題である:
 
 このように困難な問題クラスではあるが,個々の問題の中には,その構造を利用することで現実的な計算時間のうちに大域的最適解の求められるものも少なくない [1].その代表例が,実は上にも述べた凹最小化問題である:
  
  
:<math>\begin{array}{ll}
+
<table align="center">
 +
<tr>
 +
<td><math>\begin{array}{ll}
 
\mbox{min.} & f(\boldsymbol{x}) \\
 
\mbox{min.} & f(\boldsymbol{x}) \\
 
\mbox{s. t.} & \boldsymbol{x} \in D := \{\boldsymbol{x} \in \mathbf{R}^n \mid \mbox{A} \boldsymbol{x} \geq \boldsymbol{b}\}.
 
\mbox{s. t.} & \boldsymbol{x} \in D := \{\boldsymbol{x} \in \mathbf{R}^n \mid \mbox{A} \boldsymbol{x} \geq \boldsymbol{b}\}.
 
\end{array}\, </math>
 
\end{array}\, </math>
 +
</td>
 +
</tr>
 +
</table>
  
  
32行目: 48行目:
  
  
:<math>V := \{\boldsymbol{x}' + \theta_i \boldsymbol{u}^i \mid \theta_i \geq 0,\;  i = 1, \ldots, n\} \cap  
+
<table align="center">
\{\boldsymbol{x} \in \mathbf{R}^n \mid f(\boldsymbol{x}) = f^\circ\}\, </math>
+
<tr>
 +
<td><math>V := \{\boldsymbol{x}' + \theta_i \boldsymbol{u}^i \mid \theta_i \geq 0,\;  i = 1, \ldots, n\} \cap  
 +
\{\boldsymbol{x} \in \mathbf{R}^n \mid f(\boldsymbol{x}) = f^\circ\}\, </math></td>
 +
</tr>
 +
</table>
  
  
 
を定義する.端点<math>\boldsymbol{x}'\, </math>における<math>f\, </math>の値が<math>f^\circ\, </math>よりも悪ければ,<math>V\, </math>は丁度<math>n\, </math>個の点から構成されるが,それらを通る<math>n\, </math>次元超平面によって<math>\boldsymbol{x}'\, </math>と一緒に見込のない実行可能解も<math>D\, </math>から切除する.目的関数<math>f\, </math>が2次の凹関数である[[双線形計画問題]] (bilinear programming problem)に対しては,より大きな領域を切除する方法も考案されている.
 
を定義する.端点<math>\boldsymbol{x}'\, </math>における<math>f\, </math>の値が<math>f^\circ\, </math>よりも悪ければ,<math>V\, </math>は丁度<math>n\, </math>個の点から構成されるが,それらを通る<math>n\, </math>次元超平面によって<math>\boldsymbol{x}'\, </math>と一緒に見込のない実行可能解も<math>D\, </math>から切除する.目的関数<math>f\, </math>が2次の凹関数である[[双線形計画問題]] (bilinear programming problem)に対しては,より大きな領域を切除する方法も考案されている.
  
 外部近似法も超平面による切除を行うが,凹性カット法と違って1つの実行可能解も失わない.まず,<math>D\, </math>を<math>n\, </math>次元単体や矩形などの単純な凸多面体<math>S \supseteq D\, </math>で近似し,<math>f\, </math>を<math>S\, </math>上で最小化する.これも凹最小化問題であるが,<math>S\, </math>は端点の数が少ないので,それらの列挙で最小点<math>\boldsymbol{x}'\, </math>は比較的容易に求められる.この<math>\boldsymbol{x}'\, </math>が満たさない<math>D\, </math>の制約式の1つ<math>\boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\, </math>を選び,<math>S\, </math>を
+
 外部近似法も超平面による切除を行うが,凹性カット法と違って実行可能解は1つも失わない.まず,<math>D\, </math>を<math>n\, </math>次元単体や矩形などの単純な凸多面体<math>S \supseteq D\, </math>で近似し,<math>f\, </math>を<math>S\, </math>上で最小化する.これも凹最小化問題であるが,<math>S\, </math>は端点の数が少ないので,それらの列挙で最小点<math>\boldsymbol{x}'\, </math>は比較的容易に求められる.この<math>\boldsymbol{x}'\, </math>が満たさない<math>D\, </math>の制約式の1つ<math>\boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\, </math>を選び,<math>S\, </math>を
  
  
:<math>S' := S \cap \{\boldsymbol{x} \in \mathbf{R}^n \mid \boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\}\, </math>
+
<table align="center">
 +
<tr>
 +
<td><math>S' := S \cap \{\boldsymbol{x} \in \mathbf{R}^n \mid \boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\}\, </math></td>
 +
</tr>
 +
</table>
  
  
 
に更新して<math>\boldsymbol{x}'\, </math>と共に実行不可能な領域を切除する.実行可能集合<math>D\, </math>が<math>S\, </math>の部分集合なので<math>f(\boldsymbol{x}')\, </math>は大域的最適値の下界値を与えるが,以上の操作を繰り返して <math>\boldsymbol{x}' \in D\, </math>となれば,<math>\boldsymbol{x}'\, </math>が大域的最適解である.
 
に更新して<math>\boldsymbol{x}'\, </math>と共に実行不可能な領域を切除する.実行可能集合<math>D\, </math>が<math>S\, </math>の部分集合なので<math>f(\boldsymbol{x}')\, </math>は大域的最適値の下界値を与えるが,以上の操作を繰り返して <math>\boldsymbol{x}' \in D\, </math>となれば,<math>\boldsymbol{x}'\, </math>が大域的最適解である.
  
 分枝限定法には多くのバリエーションが存在するが,最も効力を発揮するのは目的関数<math>f\, </math>が分離可能な場合である:
+
 分枝限定法には多くのバリエーションが存在するが,最も効力を発揮するのは目的関数<math>f\, </math>が1変数凹関数<math>f_i\, </math>の和に分離可能な場合である:
  
  
:<math>f(\boldsymbol{x}) := \sum_{j=1}^n f_j(x_j).\, </math>
+
<table align="center">
 +
<tr>
 +
<td><math>f(\boldsymbol{x}) := \sum_{j=1}^n f_j(x_j).\, </math></td>
 +
</tr>
 +
</table>
  
  
ただし,<math>f_j\, </math>はすべて凹関数である.実行可能集合<math>D\, </math>を含む矩形<math>M := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j \leq x_j \leq u_j,\; j = 1, \ldots, n\}\, </math>を定義し,これを複数の小さな矩形
+
実行可能集合<math>D\, </math>を含む矩形<math>M := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j \leq x_j \leq u_j,\; j = 1, \ldots, n\}\, </math>を定義し,これを複数の小さな矩形
  
  
:<math>M^k := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j^k \leq x_j \leq u_j^k\}, \quad
+
<table align="center">
 +
<tr>
 +
<td>
 +
<math>M^k := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j^k \leq x_j \leq u_j^k\}, \quad
 
k = 1, \ldots, K,\, </math>
 
k = 1, \ldots, K,\, </math>
 +
</td>
 +
</tr>
 +
</table>
  
  
70行目: 104行目:
  
  
:<math>g_j(x_j) := \frac{f(u_j^k) - f(l_j^k)}{u_j^k - l_j^k} x_j +
+
<table align="center">
 +
<tr>
 +
<td>
 +
<math>g_j(x_j) := \frac{f(u_j^k) - f(l_j^k)}{u_j^k - l_j^k} x_j +
 
\frac{u_j^k f(l_j^k) - l_j^k f(u_j^k)}{u_j^k - l_j^k},
 
\frac{u_j^k f(l_j^k) - l_j^k f(u_j^k)}{u_j^k - l_j^k},
\quad j = 1, \ldots, n,\, </math>
+
\quad j = 1, \ldots, n,\, </math></td>
 +
</tr>
 +
</table>
  
  
を定義し,その和<math>g(\boldsymbol{x}) := \sum_{j=1}^n g_j(x_j)\, </math>の<math>D \cap M^k\, </math>上における最小値が用いられる.関数<math>g\, </math>は<math>M^k\, </math>上における<math>f\, </math>の最も大きな下界値を与える凸関数で,凸包絡関数 (convex envelope function)と呼ばれる.しかし,アフィン関数であるので[[単体法]]や[[内点法]]を使って容易に最小値<math>f'\, </math>を計算することができる.
+
を定義し,その和<math>\textstyle g(\boldsymbol{x}) := \sum_{j=1}^n g_j(x_j)\, </math>の<math>D \cap M^k\, </math>上における最小値が用いられる.関数<math>g\, </math>は<math>M^k\, </math>上における<math>f\, </math>の最も大きな下界値を与える凸関数で,凸包絡関数 (convex envelope function)と呼ばれる.しかし,アフィン関数であるので[[単体法]]や[[内点法]]を使って容易に最小値<math>f'\, </math>を計算することができる.
  
 
 [[DC計画問題]](d.c. programming problem)や[[逆凸計画問題]](reverse convex programming problem)などのより一般的な多極値大域的最適化問題も,凹最小化問題を逐次解くことで処理することができる [2, 3].
 
 [[DC計画問題]](d.c. programming problem)や[[逆凸計画問題]](reverse convex programming problem)などのより一般的な多極値大域的最適化問題も,凹最小化問題を逐次解くことで処理することができる [2, 3].
89行目: 128行目:
  
 
[3] R. Horst and H. Tuy, ''Global Optimization - Deterministic Approaches,'' 3rd ed., Springer-Verlag, 1996.
 
[3] R. Horst and H. Tuy, ''Global Optimization - Deterministic Approaches,'' 3rd ed., Springer-Verlag, 1996.
 +
 +
 +
[[Category:非線形計画|たいいきてきさいてきか]]

2007年8月7日 (火) 01:47時点における最新版

【たいいきてきさいてきか (global optimization)】

 ユークリッド空間構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \mathbf{R}^n\, } 上で定義された連続な実数値関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, }目的関数とし,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \mathbf{R}^n\, } の閉部分集合構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, }実行可能集合とする最適化問題:


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{array}{ll} \mbox{min.} & f (\boldsymbol{x})\\ \mbox{s. t.} & \boldsymbol{x} := (x_1, \ldots, x_n) \in D \end{array}\, }


に対して,その大域的最適解,つまり


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f(\boldsymbol{x}^*) \leq f(\boldsymbol{x}), \quad \forall\, \boldsymbol{x} \in D,\, }


を満足する構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}^* \in D\, } を求める方法を大域的最適化という.目的関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } と実行可能集合が共に凸性を満たす凸計画問題であれば,局所的な最適化によってを求めることができる.また,凸性を満たさなくとも,分数計画問題(fractional programming problem)や幾何計画問題(geometric programming problem)の一部は任意の局所的最適解で大域的にも最適となる.したがって,大域的最適化が本質的な意味をもつのは,目的関数値が異なる複数の局所的最適解をもつ非凸計画問題に対してであり,これを多極値大域的最適化問題(multiextremal global optimization problem)と呼ぶ.例えば,が凹関数で構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } が凸多面体の凹最小化問題(concave minimization problem)の場合,局所的最適解は一般に構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } の複数の端点に現われる.しかし,端点の数は膨大であり,その中から大域的に最適なものを見つけだすのは容易な作業でない.実際,この単純な例でさえ最悪計算量の上ではNP困難であることが知られている.そのため,現段階で一般の多極値大域的最適化問題を解決する有効な手段はなく,モンテカルロ法(Monte Carlo method)などのヒューリスティクスが唯一現実的なアプローチとなっている [2].

 このように困難な問題クラスではあるが,個々の問題の中には,その構造を利用することで現実的な計算時間のうちに大域的最適解の求められるものも少なくない [1].その代表例が,実は上にも述べた凹最小化問題である:


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \begin{array}{ll} \mbox{min.} & f(\boldsymbol{x}) \\ \mbox{s. t.} & \boldsymbol{x} \in D := \{\boldsymbol{x} \in \mathbf{R}^n \mid \mbox{A} \boldsymbol{x} \geq \boldsymbol{b}\}. \end{array}\, }


ここで,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \mbox{A}\, }行列で構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle m\, } 次ベクトル,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } は凹関数(concave function),つまり構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle -f\, }凸関数である.この非凸計画問題を大域的に最適化するアルゴリズムとして,凹性カット法(concavity-cut method),外部近似法(outer approximation method),分枝限定法(branch-and-bound method)などがある [3].

 凹性カット法は,以下の操作を繰り返し,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } から大域的最適解以外の実行可能解をすべて除去しようとする方法である.局所的最適解を与える構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } の端点構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } を見つけ,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } から出る構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle n\, } 本の稜線ベクトル構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{u}^1, \ldots, \boldsymbol{u}^n\, } と,それまでに得られた最も小さな目的関数値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f^\circ\, } によって集合


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle V := \{\boldsymbol{x}' + \theta_i \boldsymbol{u}^i \mid \theta_i \geq 0,\; i = 1, \ldots, n\} \cap \{\boldsymbol{x} \in \mathbf{R}^n \mid f(\boldsymbol{x}) = f^\circ\}\, }


を定義する.端点構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } における構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } の値が構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f^\circ\, } よりも悪ければ,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle V\, } は丁度構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle n\, } 個の点から構成されるが,それらを通る構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle n\, } 次元超平面によって構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } と一緒に見込のない実行可能解も構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } から切除する.目的関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } が2次の凹関数である双線形計画問題 (bilinear programming problem)に対しては,より大きな領域を切除する方法も考案されている.

 外部近似法も超平面による切除を行うが,凹性カット法と違って実行可能解は1つも失わない.まず,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle n\, } 次元単体や矩形などの単純な凸多面体構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle S \supseteq D\, } で近似し,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle S\, } 上で最小化する.これも凹最小化問題であるが,は端点の数が少ないので,それらの列挙で最小点構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } は比較的容易に求められる.この構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } が満たさない構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } の制約式の1つ構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\, } を選び,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle S\, }


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle S' := S \cap \{\boldsymbol{x} \in \mathbf{R}^n \mid \boldsymbol{a}_i^{\top} \boldsymbol{x} \geq b_i\}\, }


に更新して構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } と共に実行不可能な領域を切除する.実行可能集合構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle S\, } の部分集合なので構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f(\boldsymbol{x}')\, } は大域的最適値の下界値を与えるが,以上の操作を繰り返して 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}' \in D\, } となれば,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \boldsymbol{x}'\, } が大域的最適解である.

 分枝限定法には多くのバリエーションが存在するが,最も効力を発揮するのは目的関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } が1変数凹関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f_i\, } の和に分離可能な場合である:


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f(\boldsymbol{x}) := \sum_{j=1}^n f_j(x_j).\, }


実行可能集合構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D\, } を含む矩形構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j \leq x_j \leq u_j,\; j = 1, \ldots, n\}\, } を定義し,これを複数の小さな矩形


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^k := \{\boldsymbol{x} \in \mathbf{R}^n \mid l_j^k \leq x_j \leq u_j^k\}, \quad k = 1, \ldots, K,\, }


に分割していく.基本となる操作は,組合せ最適化問題に使われる分枝限定法と同様で,まず 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^k\, } を選んで


限定操作 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D \cap M^k\, } 上における構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } の下界値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f'\, } を計算し,その値がそれまでに得られた最も小さな目的関数値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f^\circ\, } 以上ならば構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^k\, } を考察の対象から外す;

分枝操作 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f' < f^\circ\, } ならば,構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^k\, } を2つの矩形 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^{k_1}\, } , 構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^{k_2}\, } に分割する


を繰り返す.効率の鍵を握る下界値には,通常構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle (l_j^k, f_j(l_j^k))\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle (u_j^k, f_j(u_j^k))\, } を通るアフィン関数


構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle g_j(x_j) := \frac{f(u_j^k) - f(l_j^k)}{u_j^k - l_j^k} x_j + \frac{u_j^k f(l_j^k) - l_j^k f(u_j^k)}{u_j^k - l_j^k}, \quad j = 1, \ldots, n,\, }


を定義し,その和構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle \textstyle g(\boldsymbol{x}) := \sum_{j=1}^n g_j(x_j)\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle D \cap M^k\, } 上における最小値が用いられる.関数構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle g\, }構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle M^k\, } 上における構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f\, } の最も大きな下界値を与える凸関数で,凸包絡関数 (convex envelope function)と呼ばれる.しかし,アフィン関数であるので単体法内点法を使って容易に最小値構文解析に失敗 (MathML、ただし動作しない場合はSVGかPNGで代替(最新ブラウザーや補助ツールに推奨): サーバー「https://en.wikipedia.org/api/rest_v1/」から無効な応答 ("Math extension cannot connect to Restbase."):): {\displaystyle f'\, } を計算することができる.

 DC計画問題(d.c. programming problem)や逆凸計画問題(reverse convex programming problem)などのより一般的な多極値大域的最適化問題も,凹最小化問題を逐次解くことで処理することができる [2, 3].



参考文献

[1] H. Konno, P.T. Thach and H. Tuy, Optimization on Low Rank Nonconvex Structures, Kluwer Academic Publishers, 1997.

[2] R. Horst and P.M. Pardalos (eds.), Handbook of Global Optimization, Kluwer Academic Publishers, 1995.

[3] R. Horst and H. Tuy, Global Optimization - Deterministic Approaches, 3rd ed., Springer-Verlag, 1996.