ユーザー ガイド
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
はじめに................................................... 3
インストール方法 .......................................... 11
第 2 章: RISKOptimizer と最適化について 17
RISKOptimizer について .................................... 19
従来の最適化とシミュレーション最適化の違い ................ 27
第 3 章: RISKOptimizer: ステップバイステップ 33
はじめに.................................................. 35
RISKOptimizer の基本操作 .................................. 37
第 4 章: 実用例 59
はじめに.................................................. 61
予算の配分................................................ 63
容量計画.................................................. 65
クラスのスケジュール ...................................... 67
先物取引のヘッジ .......................................... 69
製作工場のスケジュール .................................... 71
ポートフォリオの分散 ...................................... 73
i
ポートフォリオの配分 ...................................... 75
ポートフォリオ リスク ..................................... 77
巡回セールスマンの問題..................................... 79
利益管理 .................................................. 81
第 5 章: RISKOptimizer リファレンス ガイド 83
[モデルの定義] コマンド.................................... 85
[最適化設定] コマンドの [一般] タブ....................... 112
[最適化設定] コマンドの [ランタイム] タブ ................. 116
[最適化設定] コマンドの [表示] タブ....................... 120
[最適化設定] コマンドの [マクロ] タブ..................... 122
[最適化の開始] コマンド................................... 124
[ユーティリティ] コマンド................................. 126
RISKOptimizer ウオッチャー................................ 131
第 6 章: 最適化 141
第 7 章: 遺伝的アルゴリズム 153
はじめに ................................................. 155
歴史的背景 ............................................... 155
生物の例 ................................................. 158
コンピュータの例 ......................................... 159
第 8 章: シミュレーションとリスク分析 163
はじめに ................................................. 165
リスクについて ........................................... 165
ii
RISKOptimizer における不確実性のモデル化 ................. 171
シミュレーションを利用したモデル分析 ..................... 173
第 9 章: RISKOptimizer のその他の機能 175
制限の追加............................................... 177
処理速度の改善 ........................................... 187
RISKOptimizer の最適化の実装 ............................. 189
付録 A: RISKOptimizer の自動化 193
付録 B: トラブルシューティングと Q&A 195
トラブルシューティングと Q&A ............................. 197
付録 C: 参考文献 199
用語集 207
索引 217
iii
iv
第 1 章: RISKOptimizer
の概要
はじめに................................................... 3
RISKOptimizer の利点 ..................................... 3
従来の最適化処理 .................................. 3
不確定要素を伴うモデルの最適化..................... 4
不確実性のモデル化 ................................ 4
シミュレーションを使った最適化..................... 5
シミュレーション結果 .............................. 5
RISKOptimizer を使用したカスタム アプリケーション .. 6
RISKOptimizer によるシミュレーション最適化の使用例 . 6
インストールの前に ....................................... 7
製品パッケージの確認 ..................................... 7
このバージョンについて ................................... 7
ご利用のオペレーティング環境での作業 ..................... 7
サポートについて ......................................... 8
お問い合わせの前に ................................ 8
Palisade へのお問い合わせ.......................... 9
ステューデント版 ................................. 10
RISKOptimizer システム必要条件 .......................... 10
インストール方法 .......................................... 11
一般的なインストール方法 ................................ 11
RISKOptimizer のコンピュータからの削除............ 11
DecisionTools Suite ..................................... 12
RISKOptimizer アイコンおよびショートカットの設定......... 13
起動時に表示されるマクロのセキュリティ警告メッセージ..... 14
RISKOptimizer に関する追加の情報 ........................ 15
RISKOptimizer の「お読みください」(README) ファイル 15
RISKOptimizer チュートリアル...................... 15
RISKOptimizer の自己学習 ................................ 15
1
2
はじめに
RISKOptimizer はシミュレーションと最適化を組み合わせることによ
って、不確実要素を伴うモデルの最適化を行います。RISKOptimizer
は、遺伝的アルゴリズム (GA: Genetic Algorithm) に基づく強力な
最適化手法とモンテカルロ シミュレーションを用いて、線形および
非線形処理による一般の最適化ツールでは解くことのできない問題を
解決できます。RISKOptimizer は、Palisade のリスク分析アドイン
@RISK と、Palisade 社の遺伝的アルゴリズムベースの問題解決ツー
ル Evolver を組み合わせたツールです。@RISK および、Evolver ま
たは Excel のソルバー機能に精通しているユーザーは、
RISKOptimizer を問題なく使用することができます。
この『RISKOptimizer ユーザー ガイド』では、まず RISKOptimizer
とその仕組みについて概要を説明した後、RISKOptimizer 特有の遺伝
的アルゴリズムとシミュレーション手法の実用例をいくつか紹介しま
す。また、このマニュアルは RISKOptimizer の各機能の説明が記載
された索引付きリファレンス ガイドとしてご利用いただくこともで
きます。
RISKOptimizer の利点
RISKOptimizer を使用すると、まったく新しいタイプの問題を最適化
によって解決できるようになります。RISKOptimizer では、制御が不
可能な未知の要素を含む問題に対して最適な答えを見つけることがで
きます。ソルバー (Excel に付属の線形および非線形最適化ツール)
や Evolver (Palisade Corporation の遺伝的アルゴリズムベースの
最適化ツール) といった一般的な最適化ツールでは、モデルの不確定
要素に起こりうるさまざまな値を入力した場合、最適な解を求めるこ
とができません。
従来の最適化処
理
3
ソルバーや Evolver で行われる従来の Excel ベースの最適化問題は、
次の要素から構成されています。
• 最小化、または最大化を必要とする、「ターゲット」セル (出
力)
• ユーザーが制御する、「調整可能セル」(入力)
• 一連の制限 (通常 COSTS<100 や A11>=0 などの数式で表します)
Evolver やソルバーを使った最適化では、調整可能セルの値がユーザ
ーの指定する許容範囲内で変更されます。調整可能セルで可能な値の
各セットにつき、モデルが再計算されてターゲット セルの新しい値
が算出されます。最適化が完了した時点で、最適な解 (または調整可
能セルの値の組み合わせ) が見つかります。この解は、入力した制限
を満たす範囲内で最適な (つまり最小または最大の) 値を返す、調整
可能セル値の組み合わせとなります。
不確定要素を伴
うモデルの最適
化
不確実性のモデ
ル化
モデルに不確実要素が含まれている場合、ソルバーまたは Evolver
で最適な解を生成することはできません。従来の多くの最適化モデル
では不確実性を無視することにより最適化を可能にしているため、モ
デルの実用的が損なわれます。シミュレーションを使用して最適な解
を探す場合には、強制的な方法により調整可能セルの可能な値を反復
計算で求めていました。この方法では、初期シミュレーションの実行、
1 つ以上の値の変更、シミュレーションの再実行、という一連の処理
が、最適な解と思われる結果が得られるまで繰り返し行われます。こ
のような処理は時間がかかるだけでなく、各シミュレーションのため
の値の変更方法も曖昧になります。
RISKOptimizer を使用すれば、モデルに伴う不確実性を計算に入れた
上で、信頼性の高い最適な解を求めることが可能です。
RISKOptimizer は、@RISK のシミュレーション機能を使用してモデル
に伴う不確実性を処理し、Evolver の遺伝的アルゴリズムを用いて調
整可能セルの可能な値を生成します。この「シミュレーション最適
化」の結果として、ターゲット セルのシミュレーション結果を最適
化 (つまり最小化または最大化) する、調整可能セル値の組み合わせ
が得られます。この方法では、例えばターゲット セルの確率分布の
平均値を最大化したり、標準偏差を最小化したりする調整可能セルの
組み合わせを見つけることができます。
不確実性のモデル化を可能にするため、RISKOptimizer では、スプレ
ッドシートの各要素に可能な値を @RISK のすべての確率分布関数を
使ってユーザーが記述できます。例えば、スプレッドシート セルの
10 という値は、=RiskNormal(10,2)という @RISK 関数で置き換える
ことができます。この関数は、セルの可能な値を平均値 10、標準偏
差 2 の確率分布 として記述します。@RISK と同様に、確率分布は
RiskCorrmat や DepC などの @RISK 関数を使用して相関することが
できます。
4
シミュレーショ
ンを使った最適
化
RISKOptimizer の最適化処理では、GA ベースの最適化エンジンで生
成された可能な試行解のそれぞれに対して完全なシミュレーションを
実行します。試行解のシミュレーションの各反復試行でスプレッドシ
ートの確率分布関数がサンプリングされ、ターゲット セルの新しい
値が生成されます。シミュレーションが完了すると、試行解の結果と
して、最小化または最大化する必要のあるターゲット セルの分布に
関する統計が得られます。この値は最適化エンジンに返され、遺伝的
アルゴリズムによって新たなより良い試行解を生成するために使用さ
れます。新しく生成された各試行解を使用して再びシミュレーション
が実行され、ターゲット統計のさらに新しい値が生成されます。
従来の最適化ツールと同様に、RISKOptimizer にも必要な制限を入力
できます。制限は 1 つのシミュレーションの各反復につき確認する
(反復試行制限) か、各シミュレーションの終了時に確認する (シミ
ュレーション制限) ことができます。通常、反復試行制限は従来のソ
ルバーまたは Evolver と同様の制限です (例: A11>1000)。シミュレ
ーション制限は、モデル内で指定したセルのシミュレーション結果の
分布に関する統計を参照する制限です。標準的なシミュレーション制
限 と し て は 、 例 え ば 「A11 の平 均値 >1000 」 が 挙 げ ら れ ま す 。
Evolver と同様に、ハード制限とソフト制限のどちらでも指定でき、
ハード制限に違反した場合はその試行解が拒否されます。
RISKOptimizer では大量のシミュレーションを実行するので、処理時
間をできるだけ短縮して最適な解を迅速に算出できるように 2 つの
重要な手法が採用されています。まず、RISKOptimizer は収束を監視
することにより、過不足のない反復数を判断します。これにより、タ
ーゲット セルの確率分布から得られた統計および、制限で参照され
る出力分布からのすべての統計が安定したものになります。さらに、
RISKOptimizer では Evolver の遺伝演算子を使用して、できる限り
短時間で最適な解が得られるような試行解を生成します。
シミュレーショ
ン結果
RISKOptimizer には、シミュレーションの結果をスプレッドシートに
直接返すことのできる、一連のシミュレーション統計関数が用意され
ています。例えば、RiskMean (セル参照) という関数は、入力された
セルのシミュレーション分布の平均値を、ワークシートのセルまたは
数式に直接返します。さらに、RISKOptimizer で求めた最適なモデル
解に関する詳しい統計や表が必要な場合には、RISKOptimizer で作成
したすべてのモデルを Palisade Corporation の Excel 用リスク分
析およびシミュレーション アドインである @RISK で直接シミュレー
ションすることができます。RISKOptimizer のシミュレーションは
@RISK を基盤としているので、@RISK でシミュレーションを行うため
に RISKOptimizer モデルに変更を加える必要は一切ありません。
5
RISKOptimizer
を使用したカス
タム アプリケー
ション
RISKOptimizer には、その機能を使用するカスタム アプリケーショ
ンを構築するための完全なマクロ言語が付属しています。
RISKOptimizer のカスタム関数を Visual Basic for Applications
(VBA) で使用して、最適化処理の実行や最適化の結果を表示すること
もできます。このプログラミング インターフェイスの詳細について
は、RISKOptimizer デベロッパー キットのヘルプ マニュアルを参照
してください。このマニュアルは RISKOptimizer の [ヘルプ] メニ
ューからアクセスできます。
RISKOptimizer
によるシミュレ
ーション最適化
の使用例
不確実要素を伴うモデルの最適化により、これまで最適化が不可能だ
った多くの問題を解決できるようになります。シミュレーションと最
適化を組み合わせることで、原則的には不確実要素を伴うすべてのモ
デルを最適化することができます。例えば次のような問題を最適化で
きます。
♦ 不確実な市場環境における、新製品の最適な製造量および製造能
力レベルの判断
♦ 需要が不確実な場合の最適な在庫水準の判断
♦ リスクを最小化するためのポートフォリオ配分
♦ 製品市場が地理的に分散しており需要レベルが不確実な場合に工
場で製造すべき最適な製品ミックスの判断
♦ ヘッジ取引に最適なオプション購入レベルの判断
♦ さまざまな制約下で同じ製品を異なる価格で販売する場合の収益
管理
♦ タスクの所要時間が不確実な場合のスケジュール管理
6
インストールの前に
RISKOptimizer をインストールして使用する前に、RISKOptimizer の
製品パッケージに必要なものがすべて含まれているか確かめ、お使い
のコンピュータが特定用途の最小要件を満たしていることを確認して
ください。
製品パッケージの確認
RISKOptimizer に は 、 @RISK イ ン ダ ス ト リ ア ル版および
DecisionTools Suite インダストリアル版が含まれています。@RISK
インダストリアル版 CD-ROM には RISKOptimizer Excel アドイン、
RISKOptimizer のサンプル ファイル、索引付きの RISKOptimizer オ
ンライン ヘルプ システム、Excel 用 @RISK インダストリアル版お
よ び @RISK for Excel ファイルがそれぞれ含まれています。
DecisionTools Suite インダストリアル版には、上記すべてとさらに
追加のアプリケーションが含まれています。
このバージョンについて
このバージョンの RISKOptimizer は、Microsoft Excel 2000 または
それ以降に 32 ビット プログラムとしてインストールできます。
ご利用のオペレーティング環境での作業
このユーザー ガイドは、Windows オペレーティング システムおよび
Excel についての一般的な知識がある読者を対象としています。特に
以下の知識が必要です。
♦ ご利用のコンピュータ、およびマウスの使用法に精通してい
ること。
♦ アイコン、クリック、ダブルクリック、メニュー、ウィンド
ウ、コマンド、オブジェクトといった用語に精通しているこ
と。
♦ ディレクトリ構造やファイルの命名といった、基礎的な概念
を理解していること。
7
サポートについて
テクニカル サポートは、有効なメンテナンス プランをお持ちの
@RISK 登録ユーザー様に対して無償で、あるいはインシデントごとに
有償で提供しております。@RISK 登録ユーザーになるには、
http://www.palisade.com/support/register.asp にてオンライン登
録を行ってください。
電話でのお問い合わせの際には、あらかじめ製品のシリアル番号とユ
ーザー ガイドを手元にご用意ください。また、コンピュータで作業
できる状態でご連絡いただければ、さらに質の高いテクニカル サポ
ートを受けることができます。
お問い合わせの
前に
テクニカル サポートへのお問い合わせの前に、次の事柄をご確認く
ださい。
• オンライン ヘルプを参照しましたか?
• 本ユーザー ガイドを確認し、オンライン マルチメディア チュ
ートリアルの内容を参照しましたか?
• 「お読みください」(README) ファイルを読みましたか?このフ
ァイルには、マニュアルに収録されていない、最新の
RISKOptimizer 製品情報が記載されています。
• 問題となっている障害は再現することが可能ですか?また、別の
コンピュータやモデルでも、問題点を再現することは可能です
か?
• 弊社の Web サイトをご覧になりましたか?弊社サイトの URL ア
ドレスは http://www.palisade.com です。このサイトのテクニ
カル サポートのセクションには、最新の FAQ (テクニカル サポ
ートに寄せられた質問とその回答集を収録した、検索可能なデー
タベース)、および RISKOptimizer のパッチが掲載されています。
RISKOptimizer およびその他の Palisade ソフトウェアの最新情
報をいち早く入手できるよう、弊社のサイトには定期的にアクセ
スされることをお勧めします。
8
Palisade へのお
問い合わせ
Palisade 社では、RISKOptimizer に関するご質問、ご意見、および
ご提案をお待ちしております。テクニカル サポートには、以下のい
ずれかの方法でご連絡いただけます。
• 電子メール: support@palisade.com
• 電話: +1(607) 227-8000 (米国)、米国東海岸時間平日午前 9 時
から午後 5 時まで。テクニカル サポートへの電話案内の指示に
従ってください。
• ファックス: +1(607) 227-8001 (米国)
• 郵便:
Technical Support
Palisade Corporation
798 Cascadilla St
Ithaca, NY 14850 USA
Palisade Europe へのお問い合わせをご希望の場合:
• 電子メール: support@palisade-europe.com
• 電話: +44 1895 425050 (英国)
• ファックス: +44 1895 425051 (英国)
• 郵便:
Palisade Europe
31 The Green
West Drayton
Middlesex
UB7 7PN
United Kingdom
Palisade Asia-Pacific へのお問い合わせをご希望の場合:
• 電子メール: support@palisade.com.au
• 電話: +61 2 9929 9799 (オーストラリア)
• ファックス: +61 2 9954 3882 (オーストラリア)
• 郵便:
Palisade Asia-Pacific Pty Limited
Suite 101, Level 1
8 Cliff Street
Milsons Point NSW 2061
Australia
9
いずれの方法でお問い合わせいただく場合でも、必ず製品名、正確な
バージョン番号、およびシリアル番号をご連絡ください。正確なバー
ジョンは、 Excel の RISKOptimizer メ ニ ューから [RISKOptimizer
について] コマンドを選択することで確認できます。
ステューデント
版
ステューデント版の RISKOptimizer に対する電話でのサポートは提
供しておりません。サポートが必要な場合は、以下の方法をご検討く
ださい。
♦ 担当の教授または教育助手に相談する。
♦ http://www.palisade.com にアクセスして FAQ を参照する。
♦ 電子メールまたはファックスで弊社のテクニカル サポート部
門に連絡する。
RISKOptimizer システム必要条件
RISKOptimizer の必要システム条件は以下の通りです。
• ハードディスクが備わった Pentium 以上のパーソナル コンピュ
ータ
• Microsoft Windows 2000 SP4 またはそれ以降
• Microsoft Excel バージョン 2000 またはそれ以降
10
インストール方法
RISKOptimizer は、Microsoft Excel のアドイン プログラムです。
RISKOptimizer は、Excel のメニュー バーにコマンドを追加して、
スプレッドシート プログラムの機能を強化します。
一般的なインストール方法
RISKOptimizer のセットアップ プログラムは、ユーザーが指定した
ハードディスク上のディレクトリに RISKOptimizer システム ファイ
ルをコピーします。Windows 2000 およびそれ以降でのセットアップ
プログラム実行方法は、以下の通りです。
1) CD-ROM ドライブに @RISK インダストリアル版または
DecisionTools Suite インダストリアル版 CD-ROM を挿入します。
2) [スタート] ボタンをクリックし、[設定] > [コントロール パネ
ル] をクリックします。
3) [プログラムの追加と削除] アイコンをダブルクリックします。
4) [インストール/アンインストール] タブの [インストール] ボタ
ンをクリックします。
5) 画面に表示されるセットアップ手順に従います。
RISKOptimizer のインストール中に問題が発生する場合は、インスト
ール対象のドライブに十分な空きスペースがあることを確認してくだ
さい。十分な空きスペースが確保できたら、再度、インストール手順
を実行してください。
RISKOptimizer
のコンピュータ
からの削除
11
ご 利 用 の コ ン ピ ュ ー タか ら、 @RISK イ ンダストリアル版または
DecisionTools Suite インダストリアル版と一緒に RISKOptimizer
を削除したい場合は、コントロール パネルの [プログラムの追加と
削除] ユーティリティを起動し、@RISK または RISKOptimizer の項
目を選択します。
DecisionTools Suite
RISKOptimizer は、Palisade 社が提供しているリスク分析・意思決
定分析のためのセット製品、DecisionTools Suite と連携させて使用
することができます。デフォルトの RISKOptimizer インストール手
順では、メイン ディレクトリである「Program Files\Palisade」の
サブディレクトリに RISKOptimizer がインストールされます。これ
は、「Microsoft Office」ディレクトリのサブディレクトリに Excel
がインストールされるのと同じ要領です。
Program Files\Palisade ディレクトリに作成されるサブディレクト
リの 1 つが、RISKOptimizer ディレクトリ (デフォルト名
「RISKOptimizer5」) です。このディレクトリには、RISKOptimizer
アドイン プログラム ファイル (RISKOPT.XLA) に加えて、サンプル
モデルおよび、RISKOptimizer を実行するために必要な関連ファイル
が含まれています。Program Files\Palisade には、SYSTEM というサ
ブディレクトリも作成されます。このディレクトリには、共通のヘル
プ ファイルやプログラム ライブラリなど、DecisionTools Suite の
すべてのプログラムで必要とされるファイルが含まれています。
12
RISKOptimizer アイコンおよびショートカットの設
定
RISKOptimizer のセットアップ プログラムは、タスクバーのプログ
ラム メニューに、RISKOptimizer コマンドを自動的に作成します。
ただし、セットアップ作業中に問題が発生した場合、あるいは、後日
このコマンドを手動で作成する場合は、以下の手順に従います。
1) [スタート] ボタンをクリックし、[設定] を選択します。
2) [タスクバー] をクリックし、[スタート メニュー プログラ
ム] タブをクリックします。
3) [追加] をクリックし、[参照] をクリックします。
4) RISKOPT.EXE ファイルを探し、このファイルをダブルクリッ
クします。
5) [次へ] をクリックし、プログラムのショートカットを保存す
る、対象のメニューをダブルクリックします。
6) 名前として「RISKOptimizer」と入力し、[完了] をクリック
します。
13
起動時に表示されるマクロのセキュリティ警告メッ
セージ
Microsoft Office には、Office アプリケーション上で不要なマクロ、
または悪意をもって作成されたマクロが実行されるのを防止するため
に、さまざまなセキュリティ設定 ([ツール] > [マクロ] > [セキュ
リティ]) が用意されています。最低限のセキュリティ設定を使用し
ない限り、マクロ付きのファイルを読み込むたびに警告メッセージが
表示されます。Palisade 社のアドインを実行するたびにこのような
メッセージが表示されることを防ぐため、Palisade では自社のアド
イン ファイルにデジタル署名を付与しています。したがって、いっ
たん Palisade Corporation を信頼できる作成元として登録すれば、
Palisade 社のすべてのアドインを警告メッセージの表示なしに開く
ことができます。以下の手順に従ってください。
• RISKOptimizer の起動時に、次のような [セキュリティの警
告] ダイアログが表示されたら、[この発行者のドキュメン
トをすべて信頼する] チェック ボックスをオンにします。
14
RISKOptimizer に関する追加の情報
RISKOptimizer に関する追加の情報は、以下の方法で入手できます。
RISKOptimizer
の「お読みくだ
さい」(README)
ファイル
RISKOptimizer
チュートリアル
このファイルには、RISKOptimizer の概要と、最新のバージョンに関
する新しい情報が記載されています。「お読みください」ファイルを
表示するには、Windows の [スタート] メニューから [プログラム]
> [Palisade DecisionTools] > [お読みください] を選択し、
[RISKOptimizer 5.5 for Excel - お読みください] をクリックしま
す。RISKOptimizer をお使いになる前に、このファイルの内容を確認
することをお勧めします。
RISKOptimizer オンライン チュートリアルでは、RISKOptimizer を
初めて利用されるユーザーを対象に、RISKOptimizer および遺伝的ア
ルゴリズムの概要について説明しています。このチュートリアルはご
く短時間で修了できます。チュートリアルへのアクセス方法について
は、次の「RISKOptimizer の学習」セクションを参照してください。
RISKOptimizer の自己学習
RISKOptimizer の 使 い 方 を 素 早 く 習 得 する に は 、オ ン ラ イン の
RISKOptimizer チュートリアルを利用するのが一番簡単です。このチ
ュートリアルでは、エキスパートによるサンプル モデルをムービー
形式で紹介しています。このチュートリアルは、RISKOptimizer の主
要機能について解説したマルチメディア プレゼンテーションです。
チュートリアルを実行するには、RISKOptimizer [ヘルプ] メニュー
の [RISKOptimizer へようこそ] コマンドを選択します。
15
16
第 2 章: RISKOptimizer
と最適化について
RISKOptimizer について .................................... 19
RISKOptimizer の仕組み .................................. 20
遺伝的アルゴリズム ............................... 20
確率分布とシミュレーション........................ 20
最適化について .......................................... 21
Excel でモデルを構築する理由 ............................ 22
Excel モデルにおける不確実性のモデル化................... 23
シミュレーションを使った不確実性の考慮................... 23
RISKOptimizer の利点 .................................... 24
より正確で意味のある分析.......................... 24
優れた柔軟性 ..................................... 25
使いやすさ ....................................... 25
従来の最適化とシミュレーション最適化の違い ................ 27
従来のスプレッドシートによる最適化の処理................. 27
シミュレーション最適化の処理 ............................ 28
RISKOptimizer を使った最適化の各手順 .................... 29
確率分布の入力 ................................... 29
ターゲット セルと統計の指定....................... 30
調整可能セルの入力 ............................... 30
制限の入力 ....................................... 31
最適化とシミュレーションのオプションの設定 ........ 31
最適化の実行 ..................................... 32
17
18
RISKOptimizer について
RISKOptimizer ソフトウェア パッケージを使用して、不確実性を伴
うモデルの最適な解を簡単に見つけることができます。
RISKOptimizer は、目標とするシミュレーション出力を得るために最
適な入力を判断するツールです。例えば RISKOptimizer を使って、
利益を最大限にするための最適な条件の組み合わせや順序を判断した
り、利益を得るための最小リスク (最小誤差) や、最小量の原料から
得ることのできる商品の最大価値の予測などを求めることができます。
RISKOptimizer は Microsoft Excel スプレッドシート プログラムの
アドインとして機能します。まず Excel を使って問題のモデルを設
定してから、RISKOptimizer を使ってその問題を解決します。
まず Excel で問題のモデルを作成してから、RISKOptimizer アドインで解決します。
Excel は、問題の実用的なモデルを作成するために大半のユーザーが
必要とする、すべての数式、関数、グラフ、およびマクロ機能を提供
します。RISKOptimizer
は、モデルに含まれる不確実性と、探してい
る解を指定するためのインターフェイスおよび、その解を見つけるた
めのエンジンを提供します。この 2 つのプログラムを連携させるこ
とにより、実質的にモデル化が可能なすべての問題
に対する答えを見
つけることが可能になります。
19
RISKOptimizer の仕組み
RISKOptimizer は、Palisade 社独自の一連の遺伝的アルゴリズムを
使用して問題の最適な解を検索し、確率分布とシミュレーションを用
いてモデルに含まれる不確実性に対応します。
遺伝的アルゴリ
ズム
確率分布とシミ
ュレーション
RISKOptimizer では、モデルの最適な解を見つけるために遺伝的アル
ゴリズムを使用しています。遺伝的アルゴリズムはダーウィンの進化
論の原理を模倣したもので、ある問題に対して何百もの起こりうる解
が存在する中で、これらが互いに競争し合った結果「適者」のみが生
存するような環境を作り出します。生物の進化と同じように、各解が
その優れた「遺伝子」を子孫の解に受け渡し、解の集団全体がさらに
より良い解へと進化し続けていきます。
遺伝的アルゴリズムの分野では、その基盤である進化論の分野と似た
用語がよく使われます。例えば、「交差」関数を使って解の検索を絞
り込む、「突然変異」率により「遺伝子プール」の多様化を促進する、
解または「個体」の「個体群」全体を評価する、などという言い方を
します。RISKOptimizer の遺伝的アルゴリズムの仕組みについて詳し
くは、「第 7 章: 遺伝的アルゴリズム」を参照してください。
RISKOptimizer では、モデル内の変数に含まれる不確実性を処理する
ために、確率分布とシミュレーションが使用されます。これらの機能
は、Palisade 社の Excel 用リスク分析アドイン @RISK によって提
供されます。確率分布を使用して、モデルに含まれる不確実要素の可
能な値の範囲を指定します。例えば、「RiskTriang(10,20,30)」のよ
うに確率分布関数を使って可能な値を入力します。この関数は、モデ
ル内のある変数の最小値が 10、最頻値が 20、最大値が 30 であるこ
とを指定します。その後、シミュレーションを使用して、最適化エン
ジンにより生成された各試行解のすべての可能な結果の分布が求めら
れます。
20
最適化について
最適化とは、数多くの起こりうる解の中から最適なものを見つけ出す
過程のことです。通常の場合、問題には特定の数式や制限に基づいて
相互に作用する、多くの変数が関与しています。例えば、それぞれが
複数の商品をさまざまな数量生産している 3 つのプラントを所有す
る企業があると想定します。各商品の生産費、各プラントから各店舗
への出荷コスト、そして各プラントの制限を前提とした場合、運送費
を最小限に抑えた状態で各地のリテール店舗の需要を満たすには、ど
のような生産方法が一番適しているでしょうか。最適化ツールは、こ
うしたタイプの問題を解決するために設計されています。
一般的な最適化では、特定のリソースを前提とした場合に
最高の利益につながる組み合わせを見つけます。
上記の例で可能な各解は、どのプラントがどの商品を生産しており、
それがどのトラックでどのリテール店舗に運送されるか、を完全に指
定したリストで構成されます。最適化の問題のその他の例としては、
利益を最大限にする方法、コストを最小化する方法、最多数の人命を
救助する方法、回路のノイズを最小化する方法、一連の都市間の経路
を最短化する方法、そして最も効果のある広告メディアの購入ミック
スの判断、などが挙げられます。また、最適化の問題の重要なカテゴ
リとして、スケジュール管理が挙げられます。これには、特定の勤務
シフト中の効率の最大化や、さまざまなグループの会議時間の予定重
複を最小化する問題などが含まれます。最適化について詳しくは、
「第 6 章: 最適化」を参照してください。
不確実性の伴う問題を、従来の解決ツールで処理することはできませ
ん。これは、モデル中の不確実性に対処する機能が欠けているためで
す。例えば上記の例で、各地のリテール店舗の需要が確実ではないと
21
します。すると、各店舗に必要な商品の正確な数量がわからないこと
になります。従来の問題解決ツールでは、各店舗に必要な数量を仮に
推測していました。この場合、モデルの最適化を行うことはできても、
需要レベルを推測しているために、このモデルは実際の状況を正確に
反映していないことになります。ところが RISKOptimizer では、こ
の需要レベルを推測する必要がありません。RISKOptimizer では、確
率分布を使って可能性のある需要レベルを指定し、内蔵のシミュレー
ション機能を使用して、起こりうるすべての需要レベルを考慮した上
で最適化の結果を求めることができます。
RISKOptimizer で生成された最適な解は、最適化の対象モデル内の目
標または「ターゲット セル」の 1 つの最大値や最小値ではなく、そ
の目標の最大または最小のシミュレーション統計となります。
RISKOptimizer が実行する各シミュレーションにより、目標の可能な
結果の分布が求められます。この分布には、平均値、標準偏差、最小
値、などのさまざまな統計が含まれます。したがって、上記の例では、
利益分布の平均値を最大化する入力や、標準偏差を最小化する入力を
見つける必要があります。
シミュレーションについて詳しくは、「第 8 章: シミュレーション
とリスク分析」を参照してください。
Excel でモデルを構築する理由
どのような体系であっても、その効率を上げるには、まずその動作を
理解する必要があります。体系のモデルを構築する理由は、ここにあ
ります。複雑な体系を調査する場合、これを抽象化したモデルが必要
となりますが、そのモデルから実世界に通用する結果を得るには、変
数間の因果関係を単純化し過ぎないことが肝心です。今日ではソフト
ウェアの機能改善やプロセッサ処理能力の向上により、経済学者は経
済のより現実的なモデルを構築し、科学者は化学反応の予測精度を高
め、またビジネスマンは企業モデルの感度をより高めることが可能に
なっています。
この数年間でコンピュータ ハードウェアおよび Microsoft Excel な
どのソフトウェア プログラムが飛躍的な進歩を遂げ、パーソナル コ
ンピュータさえあれば誰もが複雑な体系の現実的なモデルを構築でき
るようになりました。Excel の組み込み関数、マクロ機能、そしてク
リーンでわかりやすいインターフェイスを使えば、初心者であっても
複雑な問題のモデル化と分析を簡単に行うことができます。モデルに
ついて詳しくは、「第 9 章: RISKOptimizer のその他の機能」を参
照してください。
22
Excel モデルにおける不確実性のモデル化
分析を行う上で重要な材料であると判断された基本要素が、Excel モ
デルの変数となります。例えば、金融関連の問題をモデル化する場合、
コスト、売上げ、利益、といった変数が考えられます。地学の問題を
モデル化する場合には、鉱床までの深度、石炭層の厚み、間隙率、と
いった変数が考えられます。各状況に独自の変数があり、これはユー
ザーが決定します。
場合によっては、モデル内でこれらの変数が取る値がわかっているこ
ともあります。これらは確実な値で、統計学では「決定的」変数と呼
ばれることもあります。これに対して、変数の取る値がわからない場
合もあります。これらは不確実、または「確率的」な変数です。モデ
ル内の変数が不確実な場合、その不確実性の性質を指定する必要があ
ります。これには、確率分布を使用して、変数が取り得る値の範囲
(最小値と最大値) および、その範囲内の各値の発生確率を指定しま
す。RISKOptimizer では、不確実な変数およびセル値を、次のような
確率分布関数として入力します。
RiskNormal(100,10)
RiskUniform(20,30)
RiskExpon(A1+A2)
RiskTriang(A3/2.01,A4,A5)
これらの「分布」関数は通常の Excel 関数と同様に、ワークシート
セルや数式内で使用できます。
シミュレーションを使った不確実性の考慮
RISKOptimizer は、シミュレーション (モンテカルロ シミュレーシ
ョンと呼ばれることもあります) を使用して、最適化の処理中に生成
される可能な各解に対してリスク分析を行います。ここで言うシミュ
レーションとは、コンピュータで、セル値と数式内の確率分布から無
作為に選択された一連の値を使って、ワークシートを繰り返し再計算
することにより、起こりうる結果の分布を生成する手法のことを指し
ています。つまり、コンピュータが可能な入力値のすべての組み合わ
せを試し、起こりうる全結果のシミュレーションを行うわけです。こ
れは、ワークシートで何百、何千といった「仮説」の分析をすべて 1
度に実行するのと同じです。
23
シミュレーションの各反復試行において、スプレッドシートの確率分
布関数がサンプリングされ、ターゲット セルの新しい値が生成され
ます。シミュレーションが完了すると、試行解の結果として、最小化
または最大化する必要のあるターゲット セルの分布に関する統計が
得られます。この値は最適化エンジンに返され、遺伝的アルゴリズム
によって、さらに新しいより良い解を生成するために使用されます。
新たに生成された各試行解を使用して再びシミュレーションが実行さ
れ、ターゲット統計のさらに新しい値が生成されます。
RISKOptimizer の利点
相互に作用する多くの変数を前提として、これらの変数の最適な組み
合わせ、順位、またはグループ分けを判断する必要がある場合、人は
つい知識と経験に基づく推測をしがちです。そして、単なる推測にと
どまらずモデル化や分析を行うためには、複雑なプログラミングや難
解な統計または数学的なアルゴリズムが必要だと思っている人も沢山
います。優れた最適な解が見つかれば、数億円の資金や、大量の燃料、
また数ヶ月分の作業時間を節約することが可能になります。高速なデ
スクトップ コンピュータを安価で入手でき、Excel や
RISKOptimizer といったソフトウェアも手軽に購入できるようになっ
た今日では、単なる推測だけで対処したり、貴重な時間を割いて手作
業で多くのシナリオを試したりする必要はありません。
より正確で意味
のある分析
24
RISKOptimizer では Excel のすべての数式と確率分布を使用して、
あらゆる問題のより現実的なモデルを構築できます。RISKOptimizer
を使用する場合、特定のアルゴリズムが実世界の複雑さに対処できな
いためにモデルの精度が落ちる、ということはありません。従来の一
般的なソルバー (統計および線形プログラミング ツール) では、ユ
ーザーが問題の変数間の相互作用について無理に推測する必要がある
ため、結果として極端に単純化された非現実的なモデルが出来上がり
ます。これらの最適化ツールでは、不確実性を伴うモデルの要素が取
りうる値の範囲を考慮に入れることができず、ユーザーは不確実な変
数の値を推測するよう強要されます。これらの解決ツールで対応でき
るレベルにまで問題を単純化してしまうと、得られる解も抽象化され
た非実用的なものとなります。そして、問題に多くの変数、非線形関
数、ルックアップ テーブル、if-then ステートメント、データベー
ス クエリー、または確率的 (ランダム) な要素が含まれている場合
には、モデルをいかに単純化したとしても、こうしたツールで問題を
解決することは不可能です。
優れた柔軟性
使いやすさ
シンプルで規模の小さい線形・非線形タイプの問題を処理できる解決
アルゴリズムは数多くあります。これには、山登り法やソルバー、そ
の他の数学的方法が含まれます。これら汎用の最適化ツールはスプレ
ッドシートのアドインとして提供されていますが、処理の対象となる
のは数値計算による最適化に限られます。より複雑な規模の大きい問
題の場合、特定のカスタム アルゴリズムを記述して良い結果を得る
ことができたとしても、これには多くの調査や開発努力が必要です。
また、このような方法で作成したプログラムは、モデルが変化するご
とに変更を加える必要があります。
RISKOptimizer では、数値計算の問題を処理できるだけでなく、一般
に市販されている世界で唯一のプログラムとして、ほとんどの順列組
み合わせ問題を解決することができます。組み合わせ問題には、さま
ざまな順列や組み合わせを試す必要のある変数が含まれています。例
えば、野球チームの打順決定は、選手がバッター席に入る順番を決め
る順列組み合わせ問題です。また、複雑なスケジュール管理も順列組
み合わせ問題の 1 つです。RISKOptimizer があれば、このようにほ
かのツールでは対処が不可能なさまざまなタイプの問題を、1 つのツ
ールで解決することができます。RISKOptimizer 独自の遺伝的アルゴ
リズムとシミュレーション技術により、ほぼあらゆるタイプ、サイズ、
そして複雑度のモデルを最適化することが可能です。
RISKOptimizer は強力な機能と優れた柔軟性を備えていますが、その
基盤となる複雑な遺伝的アルゴリズムを使った手法をユーザーが理解
する必要はまったくなく、使い方はごく簡単です。RISKOptimizer に
いわゆる問題の「要点」を理解させる必要はありません。必要なのは、
各シナリオの適性を評価できるスプレッドシート モデルを指定する
だけです。変数が入っているスプレッドシート セルを選択し、探し
ている答えを RISKOptimizer に指定します。RISKOptimizer を使用
するのに難しい技術を理解する必要は一切なく、問題分析における推
定処理を自動的に行うことができます。
数学的プログラミングおよびモデル構築用に開発されたプログラムは
いくつも市販されていますが、スプレッドシートは毎月何百万という
ユーザーが購入する、最もよく使われるプログラムです。行と列を使
ったわかりやすい形式を採用したスプレッドシートには、ほかの専用
製品よりも設定や管理がしやすいという利点があります。さらに、ワ
ードプロセッサやデータベースといったほかのプログラムとの互換性
にも優れ、どのスタンドアロン型製品よりも多くの数式、書式設定オ
プション、グラフ オプション、およびマクロ機能が用意されていま
す。RISKOptimizer は Microsoft Excel のアドインとして機能する
25
ため、多様な関数や開発ツールを利用して、問題の現実的なモデルを
手軽に構築することができます
26
従来の最適化とシミュレーション最適
化の違い
RISKOptimizer は、シミュレーションと最適化の手法を組み合わせる
ことにより、不確実要素を伴うモデルの最適化を行います。
RISKOptimizer はシミュレーション モデルを繰り返し実行した結果
を使用して、より良い最適な解を見つけ出します。このセクションで
は、RISKOptimizer におけるシミュレーションと最適化の仕組みにつ
いての基礎的な情報について解説します。
従来のスプレッドシートによる最適化の処理
ソルバーや Evolver などの最適化アドインを使った従来のスプレッ
ドシート最適化では、以下の処理が行われます。
1) 最小化または最大化する必要のある、「ターゲット」セル (出
力) を指定します。
2) ユーザーが制御する、一連の調整可能セル (入力) を指定し、こ
れらのセルの可能値の範囲を指定します。
3) 満たす必要のある一連の制限を指定します。これは通常、
COSTS<100 や A11>=0 といった数式で表されます。
4) 最適化を実行します。調整可能セルのさまざまな可能値を使用し
てスプレッドシートを繰り返し再計算します。
5) この処理中、以下の操作が行われます。
a) 各再計算により、ターゲット セルの新しい「解」または値が
生成されます。
b) 最適化エンジンがこの新しいターゲット セル値を使って、次
に試行する調整可能セルの一連の値を選択します。
c) 再計算がもう一度行われ、その新しい解を使用して、調整可
能セルの新しい一連の値を判断します。
最適化エンジンは上記 5) の処理を何度も繰り返した結果、最終的に
最適な解を見つけ出します。最適な解は、ターゲット セルの値を最
小化または最大化する調整可能セルの一連の値です。
27
シミュレーション最適化の処理
RISKOptimizer を使ったシミュレーション最適化でも、従来のスプレ
ッドシート最適化と似た手順が実行されます。ただし、1) スプレッ
ドシートに不確実要素を入力できる、2) 単にスプレッドシートを再
計算する代わりにシミュレーションを使用する、という 2 つの相違
があります。これにより、調整可能セルの新しい一連の値を選択する
ための目安として、最適化エンジンにフィードバックを返す、新しい
ターゲット セルの「解」が提供されます。
以下は、RISKOptimizer を使ったシミュレーション最適化の処理の流
れを説明したものです。従来のスプレッドシート最適化の処理と異な
る部分は太字で表記されています。
1) 確率分布関数を使用して、モデルに含まれる不確実要素の可能値
の範囲を指定します。
2) 「ターゲット」セル (出力) を指定し、最小化または最大化する
必要のあるセルのシミュレーション統計 (平均値、標準偏差な
ど) を選択します。
3) ユーザーが制御する、一連の調整可能セル (入力) を指定し、こ
れらのセルの可能値の範囲を指定します。
4) 満たす必要のある一連の制限を指定します。これは通常、COSTS<100 や
A11>=0 といった数式で表されます。シミュレーション統計に基づく追
加の制限 (例えば、「A11 の 95 パーセンタイル >1000」など)
も入力できます。
5) 最適化を実行します。各シミュレーションで調整可能セルの異な
る可能値を使用して、スプレッドシートを繰り返しシミュレーシ
ョンします。この処理中、以下の操作が行われます。
a) 各シミュレーションにより、ターゲット セルの起こりうる
値の新しい分布が生成されます。この分布から、最小化また
は最大化する必要のある統計が計算されます。
b) 最適化エンジンがこの新しい統計を使って、次に試行する調
整可能セルの一連の値を選択します。
c) シミュレーションがもう一度行われ、その結果得られた新し
い統計を最適化エンジンが使用して、調整可能セルの新しい
一連の値を判断します。
最適化エンジンは上記 5) の処理を何度も繰り返した結果、最終的に
最適な解を見つけ出します。最適な解は、ターゲット セルのシミュ
レーション結果の統計を最小化または最大化する調整可能セルの一連
の値です。
28
RISKOptimizer を使った最適化の各手順
ここでは RISKOptimizer で使用されるシミュレーション最適化処理
の各手順について詳しく説明します。
確率分布の入力
確率分布は、RISKOptimizer でモデルの要素に含まれる不確実性を指
定するために使用されます。例えば、ワークシートのセルに
「RiskUniform(10,20)」と入力した場合、そのセルの値が、最小値
10、最大値 20 の一様分布によって生成されることを示します。
Excel に必要な単一の「固定」値が、この値の範囲によって置き換え
られます。従来のスプレッドシート最適化ではモデルに不確実要素を
追加することができないため、確率分布は使用されません。
RISKOptimizer では、最適化エンジンで生成された入力値の各組み合
わせにつき、モデルのシミュレーションが実行されます。分布関数は、
RISKOptimizer がこれらのシミュレーションを実行する際に、可能な
値のセットをサンプリングするために用いられます。シミュレーショ
ンの各反復試行時には、ワークシート上に定義された各分布関数から
サンプリングされた、新しい一連の値が用いられます。そして、これ
らの値を利用してワークシートが再計算され、ターゲット セルの新
たな値が生成されます。
分布関数は、Excel の関数同様に、関数名と括弧で囲まれた引数値の
2 つの要素で構成されます。次は分布関数の典型的な例です。
RiskNormal(100,10)
Excel 関数と同じく、分布関数の引数にもセル参照や数式を含めるこ
とができます。次に例を示します。
RiskTriang(B1,B2*1.5,B3)
この関数記述の場合、当該セルの値は、セル B1 にある最小値、セル
B2 の値に 1.5 を掛けあわせた最頻値、およびセル B3 にある最大値
を用いた三角分布によって表されます。
分布関数は、Excel 関数同様に、セル数式内でも使用することができ
ます。例えば、セル数式に次のように記述できます。
B2: 100+RiskUniform(10,20)+(1.5*RiskNormal(A1,A2))
確率分布の入力について詳しくは、@RISK マニュアルまたはヘルプの
「リファレンス: 分布関数」セクションを参照してください。
29
ターゲット セル
と統計の指定
ターゲット セルは、RISKOptimizer と従来のスプレッドシート最適
化の両方で指定されます。ターゲット セルには、最小化または最大
化する必要のある値、または、あらかじめ設定された値にできるだけ
近づける必要のある値が含まれています。これは通常の場合、モデル
の「結果」(例えば利益、モデルの総計など) ですが、スプレッドシ
ートの任意のセルを指定することができます。このセルには、調整可
能セルの値の変化に応じて異なる値を返すような数式を含める必要が
あります。
RISKOptimizer では、ターゲット セルの実際の値を最小化・最大化
するのではなく、ターゲット セルのシミュレーション結果に関する
「統計」を最小化・最大化します。RISKOptimizer は最適化の処理中、
一連の調整可能セルの値を変えながらシミュレーションを繰り返し実
行します。各シミュレーションにより、ターゲット セルの起こりう
る結果の新しい分布が生成されます。例えば、ターゲット セルの確
率分布の平均値を最大化したり、標準偏差を最小化したりする、調整
可能セルの一連の値を見つけます。
RISKOptimizer では、試行する各解のシミュレーションから算出され
るのが 1 つの値だけではないので、最小化または最大化する対象と
して、平均値、標準偏差、最小値などを選択することができます。シ
ミュレーションにより、ターゲット セルの起こりうる結果の完全分
布が生成されます。この統計には、最小値、最大値、平均値、標準偏
差などが含まれます。従来の最適化では、試行する各解につき 1 つ
の値 (新しいターゲット セルの値) だけが生成されます。その場合、
最小化や最大化する対象として選択できるのはこの値だけです。
調整可能セルの
入力
調整可能セルの入力方法は、従来のスプレッドシート最適化でも
RISKOptimizer でも同様です。最適化の処理中に変更が可能な各セル
につき、起こりうる最小値と最大値を入力します。
RISKOptimizer では Evolver に基づく最適化エンジンを使用するた
め、RISKOptimizer の調整可能セルの入力オプションも Evolver の
場合と同じです。入力オプションには、突然変異率、解法、遺伝演算
子などがあります。調整可能セルの入力について詳しくは、「第 5
章: RISKOptimizer リファレンス」の「調整可能セルの範囲」セクシ
ョンを参照してください。
30
制限の入力
従来のスプレッドシート最適化と同様、RISKOptimizer にも、満たす
必要のあるハード制限を入力することができます。従来のスプレッド
シート最適化では、ハード制限が各試行解につきテストされます。ハ
ード制限が満たされない場合、その解は破棄されます。
RISKOptimizer では、各試行解につき完全なシミュレーションが実行
されます。各シミュレーションは一連の反復試行、つまり、モデルの
確率分布から得た新しい標本を使用したスプレッドシートの再計算で
構成されます。ハード制限は、次のタイミングでテストすることがで
きます。
♦ 各シミュレーションの各反復試行につきテストする (反復試行制
限)反復試行の結果がハード制限を満たしていない場合、シミュ
レーションが停止して試行解が拒否され、次の試行解とそのシミ
ュレーションが開始されます。
♦ シミュレーションの終了時にテストする (シミュレーション制
限)この種類の制限は、例えば「A11 の平均値 >1000」など、特
定のスプレッドシート セルのシミュレーション統計に対して指
定します。これらの制限はシミュレーションが終了した時点で評
価されます。シミュレーション制限は反復試行制限と異なり、シ
ミュレーション中断の原因となることはありません。
RISKOptimizer で使用できるもう 1 つの制限形式として「ソフト制
限」があります。ソフト制限に違反した場合、シミュレーションの終
了時にペナルティが計算されます。すべてのペナルティは、最小化・
最大化するターゲット統計に加算または減算されます。
制限の入力について詳しくは、「第 5 章: RISKOptimizer リファレ
ンス」の「制限」セクションを参照してください。
最適化とシミュ
レーションのオ
プションの設定
RISKOptimizer では、従来のスプレッドシート最適化と同様、さまざ
まなオプションを使って最適化の実行時間を指定できます。これに加
えて、RISKOptimizer では各試行解ごとの各シミュレーションの実行
時間を指定するオプションもあります。
RISKOptimizer は、選択した最適化停止オプションの条件が満たされ
るまで、シミュレーションの実行と最適な解の検索を続けます。
RISKOptimizer の実行時間は、分数、生成される試行解の数、または
ターゲット セルの最適なシミュレーション統計が変化しなくなって
からの試行数、によって指定することができます。
31
さらに、各試行解のシミュレーションの実行時間を指定することも可
能です。各シミュレーションの実行時間は反復試行回数で指定するか、
RISKOptimizer で各シミュレーションを停止するタイミングを自動的
に判断させることもできます。各シミュレーションの停止条件を
RISKOptimizer で自動的に 判 断させる場合、RISKOptimizer は、1)
最適化のターゲット セル、および 2) シミュレーション制限で参照
されるセル、の両方について生成された分布が安定し、目的の統計が
収束した時点で、シミュレーションを停止します。
最適化の実行
RISKOptimizer による最適化では、スプレッドシートのシミュレーシ
ョンが繰り返し実行されます。各シミュレーションで調整可能セルの
異なる可能値が使用されます。この処理中、以下の操作が行われます
。
1) 最適化エンジンが調整可能セルの一連の値を生成します。
2) 最適化エンジンにより生成された調整可能セルの値を使っ
て、スプレッドシートがシミュレーションされます。シミュ
レーションの各反復試行で、スプレッドシートのすべての確
率分布関数がサンプリングされ、スプレッドシートが再計算
されて、ターゲット セルの新しい値が生成されます。反復
試行の再計算後、反復試行制限に 1 つでも違反した場合、
シミュレーションが停止され、最適化エンジンが次にシミュ
レーションを行うための新しい試行解を生成します。
3) 各シミュレーションの終了時に、ターゲット セルの可能値
の新しい分布が生成されます。この分布から、最小化または
最大化する必要のある統計が計算されます。シミュレーショ
ン制限に 1 つでも違反した場合、試行解とシミュレーショ
ンの結果が破棄され、最適化エンジンが次にシミュレーショ
ンを行うための新しい試行解を生成します。
4) 最適化エンジンが、シミュレーションで計算されたターゲッ
ト セルの新しい統計を使って、次に試行する調整可能セル
の一連の値を選択します。
5) シミュレーションがもう一度行われ、最適化エンジンがその
結果の新しい統計を使って、調整可能セルの新しい一連の値
を判断します。
最適化ツールはこの処理を何度も繰り返した結果、最終的に最適な解
を見つけ出します。最適な解は、ターゲット セルの統計を最小化ま
たは最大化する調整可能セルの一連の値です。
32
第 3 章: RISKOptimizer:
ステップバイステップ
はじめに.................................................. 35
RISKOptimizer の基本操作 .................................. 37
RISKOptimizer の起動 .................................... 37
RISKOptimizer のツールバー........................ 37
サンプル モデルを開く ............................ 37
モデルに伴う不確実性の指定 .............................. 39
[RISKOptimizer - モデル] ダイアログ ..................... 41
ターゲット セルの統計の選択 ............................. 42
調整可能セルの範囲の追加 ................................ 42
調整可能セルの最小 - 最大範囲の入力............... 42
解法の選択 ....................................... 44
制限 .................................................... 45
反復試行制限とシミュレーション制限................ 45
制限の追加 ....................................... 46
シンプルな値の範囲と数式による制限................ 47
RISKOptimizer のその他のオプション ...................... 50
最適化の停止条件 ................................. 50
シミュレーションの停止条件........................ 51
シミュレーション データのログ..................... 52
最適化の実行 ............................................ 53
RISKOptimizer ウオッチャー........................ 54
最適化の停止 ..................................... 55
概要レポート ..................................... 56
結果によるモデルの更新............................ 57
33
34
はじめに
この章では、RISKOptimizer の最適化の処理全体についてステップご
とに解説します。ハードディスクに RISKOptimizer がインストール
されていない場合、このチュートリアルを始める前に、まず「第 1
章: はじめに」のインストール方法を参照して RISKOptimizer をイ
ンストールしてください。
このチュートリアルでは、事前作成されたスプレッドシート モデル
を開き、確率分布と RISKOptimizer のダイアログを使って
RISKOptimizer に問題を指定します。その後、RISKOptimizer が解を
検索する間に進行状況を確認し、RISKOptimizer ウオッチャーのいく
つかのオプションについて考察します。特定のトピックについて詳し
くは、このマニュアルの索引または、「第 5 章: RISKOptimizer リ
ファレンス」を参照してください。
注意:以下の画面は Excel 2007 の例です。それ以外のバージョンの
Excel をお使いの場合、ウィンドウの表示が若干異なる場合がありま
す。
問題を解決するには、まずその問題を正確に表せるモデルが必要です。
このモデルは、特定の一連の入力値 (調整可能セル) を評価して、こ
れらの入力により問題がどの程度解決されるかを示す数値 (評価、ま
たは「適応度」関数) を生成できなければなりません。また、このモ
デルには、すべての不確実要素の可能な値の範囲を指定する、確率分
布を含める必要もあります。RISKOptimizer が解を探す間、この適応
度関数のシミュレーションによって各推測の適応度についてのフィー
ドバックを RISKOptimizer に返し、RISKOptimizer がさらに優れた
推測を行えるようにします。問題のモデルを作成する際には、この適
応度関数に十分注意する必要があります。RISKOptimizer は、このセ
ルのシミュレーション結果を最大化または最小化できるような最適な
解を探します。
35
36
RISKOptimizer の基本操作
RISKOptimizer の起動
RISKOptimizer を起動する方法は 2 つあります。1) Windows デスク
トップの [RISKOptimizer] アイコンをクリックします。2) Windows
の [スタート] > [プログラム] の項目から[Palisade
DecisionTools] を選択し、さらに [RISKOptimizer] を選択します。
どちらの手順でも、Microsoft Excel と RISKOptimizer の両方が起
動します。
RISKOptimizer
のツールバー
サンプル モデル
を開く
RISKOptimizer が読み込まれると、Excel に RISKOptimizer ツール
バーまたはリボンが表示されます。このツールバーには、
RISKOptimizer の設定や、最適化の開始、一時停止、そして停止など
を行うボタンがあります。
ここでは RISKOptimizer と一緒にインストールされたサンプル モデ
ルを使いながら RISKOptimizer の機能について説明します。以下の
手順に従ってください。
1) RISKOPTIMIZER5\EXAMPLES\JAPANESE デ ィ レ ク ト リ に あ る
AIRLINES.XLS ワークシートを開きます。
37
このサンプル ワークシートには、特定のフライトで販売すべき最適
な正規料金と割引料金の座席数を判断する、収益管理モデルが定義さ
れています。このモデルでは、典型的な予約超過の問題を避けるため
に、空席数を越えて予約を受け付ける場合の最適な予約数も判断する
ことができます。ただし、この最適化モデルには、モデルの一部の推
測が不確実、つまり「確率的」であるという問題があります。不確実
要素には、実際に搭乗する乗客数、各料金クラスで実際に需要のある
予約数、そして搭乗拒否の際のコスト (例えば 1 万円の引換券を発
行するだけの場合もあれば、往復便を無償提供する場合もあります)
が含まれます。従来ではこれらの項目に単一の推測値を使用して、一
般的な最適化を行えるようにしていました。ただし、この方法では、
推測が誤っていた場合に問題となります。例えば、受け付けた予約数
が少なすぎたり、空席が余ってしまったり、予約超過の問題が起きる
可能性があります。また、割引料金の席が多すぎるために利益が低下
したり、正規料金の席を多く確保しすぎたために、空席がたくさん余
るということも考えられます。RISKOptimizer を使えば、モデルに内
在する不確実性を考慮に入れながら、こうした最適化問題を解決する
ことが可能です。
ここで挙げた航空会社の例では、まずモデルに含まれる不確実性を、
確率分布を使って指定します。次に、RISKOptimizer のダイアログを
使用して最適化問題を設定します。最後に、RISKOptimizer を実行し、
妥当なリスクで最大限の利益を上げるために必要な、正規料金と割引
料金それぞれの最適な予約数を判断します。
38
モデルに伴う不確実性の指定
RISKOptimizer では、確率分布関数を使用して、モデルに含まれる不
確実要素が取りうる値の範囲を指定します。確率分布は、不確実要素
の最小値と最大値および、その範囲内の値の相対確率を指定します。
RISKOptimizer では、確率分布関数を使って確率分布を入力します。
これらは RISKOptimizer のカスタム関数で、標準の Excel 関数と同
様、スプレッドシートのセルや数式に入力することができます。例と
して、次の関数を見てみましょう。
♦ RiskTriang(10,20,30) は、最小値 10、最頻値 20、最大値 30
の三角分布を指定します。
航空会社のモデルには、確率分布で指定された 5 つの不確実要素が
含まれています。まず、最初の要素について見てみましょう。
♦ Demand for Full Fare Reservations ( セ ル C8) 。
RiskTriang(3,7,15) という確率分布で指定されています。この
関数は、正規料金の予約需要の可能範囲が 3~15 であり、最頻
値が 7 であることを指定します。
この確率分布を入力するには、次の手順を行います。
1) セル C8 を選択します。
2) 「=ROUND(RiskTriang(3,7,15),0)」という数式を入力します。
ROUND という Excel 関数は、RiskTriang 関数が返した標本を整
数に丸めます。(予約数として 5.65 という端数は不適切なため
です。)
39
以下に、このモデルに含まれるその他の確率分布を示します。これら
のセルは Airlines.XLS にすでに入力されています。各項目が指定さ
れたセルに移動すると、その内容を確認できます。
♦ % No Shows - Full Fare reservations ( セ ル C7) 。 これは
RiskNormal(.2,.03) として指定されています。平均すると正規
料金予約客の 20% がフライト当日にキャンセルすることを意味
します。実際の当日取消率は、20% から平均値 0.2、標準偏差
0.03 の正規分布で指定される範囲で変動します。
♦ % No Shows - Discount Fare reservations (セル C11)。これは
RiskNormal(.1,.01) として指定されています。平均すると割引
料金予約客の 10% がフライト当日にキャンセルすることを意味
します。実際の当日取消率は、10% から平均値 0.1、標準偏差
0.01 の正規分布で指定される範囲で変動します。正規料金に比
べて割引料金の方が当日の搭乗確率が高いのは、割引航空券を変
更するには 75 ドルの手数料がかかるためです。正規料金の航空
券は全額返金が可能です。
♦ Demand for Discount Fare Reservations (セル C12)。
RiskTrigen(12,20,40,10,90) という確率分布で指定されていま
す。この関数は、割引料金予約の数が、10 パーセンタイルが
12、最頻値が 20、90 パーセンタイルが 40 の三角確率分布で表
されることを指定します。
♦ Cost of Bumping (セル C23)。
RiskDiscrete({100,150,200,250},{0.1,0.4,0.4,0.1}) の確率分
布で指定されています。 これは、乗客 1 人の搭乗拒否コストが
100、150、200、250 ドルのいずれかであることを指定します。
これは、予約超過となった便への搭乗を自発的に取りやめる代償
として 100 ドルの引換券を受け入れる乗客もいれば、それ以上
の代償を求める乗客もいるためです。
確率分布について詳しくは、@RISK マニュアルまたはヘルプの「リフ
ァレンス: 分布関数」を参照してください。
これで、モデルに不確実性を指定する確率分布を入力することができ
ました。次は、RISKOptimizer のダイアログを使用して最適化の設定
を行います。
40
[RISKOptimizer - モデル] ダイアログ
このワークシートの RISKOptimizer のオプションを設定するには、
次の手順を行います。
1) RISKOptimizer ツールバーの一番左にある RISKOptimizer モデ
ルのアイコンをクリックします。
[RISKOptimizer - モデル] ダイアログ ボックスが表示されます。
[RISKOptimizer - モデル] ダイアログは、問題をわかりやすく簡潔
に指定できるように設計されています。このチュートリアルの例では、
全体的な利益を最大限にするために受け付けるべき、正規料金と割引
料金の座席予約数を判断しようとしています。
41
ターゲット セルの統計の選択
Airlines.XLS モデルのセル C27「Profit」は、いわゆるターゲット
セルです。このセルには、最小化または最大化する必要のあるシミュ
レーション統計、または、あらかじめ設定された値にできるだけ近づ
ける必要のあるシミュレーション統計が含まれています。ターゲット
セルのシミュレーション統計を指定するには、次の手順を行います。
1) [最適化ゴール] オプションを [最大] に設定します。
2) [セル] フィールドに、ターゲット セル「$C$27」を入力しま
す。
3) [統計] ドロップダウン リストから [平均] を選択し、最大化す
るシミュレーション統計として平均値を選択します。
RISKOptimizer ダイアログのフィールドにセル参照を入力する方法は
2 つあります。1) カーソルでフィールドをクリックし、フィールド
内に直接参照を入力します。または、2) 選択したフィールドにカー
ソルを置いた状態で、[参照入力] アイコンをクリックして、マウス
で直接ワークシート セルを選択します。
調整可能セルの範囲の追加
次に、RISKOptimizer が解を見つけるために調整することのできる値
を含むセルの場所を指定する必要があります。これらの変数の追加と
編集は、[調整可能セル] ダイアログを使って一度に 1 ブロックずつ
行います。[調整可能セル] ダイアログで入力できるセルの数は、お
使いの RISKOptimizer のバージョンによって異なります。
1) [調整可能セルの範囲] セクションの [追加] ボタンをクリック
します。
2) 調整可能セルとして追加するセルとして、Excel で C14 を選択
します。
調整可能セルの
最小 - 最大範囲
の入力
42
通常の場合、調整可能セルの取りうる値を、最小 - 最大の範囲を指
定して制限する必要があります。RISKOptimizer ではこの制限のこと
を「範囲」制限と呼びます。この最小 - 最大の範囲は、一連の調整
可能セルを選択して、簡単に入力できます。航空会社の例では、この
範囲で受け付けられる予約数の最小値が 19、最大値が 30 です。こ
の範囲制限を入力するには、次の手順を行います。
1) [最小] セルに 19 を入力し、[最大] セルに 30 を入力します。
2) [値] セルのドロップダウン リストから [整数] を選択します。
次に、2 番目の調整可能セルを入力します。
1) [追加] をクリックして 2 番目の調整可能セルを入力します。
2) セル C15 を選択します。
3) [最小] に 0、[最大] に 1 を入力します。
これは、正規料金の座席に割り当てられる予約の割合を表す、最後の
調整可能セル C15 を指定します。
問題にさらに追加の変数がある場合は、ここで一連の調整可能セルの
入力を続けます。RISKOptimizer で作成できる調整可能セルのグルー
プの数に制限はありません。セルをさらに追加するには、[追加] ボ
タンをクリックします。
43
一度設定した調整可能セルを、後日あらためて確認したり変更したり
する場合もあります。これには、テーブル内で最小 - 最大の範囲を
編集します。また、一連のセルを選択してから [削除] ボタンをクリ
ックすると、セルを削除できます。
解法の選択
調整可能セルを定義するときに、使用する解法を指定できます。タイ
プの異なる調整可能セルが、それぞれ異なる解法により処理されます。
解法は調整可能セルのグループに対して設定します。解法を変更する
には、[グループ] ボタンをクリックして [調整可能セルのグループ
設定] ダイアログ ボックスを表示します。デフォルト値の [レシピ]
解法は、一般によく使用される解法で、各セルの値をほかのセルとは
独立して変更できます。この解法はデフォルトとしてすでに選択され
ています。
最もよく使われる解法は [レシピ] と [順序] です。この 2 つを一
緒に使用して、複雑な順列組み合わせ問題を解くことができます。
「レシピ」解法は、各変数をレシピの材料として扱い、各変数の値を
個別に変更することにより、「ベストな組み合わせ」を探し出します。
これに対して「順序」解法は、変数間で値をスワップして、初期の値
の位置を動かすことで「ベストな順序」を探し出します。
44
制限
RISKOptimizer では、制限を入力できます。制限とは、解を有効とみ
なすには満たされなければならない条件のことです。このサンプル
モデルでは、maximum number of reservations accepted と % full
fare seats の取りうる値のセットが有効であるためには、2 つの制
限を満たす必要があります。これらの制限は、調整可能セルに対して
入力した範囲制限とは別個のものです。ここで使用する制限は次のと
おりです。
♦ 利益が常に 0 より大きいこと。
♦ 利益のシミュレーション結果の標準偏差値が 400 より小さいこ
と。
RISKOptimizer がモデルの起こりうる解を生成するたびに、その解の
シミュレーションが実行されます。各シミュレーションで、スプレッ
ドシートの反復試行、つまり再計算が何百回、または何千回と行われ
ます。各反復試行ではモデルの各確率分布から 1 つの値がサンプリ
ングされ、この新しい標本値を使ってモデルが再計算された結果、タ
ーゲット セルの新しい値が生成されます。試行解のシミュレーショ
ンが終了すると、各反復試行で計算されたターゲット セル値を使っ
て、ターゲット セルの確率分布が生成されます。
反復試行制限と
シミュレーショ
ン制限
45
RISKOptimizer は、次のいずれかのタイミングで制限を確認すること
ができます。
♦ シミュレーションの各反復試行後 (反復試行制限)
♦ 各シミュレーションの終了時 (シミュレーション制限)
航空会社のモデルでは、「利益が常に 0 より大きいこと」という条
件が反復試行制限に相当し、「利益のシミュレーション結果の標準偏
差値が 400 より小さいこと」という条件がシミュレーション制限に
相当します。したがって、RISKOptimizer は、シミュレーションの各
反復試行後に利益が 0 より大きいかどうか確認し、この制限が満た
されない場合はその試行解が破棄されます。シミュレーションが最後
まで完了した場合 (つまりすべての反復試行で利益が 0 より大きか
った場合)、確率分布の標準偏差値が 400 より小さいかどうか確認し、
そうでない場合はその試行解が破棄されます。
制限は [RISKOptimizer - モデル] ダイアログの下部にある [制限]
セクションに表示されます。RISKOptimizer では次の 2 種類の制限
を指定できます。
♦ ハード制限。ハード制限は、解を有効とみなすには満たさなけれ
ばならない条件です。(例えば、ハードな反復試行制限として
C10<=A4 という条件を指定すると、解で生成された C10 の値が
セル A4 の値より大きい場合、その解が破棄されます。)
♦ ソフト制限。ソフト制限は、できる限り満たすことが望ましい条
件ですが、適応度やターゲット セルの結果が大幅に改善される
場合には妥協することが可能なものです。(例えば、ソフト制限
として C10<100 と指定すると、C10 の値が 100 を超えることは
可能ですが、その場合にはターゲット セルの計算値が所定のペ
ナルティ関数に基づいて減算されます。
制限の追加
制限を追加するには、次の手順を行います。
1) RISKOptimizer のメイン ダイアログの [制限] セクションにあ
る [追加] ボタンをクリックします。
モデルの制限を入力するための [制限設定] ダイアログ ボックスが
表示されます。
46
シンプルな値の
範囲と数式によ
る制限
制限の入力には、「シンプル」と「数式」の 2 つの形式を使用でき
ます。「シンプル」な値の範囲を指定する場合、<、<=、>、>=、また
は = のシンプルな関係を使用して制限を入力できます。シンプルな
値の範囲を使った一般的な制限としては、例えば「0< A1 の値 <10」
があります。この場合、[セル範囲] ボックスに A1、[最小] ボック
スに 0、[最大] ボックスに 10 を入力します。演算子はドロップダ
ウン リストから選択します。シンプルな値の範囲を使った制限では、
[最小] ボックスのみ、[最大] ボックスのみ、またはその両方を指定
することができます。
これに対して「数式」形式の制限では、有効な任意の Excel 式 (例
え ば A19<(1.2*E7)+E8 な ど ) を制限として入力できます。
RISKOptimizer は、可能なすべての解について、入力された数式の真
偽を確認し、制限が満たされているかどうかを判断します。ワークシ
ート セルに制限としてブール演算式を使用するには、[制限設定] ダ
イアログ ボックスの [数式] フィールドでそのセルを参照します。
47
航空会社のモデルの制限を入力するには、新しい制限を 2 つ入力す
る必要があります。Profit > 0 という制限を指定するには、「シン
プル」な値の範囲形式のハード制限を入力します。
1) 説明ボックスに「Profit>0」と入力します。
2) [制限対象の範囲] に C27 と入力します。
3) [制限対象の範囲] の右で、[>] 演算子を選択します。
4) [最大] ボックスのデフォルト値 (0) を消去します。
5) [制限対象の範囲] の左のドロップダウン リストで空白を選択
し、演算子を消去します。
6) [各シミュレーションの各反復試行] を選択し、[OK] をクリック
します。これにより、受け付ける予約数とは関係なく、常に利益
が 0 より大きくなるようにします。
7) [OK] をクリックしてこの制限を設定します。
48
次に、以下の手順でシミュレーション制限を入力します。
1) [追加] をクリックして [制限設定] ダイアログ ボックスをもう
一度表示します。
2) 説明ボックスに「StdDev of Profit<400」と入力します。
3) [制限対象の範囲] に C27 と入力します。
4) [制限対象の範囲] の右のドロップダウン リストから、[<] 演算
子を選択します。
5) [最大] ボックスに 400 と入力します。
6) [制限対象の範囲] の左のドロップダウン リストで空白を選択
し、演算子を消去します。
7) [制限対象の統計] ドロップダウン リストをクリックし、[標準
偏差] を選択します。
8) [OK] をクリックします。
[モデル] ダイアログに、追加した制限のセクションが次のように表
示されます。
49
RISKOptimizer のその他のオプション
表示の更新、乱数シード、最適化の停止条件、シミュレーションの停
止条件などのオプションを使用して、最適化の処理中の
RISKOptimizer の動作を制御することができます。ここでは停止条件
をいくつか指定して、表示設定を更新してみます。
最適化の停止条
件
RISKOptimizer は、指定の条件が満たされるまで最適化の処理を継続
します。停止条件により、次のいずれかが満たされると
RISKOptimizer が自動的に処理を停止するようにします。a) 所定数
のシナリオ (つまり「解」) を試行した後、b) 所定の時間が経過し
た後、c) 最後の n 個のシナリオで改善が見られない場合、d) 入力
した Excel 数式が真になった場合、e) ターゲット セルの計算結果
がエラー値となった場合。停止条件を表示したり編集したりするには、
次の手順を行います。
1) RISKOptimizer ツールバーの [最適化設定] アイコンをクリック
します。
2) [実行詳細] タブを選択します。
[最適化設定] ダイアログでは、最適化の停止条件の任意の組み合わ
せを選択できます。または、停止条件を一切指定しない
す。複数の停止条件を選択すると、RISKOptimizer はそのうち 1 つ
でも満たされる条件がある場合に停止します。停止条件を 1 つも選
択しないと、ユーザーが RISKOptimizer ツールバーの [停止] ボタ
50
ことも可能で
ンをクリックして手動で停止するまでの間、RISKOptimizer は処理を
続行します。
シミュレー
ション
RISKOptimizer で
実行するシミュレ
ーションの数を設
定します。
RISKOptimizer
は、変数の各セッ
ト (つまり問題の
起こりうる各解)
につき完全なシミ
ュレーションを実
行します。
時間
指定した時間が
経過すると
RISKOptimizer
が停止します。
この時間には
4.25 などの小
数点以下の値も
入力できます。
進行
これは、改善度が低下
した時点で
RISKOptimizer を停止
するオプションで、一
般によく使われます。
例えば、これまでに見
つかったベストの解
が、その後 100 回の
シミュレーションで改
善されなかった場合
に、RISKOptimizer を
停止させることができ
ます。
数式が真
指定した Excel
数式がシミュレー
ション中に真にな
ると、
RISKOptimizer が
停止します。
1) [分] を 5 に設定し、RISKOptimizer を 5 分間実行するように
設定します。
シミュレーショ
ンの停止条件
RISKOptimizer は、生成されたすべての試行解につき、モデルの完全
なシミュレーションを実行します。シミュレーションの停止条件を使
用して、これらの各シミュレーションを停止するタイミングを指定で
きます。各シミュレーションを所定の反復試行回数だけ実行したり、
RISKOptimizer で各シミュレーションの停止を自動的に判断させるこ
ともできます。
反復試行
このオプションでは、
各シミュレーションを
所定の回数だけ実行で
きます 。 RISKOptimizer
は、生成した各試行解
に対して実行する各シ
ミュレーションにおい
て、所定数の反復試行
を実行します (ただし
反復試行制限が満たさ
れずに停止される場合
は除きます)。
実際の収束で停止
RISKOptimizer に 、 1) 最 適
化のターゲット セル、およ
び 2) シミュレーション制限
で参照されるセルの両方につ
いて生成された分布が安定
し、目的の統計が収束した時
点で、シミュレーションを停
止するよう指定します。統計
が「収束した」とみなされる
ために必要な統計の変化量
は、[収束許容誤差] オプシ
ョンで設定します。
予想される収束で停止
RISKOptimizer に、1) 最 適
化のターゲット セル、およ
び 2) シミュレーション制
限で参照されるセルの両方
について生成された分布が
安定することを予想できる
ようになった時点で、シミ
ュレーションを停止するよ
う指定します。
RISKOptimizer は、最適化
中にすでに実行したシミュ
レーションの結果に基づい
て、収束を予想します。
1) 反復試行の数を 500 に設定し、RISKOptimizer が各試行解に対
して迅速なシミュレーションを実行するよう指定します。
51
シミュレーショ
ン データのログ
RISKOptimizer では、計算したターゲット統計値、シミュレーション
したターゲット セル値統計の基本統計、使用した調整可能セルの値
と制限が満たされたかどうか、などを含む各シミュレーションについ
ての情報を随時表示することができます。最適化の処理中にこのログ
を表示するには、次の手順を行います。
1) [最適化設定] ダイアログの [表示] タブをクリックして、[全シ
ミュレーションのログを記録] を選択します。
52
最適化の実行
ここでは、このモデルの最適化を実行して、利益を最大限にするため
に各料金クラスで受け付けられる最大予約数を判断します。以下の手
順に従ってください。
1) [OK] をクリックして [最適化設定] ダイアログを閉じます。
2) [最適化の開始] アイコンをクリックします。
RISKOptimizer が問題の最適化を開始すると、スプレッドシートの調
整可能セル (total # of reservations accepted および % of
reservations which are full fare) に現在のベスト値が表示されま
す。「Profit」のベスト平均は青で表示され、この値にはターゲット
セルを示す矢印が付いています。
最適化の実行中、進行状況ウィンドウに次の情報が表示されます。1)
これまでの最適な解。2) RISKOptimizer の最適化の開始時の、ター
ゲット セルの選択したシミュレーション統計の初期値。3) モデルで
すでに実行したシミュレーション数および、そのうち有効な (つまり
制限を満たす) シミュレーションの数。4) 最適化を開始してからの
経過時間。
実行中は [Excel の更新オプションの表示] アイコンをいつでもクリ
ックして、各シミュレーションの画面を随時更新することができます。
53
RISKOptimizer
ウオッチャー
RISKOptimizer では、各試行解について実行されるシミュレーション
のログを随時表示することもできます。このログは RISKOptimizer
の 実 行 中 、 RISKOptimizer ウ オ ッ チ ャ ー に 表 示 さ れ ま す 。
RISKOptimizer ウオッチャーを使用して、最適化の実行中に問題のさ
まざまな設定を確認したり変更したりすることができます。実行中の
シミュレーションのログを表示するには、次の手順を行います。
1) 進行状況ウィンドウにある、ウオッチャー (虫眼鏡) のアイコン
をクリックして RISKOptimizer ウオッチャーを表示します。
2) [ログ] タブをクリックします。
このレポートには、各試行解のシミュレーションの実行結果が表示さ
れます。[結果] 列は、最小化・最大化する必要のあるターゲット セ
ルの、シミュレーションごとの統計値です。この例ではセル $C$27
の「Profit」の平均値がこれに相当します。[出力平均]、[出力標準
偏差]、[出力最小]、[出力最大] の各列は、シミュレーションで求め
られたターゲット セル「Profit」の確率分布です。$C$14 と $C$15
の各列は、調整可能セルに使用した値です。[StdDev Profit<400]と
[Profit>0] の各列は、各シミュレーションで制限が満たされたかど
うかを示します。
54
最適化の停止
RISKOptimizer は 5 分が経過すると最適化を停止します。または、
次の手順で最適化を停止することもできます。
1) RISKOptimizer ウオッチャーまたは [進行状況] ウィンドウで、
[停止] アイコンをクリックします。
RISKOptimizer の処理が停止すると、次のオプションが含まれた [停
止オプション] タブが表示されます。
[RISKOptimizer - 最適化設定] ダイアログで設定した停止条件が 1
つでも満たされると、これらのオプションが自動的に表示されます。
55
概要レポート
RISKOptimizer では、実行日時、使用した最適化設定、ターゲット
セルの計算値、および各調整可能セルの値などが含まれた、最適化の
概要レポートを作成できます。
このレポートは、何度も実行した最適化の結果を比較するのに便利で
す。
56
結果によるモデ
ルの更新
航空会社のモデル ワークシートの 16 の各タスクの値を、最適化さ
れた新しい値で更新するには、次の手順を行います。
1) [停止] ボタンをクリックします。
2) [表示されたワークブックの調整可能セル値を更新する対象] オ
プションが [ベスト] に設定されていることを確認します。
すると AIRLINES.XLS スプレッドシートが、ベストな解を生成した新
しい変数値をすべて反映した状態で表示されます。 ここで言うベス
トな解とは、「Profit」のシミュレーション結果の平均値です。これ
は、ベストな変数値を使用して単に再計算された利益の値とは異なり
ます。ベスト平均は青いボックスに表示され、Profit を示す矢印が
付いています。
重要事項:この例では RISKOptimizer が 2204.79 の合計利益を生み
出す解を見つけましたが、実際の結果はこの値と異なる可能性があり
ます。また、RISKOptimizer により、同じ合計スコアにつながる、
Maximum Reservations Accepted と Percentage Sold at Full Fare
の別の組み合わせが見つかる可能性もあります。これは、
RISKOptimizer とほかのすべての問題解決アルゴリズムとの重要な相
違点に原因があります。RISKOptimizer の遺伝的アルゴリズム エン
ジンのランダムな性質は、多様な問題を解決して最適な解を見つける
機能にとって不可欠なものです。
57
RISKOptimizer を実行した後でスプレッドシートを保存すると、
RISKOptimizer の 実 行 後 に シ ー ト の 値 を 元 に 戻 し た 場 合 でも 、
RISKOptimizer ダイアログのすべての設定がそのシートに保存されま
す。次回にこのシートを開くと、RISKOptimizer の最新の設定がすべ
て自動的に読み込まれます。ほかのすべてのサンプル ワークシート
には RISKOptimizer の設定がすでに入力されているので、最適化を
すぐに実行することができます。
注意:最適化設定がすべて指定済みの航空会社のモデルを確認するに
は、AIRYIELD.XLS というサンプル モデルを開いてください。
58
第 4 章: 実用例
はじめに.................................................. 61
予算の配分................................................ 63
容量計画.................................................. 65
クラスのスケジュール ...................................... 67
先物取引のヘッジ .......................................... 69
製作工場のスケジュール .................................... 71
ポートフォリオの分散 ...................................... 73
ポートフォリオの配分 ...................................... 75
ポートフォリオ リスク ..................................... 77
巡回セールスマンの問題 .................................... 79
利益管理.................................................. 81
59
60
はじめに
この章では、RISKOptimizer のさまざまな実用例について解説します。
これらの実用例は、実際のモデルに必要な特徴をすべて網羅している
とは限りません。アイデアを得るためや、テンプレートとして活用し
てください。すべての実用例で、ワークシートにすでに指定されてい
る関係に基づいて RISKOptimizer が解を見つける方法が取られてい
ます。したがって、解決対象の問題を正確に表すようなワークシート
モデルを作成することが重要です。
これらの Excel ワークシート例はすべて、RISKOPTIMIZER5 ディレク
トリ内の EXAMPLES というサブディレクトリに保存されています。
各例には、ターゲット セル、調整可能セル、解法、制限など、すべ
ての RISKOptimizer 設定がすでに設定されています。最適化を行う
前に、これらの設定内容を確認することをお勧めします。数式を確認
したり、さまざまな RISKOptimizer 設定を試すことにより、
RISKOptimizer の使い方がよくわかるようになります。また、モデル
のデータ例を独自のユーザー データに置き換えることもできます。
サンプル シートを変更してカスタマイズする場合には、ファイルを
別名で保存して、オリジナルのサンプルを維持しておくことをお勧め
します。
61
62
予算の配分
ここでは上級管理者が、利益を最大限にするために最も効果的な各部
署への資金の配分方法を見つけようとしている場合の例を見てみます。
以下に、この企業のモデルと向こう 1 年間の予想利益を示します。
このモデルでは、年度予算に基づいて広告活動の売上げへの影響など
について推測することにより、来年度の利益を予想しています。不確
実な売上げ予想には、可能な値の範囲を示す確率分布が含まれていま
す。これは、モデルを設定してベストな出力を見つけるために
RISKOptimizer に入力を指定する方法をわかりやすく説明するための、
ごくシンプルなモデルです。
サンプル ファイル: budget.xls
ゴール: 来年度の利益を最大化できるような方法で、
5 つの部署に年度予算を配分する。
解法: 予算
類似問題: 少ないリソース (労力、資金、ガソリン、時
間など) を、さまざまな方法や効率でこれを
消費するエンティティ間に配分する。
モデルの仕組み
budget.xls ファイルは、企業の予算が将来の売上げと利益にもたら
す影響をモデル化しています。セル範囲 C4:C8 (変数) には、5 つの
部署それぞれに配分する金額が含まれています。これらの合計値がセ
ル C10 で、この企業の予算総額を示します。この予算は企業により
設定されており、変更することはできません。
63
セル範囲 F6:F10 では、広告およびマーケティング予算に基づいて、
企業の製品に対する来年度の需要を計算しています。実際の売上げは、
計算された需要と供給のうち小さい方の値になります。需要は、製造
部と業務部に割り当てられた資金に依存しています。モデルに含まれ
る不確実な推測は、セル F6~F10 の売上げ予想の計算に確率分布と
して含まれています。
解決方法
「予算」解法を使用してセル範囲 C4:C8 の値を調整することで、セ
ル I16 の利益を最大限にします。各部署の予算の各調整可能セルに
それぞれ個別の範囲を設定し、RISKOptimizer が負の値や、その部署
の予算に解として不適切な値 (広告に全額を割り当て、製造予算を 0
にするなど) を使わないようにします。
「予算」解法は、選択された変数の適切な「ミックス」を見つけよう
とする点で、「レシピ」解法に似ています。ただし、予算解法を使用
する場合、すべての変数の値の合計が RISKOptimizer による処理を
開始する前と同じでなければならないという制限が追加されます。
64
容量計画
このモデルは RISKOptimizer を使って、利益を最大限にするために
必要な、新しいプラントの容量レベルを選択します。このモデルでは、
ZooCo という企業がカバを健康にする新薬をマーケティングしようと
考えています。ここでは一般的なシミュレーション モデルを使って、
新薬製造の NPV 分布を生成します。ただし、これには建設するプラ
ントの容量を決定する必要があります。リスク調整後の NPV を最大
限にするには、容量をレベルをどのように設定したらよいでしょうか。
サンプル ファイル: capacity.xls
ゴール: プラントの容量を変化させて NPV のシミュレーショ
ン分布の平均値を最大化する。
解法: レシピ
類似問題: 従来のシミュレーション モデルと、ユーザーが制御
する意思決定変数とを組み合わせたビジネス分析。
65
モデルの仕組み
解決方法
現行年度初頭は、この新薬を投与できるカバが 100 万頭いました
(セル B34)。それぞれのカバは、最大でも、年に一度その薬品 (また
は競合他社の薬品) を使用することになっています。また、カバの数
は、毎年平均 5% ずつ増加すると予測されており、毎年 3% から 7%
ずつ増加することが 95% 確実となっています (セル B34~F34 の確
率分布)。一方、1 年目の薬品の使用率について確証は得られていま
せんが、最悪のケースでは 20% の使用、最も期待される確率は 40%、
そして、最良のケースでは 70% であると予測されています (セル
B35 の確率分布)。その後は、自社の薬品 (または競合他社の薬品)
を使用するカバの割合は変わらないと感じていますが、競合他社が参
入した後の年には、各競合他社の参入によって、20% ずつシェアを喪
失します。新薬の製造にその容量を使うかどうかに関係なく、年間容
量 1 単位当たりの建設コストは 3.50 ドルであり、容量 1 単位当た
りの操業コストは年間 30 セントです。建設可能なプラントの容量レ
ベルは 100,000~500,000 単位の範囲内です。
セル I26 にレシピ解法を使用します。B45 のシミュレーション平均
値を最大化します。
66
クラスのスケジュール
大学で 25 のクラスを 6 つの時間枠に割り当てる必要があります。
スケジュールは学生が登録する前に決定する必要があるので、1 クラ
ス当たりの実際の受講者数は確実ではありません。各クラスの時間は
すべて 1 時間です。このような問題は通常「グルーピング」解法を
用いて解決します。ただしこの例では、クラスをスケジュールする際
にいくつもの制限が適用されます。例えば、医学部の学生は同じ学期
に生物学と化学の両方を取る必要があるため、これらのクラスは同じ
時間枠に設定できません。ここではこのような制限を満たすため、
「スケジュール」解法を使用します。「スケジュール」解法は「グル
ーピング」解法に似ていますが、特定のタスクをほかのタスクの前、
後、または最中に行う (あるいは行わない) 必要があるという制限が
課される点で異なります。
サンプル ファイル: classes.xls
ゴール: 25 のクラスを 6 つの時間枠に割り当て、クラスがい
っぱいで受講できない学生の数のシミュレーション分
布の平均値を最小限に抑える。特定のクラスの時間枠
に関する一連の制限を満たす。
解法: スケジュール
類似問題: すべてのタスクの所要時間が同じで、事前に決められ
た任意数の時間枠に割り当てることのできる、すべて
のスケジュール問題。特定の項目をどのグループに割
り当てることができるかについて制限がある、すべて
のグループ化問題。
67
モデルの仕組み
classes.xls ファイルには、数々の制限を満たす必要のある、一般的
なスケジュール問題のモデルが含まれています。各クラスに可能な値
の範囲は、「Actual Size」というラベルの付いたセル範囲 D8:D32
に確率分布として入力されています。セル範囲 C8:C32 は、25 のク
ラスを 6 つの時間枠に割り当てています。使える講義室は 5 つだけ
なので、1 つの時間枠に 6 つ以上のクラスを割り当ててしまうと、
実施できないクラスが出てきます。
セル範囲 L20:N28 には制限が含まれており、その左にテキストの説
明が書かれています。制限には数値コードか、テキストの説明のいず
れかを使用できます。スケジュールの問題の制限コードのリストにつ
いては、「第 5 章: RISKOptimizer リファレンス」の「解法」セク
ションを参照してください。
起こりうる各スケジュールは、a) 実施できないクラス数および、b)
講義室が満席でクラスに参加できない学生の数、の両方を計算するこ
とにより評価されます。上記の制限 b) により、RISKOptimizer が学
生数の多いクラスをすべて同時にスケジュールしないようにします。
1 つの時間枠に割り当てられた大人数のクラスが 1 つか 2 つに限ら
れていれば、大きい講義室を使うことができます。
セル範囲 J11:M11 は、Excel 関数の DCOUNT を使用して、各時間枠
に割り当てられたクラス数を数えます。セル範囲 J12:M12 のすぐ下
の部分では、その時間枠で講義室が割り当てられなかったクラスの数
を計算しています。講義室がないクラスの合計数はセル L13 で求め
られます。
特定のクラスで必要な席数が、使用可能な席数を超えた場合、セル範
囲 J15:M15 でその超過数が計算され、L16 で席のない学生数が計算
されます。セル G9 では、席のない学生の総数が平均のクラス サイ
ズに追加され、これに講義室のないクラスの数を掛け合わせています。
これにより、すべてのペナルティを 1 つのセルに組み合わせて、こ
のセルの値が低いほど、良いスケジュールであることがわかるように
します。
解決方法
セル範囲 C8:C32 の値を調整することにより、G9 のペナルティのシ
ミュレーション分布の平均値を最小化します。「スケジュール」解法
を使用します。この解法を選択すると、ダイアログ ボックス下部の
[オプション] セクションに、いくつかの関連オプションが表示され
ます。時間枠 (タイム ブロック) の数を 6 に設定し、制限セルを
L20:N28 に設定します。
68
先物取引のヘッジ
ここでは現在の日付を 2000 年 6 月 8 日と仮定します。GlassCo 社
は 2000 年 11 月 8 日に 50 万ガロンの灯油を購入する必要があり
ます。現在の原油スポット価格は 1 ガロン当たり 42 セントです。
原油価格は、平均値 .08、標準偏差 .30 の対数正規乱数変数で表せ
ると推測されています。無リスク利率は 6% です。2000 年 12 月 8
日に期限の切れる先物を購入することにより、原油先物の購入に付き
物である価格リスクをヘッジするには、先物契約をいくつ購入すれば
よいでしょうか。
サンプル ファイル: oil.xls
ゴール: 先物買いの価格変動リスクを低く抑えるため
の、先物契約の購入数を判断する。
解法: レシピ
類似問題: ターゲットの標準偏差を最小限にする必要の
あるリスク最小化モデル。
69
モデルの仕組み
解決方法
このモデルは、先物契約を利用して価格変動リスクを抑えることによ
り、向こう 5 か月にわたる 21 万ガロンの灯油の購入コストをでき
る限り推測できるようにします。モデルの不確実要素は、将来の原油
スポット価格 (セル B13) と将来の原油先物価格 (セル B15) です。
ここではまず、調整可能セルを選択する必要があります。このモデル
ではセル B12 (# of future contracts "long" or purchased) を調
整することにより、セル B23 の合計コストの標準偏差を最小化しま
す。購入できる最小契約数は 0、最大契約数は 600,000 です。
70
製作工場のスケジュール
金属加工工場が、さまざまな機械で処理される工程に分割できる一連
のジョブをスケジュールする最適な方法を探しています。各ジョブは
5 つのタスクから構成され、これらのタスクは決まった順序で行う必
要があります。各タスクは特定の機械で処理する必要があり、それぞ
れの所要時間は確実でありません。機械は 5 台あり、ジョブの数も
5 つです。
シート上部の「Draw Schedule」ボタンをクリックすると、棒グラフ
が再描画されて各ジョブ タスクの実行スケジュールが表示されます。
サンプル ファイル: jobshop.xls
ゴール: すべてのジョブの合計所要時間が最小限になるような
方法で、ジョブの各工程 (タスク) を機械に割り当て
る。
解法: 順序
類似問題: スケジュールやプロジェクト管理の問題。
71
モデルの仕組み
解決方法
各タスクの所要時間は不確実なので、セル E11~E35 に確率分布を使
って指定されています。セル D5 は、最初のタスクの開始から最後の
タスクが完了するまでの経過時間を計算します。ここではこの合計時
間を最小限にする必要があります。セル範囲 G11:G35 には、最適な
割り当て順序を見つけるために入れ替えることのできる変数 (タス
ク) が含まれています。シートの方程式により、各タスクを適切な機
械で行えるようになるまでの時間が計算されます。
一連の調整可能セル G11:G35 を選択し、順序解法を選択します。セ
ル D5 のシミュレーション結果の平均値を最小化します。
72
ポートフォリオの分散
ブローカーがいろいろなタイプの 80 銘柄の証券を抱えており、これ
らの株価は将来さまざまな形で変動すると予測されます。このブロー
カーは、これら銘柄を 5 つのパッケージ (ポートフォリオ) にグル
ープ化し、1 年後に各パッケージの価値がなるべく均等になるように
したいと考えています。
これは、箱詰め問題と呼ばれる種類の問題です。箱詰め問題には、例
えば貨物船の積荷をなるべく均等な重さになるよう配分する場合など
も該当します。船倉への穀物の積み込みなど、多数の小さなアイテム
をいくつかのグループに分ける場合は、各グループがほぼ均等な重量
になるように配分を推測することができます。ただし、重量やサイズ
のそれぞれ異なる数十個のパッケージをさまざまな組み合わせで積み
込んで、効率的な荷積みによりバランスを改善することも可能です。
サンプル ファイル: portbal.xls
ゴール: 銘柄リストを将来の価値がなるべく均等になるような
方法で 5 つのポートフォリオに分ける。
解法: グルーピング
類似問題: チームごとの能力がほぼ均等になるようにチーム分け
をする。重量が均等に分散されるような方法で貨物船
の船倉にコンテナを積み込む。
73
モデルの仕組み
解決方法
portbal.xls ファイルは、一般的なグルーピングの問題をモデル化し
たものです。A 列には特定の銘柄の ID 番号、B 列には各銘柄のクラ
スが指定されています (銘柄の各クラスについての情報は
SECURITIES ワークシートに含まれています)。C、D、E の各列には、
各銘柄の現在の株価 (単位: ドル) と、銘柄のクラスに基づく向こう
1 年の利益の平均値と標準偏差が含まれています。F 列では、これら
の平均値と標準偏差を使用した確率分布からサンプリングされた収益
率を使って、1 年後の株価を計算しています。G 列は、各銘柄を 5
つのポートフォリオのいずれかに割り当てます。グルーピングまたは
箱詰めの問題を設定してグルーピング解法を使用する場合、
RISKOptimizer を起動する前に、現在のシナリオで各グループ (1~
5) が少なくとも 1 度は使われていることを確認する必要があります。
セル範囲 J6:J10 では DSUM() 式を使って 5 つのポートフォリオの
合計価値を求めています。例えば、セル J6 は、G 列でグループ 1
に割り当てられたすべての値の DSUM を計算します。
セル J12 は、STDEV() 関数を使ってポートフォリオ全体の価値の標
準偏差を計算します。これにより、各ポートフォリオの合計価値が互
いにどの程度近くなるかを推測できます。グラフには、各ポートフォ
リオの合計額が示されています。参照ラインは、すべてが均等であっ
た場合の金額、つまりゴールを表します。
セル範囲 G5:C84 の値を調整することにより、J12 のシミュレーショ
ン結果の平均値を最小化します。ここでは「グルーピング」解法を使
用します。1、2、3、4、5 の各値が G 列に少なくとも 1 度は使われ
ていることを確認します。
「グルーピング」解法は、RISKOptimizer に対して変数を x 個のグ
ループに分けるよう指定します。x は、最適化の開始時に調整可能セ
ルに設定される値の種類の数です。
74
ポートフォリオの配分
ある若夫婦がそれぞれ異なる利率、予想成長率、リスクの伴うさまざ
まなタイプの投資として資産を保有しています。彼らは、リスクを妥
当なレベルに抑えつつ利益の合計を最大限にするような、投資の組み
合わせを判断したいと考えています。
サンプル ファイル: portmix.xls
ゴール: リスクと収益の現在のニーズに基づいて、利益を最大
限に伸ばせる投資配分を見つける。
解法: 予算
モデルの仕組み
解決方法
75
これは、投資収益と損失リスクの最適なバランスを見つけようとする、
典型的な金融モデルです。B 列の各資産に、不確実な資本増加率と一
定した収益率が設定されています。合計収益は資本の伸びと収益を加
えたものです。モデルのゴールは、ポートフォリオ収益の標準偏差を
9% 未満に抑えながら、合計収益を最大限に伸ばすことです。
セル D33 の total return には、資本増加と収益の合計が反映され
ています。このセルのシミュレーション分布の平均値を最大化する必
要があります。また、セル D33 の標準偏差を .09 未満に抑えるよう
指定する、ハードなシミュレーション制限を入力します。
76
ポートフォリオ リスク
投資家が、いくつかの投資商品を組み合わせてポートフォリオを構成
する最も安全な方法を判断したいと考えています。過去のデータから、
これらの投資の収益は相関関係にあることがわかっています。モデル
のゴールは、ポートフォリオ全体を 3 つの投資商品に振り分けて、
リスク (つまりポートフォリオ収益の標準偏差) を最小限に抑えなが
ら、目標収益率の 12% を達成することです。
サンプル ファイル: corrmat.xls
ゴール: ポートフォリオ収益の標準偏差を最小化しながら、目
標の収益率を得る。
解法: 予算
類似問題: リスクの最小化を図るすべてのモデル。
モデルの仕組み
3 つの各投資商品の不確実な収益率は、セル E3~E5 で確率分布を使
ってモデル化されています。また、3 つの投資商品の収益を相関する
ため、RiskCorrmat 関数および、J9:L11 の相関マトリクスが使用さ
れています。ここでは RISKOptimizer が、各投資商品に割り当てる
ポートフォリオの比率を調整します。「予算」解法を使用して、比率
の合計が常に 100% になるようにします。
モデルの目的は、全体の収益率を 12% 以上に保つという制限を満た
しながら、ポートフォリオの収益合計の標準偏差を最小限に抑えるこ
とです。
解決方法
セル G6 のシミュレーション結果の平均値を最小化します。セル G6
のシミュレーション結果の平均値が .12 より大きくなければならな
いという、ハードなシミュレーション制限を入力します。
77
78
巡回セールスマンの問題
セールスマンが担当地域の各都市を 1 度ずつ訪問する必要がありま
す。最短の移動時間ですべての都市を周るには、どのような経路で巡
回すればよいでしょうか?これは典型的な最適化問題ですが、各都市
間の移動時間が不確実であるという点が従来と異なっています。都市
の数が多く 50 を超えるような場合、この不確実要素に従来の手法で
対処することは非常に困難です。
これと類似した問題に、工場で行うタスクの最適な順序を見つけると
いう問題が挙げられます。例えば、白い塗料の後で黒い塗料を塗布す
る方が、その反対の順序で行うよりもずっと簡単です。
RISKOptimizer でこうしたタイプの問題を解決するには、「順序」解
法が一番適しています。
サンプル ファイル: salesman.xls
ゴール: 最短の移動時間で n 個の都市をそれぞれ 1 度ずつ訪
問できる経路を見つける。
解法: 順序
類似問題: 回路板の穴を最短時間で空ける方法を見つける。
79
モデルの仕組み
salesman.xls ファイルは、都市間の移動時間をテーブルで調べ、各
都市への移動時間を計算します。2 都市間の移動時間はすべて確率分
布として指定されます (このテーブルには 200 の確率分布が使われ
ています)。A 列には特定の都市の ID 番号が入っています。B 列で
は、ルックアップ関数を使ってこれらの番号が表す都市名を求めてい
ます。都市 (とその番号) の表示順序は、訪問順序を表します。例え
ば、セル A3 に 9 と入力した場合、最初にオタワを訪れることにな
ります。同様に、A4 に 6 (ハリファックス) が指定されている場合
は、ハリファックスが 2 番目に訪問する都市となります。
都市間の移動時間は、C25 以降のテーブルに確率分布として指定され
ています。これらの確率分布は、都市間の実際の走行距離が含まれた
C48 以降のテーブルを参照します。このテーブルの走行距離は対称的
です (つまり A から B への距離と、B から A への距離は同じです)。
現実的なモデルの場合には、非対称の走行距離を設定して、料金所、
利用できる移動方法、風向き、道の傾斜などのために、往復で移動時
間が異なる点を考慮に入れることも可能です。
次に、関数を使用して、これらの都市間の経路の距離を計算する必要
があります。経路の合計距離はセル G2 に保存されます。最適化する
必要があるのはこのセルです。この計算には RouteLength 関数を使
います。これは Salesman.xls に含まれている、カスタムの VBA 関
数です。
解決方法
セル範囲 A3:A22 を調整することにより、セル G2 の値を最小化しま
す。「順序」解法を使用します。また、最適化を始める前に、調整可
能セル (A3:A22) に 1~20 の値が入っていることを確かめます。
「順序」解法は、選択した変数を並べ替えて既存の変数のさまざまな
順列を試すよう、RISKOptimizer に指定します。
80
利益管理
この例は、特定のフライトにおいて販売すべき正規料金と割引料金そ
れぞれの最適な座席数を判断する、収益管理モデルです。このモデル
では、予約超過の問題を避けるために、実際の座席数を越えて受け付
けられる、最適な予約数も判断することができます。
サンプル ファイル: airyield.xls
ゴール: 利益を最大限にするために、各料金クラスで
受け付けるべき最大予約数を判断する。
解法: レシピ
類似問題: 同じ商品を異なる価格で販売する場合の、す
べての利益管理問題。
81
モデルの仕組み
解決方法
airyield.xls ファイルは、RISKOptimizer を利用して行える利益管
理のごくシンプルな例です。モデル内のさまざまな不確実要素に確率
分布が割り当てられています。これらの要素には、Demand for Full
Fare Reservations ( セ ル C8) 、 % No Shows - Full Fare
Reservations ( セ ル C7) 、 % No Shows - Discount Fare
Reservations (セル C11)、Demand for Discount Fare Reservations
(セル C12)、Cost of Bumping (セル C23) が含まれます。特定のフ
ライトから得られる合計利益は、各料金クラスの予約の総売上げから、
予約超過となったフライトでの乗客の搭乗拒否のコストを差し引いた
ものです。
このモデルで調整する変数はセル C14 と C15 に入っています。これ
らのセルには、受け付ける最大予約数と、これに占める正規料金の座
席の割合が含まれます。また、「利益は常に 0 より大きくなければ
ならない」という反復試行制限および、「利益のシミュレーション結
果の標準偏差値は 400 より小さくなければならない」というシミュ
レーション制限が適用されます。モデルのゴールは、入力した制限に
よって表されるリスクを最小限に抑えながら、利益のシミュレーショ
ン分布の平均値を最大化することです。
82
第 5 章: RISKOptimizer
リファレンス ガイド
[モデルの定義] コマンド ................................... 85
調整可能セルの範囲 ...................................... 89
調整可能セル グループ ................................... 91
レシピ解法 ....................................... 93
順序解法 ......................................... 94
グルーピング解法 ................................. 94
予算解法 ......................................... 96
プロジェクト解法 ................................. 97
スケジュール解法 ................................. 98
交差と突然変異率 ................................ 100
制限セルとタイム ブロック数...................... 102
直前のタスク .................................... 102
演算子 .......................................... 103
制限 ................................................... 105
追加 - 制限の追加 ............................... 105
シミュレーション制限 ............................ 107
シンプルな制限と数式による制限................... 108
ソフト制限 ...................................... 108
[最適化設定] コマンドの [一般] タブ ...................... 112
[最適化設定] コマンドの [ランタイム] タブ ................ 116
[最適化ランタイム] のオプション.................. 117
[シミュレーション ランタイム] オプション ......... 118
[最適化設定] コマンドの [表示] タブ ...................... 120
[最適化設定] コマンドの [マクロ] タブ .................... 122
[最適化の開始] コマンド .................................. 124
[ユーティリティ] コマンド ................................ 126
83
[アプリケーション設定] コマンド ......................... 126
[制限ソルバー] コマンド................................. 128
RISKOptimizer ウオッチャー................................ 131
[RISKOptimizer ウオッチャー] の [進行] タブ ............. 132
[RISKOptimizer ウオッチャー] の [サマリー] タブ ......... 134
[RISKOptimizer ウオッチャー] の [ログ] タブ ............. 135
[RISKOptimizer ウオッチャー] の [個体群] タブ ........... 136
[RISKOptimizer ウオッチャー] の [相違] タブ ............. 137
[RISKOptimizer ウオッチャー] の [停止オプション] タブ ... 138
84
[モデルの定義] コマンド
モデルのゴール、調整可能セル、および制限を定義します。
RISKOptimizer の [ モ デ ル の定義] コマンドを選択するか、
RISKOptimizer ツールバーで [モデル] アイコンをクリックすると、
[モデル] ダイアログが表示されます。
[RISKOptimizer - モデル] ダイアログを使って、RISKOptimizer に
最適化する問題を指定します。このダイアログを新しい Excel ワー
クブックで開くと、すべての値が空の状態で表示されますが、いった
ん指定した情報は各ワークブックに保存されます。同じシートをもう
一度開くと、保存された値が表示されます。このセクションでは、こ
のダイアログの各要素について説明します。
85
[RISKOptimizer - モデル] ダイアログ
[モデル] ダイアログには、次のオプションがあります。
• [最適化ゴール] - [最適化ゴール] オプションを使用して、
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.4230024、63.72442) のどちらを使用して処理を実行するか
も指定します。
(1、2、7) と
次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一
連の変数の初期値と、レシピ解法を使用した後に起こりうる 2 つの
シナリオの例を示します。
変数セットの初期値 レシピ解法で起こり
うる変数値のセット A
23.472 15.344 37.452
145 101 190
9 32.44 7.073
65,664 14,021 93,572
レシピ解法で起こり
うる変数値のセット B
93
順序解法
「順序」解法は、「レシピ」の次に最もよく使われる種類の解法です。
順序とはアイテムのリストの順列のことを指し、この解法では一連の
特定値を並べ替えて、最適な順序を見つけ出します。選択された変数
の値を RISKOptimizer が生成する「レシピ」や「予算」解法とは異
なり、「順序」解法ではモデルに設定されている既存の値が使用され
ます。
ここでいう順序は、一連のタスクを実行する順序などのことです。例
えば、1~5 の番号が付いた 5 つのタスクを実行する順序を判断した
いと仮定します。「順序」解法は、1~5 の番号を例えば 3、5、2、4、
1 という順序に入れ替えます。順序解法ではユーザーが設定したシー
トの変数値を RISKOptimizer がそのまま用いるので、最小 - 最大の
範囲は入力しません。
次の表に、RISKOptimizer を呼び出す前にシートに設定されていた一
連の変数の初期値と、順序解法を使用した後に起こりうる 2 つのシ
ナリオの例を示します。
変数セットの初期値 順序解法で起こりうる
変数値のセット A
23.472 145 65,664
145 23.472 9
9 65,664 145
順序解法で起こりうる
変数値のセット B
65,664 9 23.472
グルーピング解
法
「グルーピング」解法は、複数の変数をいくつかのグループに分ける
必要がある問題に使用します。RISKOptimizer が作成するグループの
数は、最適化の開始時に調整可能セルに設定されている、一意の値の
数に等しくなります。したがって、状況のモデルを作成する際に、モ
デル内で各グループが少なくとも 1 度は使用されるようにする必要
があります。
例えば、50 個のセルで取りうる値が 2、3.5、17 の 3 つに限られる
とします。この 50 のセルを選択して「グルーピング」解法で値を調
整する場合、RISKOptimizer が 50 個すべてのセルを 2、3.5、17 の
グループのいずれかに割り当てます。ここでは各グループに調整可能
セルのうち少なくとも 1 つが割り当てられます。これは 50 個の変
数をいくつかの箱に投げ入れ、それぞれの箱に少なくとも 1 つの変
数が入るようにするのと同じです。この解法の例には、1、0、-1 の
各値を取引システムに割り当て、買い、売り、ホールドの各ポジショ
ンを示す場合なども当てはまります。「順序」解法と同様、
94