Global Optimization Toolbox

主な機能

  • 最適化問題の定義と求解、および求解の進行状況の監視を行うための対話型ツール
  • 単一または複数の大域的最適解の探索に適した大域的探索法およびマルチスタート法ソルバー
  • 線形制約、非線形制約、および境界制約をサポートする遺伝的アルゴリズム法ソルバー
  • パレートフロントの識別に基づく多目的遺伝的アルゴリズム (線形制約や境界制約を含む)
  • 線形制約、非線形制約、および境界制約をサポートするパターン探索法ソルバー
  • 焼きなまし処理、温度スケジュール、および受け入れ基準を定義するオプションを使用してランダム探索を行う焼きなまし法ツール
  • マルチスタート法、遺伝的アルゴリズム法、およびパターン探索法のソルバーで並列処理をサポート
  • 遺伝的アルゴリズム法、多目的遺伝的アルゴリズム法、および焼きなまし法のソルバーでカスタム データ タイプをサポート
勾配に基づく従来の最適化手法では容易に解が見つからない、滑らかでない目的関数のプロット (下)。Optimization Tool (中央) は、Global Optimization Toolbox のパターン探索法を使用して見つかった解を提示。上の図には、関数値とメッシュ サイズの反復的な結果を表示。

勾配に基づく従来の最適化手法では容易に解が見つからない、滑らかでない目的関数のプロット (下)。Optimization Tool (中央) は、Global Optimization Toolbox のパターン探索法を使用して見つかった解を提示。上の図には、関数値とメッシュ サイズの反復的な結果を表示。

最適化問題の定義、解決、評価

Global Optimization Toolbox の関数には、コマンド ラインおよび Optimization Toolbox™最適化アプリからアクセスできます。コマンド ラインとアプリのどちらからでも、以下を行うことができます。

  • ソルバーの選択と最適化問題の定義
  • 最適化オプションの設定と検査
  • 最適化問題の実行と中間結果および最終結果の可視化
  • Optimization Toolbox のソルバーを使用した、遺伝的アルゴリズム、焼きなまし法、およびパターン探索の結果の精度向上
  • 最適化問題と結果の MATLAB® ワークスペースへのインポートとエクスポート
  • 最適化アプリで実行した作業を MATLAB コード生成を使用して関数化し、再利用

また、独自のアルゴリズム オプションとカスタム関数を提供することにより、ソルバーをカスタマイズすることもできます。マルチスタート法と大域的探索法のソルバーは、コマンド ラインからのみアクセスできます。

多くの局所的最小値と 1 つの大域的最小値 (0,0) を持つ Rastrigin 関数を可視化した結果 (右)。遺伝的アルゴリズムは、複数の局所的最小値を持つ関数の最適解を求めるのに有効です。Optimization Tool (左) から、アルゴリズム オプションなどの、問題を定義するための主要な要素のすべてにアクセスできます。

多くの局所的最小値と 1 つの大域的最小値 (0,0) を持つ Rastrigin 関数を可視化した結果 (右)。遺伝的アルゴリズムは、複数の局所的最小値を持つ関数の最適解を求めるのに有効です。最適化アプリ (左) から、アルゴリズム オプションなどの、問題を定義するための主要な要素のすべてにアクセスできます。

Global Optimization Toolbox には、最適化の結果を可視化するプロット関数が多数含まれています。この可視化機能により、最適化の進行状況を監視しながら、ソルバー オプションの変更を決定したり、ソルバーを停止したりできます。カスタム プロット関数は、遺伝的アルゴリズムとパターン探索アルゴリズムの両方に対して提供されています。カスタム プロット関数には、目的関数の値、制約違反、スコアのヒストグラム、系図、メッシュ サイズ、関数評価回数などを表示する関数が含まれています。複数のプロットを同時に表示したり、特定のプロットを新しいウィンドウで開いて詳細に調べたりできるほか、ユーザー独自のプロット関数を追加することもできます。

Optimization Tool (左) 内の遺伝的アルゴリズムの描画関数により、最適化のプロセスの様子を容易に監視できます (右)。

最適化アプリ (左) で指定した遺伝的アルゴリズムのプロット関数により、最適化のプロセスの様子を容易に可視化できます (右)。

