ユーザーズガイド PALISADE RISKOPTIMIZER 5.5
Lastmanualsはユーザー主導型のハードウエア及びソフトウエアのマニュアル(ユーザーガイド・マニュアル・クイックスタート・技術情報など)を共有・保存・検索サービスを提供します。 製品を購入する前に必ずユーザーガイドを読みましょう!!!
もしこの書類があなたがお探しの取扱説明書・マニュアル・機能説明・回路図の場合は、今すぐダウンロード。Lastmanualsでは手軽に早くPALISADE RISKOPTIMIZER 5.5のユーザマニュアルを入手できます。 PALISADE RISKOPTIMIZER 5.5のユーザーガイドがあなたのお役に立てばと思っています。
PALISADE RISKOPTIMIZER 5.5のユーザーガイドをLastmanualsがお手伝いします。
この製品に関連したマニュアルもダウンロードできます。
PALISADE RISKOPTIMIZER 5.5 (2864 ko)
マニュアル抽象的: マニュアル PALISADE RISKOPTIMIZER 5.5
詳しい操作方法はユーザーガイドに記載されています。
[. . . ] ユーザー ガイド
RISKOptimizer
シミュレーション最適化用 Microsoft Excel アドイン
バージョン 5. 5 2009 年 5 月
Palisade Corporation 798 Cascadilla St. Ithaca, NY USA 14850 (607) 277-8000 (607) 277-8001 (Fax) http://www. palisade. com (Web サイト) sales@palisade. com (電子メール)
著作権表記
Copyright © 2009, Palisade Corporation.
商標について
Microsoft、Excel、Windows は Microsoft, Inc. の登録商標です。 IBM は International Business Machines, Inc. の登録商標です。 Palisade、RISKOptimizer、TopRank、BestFit、RISKview は Palisade Corporation の登録商標です。 RISK は Tonka Corporation の一部である Parker Brothers の商標であり、商標 保有者の許可を元に使用されています。
目次
第 1 章: RISKOptimizer の概要 1
はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . [. . . ] 102 直前のタスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 演算子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 追加 - 制限の追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 シミュレーション制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 シンプルな制限と数式による制限. . . . . . . . . . . . . . . . . . . 108 ソフト制限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 [最適化設定] コマンドの [一般] タブ . . . . . . . . . . . . . . . . . . . . . . 112 [最適化設定] コマンドの [ランタイム] タブ . . . . . . . . . . . . . . . . 116 [最適化ランタイム] のオプション. . . . . . . . . . . . . . . . . . 117 [シミュレーション ランタイム] オプション . . . . . . . . . 118 [最適化設定] コマンドの [表示] タブ . . . . . . . . . . . . . . . . . . . . . . 120 [最適化設定] コマンドの [マクロ] タブ . . . . . . . . . . . . . . . . . . . . 122 [最適化の開始] コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 [ユーティリティ] コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
83
[アプリケーション設定] コマンド . . . . . . . . . . . . . . . . . . . . . . . . . 126 [制限ソルバー] コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 RISKOptimizer ウオッチャー. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 [RISKOptimizer [RISKOptimizer [RISKOptimizer [RISKOptimizer [RISKOptimizer [RISKOptimizer ウオッチャー] ウオッチャー] ウオッチャー] ウオッチャー] ウオッチャー] ウオッチャー] の の の の の の [進行] タブ . . . . . . . . . . . . . 138
84
[モデルの定義] コマンド
モデルのゴール、調整可能セル、および制限を定義します。
RISKOptimizer の [ モ デ ル の 定 義 ] コ マ ン ド を 選 択 す る か 、 RISKOptimizer ツールバーで [モデル] アイコンをクリックすると、 [モデル] ダイアログが表示されます。
[RISKOptimizer - モデル] ダイアログ
[RISKOptimizer - モデル] ダイアログを使って、RISKOptimizer に 最適化する問題を指定します。このダイアログを新しい Excel ワー クブックで開くと、すべての値が空の状態で表示されますが、いった ん指定した情報は各ワークブックに保存されます。同じシートをもう 一度開くと、保存された値が表示されます。このセクションでは、こ のダイアログの各要素について説明します。
85
[モデル] ダイアログには、次のオプションがあります。 • [最適化ゴール] - [最適化ゴール] オプションを使用して、 RISKOptimizer にどのような解を探しているかを指定します。 [最小] を選択すると、RISKOptimizer は、ターゲット セルのシ ミュレーション結果において、選択された統計の起こりうる最小 値を生成するような変数値を探します (検索可能な最小値は 1e300 です)。[最大] を選択すると、RISKOptimizer は、選択さ れた統計の起こりうる最大値を生成するような変数値を探します (検索可能な最大値は +1e300 です)。 [ターゲット値] を選択すると、RISKOptimizer は、選択された 統計値がユーザーの指定した値にできるだけ近づくような変数値 を探します。RISKOptimizer は、このような結果を生み出す解を 見つけると自動的に停止します。例えば RISKOptimizer に対し て、シミュレーション結果の分布平均が 14 に一番近くなる解を 検索するよう指定すると、平均値が 13. 7 や 14. 5 などになるシ ナリオが見つかります。ここで、13. 7 の方が 14. 5 よりも 14 という値に近いことに注意してください。RISKOptimizer では、 統計値が指定の値より大きいか小さいかは関係なく、指定の値と の差異のみが考慮されます。 • [セル] - セル、つまり「ターゲット セル」には、モデルの出力 が含まれます。RISKOptimizer が生成した各「試行解」(調整可 能セルの可能な値の各組み合わせ) に対して、このターゲット セルの起こりうる値の分布がシミュレーションにより生成されま す。ターゲット セルには、調整可能セルに直接、あるいは一連 の計算を介して間接的に依存する数式が含まれている必要があり ます。この数式は、SUM() などの Excel の標準の式か、ユーザ ーが定義する VBA マクロ関数を使って指定できます。VBA マク ロ関数を使用すると、RISKOptimizer でより複雑なモデルを処理 できるようになります。 RISKOptimizer は解を検索する際に、ターゲット セルのシミュ レーション結果の統計を「適応度関数」として使用して、各シナ リオの適性を評価し、その結果、変数値の異種交配を続けるか、 破棄するかを判断します。個体群に受け渡す遺伝子を決定する 「適応度関数」は、生物の進化に喩えれば死に相当します。モデ ルの構築にあたっては、RISKOptimizer が起こりうる結果を計算 する際にその進展状況を正確に測定できるよう、ターゲット セ ルには特定のシナリオの適応度、つまりフィットが反映されるよ うにする必要があります。
86
•
[統計] - 統計オプションには、最小化、最大化、または特定の 値に設定する必要のある、「ターゲット セル」のシミュレーシ ョン結果の統計を指定します。最小化、最大化、または特定の値 に設定する必要のある実際の統計を、ドロップダウン リストか ら選択します。
ターゲット セルの統計を選択するには、ドロップダウン リストから 該当するものを選択します。ターゲット セルの分布としてパーセン タイルまたはターゲットを選択するには、次の手順を行います。 1) [パーセンタイル (P に対する X)] または [ターゲット (X に対 する P)] を選択します。 2) [パーセンタイル (P に対する X)] を選択した場合、P の値を [%] フィールドに 0~100 の範囲で入力します。すると、入力し たパーセンタイルに関連する値が最小化・最大化されます。例え ば 「 パ ー セ ン タ イ ル (99%) 」 と い う 値 を 指 定 す る と 、 RISKOptimizer はターゲット セルのシミュレーション結果分布 の 99 パーセンタイルを最小化・最大化する、調整可能セル値の 組み合わせを見つけます。 3) [ターゲット (X に対する P)] を選択した場合、X の値を入力し ます。すると、入力した値に関連する累積確率が最小化・最大化 されます。例えば「ターゲット (1000)」という値を指定する と、RISKOptimizer は、ターゲット セルのシミュレーション結 果の分布を使った計算の結果、1000 という値の累積確率を最小 化・最大化する、調整可能セル値の組み合わせを見つけます。
87
RiskMean などの @RISK/RISKOptimizer 統計関数を使用して、モデル 内の統計を収集するよう指定することができます。このようなセルの 値を最適化するには、セル自体にその情報が含まれているので、最適 化の対象となる統計を指定する必要はありません。その場合、 RISKOptimizer に対して [統計] ドロップダウン リストから [値] オプションを選択し、シミュレーションの最後に特定セルの値を最適 化するよう指定します。たとえばセル C5 の平均値を最適化するに は、セル C6 に「=RiskMean(C5)」と入力し、[モデル] ダイアログで 最適化するセルとして C6 を指定して、[統計] ドロップダウン リス トから [値] を選択します。これは、C5 を最適化対象のセルとして 指定して、[統計] ドロップダウン リストから [平均] を選択した場 合と同じ効果があります。
88
調整可能セルの範囲
[調整可能セルの範囲] テーブルには、RISKOptimizer が調整するこ とのできるセルまたは値の各範囲と、これらのセルに入力した説明が 表示されます。各行に 1 セットの調整可能セルが表示されます。[調 整可能セル グループ] には、1 つ以上の調整可能セルが含まれてい ます。特定の調整可能セル グループ内のすべてのセル範囲に、共通 の解法、交差率、突然変異率、および演算子が設定されています。
調整可能セルには問題の変数が含まれるので、RISKOptimizer を使用 する前に、少なくとも 1 つの調整可能セル グループを定義する必要 があります。大半の問題は、1 つの調整可能セル グループで定義で きますが、より複雑な問題の場合には、さまざまな解法を同時に使用 して複数の変数セットを処理することもあります。この独自のアーキ テクチャによって、調整可能セルのグループをいくつも使って複雑な 問題も簡単にモデル化することが可能になります。 調整可能セルの範囲を入力するには、次のオプションを使用できます。 • [追加] - 新しい調整可能セルを追加するには、[調整可能セルの 範囲] リスト ボックスの隣にある [追加] ボタンをクリックし ます。追加するセルまたはセル範囲を選択すると、[調整可能セ ルの範囲] テーブルに新しい行が追加されます。このテーブル に、その範囲のセルの [最小] 値と [最大] 値および、テストす る値の種類 (指定範囲内の [整数] 値、または [すべて] の値な ど) を入力できます。 [最小]、[最大] - 調整可能セルの位置を指定したら、次に [最 小] と [最大] を入力して各調整可能セルの値の許容範囲を設定 します。デフォルトでは、各調整可能セルは正と負の無限大の範 囲内の実数 (倍精度浮動小数点) 値を取ることができます。
•
89
•
範囲の設定は、制限として強制的に適用されます。 RISKOptimizer では、変数が所定の範囲を超える値を取ることは 許可されません。RISKOptimizer のパフォーマンスを向上させる には、変数の範囲をできるだけ小さくすることをお勧めします。 例えば、変数が負の値を取りえない場合や、特定の変数の値とし て RISKOptimizer で検討する範囲が 50~70 に限られている場 合などもあります。 [範囲] - [範囲] フィールドには、調整するセル (範囲) の参照 を入力します。参照を入力するには、マウスでスプレッドシート の 範 囲 を 選 択 す る か 、 範 囲 名 ま た は 有 効 な Excel 参 照 (Sheet1!A1:B8 など) を入力することもできます。[範囲] フィ ールドは、すべての解法で使用できます。ただし、レシピ解法と 予算解法では、調整可能セルの範囲を入力するための [最小]、 [最大]、[値] の各オプションが追加されることもあります。 注意:変数の範囲を小さくすることで、検索の対象範囲を制限 し、RISKOptimizer による解の収束の処理時間を短縮することが できます。ただし、変数値の範囲をあまり小さくしすぎると、 RISKOptimizer で最適な解が見つからない可能性があるので、注 意が必要です。
•
[値] - [値] オプションを使用して、指定範囲のすべての変数を 実数ではなく整数として処理するよう (例えば、22. 395 を 22 として処理するよう)、RISKOptimizer に指定します。このオプ ションは、「レシピ」と「予算」の解法を使用する場合のみ利用 できます。デフォルトでは変数が実数として処理されます。
モデルで変数を使用してテーブルからアイテムを検索する場合 (例え ば HLOOKUP()、VLOOKUP()、INDEX()、OFFSET() を使用する場合など)、 必ず [整数] オプションを選択してください。整数オプションを設定 すると、選択した範囲のすべての変数が影響を受ける点に注意してく ださい。一部の変数のみを実数として扱い、残りを整数として扱うに は、調整可能セルのグループを 2 つ作成し、一方のグループを整数、 もう片方を実数として処理することができます。これを行うには、調 整可能セルのレシピ グループを追加して、[値] を [すべて] のまま にします。次に、セル範囲をもう 1 つ追加し、その値オプションに [整数] を設定して、整数の調整可能セルのみを選択します。
90
調整可能セル グループ
調整可能セルの各グループに、複数のセル範囲を指定することができ ます。これにより、関連のあるセル範囲グループの「階層」を構築で きます。各グループ内にある各セル範囲ごとに、最小 - 最大の範囲 制限を指定できます。 特定の調整可能セル グループ内のすべてのセル範囲には、共通の解 法、交差率、突然変異率、および演算子が設定されています。これら は [調整可能セルのグループ設定] ダイアログで指定できます。この ダイアログを開くには、[調整可能セルの範囲] テーブルの隣にある [グループ] ボタンをクリックします。新しいグループを作成してこ れに調整可能セルの範囲を追加したり、既存のグループの設定を変更 することができます。
91
[調整可能セルのグループ設定] ダイアログの [一般] タブには、次 のオプションがあります。 • • [説明] - ダイアログやレポートに、調整可能セル範囲のグルー プについての説明として表示されます。 [解法] - グループ内の各調整可能セル範囲に適用する解法を選 択します。
RISKOptimizer で調整するセルの範囲を選択するときに、それらの調 整可能セルに適用する「解法」も選択します。基本的には、各解法が まったく異なる遺伝的アルゴリズムを用いており、それぞれ独自の最 適解選択、交差、突然変異のルーチンを使用しています。変数の値を 変化させる方法は、解法によって異なります。 例えば「レシピ」解法は、選択された各変数をレシピの材料として扱 うため、各変数の値をほかの変数値とは独立して個別に変更すること ができます。これに対して「順序」解法は、調整可能セル間で既存の 値をスワップして、元々あった値を異なる変数に割り当てます。 RISKOptimizer には 6 つの解法が用意されています。このうち 3 つ の解法 (レシピ、順序、グルーピング) は、まったく異なるアルゴリ ズムを使用しています。残りの 3 つは最初の 3 つの「子孫」で、追 加の制限が適用されます。 次のセクションでは、各解法の機能について説明します。各解法の使 い方について詳しく理解するには、RISKOptimizer に付属のサンプル ファイルの内容および、「第 4 章: 実用例」を参照してください。
92
レシピ解法
「レシピ」解法は、最もシンプルで一番よく使われる種類の解法です。 レシピ解法は、一連の変数があり、その各変数をほかの変数とは独立 して調整できる場合に使用します。この解法では各変数をケーキの各 材料のように扱います。「レシピ」解法を指定すると、 RISKOptimizer がこれらの変数をさまざまな値に設定してベストな組 み合わせを見つけます。レシピの変数に適用される唯一の制限は、こ れらの値が取りうる範囲 (最小値と最大値) です。この範囲 (例えば 「1~100」の範囲) は [調整可能セル] ダイアログの [最小] フィー ルドと [最大] フィールドで設定します。また、整数 (1、2、7) と 実数 (1. 4230024、63. 72442) のどちらを使用して処理を実行するか も指定します。 次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一 連の変数の初期値と、レシピ解法を使用した後に起こりうる 2 つの シナリオの例を示します。
変数セットの初期値 23. 472 145 9 65, 664 レシピ解法で起こり うる変数値のセット A 15. 344 101 32. 44 14, 021 レシピ解法で起こり うる変数値のセット B 37. 452 190 7. 073 93, 572
93
順序解法
「順序」解法は、「レシピ」の次に最もよく使われる種類の解法です。 順序とはアイテムのリストの順列のことを指し、この解法では一連の 特定値を並べ替えて、最適な順序を見つけ出します。選択された変数 の値を RISKOptimizer が生成する「レシピ」や「予算」解法とは異 なり、「順序」解法ではモデルに設定されている既存の値が使用され ます。 ここでいう順序は、一連のタスクを実行する順序などのことです。例 えば、1~5 の番号が付いた 5 つのタスクを実行する順序を判断した いと仮定します。「順序」解法は、1~5 の番号を例えば 3、5、2、4、 1 という順序に入れ替えます。順序解法ではユーザーが設定したシー トの変数値を RISKOptimizer がそのまま用いるので、最小 - 最大の 範囲は入力しません。 次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一 連の変数の初期値と、順序解法を使用した後に起こりうる 2 つのシ ナリオの例を示します。
変数セットの初期値 23. 472 145 9 65, 664 順序解法で起こりうる 順序解法で起こりうる 変数値のセット A 変数値のセット B 145 23. 472 65, 664 9 65, 664 9 145 23. 472
グルーピング解 法
「グルーピング」解法は、複数の変数をいくつかのグループに分ける 必要がある問題に使用します。RISKOptimizer が作成するグループの 数は、最適化の開始時に調整可能セルに設定されている、一意の値の 数に等しくなります。したがって、状況のモデルを作成する際に、モ デル内で各グループが少なくとも 1 度は使用されるようにする必要 があります。 例えば、50 個のセルで取りうる値が 2、3. 5、17 の 3 つに限られる とします。この 50 のセルを選択して「グルーピング」解法で値を調 整する場合、RISKOptimizer が 50 個すべてのセルを 2、3. 5、17 の グループのいずれかに割り当てます。ここでは各グループに調整可能 セルのうち少なくとも 1 つが割り当てられます。これは 50 個の変 数をいくつかの箱に投げ入れ、それぞれの箱に少なくとも 1 つの変 数が入るようにするのと同じです。この解法の例には、1、0、-1 の 各値を取引システムに割り当て、買い、売り、ホールドの各ポジショ ンを示す場合なども当てはまります。「順序」解法と同様、
94
RISKOptimizer が既存の値を並べ替えるだけなので、最小 - 最大の 範囲や整数オプションは定義しません。 注意:「グルーピング」解法を使用する場合、すべてのセルに必ず値 を入力してください。値を入力しないと、0. 0 という値が 1 つのグ ループであると解釈されます。 「グルーピング」解法は、一見すると「レシピ」解法の整数オプショ ンをオンにして範囲を 1~3 (またはその他のグループ数) に設定し た場合と似ています。ただし、レシピとグルーピングでは、検索の処 理方法が異なります。この 2 つの解法では、それぞれ異なる選択、 突然変異、交差のルーチンを用いています。グルーピングでは、ある グループからの一連の変数をほかのグループからの一連の変数とスワ ップできるので、レシピ解法の場合に比べてすべての変数の値が重視 されます。 次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一 連の変数の初期値と、グルーピング解法を使用した後に起こりうる 2 つのシナリオの例を示します。
変数セットの初期値 グルーピング解法で起 グルーピング解法で起 こりうる変数値のセッ こりうる変数値のセッ ト A ト B 6 6 8 7 8 7 6 7
6 7 8 8
95
予算解法
「予算」解法は「レシピ」解法に似ていますが、変数のすべての値の 合計が特定の値になる必要がある点で異なります。この特定の値とは、 最適化の開始時に設定されていた変数値の合計です。 例えば、年度予算をいくつかの部署に分配する最適な方法を判断した いとします。「予算」解法では各部署の現在の値の合計を計算し、そ の値を予算の合計額とみなし、その最適な分配方法を探します。次の 表に、予算解法を使用した後に起こりうるシナリオの 2 つの例を示 します。
予算解法で 起こりうる予算額の セット A 93. 1 30 100 . 4 予算解法で 起こりうる予算額の セット B 223. 5 0 -67 67
一連の予算額の初期値 200 3. 5 10 10
さまざまな値が試されますが、その合計は常に 223. 5 です。
96
プロジェクト解 法
「プロジェクト」解法は「順序」解法に似ていますが、特定のアイテ ム (タスク) をほかのタスクの前に配置する必要がある点で異なりま す。「プロジェクト」解法は、その直前のタスクに関する制限を常に 満たしながら、タスクの遂行順序を並べ替える必要のある、プロジェ クト管理などに使用します。 「プロジェクト」解法を使ってモデル化した問題は、タスク順序を含 む調整可能セルが横 1 行ではなく縦 1 列に並んでいる方がわかりや すく、作業もしやすくなります。これは、この解法では直前のタスク のセルが横並びではなく縦並びになっていると仮定して処理が行われ、 またユーザーにとっても調整可能セルが縦に並んでいる方がワークシ ートを確認しやすいためです。 調整可能セルの場所を指定したら、ダイアログの [直前のタスク] セ クションで、そのタスクに先行するタスクのセルの場所を指定します。 次の表は、どのタスクの前にどのタスクを行う必要があるかを示した ものです。プロジェクト解法はこの表を使って、先行タスクの制限が 満たされるようになるまで、シナリオの変数の順序を並べ替えます。 調整可能セルの各タスクにつき、直前のタスク範囲を示す行が 1 つ 必要になります。直前のタスク範囲の 1 列目以降に、そのタスクが 依存する各タスクの ID 番号を各列に指定します。
プロジェクト解法の先行条件の設定方法の例
先行タスクの範囲は n 行× m 列で指定します。ここで n はプロジ ェクトに含まれるタスク (調整可能セル) の数、m は 1 つのタスク に先行するタスクの最大数です。
97
次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一 連の変数の初期値と、プロジェクト解法を使用した後に起こりうる 2 つのシナリオの例を示します。
変数セットの初期値 1 2 3 4 プロジェクト解法で起 プロジェクト解法で起 こりうる値のセット A こりうる値のセット B 1 3 2 4 1 2 4 3
スケジュール解 法
スケジュールは、タスクを時間に割り当てるという点でグルーピング に似ています。学校の授業時間がすべて同じであるように、各タスク の所要時間は一定しているものと仮定されます。ただし、グルーピン グと異なり、「スケジュール」解法の [調整可能セルのグループ設 定] ダイアログでは、使用するタイム ブロック (またはグループ) の数を直接指定できます。「スケジュール」解法を選択すると、ダイ アログ ボックスの下部にこの解法のオプションがいくつか表示され ます。
[最適化のパラメータ] セクションでは、制限セルの範囲を設定する こともできます。この範囲の行数は任意の長さにできますが、列数は 3 列でなければなりません。ここでは 8 種類の制限を適用できます 。 1) [とともに] - 1 列目と 3 列目のタスクを同じタイム ブロック に割り当てる必要があります。 2) [ともにではなく] - 1 列目と 3 列目のタスクを同じタイム ブ ロックに割り当てることができません。 3) [前] - 1 列目のタスクを 3 列目のタスクの前に割り当てる必要 があります。 4) [において] - 1 列目のタスクを 3 列目のタイム ブロック内に 割り当てる必要があります。 5) [後ではなく] - 1 列目のタスクを 3 列目のタスクと同じ時間 か、その前に割り当てる必要があります。
98
6) [前ではなく] - 1 列目のタスクを 3 列目のタスクと同じ時間 か、その後に割り当てる必要があります。 7) [においてではなく] - 1 列目のタスクを 3 列目のタイム ブロ ック内に割り当てることはできません。 8) [後] - 1 列目のタスクを 3 列目のタスクの後に割り当てる必要 があります。 制限の入力には 1~8 の数値コードか、テキストの説明 (「後」、 「においてではなく」など) を使用できます。(注意: 制限の入力で はすべての言語の RiskOptimizer で、その言語および英語で入力さ れた説明の両方が認識されます。) スケジュール解法では、問題に指 定したすべての制限が満たされます。制限を作成するには、ワークシ ートの空いている場所に表を作成し、1 列目と 3 列目にタスクを指 定して、2 列目に制限の種類を指定します。1~8 の数値は、前のセ クションで説明した制限の種類を表します。制限範囲内のセルには、 最適化を開始する前に制限データを入力しておく必要があります。
タスク 5 12 2 7 6 9 制限 4 2 3 1 2 3 タスク 2 8 1 5 4 1
99
次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一 連の変数の初期値と、スケジュール解法を使用した後に起こりうる 2 つのシナリオの例を示します。
変数セットの初期値 1 2 3 1 2 3 スケジュール解法で起 スケジュール解法で起 こりうる値のセット A こりうる値のセット B 1 1 3 1 2 3 1 3 1 2 2 2
注意:スケジュール解法を選択した場合、調整可能セルの初期値に関 係なく、1 からの整数 (1、2、3 …) が使用されます。 交差と突然変異 率 果てしない数のシナリオが想定できる問題に対して最適な解を探す場 合、問題のどの部分にエネルギーを集中したらよいかは特に難しい課 題となります。解空間の新しい領域を検索するためにかける処理時間 と、個体群内のすでに良質であることがわかっている解の微調整にか ける処理時間はどのように判断したらよいでしょうか? 遺伝的アルゴリズム (GA: Genetic Algorithm) が効果的である大き な理由として、この 2 者間のバランスを本質的に維持できることが 挙げられます。GA はその構成上、良質な解を「繁殖」させながら、 潜在遺伝子が最終的な解にとって重要なものとなる可能性を考慮した 上で「適応度の低い」個体も残すことで、多様性を維持できます。
100
交差と突然変異の 2 つのパラメータは、検索の対象範囲に影響を与 えます。RISKOptimizer では、これらのパラメータを進化の過程の前、 またはその最中にユーザーが変更することができます。したがって知 識が豊富なユーザーは、集中すべき領域を指定することにより、GA の処理を助けることができます。通常は、交差と突然変異のデフォル ト設定 (. 5 と . 1) を変更する必要はありません。状況に合わせてア ルゴリズムを微調整したり、比較調査を行ったり、実験を行いたい場 合などには、次の概要を参考にしてください。 • [交差率] - 交差率は 0. 01~1. 0 の範囲で設定できます。この数 値は、将来のシナリオ (個体) にその前世代の親からの情報の組 み合わせが含まれる確率を示します。経験の豊かなユーザーはこ の率を変更して、複雑な問題を解決する場合の RISKOptimizer のパフォーマンスを微調整することができます。 交差率が 0. 5 の場合、子孫の個体の変数の約 50% が一方の親か ら継承され、残りがもう片方の親から継承されることを意味しま す。交差率が 0. 9 の場合は、子孫の個体の値の約 90% が一方の 親から継承され、残りの 10% がもう片方の親から継承されます。 交差率が 1 の場合には交差が起こらず、親のクローンのみが評 価されます。 RISKOptimizer では、デフォルトの交差率が 0. 5 に設定されて い ま す 。 RISKOptimizer で 問 題 の 処 理 を 開 始 し た 後 は 、 RISKOptimizer ウオッチャーを使って交差率を変更できます (こ の章の「RISKOptimizer ウオッチャー」セクションを参照してく ださい)。
101
•
[突然変異率] - 突然変異率は 0. 0~1. 0 の範囲で設定できま す。この数値は、将来のシナリオにランダムな値が含まれる確率 を示します。突然変異率が高いと、より多くの突然変異、つまり ランダムな「遺伝子」値が個体群に取り入れられることを意味し ます。突然変異は交差の後で起こります。したがって、突然変異 率を 1 (つまり 100% がランダムな値) に設定すると、交差の効 果がゼロになり、RISKOptimizer が完全にランダムなシナリオを 生成することになります。 最適な解のすべてのデータが個体群のどこかに含まれている場合 は、交差演算子のみで解を見つけ出すことができるはずです。突 然変異は、生物界において強い力を持つことが証明されています が、遺伝的アルゴリズムに突然変異が必要である理由も、生物学 の場合と似ています。突然変異は、個体の集団内に多様性を維持 し、個体群があまりに固定化され環境の変化に適応できななるの を防ぐために不可欠な現象です。遺伝的アルゴリズムと同様、動 物の進化においても、突然変異が新しい機能の進化につながるこ とはよくあります。 通常の場合、デフォルトの突然変異率を変更する必要はありませ ん。ただし、複雑な問題を処理する場合に経験豊富なユーザーが この値を変更して RISKOptimizer のパフォーマンスを微調整す ることは可能です。例えば、RISKOptimizer の個体群がほぼ均質 であり、最後の数百試行で新しい解が見つかっていない場合など は、突然変異率を高く設定することができます。この設定を変更 す る 場 合 、 . 06 か ら . 2 に 変 え る の が 一 般 的 で す 。 RISKOptimizer で問題の処理を開始した後は、RISKOptimizer ウ オッチャーを使って突然変異率を動的に変更できます (この章で 後述の「RISKOptimizer ウオッチャー」セクションを参照してく ださい)。 [突然変異率] フィールドのドロップダウン リストで [自動] を 選択すると、突然変異率の自動調整機能が使用されます。突然変 異率の自動調整では、個体が非常に古くなった場合 (つまり何回 試行しても変わらなくなった場合) に、RISKOptimizer が突然変 異率を自動的に上げることができます。多くのモデルでは、特に 最適な突然変異率が判断できない場合に [自動] を選択すると、 優れた結果がより迅速に見つかることがあります。
制限セルとタイ ム ブロック数 直前のタスク
これらのオプションについて詳しくは、この章の「解法」セクション にある、「スケジュール解法」の説明を参照してください。 これらのオプションについて詳しくは、この章の「解法」セクション にある、「プロジェクト解法」の説明を参照してください。
102
演算子
RISKOptimizer では、「レシピ」解法を使用する際に遺伝演算子を選 択することができます。[調整可能セルのグループ設定] ダイアログ の [演算子] タブをクリックすると、一連の調整可能セルの可能な値 を生成するときに使用する、特定の遺伝演算子 ([ヒューリスティッ ク交差] や [境界突然変異] など) を選択できます。または、利用で きるすべての演算子を RISKOptimizer で自動的に試行して、状況に 最も適したものを判断させることも可能です。
遺伝的アルゴリズムは遺伝演算子を使用して、個体群の現在のメンバ ーから新しいメンバーを生成します。RISKOptimizer が使用する遺伝 演算子には「突然変異」と「交差」の 2 種類があります。突然変異 演算子は、遺伝子 (変数) にランダムな変化が発生させるかどうかお よび、その発生方法を決定します。交差演算子は、個体群のメンバー のペアの遺伝子をスワップして、親よりも優れた解となりうる「子 孫」を生成する方法を決定します。
103
RISKOptimizer には、次の特殊な遺伝演算子があります。 ♦ [線形] - 最適な解が、制限で定義された検索空間の境界にある 問題を処理するための演算子です。突然変異と交差を行うこの演 算子ペアは、線形の最適化問題を解決するのに向いています。 [境界突然変異] - 単調な方法で結果に影響を与える、制限に違 反せずにその範囲の極限に近い値に設定できる変数を、迅速に最 適化するための演算子です。 [コーシー突然変異] - 大半の場合、変数をごくわずかに変更す るだけですが、大きな変化をもたらすことがあります。 [非一様突然変異] - 試行の計算回数を重ねるごとに、突然変異 の量をより少なくします。これにより、RISKOptimizer が解を 「微調整」することができます。 [算術交差] - 2 つの親を組み合わせて (遺伝子を単に交換する のではなく)、算術的な方法で新しい子孫を作成します。 [ヒューリスティック交差] - 親により生成された値を使用し て、子孫の作成方法を判断します。最も有望と思われる方向に検 索を続け、局所的な微調整を行うことができます。
♦
♦ ♦
♦ ♦
最適化の問題の種類によっては、交差と突然変異の各演算子をさまざ まに組み合わせて、より良い結果を見つけ出すことも可能です。レシ ピ解法を使用する場合、[調整可能セルのグループ設定] ダイアログ の [演算子] タブで任意数の演算子を選択することができます。複数 の演算子を選択すると、RISKOptimizer がこれらの演算子の有効な組 み合わせをテストして、そのモデルに一番適したパフォーマンスの演 算子を判断します。実行後、[最適化サマリー] ワークシートに、選 択された各演算子のパフォーマンス順位が報告されます。その後、同 じモデルを実行するときは、パフォーマンスが上位の演算子だけを選 択すると、処理がより迅速になり、より良い最適化を行うことができ ます。
注意:調整可能セルのグループを複数作成するときは、スプレッドシ ートの 1 つのセルが複数のグループに重複して含まれていないこと を確認してください。調整可能セルの各グループには、一意の調整可 能セルを含める必要があります。セルが重複していると、最初のグル ープの値が無視され、2 番目のグループの値で上書きされます。問題 を解決するために複数の解法が必要であると思われる場合には、変数 を複数のグループに振り分けることが必要になります。
104
制限
RISKOptimizer では、制限を入力できます。制限は、解が有効である ためには満たさなければならない条件です。入力した制限は、[モデ ルの定義] ダイアログ ボックスの [制限] テーブルに表示されます。
追加 - 制限の追 加
[制限] テーブルの隣にある [追加] ボタンをクリックすると、制限 を入力するための [制限設定] ダイアログ ボックスが表示されます。 このダイアログ ボックスを使って、制限の説明、種類、定義、そし て評価時間を入力できます。
105
制限の種類
RISKOptimizer では次の 2 種類の制限を指定できます。 • [ハード] - ハード制限は、解を有効とみなすには満たさなけれ ばならない条件です。(例えば、ハード制限として C10<=A4 とい う条件を指定すると、解で生成された C10 の値がセル A4 の値 より大きい場合、その解は破棄されます。) [ソフト] - ソフト制限は、できる限り満たすことが望ましい条 件ですが、適応度やターゲット セルの結果が大幅に改善される 場合には妥協することが可能なものです。(例えば、C10 の値が 100 を超えることは可能ですが、その場合にはターゲット セル の計算値が、指定したペナルティ関数に基づいて減算されます。
•
評価時間
ハード制限は、1) 1 つのシミュレーションの各反復につき確認する (反復試行制限) か、2) 各シミュレーションの終了時に確認する (シ ミュレーション制限) ことができます。 ♦ 反復試行制限は、特定の試行解のシミュレーション実行の、各反 復試行ごとに評価される制限です。反復試行の結果がハード制限 を満たさない場合、シミュレーションが停止してその試行解が破 棄された後、次の試行解のシミュレーションが開始されます。 シミュレーション制限は、例えば「A11 の平均値 >1000」など、 特定のスプレッドシート セルのシミュレーション統計に対して 指定します。これらの制限はシミュレーションが終了した時点で 評価されます。シミュレーション制限は反復試行制限と異なり、 シミュレーション中断の原因となることはありません。
•
106
シミュレーショ ン制限
シミュレーション制限は、例えば「A11 の平均値 >1000」など、特定 のスプレッドシート セルのシミュレーション統計に対して指定しま す。この制限で使用する統計は、ドロップダウン リストから選択し ます。
シミュレーション制限を使用すると、各試行解のシミュレーション中 に、[制限対象の範囲] の可能な値の分布が生成されます。各シミュ レーションの終了時に、制限が満たされているかどうかが確認されま す。シミュレーション制限がハード制限であり、その制限が満たされ ない場合には、試行解が破棄されます。ソフト制限では、制限が満た されない場合には、入力されたペナルティ関数に従って、最小化・最 大化する必要のあるターゲット セルの統計にペナルティが課されま す (以下の「ソフト制限」セクションを参照してください)。
107
シンプルな制限 と数式による制 限
制限の入力には、「シンプル」と「数式」の 2 つの形式を使用でき ます。制限に入力できる情報の種類は、使用する形式によって異なり ます。 • シンプルな形式 - シンプルな形式では、<、<=、>、>=、または = のシンプルな関係と、セルの値を比較する対象値を入力しま す。典型的なシンプルな制限の例として、次が挙げられます。 0 < A1 の値 < 10 この場合、[セル範囲] ボックス A1 を、[最小] ボックスに 0 を、[最大] ボックスに 10 を入力します。演算子はドロップダ ウン リストから選択します。シンプルな値の範囲を使った制限 では、[最大] ボックスを指定せずに [最小] ボックスだけを指 定することもできます。入力する最小値と最大値は、シンプルな 値の範囲の制限形式の数値である必要があります。 • 数式形式 - 数式形式の制限では、有効な任意の Excel 式 (例え ば A19<(1. 2*E7)+E8) を 制 限 と し て 入 力 で き ま す 。 RISKOptimizer は、入力された数式の真偽を確認し、制限が満た されているかどうかを判断します。
ソフト制限
ソフト制限は、できる限り満たすことが望ましい条件ですが、適応度 やターゲット セルの結果が大幅に改善される場合には妥協すること が可能なものです。ソフト制限が満たされない場合、ターゲット セ ルの結果に、最適な値との差が大きくなるようなペナルティが課され ます。ソフト制限違反による値の変化量は、ソフト制限の指定時に入 力するペナルティ関数を使って計算されます。
108
ここではペナルティ関数について詳しく説明します。 • ペナルティ関数の入力。RISKOptimizer では、ソフト制限を最初 に入力するときにデフォルトのペナルティ関数が表示されます。 ただし、ここに任意の有効な Excel 式を入力して、ソフト制限 が満たされない場合に適用するペナルティを計算することもでき ます。入力したペナルティ関数には、「deviation」(偏差) とい うキーワードを含める必要があります。これは、制限を越えてい る絶対量を表します。RISKOptimizer は、特定の試行解の各シミ ュレーションの終了時に、ソフト制限が満たされているか確認 し、満たされていない場合は入力されたペナルティ関数に偏差値 を代入してから、ターゲット セル統計に適用するペナルティの 量を計算します。 ペナルティは、最適な値との差が広がるような方法で、ターゲッ ト セルに計算された統計に加算または減算されます。例えば、 [RISKOptimizer - モデル] ダイアログの [最適化ゴール] フィ ールドで [最大] を選択した場合、ペナルティはターゲット セ ルの統計から差し引かれます。 • 入力したペナルティ関数の効果の確認。 RISKOptimizer には、 PENALTY. XLS という Excel ワークシートが付属しています。こ れを使って、さまざまなペナルティ関数が特定のソフト制限とタ ーゲット セルの結果におよぼす影響を評価できます。
109
PENALTY. XLS では、効果を分析するソフト制限を、モデルから選択す ることができます。その後、ペナルティ関数を変更して、制限が満た されない場合に特定の値が、ペナルティの課された特定のターゲット 値にどうマッピングされるかを確認できます。例えば A10<100 とい うソフト制限がある場合、PENALTY. XLS を使用して、セル A10 の計 算値が 105 のときにターゲット値がどうなるかを確認できます。 • 適用されたペナルティの確認。ソフト制限が満たされずターゲッ ト セルにペナルティが適用された場合、そのペナルティ量を RISKOptimizer ウオッチャーで確認することができます。ペナル ティ値は、最適化の後にオプションで作成することのできる、 「最適化ログ」ワークシートにも表示されます。
注意: [停止] ダイアログの [調整可能セル値を更新する] オプショ ンを使ってワークシートに解を配置した場合、スプレッドシートに表 示されるターゲット セルの計算結果には、ソフト制限違反のために 適用されたペナルティが一切含まれません。ペナルティが適用された ターゲット セルの結果および、違反した各ソフト制限ごとに適用さ れたペナルティの量は、RISKOptimizer の最適化サマリー ワークシ ートを確認してください。 • ワークシートの数式を使ったソフト制限の指定。ペナルティ関数 は、ワークシートの数式に直接指定することができます。ソフト 制限をワークシートで直接指定する場合、メインの RISKOptimizer ダイアログに同じ制限を入力しないでください。 ワークシートでのペナルティ関数の指定について詳しくは、「第 9 章: RISKOptimizer のその他の機能」の「ソフト制限」セクシ ョンを参照してください。
110
111
[最適化設定] コマンドの [一般] タ ブ
最適化の一般設定を定義
[最適化設定] ダイアログの [一般] タブには、個体群サイズ、表示 の更新、および乱数ジェネレータのシードの設定が含まれています。
[一般] タブの [最適化のパラメータ] オプションには次があります。 • [個体群サイズ] - 個体群サイズにより、一度にメモリに保管さ れる個体 (変数の完全なセット) の数を RISKOptimizer に指定 します。各種の問題に最適な個体群サイズについては現在でも研 究が進められていますが、一般に個体群には問題のサイズに応じ て 30~100 個の個体を使用することをお勧めします (大きな問 題にはより大きな個体群を使用します)。個体群が大きいと解を 見つけるための所要時間が長くなりますが、遺伝子プールが多様 になるため、より大局的な解答が得られるという見方が一般的で す。
112
•
[乱数ジェネレータ シード] - [乱数ジェネレータ シード] オ プションでは、RISKOptimizer で使用する乱数ジェネレータの初 期シードを設定できます。同じシード値を使用した最適化では、 モデルに変更を加えずに [同じ乱数ジェネレータ シードを各シ ミュレーションで使用] オプションを選択した場合には、同一の モデルに対して同一の解が見つかります。シミュレーション間で 不要なランダム性が最適化の結果に導入されないようにする場合 は、[同じ乱数ジェネレータ シードを各シミュレーションで使 用] オプションをオンにします。シード値は、1 から 2147483647 の整数でなければなりません。 [サンプリング タイプ] - シミュレーションの [サンプリング タイプ] オプションは、最適化の処理中に実行される各シミュレ ーションで使用するサンプリングの種類を設定します。サンプリ ング タイプによって、分布の範囲からの標本の引き出し方法が 異なります。ラテン方格法は、モンテカルロ抽出法よりも少ない 反復で、分布関数によって指定された確率分布を正確に再現しま す。モデルにモンテカルロ抽出法が特に必要とされない限り、デ フォルトのサンプリング タイプであるラテン方格法を使用する ことをお勧めします。 [同じ乱数ジェネレータ シードを各シミュレーションで使用] このオプションは、実行する各シミュレーションで繰り返し可能 な乱数ストリームを使用するよう、RISKOptimizer に指定しま す。これにより、最適化の各試行シミュレーションで分布により 返される標本が同じになります。
[一般] タブの [サンプリング] オプションには次があります。 •
•
113
[シミュレーションが実行中ではない場合に分布が返す値] オプショ ンは、<F9> キーを押して通常の Excel の再計算を行う場合に表示さ れる内容を制御します。次のオプションがあります。 • [ランダム値 (モンテ カルロ)] - 分布関数は、通常の再計算時 に、ランダムなモンテカルロ標本を返します。この設定では、ワ ークシートの値は、各再計算の分布関数に対して抽出される新し い標本で、シミュレーションの実行中と同様に表示されます。 [静的値] - 分布関数は、通常の再計算時に、RiskStatic プロパ ティ関数に入力された静的値を返します。分布関数に静的値が定 義されていない場合は、次が返されます。 - [期待値] - 分布の期待値または平均値です。離散分布につい ては、["修正" 期待値] 設定では、スワップ値として真の期待 値に最も近い分布の離散値が使用されます。 - ['真' の期待値] - この設定では、DISCRETE、POISSON、およ びこれらに類似する分布などの離散分布タイプの場合を除き、 ["修正" 期待値] オプションと同様の値がスワップされます。 これらの分布については、入力された分布に期待値が存在しな い場合 (分布内の離散ポイントでない場合) であっても、真の 期待値が返されます。 - [モード] - 分布のモード値です。 - [パーセンタイル] - 各分布に入力されたパーセンタイル値で す。
•
114
115
[最適化設定] コマンドの [実行詳細] タブ
最適化の実行時の詳細設定を定義
[最適化設定] ダイアログの [実行詳細] タブには、RISKOptimizer の最適化の実行時間を指定する設定が表示されます。これらの停止条 件は、RISKOptimizer が最適化の処理を停止するタイミングとその方 法を指定します。[最適化の開始] コマンドをいったん選択すると、 RISKOptimizer は選択された停止条件が満たされるまで、より良い解 を探してシミュレーションを実行する処理を継続します。任意数の条 件をオンにすることができますが、手動で停止するまでの間 RISKOptimizer を実行し続ける場合は、条件をまったく指定しないこ とも可能です。複数の条件を選択した場合、そのうちいずれかの条件 が満たされた時点で RISKOptimizer は処理を停止します。ここで選 択した条件は、RISKOptimizer ウオッチャーまたは [進行状況] ウィ ンドウにある [停止] ボタンを使って、いつでもオーバーライドする ことができます。
116
[最適化実行詳 細] のオプショ ン
[実行詳細] タブの [最適化実行詳細] オプションには次があります。 • [シミュレーション] - このオプションを設定すると、特定数の シミュレーションを実行した後で RISKOptimizer が停止しま す。RISKOptimizer では各試行解につき 1 つのシミュレーショ ンが生成されます。 [シミュレーション] の設定は、さまざまなモデリング手法を試 すときに RISKOptimizer の効率を比較するために特に便利で す。問題をモデル化する手法を変更したり、異なる解法を選択す ることによって、RISKOptimizer の効率が向上する可能性があり ます。モデルで特定数のシミュレーションを実行するよう指定す ると、選択された変数の数の違いや、コンピュータ ハードウェ アの処理速度、また画面の再描画にかかる時間などとは関係な く、RISKOptimizer がどの程度の効率で解を収束できるかがわか ります。各実行の結果を比較するには、RISKOptimizer の最適化 サマリー ワークシートも役立ちます。最適化サマリー ワークシ ートについて詳しくは、この章の「[RISKOptimizer ウオッチャ ー] の [停止オプション] タブ」セクションを参照してくださ い。 • [時間] - このオプションを設定すると、所定の時間数、分数、 または秒数が経過すると RISKOptimizer がシナリオのシミュレ ーションを停止します。任意の正の実数 (600 や 5. 2 など) を 入力できます。 [進行] - このオプションを設定すると、ターゲット セルの改善 度が所定の量 (変量) より少なくなった時点で、RISKOptimizer がシナリオのシミュレーションを停止します。改善度を確認する 頻度を、シミュレーションの数として整数で指定できます。[最 大変量] フィールドには、最大の変化量を 1% などのパーセント 値で入力できます。 例えばターゲット セルの平均値を最大化する必要があり、500 回のシミュレーション後に見つかった最適な解が 354. 8 である とします。[進行] オプションが唯一の停止条件として選択され ている場合、RISKOptimizer が 600 回目のシミュレーションで 一時停止し、最後の 100 のシミュレーションで 354. 9 かそれ以 上の解を見つけることができた場合にのみ、処理を続行します。 つまり、最後の 100 のシミュレーションによる改善量が 0. 1 を 超えていないので、RISKOptimizer がそれ以上の改善はあまり期 待できないと判断し、処理を停止します。複雑な問題を処理する 場合、RISKOptimizer で改善の度合いが十分かどうか評価するま
117
•
でのシミュレーション数を、例えば 500 などに増やすことがで きます。 このオプションでは、改善度が低下しそれ以上の優れた解は 見つからないと思われる時点で、ユーザーが RISKOptimizer を停止することができるので、停止条件として一番よく使わ れます。RISKOptimizer ウオッチャーの [進行状況] タブに 最適な結果のグラフを表示している場合、この条件が満たさ れて RISKOptimizer が停止する前に、このグラフがしばらく の間横ばい状態を続けます。改善度が横ばいになるまで実行 を継続する [進行] オプションは、ユーザーがグラフに基づ いて手動で処理を停止する作業を自動化したものです。 • [数式が真] - この停止条件では、最適化の最中に、入力 (または参照) された Excel の数式が真になった時点で処理 を停止します。 [エラー時に停止] - この停止条件では、ターゲット セルの 計算結果がエラー値となった時点で処理を停止します。
•
注意:停止条件を 1 つも選択せずに RISKOptimizer を実行し続け、 [RISKOptimizer ウオッチャー] ウィンドウの停止ボタンを使って手 動で停止することもできます。 [シミュレーショ ン実行詳細] オ プション [シミュレーション実行詳細] オプションは、RISKOptimizer で実行 される各シミュレーションを停止するタイミングを指定します。各シ ミュレーションを所定の反復試行回数だけ実行したり、 RISKOptimizer で各シミュレーションの停止のタイミングを自動的に 判断させることもできます。 [実行詳細] タブの [シミュレーション実行詳細] オプションには次 があります。 • [反復試行] - このオプションでは、各シミュレーションを所 定の回数だけ実行できます。RISKOptimizer は、生成した各 試行解に対して実行する各シミュレーションにおいて、所定 数の反復試行を実行します (ただし反復試行制限が満たされ ずに停止する場合を除きます)。 [収束] - 実際の収束または予想される収束を指定して、シミ ュレーション停止条件として使用できます。 実際の収束を選択すると、1) 最適化のターゲット セ ル、および 2) シミュレーション制限で参照されるセル の両方について生成された分布が安定し、目的の統計が 収束した時点で、RISKOptimizer がシミュレーションを 停止します。統計が「収束した」とみなされるのに必要
•
118
な統計の許容変化量は、[許容誤差] オプションで設定 します。 予想される収束を選択すると、1) 最適化のターゲット セル、および 2) シミュレーション制限で参照されるセ ルの両方について生成された分布が安定することを予想 できるようになった時点で、RISKOptimizerがシミュレ ーションを停止します。RISKOptimizer は、最適化中に すでに実行したシミュレーションの結果に基づいて、収 束を予想します。
過不足のない数の反復試行が実行され、返される出力統計が安定した ものになるよう、RISKOptimizer で自動的に停止を判断させる設定を お勧めします。ただし、状況によっては最適化処理を高速化するため に、反復試行の回数を指定して反復回数を制限したいこともあります。 この制限は、非常に大規模なモデルや、モデルの Excel 再計算に長 い時間がかかる場合に行います。 [許容誤差] オプションには、1~100 の値を入力するか、[自動] を 選択することができます。この値は、目的の統計が収束したとみなさ れるための許容誤差を設定します。これを低く設定すると、結果が 「収束」したとみなされるための許容統計誤差が小さくなり、100 に 近い設定にすると、収束したとみなされる統計に許容される差異がず っと大きくなります。つまり、許容誤差を低く設定した場合は処理時 間が長くなります。許容誤差が低い場合に統計収束にいたるには、シ ミュレーションごとの反復試行数を大きく増やす必要があり、その場 合は最適化全体の結果がそれほど改善されないことも多々あります。 [自動] を選択すると、RISKOptimizer によって収束許容誤差が自動 的に設定されます。
119
[最適化設定] コマンドの [表示] タ ブ
最適化の表示設定を定義
[最適化設定] ダイアログの [表示] タブには、RISKOptimizer の最 適化の処理中に表示されるものを指定する設定が含まれています。
[表示] タブには次のオプションがあります。 • • [開始時に Excel を最小化] - 最適化の開始時に Excel を最小 化するよう指定します。 [Excel の再計算を表示] - Excel を [新たなベスト シミュレー ションごと] または [シミュレーションごと] に更新するよう指 定します。ただし、最適化が一時停止された場合など、これらの 設定とは関係なく画面が更新されることもあります。 [全シミュレーションのログを記録] - 新しい各シミュレーショ ンの実行ログを記録するよう、RISKOptimizer に指定します。こ のログは [RISKOptimizer ウオッチャー] ウィンドウで確認でき ます。
•
120
121
[最適化設定] コマンドの [マクロ] タブ
最適化の処理中に実行するマクロを定義
最適化の処理中や、各試行解のシミュレーション実行中に、さまざま なタイミングで VBA マクロを実行できます。これにより、最適化の 処理中に呼び出されるカスタムの計算を設定することができます。
マクロは最適化の処理中に次のタイミングで実行できます。 • • [最適化の開始時] - [実行] アイコンをクリックした後、最初の 試行解が生成される前に、マクロが実行されます。 [各シミュレーションの開始前] - 各シミュレーション (最適化 エンジンで各試行解に対して生成されたシミュレーション) を実 行する前に、マクロが実行されます。 [各反復試行の再計算前] - サンプリングの後、各シミュレーシ ョンの各反復試行を再計算する前に、マクロが実行されます。確 率分布関数から標本を抽出した後、モデルの再計算を開始する前 に、マクロを実行します。
•
122
•
[各反復試行の再計算後] - 各シミュレーションの各反復試行を 実行した後で、マクロが実行されます。その反復試行の確率分布 関数から標本を抽出し、その標本を使ってモデルの再計算を行っ た後で、ターゲット セルの値を収集する前に、マクロを実行し ます。 [各シミュレーションの終了後] - 各シミュレーションの実行 後、ターゲット セルの分布用に最適化された統計を保管する前 に、マクロが実行されます。 [出力の保存後] - 各シミュレーションを実行し、ターゲット セ ルの分布用に最適化された統計を保管した後で、マクロが実行さ れます。 [最適化の終了後] - 最適化の処理が完了した時点でマクロが実 行されます。
•
•
•
この機能によって、マクロの使用が必要な計算を、最適化中に実施す ることができます。マクロによって実施される計算の例には、反復的 な「ループ」計算や、外部ソースの新規データを必要とする計算が挙 げられます。 [マクロ名] には、実行するマクロを指定します。
123
[最適化の開始] コマンド
最適化を開始
[最適化の開始] コマンドを選択するか、[最適化の開始] ボタンをク リックすると、アクティブなモデルとワークブックの最適化が開始さ れ ま す 。 RISKOptimizer の 処 理 が 開 始 さ れ る と 、 次 の [RISKOptimizer 進行状況] ウィンドウが表示されます。
[進行状況] ウィンドウには、次の情報が表示されます。 • • [反復試行] - 現在のシミュレーションで実行される反復試 行の数です。 [シミュレーション] - すでに実行されたシミュレーション 合計数です。[ 個が有効] は、このうちすべての制限が満 たされたシミュレーションの数です。 [実行時間] - 実行を開始してからの経過時間です。 [オリジナル] - ワークシートの調整可能セルの既存の値を 使って最初のシミュレーションを実行した結果計算された、 ターゲット セルの統計の初期値です。 [ベスト] - 最小化または最大化する必要のある、ターゲッ ト セルの統計の現在のベストの値です。
• •
•
最適化の処理中は Excel のステータス バーにも、分析の進行状 況が表示されます。
124
[進行状況] ウィンドウの RISKOptimizer ツールバーには、次のオプ ションがあります。 • [Excel の更新オプションの表示] - Excel の表示の更新オプシ ョンを、[シミュレーションごとに再計算]、[新たなベスト シミ ュレーションごとに再計算]、または [更新しない] のいずれか を選択します。ただし、最適化が一時停止された場合など、これ らの設定とは関係なく画面が更新されることもあります。 [RISKOptimizer ウオッチャーの表示] - [RISKOptimizer ウオッ チャー] ウィンドウを表示します。 [実行] - [実行] アイコンをクリックすると、[RISKOptimizer モデル] ダイアログの現在の設定内容に基づいて RISKOptimizer が解の検索を開始します。RISKOptimizer を一時停止した場合で も、[実行] アイコンをクリックしてより良い解を見つけるため に処理を再開することができます。 [一時停止] - RISKOptimizer の処理を一時停止するには、[一時 停止] ボタンをクリックします。すると RISKOptimizer の処理 が一時的に停止されます。一時停止中、RISKOptimizer ウオッチ ャーを表示してパラメータの確認や変更、個体群全体の確認、ス テータス レポートの表示、グラフのコピーなどを行うことがで きます。 [停止] - 最適化を停止します。
• •
•
•
125
[ユーティリティ] コマンド
[アプリケーション設定] コマンド
プログラムのデフォルト設定を指定する [アプリケーション設 定] ダイアログを表示
RISKOptimizer には、実行するたびにデフォルト値として使用される RISKOptimizer 設定が多くあります。これらの設定には、停止のデフ ォルト、デフォルトの交差率と突然変異率、などがあります。
126
127
[制限ソルバー] コマンド
制限ソルバーを実行
制限ソルバーを使用して、RISKOptimizer によるモデル制限の処理能 力を向上させることができます。RISKOptimizer による最適化の実行 では、調整可能セルの初期値がすべてのハード制限を満たしているこ と、つまりオリジナルの解が有効であることを前提としています。そ うでない場合、最初の有効な解が見つかるまで、アルゴリズムにより 何度も繰り返しシミュレーションが実行される可能性があります。た だし、複数の制限が含まれているモデルでは、すべての制限を満たし ている調整可能セルの値を判断するのが難しいこともあります。 RISKOptimizer モデルに複数のハード制限が含まれていて、すべての 解が無効となり最適化が失敗した場合、これを通知するメッセージが 表示されて制限ソルバーを実行できるようになります。制限ソルバー は、最適化を特殊なモードで実行し、すべてのハード制限を満たす解 を見つけようとします。通常の最適化の場合と同様に、ユーザーには 最適化の進行状況が表示されます。進行状況ウィンドウには、オリジ ナルの解およびベストな解で満たされている制限の数が表示されます。
128
進行状況ウィンドウにあるボタンを使用して、RISKOptimizer ウオッ チャーに切り替えることができます。制限ソルバー モードでも通常 の最適化モードと同様に [進行]、[サマリー]、[ログ]、[個体群]、 [相違] という各タブに最適化処理の詳細が表示されます。ただし制 限ソルバー モードでは、ウオッチャーに [制限ソルバー] という追 加のタブも表示されます。このタブには、ベスト、オリジナル、最終 の解の各ハード制限のステータス (達成または不達成) が表示されま す。
制限ソルバー モードの最適化は、すべてのハード制限を満たす解が 見つかると自動的に停止されますが、進行ウィンドウまたは RISKOptimizer ウオッチャーにあるボタンをクリックして手動で停止 することも可能です。制限ソルバーの実行後、通常モードの最適化と 同じように RISKOptimizer ウオッチャーの [停止オプション] タブ でベスト、オリジナル、または最終の解を保持するように指定できま す。 制限ソルバーは、これを実行する前に設定する必要はありません。制 限ソルバーはモデル内で指定されている設定を使用しますが、最適化 のゴールが変更されて、すべてのハード制限を満たす解を見つけよう とします。
129
[停止オプション] タブには、[この最適化処理時に用いるシード値を 設定] という追加の推奨オプションがあります。このオプションが用 意されているのは、調整可能セルの値が同じであってもシミュレーシ ョン結果はシード値に依存するので、乱数ジェネレータのシード値が 固定されていないと、制限ソルバーの実行中に満たされていた制限が 通常モードでは満たされなくなる可能性があるためです。制限ソルバ ーを実行する前に [最適化設定] ダイアログでシード値が設定されて いた場合、このオプションは使用できません。
130
RISKOptimizer ウオッチャー
[RISKOptimizer 進行状況] ウィンドウのツールバーにある虫眼鏡の アイコンをクリックすると、RISKOptimizer ウオッチャーが表示され ます。RISKOptimizer ウオッチャーは、RISKOptimizer のすべての操 作を制御し、これらの操作に関する報告を行います。 RISKOptimizer ウオッチャーを使用してパラメータを変更したり、最 適化の進行状況を分析したりできます。また、RISKOptimizer ウオッ チャーの下部のステータス バーで、問題に関するリアルタイムの情 報や、RISKOptimizer の進行状況を確認することもできます。
131
[RISKOptimizer ウオッチャー] の [進行] タブ
ターゲット セル値の進行状況のグラフを表示
RISKOptimizer ウオッチャーの [進行] タブには、選択されたターゲ ット セルの結果がシミュレーションごとにどう進行しているかが、 グラフに表示されます。
進行状況のグラフの X 軸はシミュレーション数を、Y 軸はターゲッ ト セルの値を示します。軸の限界をクリックして新しいスケール値 にドラッグすると、進行状況グラフのスケールを変更できます。また は、進行状況グラフを右クリックして [グラフのオプション] ダイア ログを表示し、グラフをカスタマイズすることもできます。
132
[グラフのオプシ ョン] ダイアロ グ
[グラフのオプション] ダイアログには、グラフのタイトル、凡例、 スケール、およびフォントを指定する設定が表示されます。
133
[RISKOptimizer ウオッチャー] の [サマリー] タブ
調整可能セルの値の詳細を表示
RISKOptimizer ウオッチャーの [サマリー] タブには、最適化でテス トした調整可能セルの値のサマリー テーブルおよび、モデルの各調 整可能セル グループの交差率と突然変異率を調整するためのツール が表示されます。
[調整可能セル グループの設定] では、最適化の処理中に遺伝的アル ゴリズムの交差率と突然変異率を変更することができます。ここで行 った変更は、これらのパラメータの初期設定を上書きして直ちに有効 になり、[表示中のグループ] フィールドで選択した個体群 (または 調整可能セルのグループ) に反映されます 通常の場合、交差率にはデフォルト設定の 0. 5 を使用するようお勧 めします。突然変異率は、最も適した解を見つける必要があり、処理 時間が長くなっても構わない場合には、多くのモデルでは 0. 4 程度 にまで上げることができます。RISKOptimizer では交差の後に突然変 異を実行するので、突然変異率を最大値の 1 に設定すると、完全に ランダムな推測が行われます。この場合、選択された 2 つの親を交 差して子孫の解を作成した後で、その解の遺伝子の 100% の突然変異 が起こり、すべてが乱数で置き換えられます (詳しくは、索引の「交 差率、機能」および「突然変異率、機能」の項を参照してください)。
134
[RISKOptimizer ウオッチャー] の [ログ] タブ
最適化中に実行された各シミュレーションのログを表示
RISKOptimizer ウオッチャーの [ログ] タブには、最適化中に実行さ れた各シミュレーションのサマリー テーブルが表示されます。この ログにはターゲット セル、各調整可能セル、および入力した制限の 結果が含まれています。ログを表示するには、[最適化設定] ダイア ログの [表示] タブで [全シミュレーションのログを記録] オプショ ンを選択する必要があります。
[表示] オプションで、[すべてのシミュレーション] のログを表示す るか、[進行ステップ] のあった (つまり最適化結果が改善された) シミュレーションのみを表示するかを選択します。ログには次の情報 が含まれています。 1) [経過時間] - シミュレーションの経過時間。 2) [反復試行] - 実行された反復試行の数。 3) [結果] - ソフト制限のペナルティを適用した後の、最小化・最 大化する必要のあるターゲット セルの統計値。 4) [出力平均]、[出力標準偏差]、[出力最小]、[出力最大] - 計算 されたターゲット セルの確率分布の統計値。 5) 入力値の列 - 調整可能セルに使用した値。 6) 制限の列 - 制限が満たされたかどうかを示します。
135
[RISKOptimizer ウオッチャー] の [個体群] タブ
現在の個体群に含まれる各個体 (起こりうる各解) のすべての 変数を表示
個体群のテーブルには、現在の個体群に含まれる各個体 (起こりうる 各解) の全変数のリストが表示されます。これらの個体は、最悪なも のから最良のものへと並んでいます。このテーブルには個体群のすべ ての個体が含まれるので、ここに表示される個体の数は [RISKOptimizer 最適化設定] ダイアログの [個体群サイズ] の設定 によって決まります (デフォルトの数は 50 です)。また、この表の 2 列目には各個体のターゲット セルの結果値が表示されます。
136
[RISKOptimizer ウオッチャー] の [相違] タブ
現在の個体群のすべての変数のカラー プロットを表示
[相違] タブのプロット図では、特定の時点でメモリに保管されてい る個体 (解) 群において特定セルの値にどの程度の差異が見られるか によって、調整可能セルの値に色が割り当てられます。(これは遺伝 的最適化の分野においては、遺伝子プールにどの程度の多様性が存在 するかを示します。) プロット図の縦の各列は 1 つの調整可能セル を表し、列内の各行は、異なる個体 (解) におけるその調整可能セル の値を表します。各行の色は、特定の調整可能セルの最小値から最大 値までの範囲を 16 等分し、その各区間にそれぞれ異なる色を割り当 てることによって決まります。たとえば、2 番目の調整可能セルを表 す縦の列がすべて同じ色になっているのは、メモリ内のすべての解で このセルの値が同じであることを示します。
137
[RISKOptimizer ウオッチャー] の [停止オプショ ン] タブ
最適化の停止オプションを表示
[停止] ボタンをクリックすると、[RISKOptimizer ウオッチャー] ダ イアログの [停止オプション] タブが表示されます。このタブには、 ワークシートを調整可能セルのベストな計算値で更新したり、元の値 を復元したり、最適化サマリー レポートを生成したりするためのオ プションが表示されます。 [OK] をクリックすると RISKOptimizer の解の個体群が破棄され、選 択された値がスプレッドシートに代入されます。個体群の値や、試行 の実行時間と数などを含む、RISKOptimizer セッションについての情 報を保存するには、最適化サマリー レポートを作成するオプション を必ず選択してください。
このダイアログは、ユーザーの指定した停止条件が満たされた場合 (例えば、指定の試行数に達したり、指定の分数が経過した場合) に も表示されます。停止の警告メッセージには、スプレッドシートの調 整可能セル値を更新するオプションとして、ベスト、オリジナル、最 後、の 3 つが表示されます。
138
•
[ベスト] - RISKOptimizer の結果を受け入れて、より良い解の 検索を終了します。このオプションを選択すると、 RISKOptimizer の処理により見つかったベスト シナリオの値 が、スプレッドシートの調整可能セルに設定されます。 [オリジナル] - このオプションは、調整可能セルの値を RISKOptimizer を実行する前の値に戻して、より良い解の検索を 終了します。 [最後] - RISKOptimizer が、最適化処理で最後に計算した値 を、ワークシートに挿入します。最後の計算値のオプションは、 モデルのデバッグを行う際に特に便利です。
•
•
[生成するレポート] セクションのオプションを使って、実行の結果 をレポートしたり複数の実行結果を比較するのに役立つ、最適化サマ リー ワークシートを生成します。レポートのオプションには次があ ります。 • [最適化サマリー] - 最適化の実行日時、使用した最適化設定、 ターゲット セルの計算値、および各調整可能セルの値などが含 まれています。
このレポートは、最適化を何度も行った結果を比較する場合に便利で す。
139
•
[全シミュレーションのログ] - 実行されたすべての試行シミュ レーションの結果が記録されています。
•
[進行ステップのログ] - ターゲット セルの結果が改善されたす べての試行シミュレーションの結果が記録されています。
140
第 6 章: 最適化
はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 最適化の手法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 山登り法アルゴリズムについて . . . . . . . . . . . . . . . . . . . . . . . . . . . [. . . ] "An Improved Computation Procedure for Risk Analysis Problems With Unusual Probability Functions": SPE Hydrocarbon Economics and Evaluation Symposium Proceedings, Dallas (1985).
Error!Style not defined.
205
シミュレーションを使用したサンプルや活用事例
シミュレーションの実用例に関しては、以下の文献を参考にしてくだ さい。
Hertz, D. B. Practical Risk Analysis - An Approach Through Case Histories: John Wiley and Sons, New York, NY, 1984. Decisions Involving Uncertainty, An @RISK Tutorial for the Petroleum Industry: James A. [. . . ]
PALISADE RISKOPTIMIZER 5.5ダウンロード上のご注意
Lastmanualsはユーザー主導型のハードウエア及びソフトウエアのマニュアル(ユーザーガイド・マニュアル・クイックスタート・技術情報など)を共有・保存・検索サービスを提供します。
お探しの書類がなかったり、不完全だったり、言語が違ったり、モデル名や言語が説明と違う場合など、いかなる場合でもLastmanualsはその責を負いません。またLastmanualsは翻訳のサービスもしていません。
規約に同意して「マニュアルをダウンロード」をクリックすればPALISADE RISKOPTIMIZER 5.5のマニュアルのダウンロードが開始されます。