SlideShare une entreprise Scribd logo
1  sur  7
DAKOTA 6.1.0. ユーザーズマニュアルの一部 T. Kawakami
2.2 DAKOTA Input File のフォーマット
本マニュアルで参照されるファイルの場所については、1.5 節を確認ください。
DAKOTA Input File の設定は、6 つのブロックからなります。下記のキーワード
variables, interface, responses, model, method, environment で指示されます。 これらのキー
ワードのブロックは、DAKOTA input file に、どの順場で書いても問題ありません。
variables, interface, responses, method については、必ず記述が必要です。
また、environment は、一つしか設定できません。
Figure2.3は、6 つのキーワードブロックの関係を表しています。environment は Dakota
の設定のうち、最も重要な設定を記述し、また、一番高位に来る method を指定します。
method は modelを実行します。model ブロックは、variables, the interface, and responses 同
士の関係性を記述します。Figure 2.3 は最も一般的なブロック同士の関係性を示しますが、
他のやり方も可能です。Dakota による分析は、大抵 1 つの method を定義し、その method
は 1 つの modelを実行します。より詳しい方法は 14 章にて議論します。
図 2.3 6つの block の関係について。左は単純な method が1つの場合。右は複数の
method を含む、より高度な場合。
よりわかりやすい例として、図 2.4 に、Rosenbrock 関数の 2 次元変数の検討のための
Dakota input file, rosen_multidim.in を取り上げます。この input file は、 Dakota input file の
基本的なフォームと文法を示すために使用します。結果は 2.3.2 節にて説明します。
Dakota input file の一般的な文法については、 例えばコメントは#の記号で表します。ま
た、文字列はシングルクォーテーションまたはダブルクォーテーションにて囲む必要があ
ります。(例えば、'x1') コンマや、スペースは、設定を分けるために使用します。「=」
記号は、与えられたデータを示します。文法の詳細は、Dakota Reference Manualを参照く
ださい。
図2.4にある inpur file の最初のブロックは、environment です。このブロックは、
Dakota の一般的な設定、例えば、図の出力(graphics フラグを使用)や、表形式のデータ
出力(tabular_graphics_data キーワード)の設定を行います。加えて、dakota の実行にあ
たって最上位の method を、top_level_method にて指定します。
method ブロックは、dakota がどのような反復的手順を選択するかを設定します。
parameter study, optimization method, data sampling technique などです。
multidim_parameter_study は、複数次元におけるパラーメータ分析を選択します。一方で、
partitions キーワードは、変数毎のサンプリング間隔の数を決めます。本例では、各変数の
最小値から最大値までの間で、8 つの間隔をとります(つまり 9 つのサンプリング点をと
る)。各変数の範囲は、続く variables 節にて指定します。この場合全部で81の分析が実
行されます。
Input file の model ブロックでは、Dakota が使用するモデルを指定します。modelは、一連
の変数に対して、一連の結果(反復的手法を利用して求める)がどのように対応するかを
決めるための論理的なモデルの単位となります。modelには、1 つの interface を設定しま
す。もしくは modelには、より洗練された方法で対応を求めることができます。例えばサ
ロゲート法(代理の近似関数を用いる方法)や入れ子になった反復法などです。例えば、
最適化や不確かさの定量化において、計算コストを低減するために、近似モデルを使用す
る事ができます。キーワード「model」によって、次のような設定が可能です。例えば、
多項式近似やニューラルネットによるデータフィッティングサロゲート(近似関数)や、
高信頼性シミュレーションの近似値として、信頼性の低いシミュレーション結果を修正し
て採用する階層的なサロゲート(近似関数)などがあります。詳細は 8 章を参照ください。
もしサロゲート法や入れ子反復法などの高度な手段が必要ない場合、model キーワードを
設定する必要はありません。なぜなら、最後に設定された responses, variables, and interface
から設定された single モデルをデフォルトで選択します。図 2.4 では method キーワードに
single が明示的に設定されていますが、パラメータースタディーに使用するモデルは標準
には single モデルが適用されますです。
variables ブロックは、問題設定の数式化において使用する変数の性質を設定します。変
数は連続変数でもよいですし、離散的な値でもよいです。また、design variables(設計変
数)か、uncertain variables(不確実性変数), state variables(状態の変数?)のようにクラ
ス分けされることもあります。Dakota で設定可能な変数のタイプ、クラス分けについては
9 章を確認ください。
図 2.4 の variables 節は、2 つの設計(連続)変数があると示しています。設計(連続)変
数は”x1”, “x2”であらわされ、これらの関数の lower bounds(最小値)、upper bounds(最
大値)も設定します。変数の設定は、読みやすくするために、表のフォーマットで設定し
ます。本例では、x1 と x2 はともに最小値-2.0 と最大値 2.0 です。
Interface ブロックは、変数と結果がとのように対応するかを決定する手順を決めます。ま
た、dakota がデータをシミュレーションコードからどのように受け取り、またデータをシ
ミュレーションコードに渡すのかを指定します。本例では、キーワード「direct」によっ
て、dakota に直接リンクされた関数を使用することを示しています。その他の方法として
は、キーワード「fork」や「system」によって、dakota の外部でシミュレーションコード
によるインスタンス(実行ファイル?)を起動することもできます。詳細は2.3.5.
2節や、16 章を参照ください。キーワード「analysis_driver」は、評価に使用する関数の
名前を設定します。キーワード「fork」「system」を使用する場合、Dakota とシミュレー
ションコードの間でデータのやりとりをする際のファイル名はデフォールトのファイル名
が使用されます。
responses ブロックは、インターフェースが dakota へ渡すデータの形式を指定します。図
2.4のように、「 num_objective_functions = 1 」の記述は、目的関数の数は1つである
ことを示します。Rosenbrock's function は拘束条件がないため、拘束条件を設定する記述
ありません。キーワード「no_gradients」「no_hessians」は、微分した値が method で使用
されないことを示します。つまり、どちらもパラメータスタディーに必要ありません。参
照:http://ja.wikipedia.org/wiki/ヘッセ行列
2.3 Examples 例
この節では、ユーザーがパラメータスタディや最適化、不確実性の定量化について、一般
的な dakota の interface を通して慣れることを目標とします。最初の例は、dakota に含まれ
る built-in ドライバー関数を用います。その後、使用者が作成したブラックボックスコー
ドを用いて dakota を使用して分析する方法について述べます。この章で説明する例は各
討タイプにおいて、最小の手間で dakota を使用する方法を示します。具体的な目的に対
る、より高度な例は、その後、トピック毎に章分けして説明します。
2.3. Examples 例
2.3.1 Rosenbrock Test Problem
この章で説明する例は、Rosenbrock function を使用します。
この関数の 3 次元プロットは図2.5(a)に示します。変数 x1 と x2 はともに-2~2 の
範囲です。図 2.5(b)は Rosenbrock's function のコンター図を示します。Rosenbrock's function
を使用した最適化問題は、次のように定式化できます。
この式には、線形、非線形を問わず、拘束条件が設定されていないことに注意が必要です。
従って、この問題は、変数の範囲を限定した最適化問題です。この問題のただ一つの解は、
(x1、x2)=(1、1)にあります。この時、関数は 0 の値をとります。その他の問題
設定も可能です。20 章には、Rosenbrock 関数を利用した他の問題設定について解説して
います。
2.3.2 Two-Dimensional Grid Parameter Study
Dakota ツールキットにおけるパラメータスタディは、まず変数の範囲で決まる変数空間か
ら計算する点を選択し、それぞれの選択された点において関数の値を計算することで実行
します。これらの応答データのセットは、いかなる個別の解釈にも個別対応していません。
したがって、それらのデータセットは、responses キーワードブロックによるいかなる可能
な設定(例えば、最適化する関数や、拘束条件を設定する関数、最小二乗法を適用する項
目や拘束条件、一般的な応答関数) も設定が可能です。 これによって、パラメータス
タディは、インプットファイルの特別な修正なしで、最適化や最小二乗法や不確実性の定
量化などの検討に直接使用できます。
パラメータスタディの例として、図 2.4 に示した 2 次元のパラメータスタディの例があ
ります。これは、下記のコマンドで Dakota で実行できます。
アウトプットファイルは、rosen_multidim.out へ書き込まれます。一方で画面への出力(ま
たは標準出力)は rosen_multidim へ、リダイレクトされます。それに対し、
rosen_multidim.out.sav や rosen_multidim.stdout.sav は、Dakota/examples/users ディレクトリ
に保存されています。他の多くの例と同様に、dakota は検討中に見つかった一番適切な設
定値の報告を、これらのアウトプットファイルの一番最後に出力します。
この 2 次元パラメータスタディは図 2.6 に示すような格子状のサンプルデータのセットを
生成します。一般的には、多次元のパラメータスタディでは、多次元空間内での格子状の
サンプルデータのセットを生成します。キーワードとして multidim_parameter_study を設
定すると、全変数空間について、格子状位置のデータを生成します。この例の場合、変数
x1と x2について、同じ分割数(両方共に8分割)となりますが、一方で個別に分割数
を設定することができます。例えば、partitions = 8 2 とすれば、2 番目の変数である x2
については、分割数は2とります。本例では、environment ブロック内の graphics フラグ
はコメントアウトしてもよいです、なぜならば、この例では、1つ1つの計算値の履歴か
ら直感的に目標点の位置を予測できないためです。dakota の表フォーマットの出力を、外
部のソフトでプロットしたほうが、よりわかりやすいグラフを得ることができます。
2.3.3 Gradient-based Unconstrained Optimization(勾配を用いた、拘束条件のない最適化)
Dakota の最適化機能は、種々の勾配利用、または勾配を利用しない最適化法からなります。
この項では、Dakota の interface を利用したこれらの method のうちの1つについて例示し
ます。
Rosenbrock's funcition の勾配を利用した最適化 Dakota のインプットを図 2.7 に示します。
フォーマットはパラメータスタディに類似していますが、responses ブロック、 method ブ
ロックに、いくつか新しいキーワードが追加されています。第一に、responses ブロックで
は、numerical_gradients からはじまる設定が追加されています。最適化アルゴリズムにお
いて、勾配を計算するのに、有限差分法を使用するという設定です。ただし、Rosenblock
関数の最適化の場合、dakota 内に解析的な勾配値を得る手順が含まれています。(有限差
分法から解析的な勾配にスイッチするには、analytic_gradients キーワードをアンコメント
し、numerical_gradients 設定に関連した4行の記述をコメントアウトすればよい)。次に、
method ブロックにおいて、いくつか新しいキーワードが加わっています。conmin_frcg は、
Fletcher-Reeves 共役勾配アルゴリズム(CONMIN 最適化パッケージ内、拘束条件ありの
最適化)を使用することを設定しています。キーワード、max_iterations は、最適化に使
う計算資源について設定しています。(このケースでは、1 回の反復で勾配の計算と line
探索ステップにおいて複数回の Rosenbrock 関数の計算を行います。convergence_tolerance
は、CONMIN の収束基準(convergence criteria)の設定に使用します。(反復毎の目的関
数の改善量が収束基準よりも小さいことが 3 回続いた場合に CONMIN は終了します。)
MOGA : multiple-objective genetic algorithm 多目的遺伝的アルゴリズム
constrained, unconstrained 拘束条件つき、条件なし
LHS sampling ラテン超方格サンプリング
global optimization: 大域的な最適化
second order probability 二次の確率?
14.5 サロゲート法による最小探索
サロゲートモデルは、元の信頼性が高い本物のモデルを近似します。通常は計算コストが
下がります。Dakota ではいくつかのサロゲートモデルの選択が可能です。
データフィッティング、multifidelity model(多次元の信頼性モデル?)、低次元化された
モデルなどです。これらは 8.4 節で説明しました。

Contenu connexe

En vedette

COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADA
COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADACOLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADA
COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADADr. Cristóbal Longton
 
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」Jun Hirabayashi
 
Quemados complejos. optimizando resultados. 2012. 1
Quemados complejos. optimizando resultados. 2012. 1Quemados complejos. optimizando resultados. 2012. 1
Quemados complejos. optimizando resultados. 2012. 1Jorge Villegas
 
Banco de piel, una necesidad emergente
Banco de piel, una necesidad emergenteBanco de piel, una necesidad emergente
Banco de piel, una necesidad emergenteSebastian Villegas
 
Diagnóstico de quemaduras en niños, adultos y en la tercera edad
Diagnóstico de quemaduras en niños, adultos y en la tercera edad Diagnóstico de quemaduras en niños, adultos y en la tercera edad
Diagnóstico de quemaduras en niños, adultos y en la tercera edad Sebastian Villegas
 

En vedette (10)

resume_mandeep
resume_mandeepresume_mandeep
resume_mandeep
 
COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADA
COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADACOLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADA
COLGAJOS DE PERFORANTES: APLICACIÓN DEL CONSENSO DE GENT DESPUÉS DE UNA DÉCADA
 
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」
第56回オープンCAE勉強会@関東(流体など) 「こどもごころに計算技術をトッピング」「計算世界をインタラクティブ/没入体験」
 
Tecnicas reseccion hepatica expo 1
Tecnicas reseccion hepatica expo 1Tecnicas reseccion hepatica expo 1
Tecnicas reseccion hepatica expo 1
 
Esplenectomìa Electiva
Esplenectomìa ElectivaEsplenectomìa Electiva
Esplenectomìa Electiva
 
La Didactica
La DidacticaLa Didactica
La Didactica
 
Quemados complejos. optimizando resultados. 2012. 1
Quemados complejos. optimizando resultados. 2012. 1Quemados complejos. optimizando resultados. 2012. 1
Quemados complejos. optimizando resultados. 2012. 1
 
Banco de piel, una necesidad emergente
Banco de piel, una necesidad emergenteBanco de piel, una necesidad emergente
Banco de piel, una necesidad emergente
 
Cast iron
Cast ironCast iron
Cast iron
 
Diagnóstico de quemaduras en niños, adultos y en la tercera edad
Diagnóstico de quemaduras en niños, adultos y en la tercera edad Diagnóstico de quemaduras en niños, adultos y en la tercera edad
Diagnóstico de quemaduras en niños, adultos y en la tercera edad
 

Similaire à Dakota 6.1.0. users-manual-2.2-2.3.3

OpenFOAM Case Handling in dakota-6.8 gui
OpenFOAM Case Handling in dakota-6.8 guiOpenFOAM Case Handling in dakota-6.8 gui
OpenFOAM Case Handling in dakota-6.8 guiEtsuji Nomura
 
S2dao Seminar in tripodworks
S2dao Seminar in tripodworksS2dao Seminar in tripodworks
S2dao Seminar in tripodworkstripodworks
 
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-Takeshi Yamamuro
 
SAStruts Seminar In Tripodworks
SAStruts Seminar In TripodworksSAStruts Seminar In Tripodworks
SAStruts Seminar In Tripodworkstripodworks
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京tuchimur
 

Similaire à Dakota 6.1.0. users-manual-2.2-2.3.3 (6)

OpenFOAM Case Handling in dakota-6.8 gui
OpenFOAM Case Handling in dakota-6.8 guiOpenFOAM Case Handling in dakota-6.8 gui
OpenFOAM Case Handling in dakota-6.8 gui
 
S2dao Seminar in tripodworks
S2dao Seminar in tripodworksS2dao Seminar in tripodworks
S2dao Seminar in tripodworks
 
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-
 
SAStruts Seminar In Tripodworks
SAStruts Seminar In TripodworksSAStruts Seminar In Tripodworks
SAStruts Seminar In Tripodworks
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
20110607
2011060720110607
20110607
 

Dakota 6.1.0. users-manual-2.2-2.3.3

  • 1. DAKOTA 6.1.0. ユーザーズマニュアルの一部 T. Kawakami 2.2 DAKOTA Input File のフォーマット 本マニュアルで参照されるファイルの場所については、1.5 節を確認ください。 DAKOTA Input File の設定は、6 つのブロックからなります。下記のキーワード variables, interface, responses, model, method, environment で指示されます。 これらのキー ワードのブロックは、DAKOTA input file に、どの順場で書いても問題ありません。 variables, interface, responses, method については、必ず記述が必要です。 また、environment は、一つしか設定できません。 Figure2.3は、6 つのキーワードブロックの関係を表しています。environment は Dakota の設定のうち、最も重要な設定を記述し、また、一番高位に来る method を指定します。 method は modelを実行します。model ブロックは、variables, the interface, and responses 同 士の関係性を記述します。Figure 2.3 は最も一般的なブロック同士の関係性を示しますが、 他のやり方も可能です。Dakota による分析は、大抵 1 つの method を定義し、その method は 1 つの modelを実行します。より詳しい方法は 14 章にて議論します。 図 2.3 6つの block の関係について。左は単純な method が1つの場合。右は複数の method を含む、より高度な場合。 よりわかりやすい例として、図 2.4 に、Rosenbrock 関数の 2 次元変数の検討のための Dakota input file, rosen_multidim.in を取り上げます。この input file は、 Dakota input file の 基本的なフォームと文法を示すために使用します。結果は 2.3.2 節にて説明します。 Dakota input file の一般的な文法については、 例えばコメントは#の記号で表します。ま た、文字列はシングルクォーテーションまたはダブルクォーテーションにて囲む必要があ ります。(例えば、'x1') コンマや、スペースは、設定を分けるために使用します。「=」 記号は、与えられたデータを示します。文法の詳細は、Dakota Reference Manualを参照く ださい。
  • 2. 図2.4にある inpur file の最初のブロックは、environment です。このブロックは、 Dakota の一般的な設定、例えば、図の出力(graphics フラグを使用)や、表形式のデータ 出力(tabular_graphics_data キーワード)の設定を行います。加えて、dakota の実行にあ たって最上位の method を、top_level_method にて指定します。 method ブロックは、dakota がどのような反復的手順を選択するかを設定します。 parameter study, optimization method, data sampling technique などです。 multidim_parameter_study は、複数次元におけるパラーメータ分析を選択します。一方で、 partitions キーワードは、変数毎のサンプリング間隔の数を決めます。本例では、各変数の 最小値から最大値までの間で、8 つの間隔をとります(つまり 9 つのサンプリング点をと る)。各変数の範囲は、続く variables 節にて指定します。この場合全部で81の分析が実 行されます。 Input file の model ブロックでは、Dakota が使用するモデルを指定します。modelは、一連 の変数に対して、一連の結果(反復的手法を利用して求める)がどのように対応するかを 決めるための論理的なモデルの単位となります。modelには、1 つの interface を設定しま す。もしくは modelには、より洗練された方法で対応を求めることができます。例えばサ ロゲート法(代理の近似関数を用いる方法)や入れ子になった反復法などです。例えば、 最適化や不確かさの定量化において、計算コストを低減するために、近似モデルを使用す る事ができます。キーワード「model」によって、次のような設定が可能です。例えば、 多項式近似やニューラルネットによるデータフィッティングサロゲート(近似関数)や、
  • 3. 高信頼性シミュレーションの近似値として、信頼性の低いシミュレーション結果を修正し て採用する階層的なサロゲート(近似関数)などがあります。詳細は 8 章を参照ください。 もしサロゲート法や入れ子反復法などの高度な手段が必要ない場合、model キーワードを 設定する必要はありません。なぜなら、最後に設定された responses, variables, and interface から設定された single モデルをデフォルトで選択します。図 2.4 では method キーワードに single が明示的に設定されていますが、パラメータースタディーに使用するモデルは標準 には single モデルが適用されますです。 variables ブロックは、問題設定の数式化において使用する変数の性質を設定します。変 数は連続変数でもよいですし、離散的な値でもよいです。また、design variables(設計変 数)か、uncertain variables(不確実性変数), state variables(状態の変数?)のようにクラ ス分けされることもあります。Dakota で設定可能な変数のタイプ、クラス分けについては 9 章を確認ください。 図 2.4 の variables 節は、2 つの設計(連続)変数があると示しています。設計(連続)変 数は”x1”, “x2”であらわされ、これらの関数の lower bounds(最小値)、upper bounds(最 大値)も設定します。変数の設定は、読みやすくするために、表のフォーマットで設定し ます。本例では、x1 と x2 はともに最小値-2.0 と最大値 2.0 です。 Interface ブロックは、変数と結果がとのように対応するかを決定する手順を決めます。ま た、dakota がデータをシミュレーションコードからどのように受け取り、またデータをシ ミュレーションコードに渡すのかを指定します。本例では、キーワード「direct」によっ て、dakota に直接リンクされた関数を使用することを示しています。その他の方法として は、キーワード「fork」や「system」によって、dakota の外部でシミュレーションコード によるインスタンス(実行ファイル?)を起動することもできます。詳細は2.3.5. 2節や、16 章を参照ください。キーワード「analysis_driver」は、評価に使用する関数の 名前を設定します。キーワード「fork」「system」を使用する場合、Dakota とシミュレー ションコードの間でデータのやりとりをする際のファイル名はデフォールトのファイル名 が使用されます。 responses ブロックは、インターフェースが dakota へ渡すデータの形式を指定します。図 2.4のように、「 num_objective_functions = 1 」の記述は、目的関数の数は1つである ことを示します。Rosenbrock's function は拘束条件がないため、拘束条件を設定する記述 ありません。キーワード「no_gradients」「no_hessians」は、微分した値が method で使用 されないことを示します。つまり、どちらもパラメータスタディーに必要ありません。参 照:http://ja.wikipedia.org/wiki/ヘッセ行列 2.3 Examples 例 この節では、ユーザーがパラメータスタディや最適化、不確実性の定量化について、一般 的な dakota の interface を通して慣れることを目標とします。最初の例は、dakota に含まれ る built-in ドライバー関数を用います。その後、使用者が作成したブラックボックスコー ドを用いて dakota を使用して分析する方法について述べます。この章で説明する例は各 討タイプにおいて、最小の手間で dakota を使用する方法を示します。具体的な目的に対 る、より高度な例は、その後、トピック毎に章分けして説明します。
  • 4. 2.3. Examples 例 2.3.1 Rosenbrock Test Problem この章で説明する例は、Rosenbrock function を使用します。 この関数の 3 次元プロットは図2.5(a)に示します。変数 x1 と x2 はともに-2~2 の 範囲です。図 2.5(b)は Rosenbrock's function のコンター図を示します。Rosenbrock's function を使用した最適化問題は、次のように定式化できます。 この式には、線形、非線形を問わず、拘束条件が設定されていないことに注意が必要です。 従って、この問題は、変数の範囲を限定した最適化問題です。この問題のただ一つの解は、 (x1、x2)=(1、1)にあります。この時、関数は 0 の値をとります。その他の問題 設定も可能です。20 章には、Rosenbrock 関数を利用した他の問題設定について解説して います。 2.3.2 Two-Dimensional Grid Parameter Study Dakota ツールキットにおけるパラメータスタディは、まず変数の範囲で決まる変数空間か ら計算する点を選択し、それぞれの選択された点において関数の値を計算することで実行 します。これらの応答データのセットは、いかなる個別の解釈にも個別対応していません。 したがって、それらのデータセットは、responses キーワードブロックによるいかなる可能
  • 5. な設定(例えば、最適化する関数や、拘束条件を設定する関数、最小二乗法を適用する項 目や拘束条件、一般的な応答関数) も設定が可能です。 これによって、パラメータス タディは、インプットファイルの特別な修正なしで、最適化や最小二乗法や不確実性の定 量化などの検討に直接使用できます。 パラメータスタディの例として、図 2.4 に示した 2 次元のパラメータスタディの例があ ります。これは、下記のコマンドで Dakota で実行できます。 アウトプットファイルは、rosen_multidim.out へ書き込まれます。一方で画面への出力(ま たは標準出力)は rosen_multidim へ、リダイレクトされます。それに対し、 rosen_multidim.out.sav や rosen_multidim.stdout.sav は、Dakota/examples/users ディレクトリ に保存されています。他の多くの例と同様に、dakota は検討中に見つかった一番適切な設 定値の報告を、これらのアウトプットファイルの一番最後に出力します。 この 2 次元パラメータスタディは図 2.6 に示すような格子状のサンプルデータのセットを 生成します。一般的には、多次元のパラメータスタディでは、多次元空間内での格子状の サンプルデータのセットを生成します。キーワードとして multidim_parameter_study を設 定すると、全変数空間について、格子状位置のデータを生成します。この例の場合、変数 x1と x2について、同じ分割数(両方共に8分割)となりますが、一方で個別に分割数 を設定することができます。例えば、partitions = 8 2 とすれば、2 番目の変数である x2 については、分割数は2とります。本例では、environment ブロック内の graphics フラグ はコメントアウトしてもよいです、なぜならば、この例では、1つ1つの計算値の履歴か ら直感的に目標点の位置を予測できないためです。dakota の表フォーマットの出力を、外 部のソフトでプロットしたほうが、よりわかりやすいグラフを得ることができます。 2.3.3 Gradient-based Unconstrained Optimization(勾配を用いた、拘束条件のない最適化) Dakota の最適化機能は、種々の勾配利用、または勾配を利用しない最適化法からなります。 この項では、Dakota の interface を利用したこれらの method のうちの1つについて例示し ます。
  • 6. Rosenbrock's funcition の勾配を利用した最適化 Dakota のインプットを図 2.7 に示します。 フォーマットはパラメータスタディに類似していますが、responses ブロック、 method ブ ロックに、いくつか新しいキーワードが追加されています。第一に、responses ブロックで は、numerical_gradients からはじまる設定が追加されています。最適化アルゴリズムにお いて、勾配を計算するのに、有限差分法を使用するという設定です。ただし、Rosenblock 関数の最適化の場合、dakota 内に解析的な勾配値を得る手順が含まれています。(有限差 分法から解析的な勾配にスイッチするには、analytic_gradients キーワードをアンコメント し、numerical_gradients 設定に関連した4行の記述をコメントアウトすればよい)。次に、 method ブロックにおいて、いくつか新しいキーワードが加わっています。conmin_frcg は、 Fletcher-Reeves 共役勾配アルゴリズム(CONMIN 最適化パッケージ内、拘束条件ありの 最適化)を使用することを設定しています。キーワード、max_iterations は、最適化に使 う計算資源について設定しています。(このケースでは、1 回の反復で勾配の計算と line 探索ステップにおいて複数回の Rosenbrock 関数の計算を行います。convergence_tolerance は、CONMIN の収束基準(convergence criteria)の設定に使用します。(反復毎の目的関 数の改善量が収束基準よりも小さいことが 3 回続いた場合に CONMIN は終了します。) MOGA : multiple-objective genetic algorithm 多目的遺伝的アルゴリズム constrained, unconstrained 拘束条件つき、条件なし LHS sampling ラテン超方格サンプリング global optimization: 大域的な最適化 second order probability 二次の確率?