出力関数を使用して、ファイルへの結果の書き込み、独自の停止条件の作成、Optimization Toolbox のソルバーを実行するアプリを作成することができます。最適化アプリでは、問題およびアルゴリズム オプションを MATLAB ワークスペースにエクスポートしたり、作業を保存して後から再利用することができます。 また、実行した作業を関数化する MATLAB コードを生成することも可能です。

Optimization Tool の自動コード生成機能を使用して作成された最適化処理の MATLAB ファイル。GUI から最適化処理をコメント付きのコードとしてエクスポートできます。このコードはコマンド ラインから呼び出し可能で、ルーチンの自動化や作業の保存に使用できます。

最適化アプリの自動コード生成機能を使用して作成された最適化処理の MATLAB ファイル。アプリから最適化処理をコメント付きのコードとしてエクスポートできます。 このコードはコマンド ラインから呼び出し可能で、ルーチンの自動化や作業の保存に使用できます。

最適化処理の実行中であっても、オプションを変更して解の精度を高め、遺伝的アルゴリズム法、多目的遺伝的アルゴリズム法、焼きなまし法、およびパターン探索法ソルバーの実行結果の更新が可能です。例えば、プロット関数、出力関数、コマンド ラインの繰り返し表示を実行中に有効または無効にすることで、ソルバーを停止/再開することなく、中間結果を表示して求解の進行状況を確認できます。また、停止条件を変更して求解の進行を調整したり、実行時のパフォーマンス フィードバックに基づいて目的の許容誤差に収めるために必要な繰り返し回数を減らしたりすることもできます。

大域的探索法ソルバーとマルチスタート法ソルバー

大域的探索法ソルバーとマルチスタート法ソルバーは、勾配ベースの手法を使用して局所的最小値と大域的最小値を返します。どちらのソルバーも複数の開始点から (Optimization Toolbox の) 局所的ソルバーを開始し、探索処理で見つかった局所的解と大域的解を保持します。

大域的探索法ソルバーは、以下のことを行います。

  • 散布探索アルゴリズムを使用して複数の開始点を生成
  • 目的関数および制約関数の値とすでに見つかった局所的最小値に基づいて、有望でない開始点を除去
  • 制約付き非線形最適化ソルバーを実行して、残りの開始点から局所的最小値を探索

Tマルチスタート法ソルバーは、あらかじめ定義された範囲内に均等に分布した開始点またはユーザー定義の開始点を使用して、複数の局所的最小値 (存在する場合は単一の大域的最小値を含む) を探索します。マルチスタート法ソルバーはすべての開始点から局所的ソルバーを実行し、直列または並列 (Parallel Computing Toolbox を使用) に実行できます。マルチスタート法ソルバーは、異なる局所的非線形ソルバーを柔軟に選択する機能も備えています。使用可能な局所的ソルバーには、制約なし非線形、制約付き非線形、最小二乗非線形、最小二乗非線形カーブ フィッティングなどが含まれます。

大域的探索法ソルバーによる非線形最適化 ( 英語 ) 3:57
peaks 関数の局所的最小値と大域的最小値が検出されます。

マルチスタート法ソルバーによる非線形回帰 ( 英語 ) 4:16
指数モデルの最適適合パラメーターが検出されます。

遺伝的アルゴリズム法ソルバー

T遺伝的アルゴリズムは、生物学上の進化の原理を模倣したものであり、生物の再生における遺伝子配列をモデル化した法則を用い、複数の個体からなる母集団を繰り返し置き換えていくという形で最適化問題を解く手法です。そのランダム性から、遺伝的アルゴリズムは大域的最適解を見出す可能性を高めることができます。遺伝的アルゴリズムを使用すると、制約のない最適化問題、上下限制約を持つ最適化問題、および一般的な最適化問題を解くことができます。関数が微分可能関数または連続関数である必要はありません。

次の表に、Global Optimization Toolbox で提供される標準の遺伝的アルゴリズム オプションを示します。

ステップ遺伝的アルゴリズム オプション
作成Uniform, feasible
適応度のスケーリングRank-based, proportional, top (truncation), shift linear
選択Roulette, stochastic uniform selec­tion (SUS), tournament, uniform, remainder
交差Arithmetic, heuristic, inter­mediate, scattered, single-point, two-point
突然変異Adaptive feasible, Gaussian, uniform
描画Best fitness, best individual, distance among individuals, diversity of population, expectation of individuals, max constraint, range, selection index, stopping conditions

さらに、次の項目も指定できます。

  • 母集団のサイズ
  • エリート個体数
  • 交差率
  • 部分個体集団の移住(リングトポロジを使用)
  • 最適化問題の上下限制約、線形制約、および非線形制約

これらのアルゴリズム オプションは、ユーザー定義の関数を加えることによってカスタマイズが可能です。また、例えば、整数、混合整数、カテゴリ、複素数などの変数を定義することで問題をさまざまなデータ形式で表すこともできます。

Y計算時間、解の停滞、適応度の上限、世代数に基づき終了条件を指定することができます。さらに、適応度関数をベクトル化して実行速度を向上させたり、目的関数と制約関数を (Parallel Computing Toolbox を使用して) 並列に実行することも可能です。

Optimal Component Selection Using the Mixed-Integer Genetic Algorithm 5:25
Use the mixed-integer genetic algorithm to solve an engineering design problem.

多目的遺伝的アルゴリズム法ソルバー

多目的最適化は、一連の制約に従う多目的関数の最小化に関係しています。多目的遺伝的アルゴリズム法ソルバーは、パレート フロント (均等に分布した一連の非支配最適解) を識別して多目的最適化問題を解く場合に使用されます。このソルバーを使用すると、上下限制約および線形制約があるかどうかを問わず、平滑または非平滑最適化問題を解くことができます。多目的遺伝的アルゴリズムでは、関数が微分可能関数または連続関数である必要はありません。

次の表に、Global Optimization Toolbox で提供される標準の多目的遺伝的アルゴリズム オプションを示します。

ステップ多目的遺伝的アルゴリズム オプション
作成Uniform, feasible
適応度のスケーリングRank-based, proportional, top (truncation), linear scaling, shift
選択Tournament
交差Arithmetic, heuristic, inter­mediate, scattered, single-point, two-point
突然変異Adaptive feasible, Gaussian, uniform
描画Average Pareto distance, average Pareto spread, distance among individuals, diversity of population, expectation of individuals, Pareto front, rank histogram, selection index, stopping conditions

さらに、次の項目も指定できます。

  • 母集団のサイズ
  • 交差率
  • パレート率
  • 個体間の距離尺度
  • 部分個体集団の移住(リングトポロジを使用)
  • 最適化問題の線形制約と上下限制約

これらのアルゴリズム オプションは、ユーザー定義の関数を加えることによってカスタマイズが可能です。また、例えば、整数、混合整数、カテゴリ、複素数などの変数を定義することで問題をさまざまなデータ形式で表すこともできます。

計算時間、適応度の上限、世代数に基づき終了条件を指定することができます。さらに、適応度関数をベクトル化して実行速度を向上させたり、目的関数を (Parallel Computing Toolbox を使用して) 並列に実行することも可能です。

Optimization Tool で定義した多目的遺伝的アルゴリズム (上) を使用して、Kursawe 関数 (下) の分離領域 (中央) を含むパレート フロントを識別した例。

最適化アプリで定義した多目的遺伝的アルゴリズム (上) を使用して、Kursawe 関数 (下) の分離領域 (中央) を含むパレート フロントを識別した例。

パターン探索法ソルバー

Global Optimization Toolbox には、Generalized Pattern Search (GPS)、Generating Set Search (GSS)、Mesh Adaptive Search (MADS) の 3 つの直接探索アルゴリズムが含まれています。従来の最適化アルゴリズムが、最適点の探索に勾配または高次の導関数に関する正確な情報または近似情報を使用するのに対し、これらのアルゴリズムは、最小または最大のポジティブ ベーシス パターンを実行するパターン探索法を使用します。パターン探索は、非線形、線形、上下限条件を持つ最適化問題を扱うことができ、また微分可能でない関数や連続でない関数も最適化することができます。

次の表に、Global Optimization Toolbox で提供される標準のパターン探索アルゴリズム オプションを示します。これらのオプションは、コマンド ラインまたは Optimization Tool から変更できます。

パターン探索オプション説明
ポーリング方法パターン上の点を生成、評価する方法や、各ステップで生成される点の最大数を決定します。さらに、効率を上げるために探索点のポーリング順を指定することもできます。
探索方法必要に応じて、ポーリングよりも効率の高い探索ステップを選択します。あるパターン内での探索または探索空間全体での探索が可能です。遺伝的アルゴリズムのような大域的探索法を使用すると、良好な開始点が得られます。
メッシュ繰り返しにおいてどのようにパターンが変化するかを制御し、各次元でスケールが異なる問題に対してメッシュを調整します。メッシュ サイズの初期値、メッシュ調整係数、またはメッシュ収縮係数を選択できます。メッシュアクセラレータは、最小値に近い点で収束速度を高めることができます。
キャッシュ計算負荷の高い目的関数の最適化中に評価済みの点を記憶します。パターン探索アルゴリズムで使用するキャッシュのサイズ、許容範囲を指定することができ、アルゴリズムの進行に応じてキャッシュの許容範囲を変化させ、最適化の速度と効率を向上させることができます。
非線形制約アルゴリズムの設定非線形制約のペナルティ パラメーターと、ペナルティ更新係数を指定します。

Optimization Tool (上) でパターン探索を使用して、ホワイト マウンテンの山頂 (大域的最適解) を探索した例 (中央と下)。

最適化アプリ (上) でパターン探索を使用して、ホワイト マウンテンの山頂 (大域的最適解) を探索した例 (中央と下)。

焼きなまし法ソルバー

焼きなまし法は、焼きなましの物理過程を模倣する確率的探索アルゴリズムを使用して最適化問題を解きます。焼きなまし処理では、欠陥を減らすために材料を熱した後で徐々に冷まします。これにより、系のエネルギーが最小化されます。焼きなましアルゴリズムでは、この物理過程になぞらえて、アルゴリズムの繰り返しごとに探索の範囲を徐々に狭めることにより、現在の最小値よりも適した解を探します。

焼きなましアルゴリズムは目標を下げる新しい点をすべて受け入れますが、ある特定の確率で、目標を上げる点も受け入れます。目標を上げる点を受け入れることにより、繰り返しの早い段階で局所的最小値にとらわれることが回避され、より適切な解を求めて大域的に探索できるようになります。

焼きなまし法により、制約のない最適化問題または上下限制約を持つ最適化問題を解くことができます。関数が微分可能関数または連続関数である必要はありません。コマンド ラインまたは最適化アプリから Toolbox 関数を使用して、以下を行うことができます。

  • 適応焼きなまし、ボルツマン焼きなまし、または高速焼きなましアルゴリズムを使用した問題の求解
  • 焼きなまし処理、受け入れ基準、温度スケジュール、プロット関数、シミュレーション出力、またはカスタム データ タイプを定義するカスタム関数の作成
  • 定義した間隔またはソルバーの通常終了時に実行する別の最適化手法を指定することで、ハイブリッド最適化を実行
焼きなまし法を使用して、ベイスン間に平坦な領域がある難度の高い問題の解を探索した例。

焼きなまし法を使用して、ベイスン間に平坦な領域がある難度の高い問題の解を探索した例。

並列処理の最適化問題への適用

Global Optimization Toolbox を Parallel Computing Toolbox と併用すると、解の探索時に並列処理の利点を活用できます。組み込みの並列処理機能を使用するか、対象となる最適化問題に対してカスタムの並列処理実装を定義することで、解の探索時間が短縮されます。

並列処理の組み込みサポートを使用すると、遺伝的アルゴリズム法、多目的遺伝的アルゴリズム法、およびパターン探索法のソルバーで目的関数および制約関数の評価が高速化されます。マルチスタート法ソルバーを高速化するには、複数の局所的ソルバーの呼び出しを複数の MATLAB ワーカーに分散させるか、局所的ソルバーで勾配評価を並列に実行できるようにします。

シフト スケジュールの最適化による燃費の最大化 5:33
シフト スケジュールの 20 個のパラメーターを最適化して、デュアルクラッチ トランスミッションの燃費を最大に引き上げます。グローバルな最適化アルゴリズムと並列処理を使用して、最適化を加速します。

カスタムの並列処理を実装するには、並列処理機能を使用するように、明示的に最適化問題を定義する必要があります。並列処理は目的関数と制約関数のどちらにも適用できます。並列処理を適用すると、目的関数または制約関数の評価に必要な時間が短縮されます。

マルチスタート法ソルバーによる非線形回帰 ( 英語 ) 4:16
指数モデルの最適適合パラメーターが検出されます。

製品評価版の入手
または製品の購入

評価版Global Optimization Toolbox

評価版ソフトウェアを入手する

MATLAB による最適化入門

Web セミナーを表示する

FREE Optimization Interactive Kit

今すぐキットを入手する