Microsoft Excel - Palisade Corporation

ユーザー ガイド
Evolver
遺伝的アルゴリズムを使った
Microsoft Excel 解決ツール
アドイン
バージョン 6
2013 年 3 月
Palisade Corporation
798 Cascadilla St.
Ithaca, NY 14850 USA
+1-607-277-8000
+1-607-277-8001 (fax)
http://www.palisade.com (Web サイト)
[email protected] (電子メール)
著作権表記
Copyright © 2013, Palisade Corporation.
商標について
Microsoft、Excel、Windows は Microsoft, Inc. の登録商標です。
IBM は International Business Machines, Inc. の登録商標です。
Palisade、Evolver、TopRank、BestFit、RISKview は Palisade Corporation の登録商標
です。
RISK は Tonka Corporation の一部である Parker Brothers の商標であり、商標保有者
の許可を元に使用されています。
目次
はじめに
1
はじめに ................................................... 3
インストール方法 ........................................... 7
Evolver について
11
Evolver について .......................................... 13
Evolver: ステップバイステップ
19
はじめに .................................................. 21
Evolver の基本操作 ........................................ 23
Evolver リファレンス ガイド
41
[モデルの定義] コマンド ................................... 43
[最適化設定] コマンド ..................................... 63
[最適化の開始] コマンド ................................... 75
[ユーティリティ] コマンド ................................. 77
Evolver ウオッチャー ...................................... 81
最適化
93
最適化の手法 .............................................. 95
目次
i
遺伝的アルゴリズムと OptQuest
107
はじめに ................................................. 109
歴史的背景 ............................................... 109
生物の例 ................................................. 113
コンピューターの例 ....................................... 114
OptQuest ................................................. 117
Evolver のその他の機能
119
制限の追加 ............................................... 121
処理速度の向上 ........................................... 131
遺伝的アルゴリズムによる最適化の Evolver における実装 ..... 133
付録 A: Evolver の自動化
137
VBA ...................................................... 137
付録 B: トラブルシューティングと Q&A
139
トラブルシューティングと Q&A.............................. 141
ii
付録 C: 参考文献
145
用語集
151
索引
159
はじめに
はじめに ................................................... 3
インストールの前に .......................................
製品パッケージの確認 .....................................
このバージョンについて ...................................
ご利用のオペレーティング環境での作業 .....................
サポートについて .........................................
お問い合わせの前に ................................
Palisade へのお問い合わせ..........................
ステューデント版 ..................................
Evolver システム必要条件 .................................
3
3
3
4
4
4
5
6
6
インストール方法 ........................................... 7
一般的なインストール方法 .................................
Evolver のコンピューターからの削除 .................
DecisionTools Suite ......................................
起動時に表示されるマクロのセキュリティ警告メッセージ ......
ソフトウェアのアクティベーション (ライセンス認証) .........
Evolver に関する追加の情報 ...............................
Evolver の「お読みください (Readme)」 ..............
Evolver の自己学習 ................................
Evolver の自己学習 .......................................
はじめに
7
7
7
8
8
9
9
9
9
1
2
はじめに
Evolver は一般市場で現在入手できる製品のうち、最も高速で高機能
な遺伝的アルゴリズム ベースの最適化ツールです。Evolver は、遺
伝的アルゴリズム (GA: Genetic Algorithm) に基づく強力な最適化
手法を用いて、線形処理や非線形処理を使った一般の最適化ツールで
は解くことのできない問題を解決できます。Evolver ソフトウェアに
は、さまざまな最適化問題の解を素早く見つける OptQuest 最適化エ
ンジンも付属しています。また、線形の問題の解決には線形計画法を
使用します。Evolver は、ニーズに合わせてプロフェッショナル版と
インダストリアル版の 2 種類から選択できます。
この『Evolver ユーザー ガイド』では、まず Evolver とその仕組み
について概要を説明した後、Evolver 特有の遺伝的アルゴリズムを用
いた最適化の実用例をいくつか紹介します。このマニュアルは、
Evolver の各機能の説明が記載された索引付きリファレンス ガイド
としてご利用いただくこともできます。
インストールの前に
Evolver をインストールして使用する前に、Evolver の製品パッケー
ジに必要なものがすべて含まれているか確かめ、お使いのコンピュー
ターが特定用途の最小要件を満たしていることを確認してください。
製品パッケージの確認
Evolver は、単体製品として購入する場合と、DecisionTools Suite
プロフェッショナル版またはインダストリアル版の一部として出荷さ
れ る 場 合 が あ り ま す 。 Evolver ア プ リ ケ ー シ ョ ン に は 、 Evolver
Excel アドイン、Evolver のサンプル ファイル、および索引付きの
Evolver オンライン ヘルプ システムがそれぞれ含まれています。
DecisionTools Suite プロフェッショナル版およびインダストリアル
版には、上記すべてとさらに追加のアプリケーションが含まれていま
す。
このバージョンについて
このバージョンの Evolver は、Microsoft Excel 2003 またはそれ以
降では 32 ビット プログラムとして、Excel 2010 では 64 ビット
プログラムとしてインストールできます。
はじめに
3
ご利用のオペレーティング環境での作業
このユーザー ガイドは、Windows オペレーティング システムおよび
Excel についての一般的な知識がある読者を対象としています。特に
以下の知識が必要です。

ご利用のコンピューター、およびマウスの使い方に精通して
いること。

アイコン、クリック、ダブルクリック、メニュー、ウィンド
ウ、コマンド、およびオブジェクトといった用語に精通して
いること。

ディレクトリ構造やファイルの命名といった、基礎的な概念
を理解していること。
サポートについて
テクニカル サポートは、有効なメンテナンス プランをお持ちの
Evolver 登録ユーザー様に対して無償で、あるいはインシデントごと
に有償で提供しております。Evolver 登録ユーザーになるには、
http://www.palisade.com/support/register.asp にてオンライン登
録を行ってください。
電話でのお問い合わせの際には、あらかじめ製品のシリアル番号とユ
ーザー ガイドを手元にご用意ください。また、コンピューターで作
業できる状態でご連絡いただければ、さらに効果的なテクニカル サ
ポートを受けることができます。
お問い合わせの
前に
4
テクニカル サポートへのお問い合わせの前に、次の事柄をご確認く
ださい。

オンライン ヘルプを参照しましたか?

本ユーザー ガイドを確認し、オンライン マルチメディア チュ
ートリアルの内容を参照しましたか?

「お読みください」(README.RTF) ファイルを読みましたか?こ
のファイルには、マニュアルに収録されていない、Evolver に関
する最新情報が記載されています。

問題となっている障害は再現することが可能ですか?また、別の
コンピューターやモデルでも問題点を再現することは可能です
か?

弊社の Web サイトをご覧になりましたか?弊社サイトの URL ア
ドレスは http://www.palisade.com です。Web サイトのテクニ
カル サポートのセクションには、最新の FAQ (テクニカル サポ
ートに寄せられた質問とその回答集を収録した検索可能なデータ
ベース) と Evolver ソフトウェア用のパッチが掲載されていま
はじめに
す。Evolver およびその他の Palisade ソフトウェアの最新情報
をいち早く入手できるよう、弊社のサイトには定期的にアクセス
されることをお勧めします。
Palisade へのお
問い合わせ
Palisade 社では、Evolver に関するご質問、ご意見、およびご提案
をお待ちしております。テクニカル サポートには、以下のいずれか
の方法でご連絡いただけます。

電子メール: [email protected]

電話: +1-607-227-8000 (米国)、米国東海岸時間平日午前 9 時
から午後 5 時まで。テクニカル サポートへの電話案内の指示に
従ってください。

ファックス: +1-607-227-8001 (米国)

郵便:
Technical Support
Palisade Corporation
798 Cascadilla St
Ithaca, NY 14850 USA
Palisade Europe へのお問い合わせ:

電子メール: [email protected]

電話: +44 1895 425050 (英国)

ファックス: +44 1895 425051 (英国)

郵便:
Palisade Europe
31 The Green
West Drayton
Middlesex
UB7 7PN
United Kingdom
Palisade Asia-Pacific へのお問い合わせ:
はじめに

電子メール: [email protected]

電話: +61 2 9252 5922 (オーストラリア)

ファックス: +61 2 9252 2820 (オーストラリア)

郵便:
Palisade Asia-Pacific Pty Limited
Suite 404, Level 4
20 Loftus Street
Sydney NSW 2000
Australia
5
いずれの方法でお問い合わせいただく場合でも、必ず製品名、正確な
バージョン番号、およびシリアル番号をご連絡ください。正確なバー
ジョンは、Excel の Evolver メニューから [Evolver について] コ
マンドを選択することで確認できます。
ステューデント
版
ステューデント版の Evolver に対する電話サポートは提供しており
ません。サポートが必要な場合は、以下の方法をご検討ください。

担当の教授または教育助手に相談する。

http://www.palisade.com にアクセスして FAQ を参照する。

電子メールまたはファックスで弊社のテクニカル サポート部
門に連絡する。
Evolver システム必要条件
Evolver の必要システム条件は以下のとおりです。
6

Microsoft Windows XP またはそれ以降

Microsoft Excel バージョン 2003 またはそれ以降
はじめに
インストール方法
Evolver は、Microsoft Excel のアドイン プログラムです。Evolver
は Excel のメニュー バーにコマンドを追加して、スプレッドシート
プログラムの機能を強化します。
一般的なインストール方法
Evolver のセットアップ プログラムは、ユーザーが指定したハード
ディスク上のディレクトリに Evolver システム ファイルをコピーし
ます。Windows XP またはそれ以上でセットアップ プログラムを実行
するには、次を行います。
1)
ダウンロードした、またはインストール CD にある Evolver
Setup.exe をダブルクリックして、画面に表示されるセットアッ
プ手順に従います。
Evolver のインストール中に問題が発生する場合は、インストール対
象のドライブに十分な空きスペースがあることを確認してください。
十分な空きスペースが確保できたら、再度、インストール手順を実行
してください。
Evolver のコン
ピューターから
の削除
ご利用のコンピューターから、Evolver または DecisionTools Suite
を削除したい場合は、コントロール パネルの [プログラムの追加と
削 除 ] ユ ー テ ィ リ テ ィ を 起 動 し 、 Evolver ま た は DecisionTools
Suite の項目を選択します。
DecisionTools Suite
Evolver は、Palisade 社が提供しているリスク分析・意思決定分析
のためのセット製品、DecisionTools Suite と連携させて使用するこ
とができます。デフォルトの Evolver インストール手順では、メイ
ン ディレクトリである「Program Files\Palisade」のサブディレク
トリに Evolver がインストールされます。これは、「Microsoft
Office」ディレクトリのサブディレクトリに Excel がインストール
されるのと同じ要領です。
Program Files\Palisade ディレクトリに作成されるサブディレクト
リの 1 つが、Evolver ディレクトリ (デフォルト名「Evolver6」)
です。このディレクトリには、Evolver アドイン プログラム ファイ
ル (EVOLVER.XLA) に加えて、サンプル モデルおよび、Evolver を実
行 す る た め に 必 要 な 関 連 フ ァ イ ル が 含 ま れ て い ま す 。 Program
Files\Palisade には、SYSTEM というサブディレクトリも作成されま
す。このディレクトリには、共通のヘルプ ファイルやプログラム ラ
はじめに
7
イブラリなど、DecisionTools Suite のすべてのプログラムで必要と
されるファイルが含まれています。
起動時に表示されるマクロのセキュリティ警告メッ
セージ
Microsoft Office には、Office アプリケーション上で不要なマクロ、
または悪意をもって作成されたマクロが実行されるのを防止するため
に、さまざまなセキュリティ設定 ([ツール] > [マクロ] > [セキュ
リティ]) が用意されています。最低限のセキュリティ設定を使用し
ない限り、マクロ付きのファイルを読み込むたびに警告メッセージが
表示されます。Palisade 社のアドインを実行するたびにこのような
メッセージが表示されることを防ぐため、Palisade では自社のアド
イン ファイルにデジタル署名を付与しています。したがって、いっ
たん Palisade Corporation を信頼できる作成元として登録すれば、
Palisade 社のすべてのアドインを警告メッセージの表示なしに開く
ことができます。以下の手順に従ってください。

Evolver の起動時に、次のような [セキュリティに関する通知]
ダイアログが表示されたら、[発行元からのコンテンツを常に信
頼する] をクリックします。
ソフトウェアのアクティベーション (ライセンス認
証)
アクティベーション (ライセンス認証) とは、お手元の Palisade ソ
フトウェアを完全なライセンス版製品として実行するために必要な、
一度限りのライセンス認証手続きです。ライセンス認証コードは
「DNA-6438907-651282-CDM」などのハイフン (-) で区切られた文字
列で、印刷版または電子メールでお送りしたインボイスに記載されて
います。インストール手続き中にライセンス認証コードを入力した場
合は、インストールの完了時にソフトウェアのアクティベーションが
行われるため、ほかのユーザー操作が必要になることはありません。
8
インストール方法
インストール手続きの完了後にソフトウェアのアクティベーションを
行いたい場合は、[ヘルプ] メニューの [ライセンス マネージャー]
コマンドを選択します。
ライセンス マネージャーを使用して、ソフトウェア ライセンスのア
クティベーション、認証、認証解除、および移行を行うことができま
す。また、ライセンス マネージャーによってネットワーク インスト
ール用のライセンスを管理することも可能です。目的のライセンス操
作を実行するには、ライセンス マネージャーの画面やダイアログの
指示に従ってください。
Evolver に関する追加の情報
Evolver に関する追加の情報は、以下の方法で入手できます。
Evolver の「お
読みください
(Readme)」
このファイルには、Evolver の概要と、最新バージョンに関する新し
い 情 報 が 記 載 さ れ て い ま す 。 Readme フ ァ イ ル を 表 示 す る に は 、
Evolver の [ヘルプ] メニューから [ヘルプとマニュアル] コマンド
を選択し、さらに [お読みください] コマンドを選択します。
Evolver の自己
学習
Evolver オンライン チュートリアルでは、Evolver を初めて利用さ
れるユーザーを対象に、Evolver および遺伝的アルゴリズムの概要に
ついて説明しています。このチュートリアルはごく短時間で修了でき
ます。チュートリアルへのアクセス方法については、次の「Evolver
の自己学習」セクションを参照してください。
Evolver の自己学習
Evolver の使い方を素早く習得するには、オンラインの Evolver チ
ュートリアルを利用するのが一番簡単です。このムービー形式のチュ
ートリアルでは、エキスパートがサンプル モデルを使って基礎を紹
介しています。このチュートリアルは、Evolver の主要機能について
解説したマルチメディア プレゼンテーションです。
チュートリアルを実行するには、Evolver の [ヘルプ] メニューから
[ビデオ] コマンドを選択します。
はじめに
9
10
インストール方法
Evolver について
Evolver について .......................................... 13
Evolver の仕組み ........................................
OptQuest .........................................
遺伝的アルゴリズム ...............................
最適化について ..........................................
Excel でモデルを構築する理由 ............................
Evolver の利点 ..........................................
推測が不要になる .................................
より正確で意味のある分析..........................
優れた柔軟性 .....................................
高機能 ...........................................
使いやすさ .......................................
コスト効率 .......................................
Evolver について
14
14
14
15
16
16
16
17
17
17
18
18
11
12
Evolver について
Evolver ソフトウェア パッケージを使用して、あらゆるタイプの問
題に対する最適な解を簡単に見つけることができます。Evolver は、
目標とする出力を得るために最も適した入力を判断するためのツール
です。例えば Evolver を使って、利益を最大限にしたりリスクを最
小限に抑えるための最適な条件の組み合わせや順序を判断したり、最
小量の原料から得ることのできる最大商品数などを求めることができ
ます。Evolver は Microsoft Excel スプレッドシート プログラムの
アドインとして機能します。まず Excel を使って問題のモデルを設
定してから、Evolver でその問題を解決します。
まず Excel で問題のモデルを作成してから、Evolver アドインで解決します。
Excel は、問題の実用的なモデルを作成するために大半のユーザーが
必要とする、すべての数式、関数、グラフ、およびマクロ機能を提供
します。Evolver は、探している解を指定するためのインターフェイ
スおよび、その解を見つけるためのエンジンを提供します。この 2
つのプログラムを連携させることにより、実質的にモデル化が可能な
あらゆる問題に対する答えを見つけることが可能になります。
Evolver について
13
Evolver の仕組み
Evolver は OptQuest および遺伝的アルゴリズムを使用して問題の最
適な解を探します。また、問題が線形であると判断した場合には、線
形計画法を使用します。
OptQuest
OptQuest エンジンはメタヒューリスティック、数学的最適化、およ
びニューラル ネットワーク コンポーネントを使用して、あらゆる種
類の意思決定および計画問題の最適な解を検索します。OptQuest の
解決手法は、タブー検索、ニューラル ネットワーク、およびスキャ
ッター検索といった最新のメタヒューリスティック プロシージャを
1 つの複合メソッドに統合したものです。OptQuest について詳しく
は、「遺伝的アルゴリズムと OptQuest」を参照してください。
遺伝的アルゴリ
ズム
Evolver では、モデルの最適な解を見つけるために遺伝的アルゴリズ
ムを使用しています。遺伝的アルゴリズムはダーウィンの進化論の原
理を模倣したもので、ある問題に対して何百もの起こりうる解が存在
する中で、これらが互いに競争し合った結果「適者」のみが生存する
ような環境を作り出します。生物の進化と同じように、各解がその優
れた「遺伝子」を子孫の解に受け渡し、解の集団全体がさらにより良
い解へと進化し続けていきます。
遺伝的アルゴリズムの分野では、その基盤である進化論の分野と似た
用語がよく使われます。例えば、「交差」関数を使って解の検索を絞
り込む、「突然変異」率により「遺伝子プール」の多様化を促進する、
解または「個体」の「個体群」全体を評価する、などという言い方を
します。Evolver の遺伝的アルゴリズムの仕組みについて詳しくは、
「遺伝的アルゴリズムと OptQuest」を参照してください。
線形計画法
14
Evolver の [最適化設定] ダイアログの [エンジン] タブで最適化モ
ードを [自動] のままにしてある場合、線形の問題を線形計画法によ
り素早く解決することができます。
Evolver について
最適化について
最適化とは、数多くの起こりうる解の中から最適なものを見つけ出す
過程のことです。通常の場合、問題には特定の数式や制限に基づいて
相互に作用する、多くの変数が関与しています。例えば、それぞれ異
なる数量の複数の商品を生産している 3 つのプラントを所有する企
業があると想定します。各商品の生産費、各プラントから各店舗への
出荷コスト、そして各プラントの制限を前提とした場合、運送費を最
小限に抑えた状態で各地のリテール店舗の需要を満たすには、どのよ
うな生産方法が一番適しているでしょうか。最適化ツールは、こうし
たタイプの問題を解決するために設計されています。
一般的な最適化では、特定のリソースを前提とした場合に
最高の利益につながる組み合わせを見つけます。
上記の例で可能な各解は、どのプラントがどの商品を生産しており、
それがどのトラックでどのリテール店舗に運送されるかを完全に指定
したリストで構成されます。最適化の問題のその他の例としては、利
益を最大限にする方法、コストを最小化する方法、最多数の人命を救
助する方法、回路のノイズを最小化する方法、一連の都市間の経路を
最短化する方法、そして最も効果のある広告メディアの購入ミックス
の判断、などが挙げられます。また、最適化の問題の重要なカテゴリ
として、スケジュール管理が挙げられます。これには、特定の勤務シ
フト中の効率の最大化や、さまざまなグループの会議時間の予定重複
を最小化する問題などが含まれます。最適化について詳しくは、「最
適化」を参照してください。
Evolver について
15
Excel でモデルを構築する理由
どのような体系であっても、その効率を上げるには、まずその動作を
理解する必要があります。体系のモデルを構築する理由は、ここにあ
ります。複雑な体系を調査する場合、これを抽象化したモデルが必要
となりますが、そのモデルから実世界に通用する結果を得るには、変
数間の因果関係を単純化し過ぎないことが肝心です。今日ではソフト
ウェアの機能改善やプロセッサ処理能力の向上により、経済学者は経
済のより現実的なモデルを構築し、科学者は化学反応の予測精度を高
め、またビジネスマンは企業モデルの感度をより高めることが可能に
なっています。
この数年間でコンピューター ハードウェアおよび Microsoft Excel
などのソフトウェア プログラムが飛躍的な進歩を遂げ、パーソナル
コンピューターさえあれば誰もが複雑な体系の現実的なモデルを構築
できるようになりました。Excel の組み込み関数、マクロ機能、そし
てクリーンでわかりやすいインターフェイスを使えば、初心者であっ
ても複雑な問題のモデル化と分析を簡単に行うことができます。モデ
ルについて詳しくは、「Evolver のその他の機能」を参照してくださ
い。
Evolver の利点
Evolver 特 有 の 技 術 に よ っ て 、 パ ー ソ ナ ル コ ン ピ ュ ー タ ー と
Windows 版 Excel さえあれば最適化ツールを利用して問題を解決す
ることができます。Evolver が発売される以前には、生産効率を上げ
たり最適な解を見つけ出す方法としては、機能の劣る問題最適化ソフ
トウェアを使う、推測する、最適化を専門とするコンサルタントに依
頼してカスタムのソフトウェアを設計・作成する、という 3 つのオ
プションに限られていました。Evolver の主な利点としては次のよう
なものがあります。
推測が不要にな
る
16
相互に作用する多くの変数を前提として、これらの変数の最適な組み
合わせ、順位、またはグループ分けを判断する必要がある場合、人は
つい知識と経験に基づく推測をしがちです。そして、単なる推測にと
どまらずモデル化や分析を行うためには、複雑なプログラミングや難
解な統計または数学的なアルゴリズムが必要だと思っている人も沢山
います。優れた最適な解が見つかれば、数億円の資金や、大量の燃料、
また数ヶ月分の作業時間を節約することが可能になります。高速なデ
スクトップ コンピューターを安価で入手でき、Excel や Evolver と
いったソフトウェアも手軽に購入できるようになった今日では、単な
る推測だけに頼ったり、貴重な時間を割いて手作業で多くのシナリオ
を試したりする必要はありません。
Evolver について
より正確で意味
のある分析
優れた柔軟性
Evolver では Excel のすべての数式を使用して、あらゆる問題のよ
り現実的なモデルを構築できます。Evolver を使用する場合、特定の
アルゴリズムが実世界の複雑さに対処できないためにモデルの精度が
落ちる、ということはありません。従来の一般的なベビー ソルバー
(統計および線形計画法ツール) では、ユーザーが問題の変数間の相
互作用について無理に推測する必要があるため、結果として極端に単
純化された非現実的なモデルが出来上がります。これらの最適化ツー
ルでは、不確実性を伴うモデルの要素が取りうる値の範囲を考慮に入
れることができず、ユーザーは不確実な変数の値を推測するよう強要
されます。これらの解決ツールで対応できるレベルにまで問題を単純
化してしまうと、得られる解も抽象化された非実用的なものとなりま
す。そして、問題に多くの変数、非線形関数、ルックアップ テーブ
ル、if-then 文、データベース クエリー、または確率的 (ランダム)
な要素が含まれている場合には、モデルをいかに単純化したとしても、
こうしたツールで問題を解決することは不可能です。
シンプルで規模の小さい線形・非線形タイプの問題を処理できる解決
アルゴリズムは数多くあります。これには、山登り法やソルバー、そ
の他の数学的方法が含まれます。こうした汎用の最適化ツールはスプ
レッドシートのアドインとして提供されていますが、処理の対象とな
るのは数値計算による最適化に限られます。より複雑で規模の大きい
問題の場合、特定のカスタム アルゴリズムを作成することで良い結
果を得ることができたとしても、これには多くの調査や開発努力が必
要となります。また、このような方法で作成したプログラムは、モデ
ルが変化するごとに変更を加える必要があります。
Evolver では、数値計算の問題を処理できるだけでなく、一般に市販
されている世界で唯一のプログラムとして、ほとんどの順列組み合わ
せ問題を解決することができます。組み合わせ問題には、さまざまな
順列や組み合わせを試す必要のある変数が含まれています。例えば、
野球チームの打順決定は、選手がバッター ボックスに入る順番を決
める順列組み合わせ問題です。Evolver ではプロジェクトの一部とし
て最適なタスクの実行順序を見つけて、指定された先行タスクの制限
(つまり、タスクの実行順序を指定する制限) を満たす解のみを評価
することができます。また、複雑なスケジュール管理も順列組み合わ
せ問題の 1 つです。Evolver があれば、このようにほかのツールで
は対処が不可能なさまざまなタイプの問題を 1 つのツールで解決す
ることができます。
高機能
Evolver について
Evolver を使用すればさらに優れた解を見つけ出すことができます。
大半のソフトウェアは数学的かつ体系的な手法により最適な解を求め
ます。これらの手法では、既存の解に基づいてより優れた一番近い解
を検索することしかできません。しかしこのような「局所的」な解は、
17
実際の最適解とはかけ離れていることがあります。Evolver では、イ
ンテリジェントな方法により可能性のある領域全体から標本を抽出す
るため、一段と優れた「大局的」な解を見つけることができます。
使いやすさ
Evolver は強力な機能と優れた柔軟性を備えていますが、その基盤と
なる最適化手法をユーザーが理解する必要はまったくなく、使い方は
ごく簡単です。Evolver にいわゆる問題の「要点」を理解させる必要
はありません。必要なのは、各シナリオの適性を評価できるスプレッ
ドシート モデルを指定するだけです。変数が入っているスプレッド
シート セルを選択し、探している答えを Evolver に指定します。
Evolver を使用するのに難しい技術を理解する必要は一切なく、問題
分析における仮説の処理を自動的に行うことができます。
数学的プログラミングおよびモデル構築用に開発されたプログラムは
いくつも市販されていますが、スプレッドシートは毎月何百万という
ユーザーが購入する、最もよく使われるプログラムです。行と列を使
ったわかりやすい形式を採用したスプレッドシートには、ほかの専用
製品よりも設定や管理がしやすいという利点があります。さらに、ワ
ードプロセッサやデータベースといったほかのプログラムとの互換性
にも優れ、どのスタンドアロン型製品よりも多くの数式、書式設定オ
プション、グラフ オプション、およびマクロ機能が用意されていま
す。Evolver は Microsoft Excel のアドインとして機能するので、
多様な関数や開発ツールを利用して問題の現実的なモデルを手軽に構
築することができます。
コスト効率
多くの企業では、専門家に依頼してカスタムの最適化システムを構築
しています。このようなシステムは優れたパフォーマンスを発揮しま
すが、その開発と導入には何か月もの時間と大規模な投資が必要です。
また、カスタムのシステムは使い方が難しいために多額のトレーニン
グ費用を必要とし、日々のメンテナンスも欠かせません。さらに、い
ったん構築したシステムに変更を加える場合、最適な解を求めるため
のまったく新しいアルゴリズムを開発する必要が出てくることも多々
あります。これに対して Evolver を利用すれば、今日市販されてい
る最も強力な最適化アルゴリズムが低コストで手に入り、さまざまな
タイプの問題について迅速で正確な解を得ることが可能になります。
使い慣れたわかりやすい作業環境で使用できるので、トレーニングや
メンテナンス費用もほぼ不要です。
また、Evolver の最適化機能を自社のカスタム プログラムに取り入
れたい場合には、Visual Basic を使って専用のスケジュール管理、
製造、そして財務管理システムを短時間で開発することができます。
Evolver ベースのアプリケーションを開発する方法の詳細については、
Evolver デベロッパー キットを参照してください。
18
Evolver について
Evolver: ステップバイステップ
はじめに .................................................. 21
Evolver の基本操作 ........................................ 23
Evolver の起動 ..........................................
Evolver ツールバー ...............................
サンプル モデルを開く ............................
[Evolver - モデル] ダイアログ ...........................
ターゲット セルの選択 ...................................
調整可能セルの範囲の追加 ................................
解法の選択 .......................................
制限 ....................................................
制限の追加 .......................................
シンプルな制限と数式による制限....................
その他の Evolver オプション .............................
停止条件 .........................................
[表示] タブのオプション...........................
最適化の実行 ............................................
Evolver ウオッチャー .............................
最適化の停止 .....................................
概要レポート .....................................
結果によるモデルの更新............................
Evolver: ステップバイステップ
23
23
23
24
25
25
27
28
29
29
32
32
34
35
36
37
38
39
19
20
はじめに
この章では、Evolver の最適化の処理全体についてステップごとに解
説します。ハード ドライブに Evolver がインストールされていない
場合、このチュートリアルを始める前に、「はじめに」のインストー
ル方法を参照して Evolver をインストールしてください。
ここでは事前に作成されているスプレッドシート モデルを開き、
Evolver のダイアログを使って Evolver に問題を指定します。その
後、Evolver が解を検索する間に進行状況を確認し、Evolver ウオッ
チャーのいくつかのオプションについて考察します。特定のトピック
について詳しくは、このマニュアルの索引または、「Evolver リファ
レンス ガイド」を参照してください。
注意: 以下の画面は Excel 2010 の例です。それ以外のバージョンの
Excel ではウィンドウの表示が若干異なる場合があります。
問題を解決するには、まずその問題を正確に表せるモデルが必要です。
このモデルは、特定の一連の入力値 (調整可能セル) を評価して、こ
れらの入力により問題がどの程度解決されるかを示す数値を生成 (つ
まり「目標」関数を評価) できなければなりません。Evolver が解を
探す間、この目標関数によって各推測の適応度についてのフィードバ
ックを Evolver に返し、Evolver がさらに優れた推測を行えるよう
にします。問題のモデルを作成する際には、この目標関数に十分注意
する必要があります。Evolver は、このセルの値を最大化または最小
化できるような最適な解を探します。
Evolver: ステップバイステップ
21
22
Evolver の基本操作
Evolver の起動
Evolver を起動する方法は 2 つあります。1) Windows デスクトップ
の [Evolver] アイコンをクリックするか、2) Windows の [スター
ト] > [プログラム] の項目から[Palisade DecisionTools] を選択し、
さら に [Evolver] を選択し ます。どち らの手順で も、Microsoft
Excel と Evolver の両方が起動します。
Evolver ツール
バー
Evolver が読み込まれると、Excel に Evolver リボンまたはツール
バーが表示されます。このツールバーには、Evolver の設定や、最適
化の開始、一時停止、そして停止などを行うボタンがあります。
サンプル モデル
を開く
ここでは Evolver と一緒にインストールされたサンプル モデルを使
いながら Evolver の機能について説明します。以下の手順に従って
ください。
1) [ヘルプ] メニューの [サンプル スプレッドシート] コマンドか
ら、「Bakery – Tutorial Walkthrough.XLSX」(または「Bakery
– Tutorial Walkthrough.xls」) ワークシートを開きます。
Evolver: ステップバイステップ
23
このサンプル シートには、ベーカリーを経営するためのシンプルな
利益最大化問題が設定されています。このベーカリーでは 6 種類の
パンを作っています。ここでは売上高、コスト、および生産利益を管
理するベーカリーのマネージャーとして、生産限度のガイドラインを
満たす範囲内で利益を最大限にするには各種類のパンをそれぞれ何ケ
ース生産すればよいかを判断することにします。生産限度のガイドラ
イン項目は以下のとおりです。1) 低カロリー パンの特定数量を生産
すること。2) 高ファイバー パンと低カロリー パンの比率を特定範
囲内に保つこと。3) 5 グレイン パンと低カロリー パンの比率を特
定範囲内に保つこと。4) 生産時間を特定の所要人時限度内に留める
こと。
[Evolver - モデル] ダイアログ
このワークシート用に Evolver のオプションを設定するには、次の
手順を行います。
1) Evolver リボンの一番左にあるモデル定義のアイコンをクリック
します。
[Evolver - モデル] ダイアログ ボックスが表示されます。
[Evolver - モデル] ダイアログは、問題をわかりやすく簡潔に指定
できるように設計されています。このチュートリアルの例では、全体
的な利益を最大限にするために、各種類のパン製品を何ケースずつ生
産したらよいかを判断しようとしています。
24
Evolver の基本操作
ターゲット セルの選択
サンプル モデルにある「合計利益」というセルが、いわゆるターゲ
ット セルです。ターゲット セルには、最小化または最大化しようと
している値、または、あらかじめ設定された値にできるだけ近づける
必要のある値が含まれています。ターゲット セルを指定するには、
次の手順を行います。
1) [最適化ゴール] オプションを [最大] に設定します。
2) [セル] フィールドに、ターゲット セル「$I$11」を入力しま
す。
Evolver ダイアログのフィールドにセル参照を入力する方法は 2 つ
あります。1) カーソルでフィールドをクリックし、フィールド内に
直接参照を入力します。または、2) 選択したフィールドにカーソル
を置いた状態で、[参照入力] アイコンをクリックして、マウスで直
接ワークシート セルを選択します。
調整可能セルの範囲の追加
次に、Evolver が解を見つけるために調整することのできる値を含む
セルの場所を指定する必要があります。これらの変数の追加と編集は、
[モデル] ダイアログの [調整可能セルの範囲] セクションを使って
1 ブロックずつ行います。[調整可能セルの範囲] に入力できるセル
の数は、お使いの Evolver のバージョンによって異なります。
1) [調整可能セルの範囲] セクションの [追加] ボタンをクリック
します。
2) 調整可能セルとして追加するセルとして、Excel で $C$4:$G$4
を選択します。
調整可能セルの
最小 - 最大範囲
の入力
通常の場合は調整可能セルの取りうる値を、最小 - 最大の範囲を指
定して制限する必要があります。Evolver ではこの制限のことを「範
囲」制限と呼びます。この最小 - 最大の範囲は、一連の調整可能セ
ルを選択して、簡単に入力できます。ベーカリーの例では、生産でき
る各種類のパンのケース数の最小値が 0、最大値が 100,000 です。
この範囲制限を入力するには、次の手順を行います。
1)
[最小] セルに 0 を入力し、[最大] セルに 100,000 を入力し
ます。
2)
[値] セルで下矢印をクリックし、ダイアログで [整数] を選択
します。
Evolver: ステップバイステップ
25
次に、2 番目の調整可能セル範囲を入力します。
1) [追加] をクリックして 2 番目の調整可能セルを入力します。
2) セル B4 を選択します。
3) [最小] に 20,000、[最大] に 100,000 を入力します。
4) [値] セルで下矢印をクリックし、ダイアログで [離散] を選択
します。デフォルトのステップ サイズである 2 をそのまま使用
します。
すると低カロリー パンの生産レベルを示す最後の調整可能セル B4
が指定されます。ステップ サイズを 2 に指定すると、ケースの数が
26
Evolver の基本操作
偶数に制限されます (許可されるケース数は 20000、20002、20004、
などです)。
ほかにも追加の変数がある場合は、ここで一連の調整可能セルの入力
を続けます。Evolver で作成できる調整可能セルのグループの数に制
限はありません。セルをさらに追加するには、[追加] ボタンをクリ
ックします。
一度設定した調整可能セルを、後日あらためて確認したり変更したり
する場合もあります。これには、テーブル内で最小 - 最大の範囲を
編集します。また、一連のセルを選択してから [削除] ボタンをクリ
ックすると、セルを削除できます。
解法の選択
調整可能セルを定義するときに、使用する解法を指定できます。調整
可能セルのタイプによって、それぞれ異なる解法を用いて処理されま
す。解法は調整可能セルのグループに対して設定します。解法を変更
するには、[グループ] ボタンをクリックして [編集] を選択し、[調
整可能セルのグループ設定] ダイアログ ボックスを表示します。デ
フォルト値の [レシピ] 解法は一般によく使用され、各セルの値をほ
かのセルとは独立した値として変更できます。この解法はデフォルト
として既に選択されています。
最もよく使われる解法は [レシピ] と [順序] です。この 2 つを一
緒に使用して、複雑な順列組み合わせ問題を解くことができます。
「レシピ」解法は、各変数をレシピの材料として扱い、各変数の値を
個別に変更することにより、「ベストな組み合わせ」を探し出します。
これに対して「順序」解法は、変数間で値をスワップして、初期値の
位置を動かすことで「ベストな順序」を探し出します。
このモデルでは解法は [レシピ] のままにし、次の手順を行います。

[説明] フィールドに「生産ケース数」と入力します。
Evolver: ステップバイステップ
27
制限
Evolver では制限を入力できます。制限とは、解を有効とみなすため
には満たさなければならない条件のことです。このサンプル モデル
では、各種類のパンの生産レベルの可能な組み合わせが有効とみなさ
れるには、3 つの追加の制限を満たす必要があります。これらの制限
は、調整可能セルに対して入力した範囲制限とは別個のものです。こ
こで使用する制限は次のとおりです。
1) 生産時間を所要人時制限内に留める (合計所要人時 < 50,000)
2) 高ファイバー パンと低カロリー パンの比率を許容範囲内に保つ
(高ファイバーの生産ケース数 >= 1.5 * 低カロリーの生産ケー
ス数)
3) 5 グレイン パンと低カロリー パンの比率を許容範囲内に保つ
(5 グレインの生産ケース数 >= 1.5 * 低カロリーの生産ケース
数)
Evolver でモデルの起こりうる解を生成するたびに、ここで入力した
制限が満たされているかが確認されます。
制限は [Evolver - モデル] ダイアログの下部にある [制限] セクシ
ョンに表示されます。Evolver では次の 2 種類の制限を指定できま
す。
28

ハード制限。ハード制限は、解を有効とみなすには満たさなけれ
ばならない条件です。(例えば、ハードな反復試行制限として
C10<=A4 という条件を指定すると、解で生成された C10 の値が
セル A4 の値より大きい場合はその解が破棄されます。)

ソフト制限。ソフト制限は、できる限り満たすことが望ましい条
件ですが、ターゲット セルの結果が大きく改善される場合には
妥協することが可能なものです。(例えば、ソフト制限として
C10<100 と指定すると、C10 の値が 100 を超えることは可能で
すが、その場合はターゲット セルの計算値が所定のペナルティ
関数に基づいて減算されます。)
Evolver の基本操作
制限の追加
制限を追加するには、次の手順を行います。
1) Evolver のメイン ダイアログの [制限] セクションにある [追
加] ボタンをクリックします。
モデルの制限を入力するための [制限設定] ダイアログ ボックスが
表示されます。
シンプルな制限
と数式による制
限
制限の入力には、「シンプル」と「数式」の 2 つの形式を使用でき
ます。シンプルな形式を指定する場合、<、<=、>、>=、または = の
関係を使用して制限を入力できます。シンプルな形式を使った典型的
な制限としては、例えば「0< A1 の値 <10」があります。この場合、
[セル範囲] ボックスに A1、[最小] ボックスに 0、[最大] ボックス
に 10 を入力します。演算子はドロップダウン リストから選択しま
す。シンプルな形式を使った制限では、[最小] ボックスのみ、[最
大] ボックスのみ、またはその両方を指定することができます。
これに対して「数式」形式の制限では、任意の有効な Excel 式を制
限として入力できます。例えば「=IF(A1>100, B1>0, B1<0)」という
数式を入力できます。この制限では、B1 の値が正と負のどちらにな
るかが、セル A1 の値によって決まります。または、セルに数式を入
力し、そのセルが C1 の場合には、[制限設定] ダイアログの [数式]
フィールドに「=C1」と入力できます。一般的に言って、制限をシン
プル形式で入力すると、RISKOptimizer による最適な解の検索をより
短時間で実行できます。前に説明した数式はセル D1 に「=IF(A1>100,
B1, -B1)」として入力できます。その場合、D1>0 になるよう強制す
るシンプル形式の制限を追加できます。
Evolver: ステップバイステップ
29
ベーカリーのモデルの制限を入力するには、新しい制限を 3 つ入力
する必要があります。これらはハード制限であり、ここに入力した条
件を満たさない可能な解は Evolver によって破棄されます。まず、
シンプル形式のハード制限を入力します。
30
1)
説明ボックスに「許容合計作業時間」と入力します。
2)
[制限対象の範囲] に「I8」と入力します。
3)
[制限対象の範囲] の右から [<=] 演算子を選択します。
4)
[最大] ボックスに「50,000」と入力します。
5)
[OK] をクリックしてこの制限を設定します。
Evolver の基本操作
次に、数式形式のハード制限を入力します。
1) [追加] をクリックして [制限設定] ダイアログ ボックスをもう
一度表示します。
2) 説明ボックスに「高ファイバーと低カロリーの許容比率」と入力
します。
3) [エントリー スタイル] ボックスで [数式] を選択します。
4) [制限数式] ボックスに「C4>= 1.5*B4」と入力します。
5) [OK] をクリックします。
6) [追加] をクリックして [制限設定] ダイアログ ボックスをもう
一度表示します。
7) 説明ボックスに「5 グレインと低カロリーの許容比率」と入力し
ます。
8) [エントリー スタイル] ボックスで [数式] を選択します。
9) [制限数式] ボックスに「D4>= 1.5*B4」と入力します。
10) [OK] をクリックします。
[モデル] ダイアログの [制限] セクションに、追加した制限が表示
されます。
Evolver: ステップバイステップ
31
その他の Evolver オプション
表示の更新、乱数シード、最適化の停止条件などのオプションを使用
して、最適化の処理中の Evolver の動作を制御することができます。
ここでは実行詳細オプションと表示更新の設定をいくつか指定してみ
ます。
停止条件
Evolver は、指定の条件が満たされるまで処理を継続します。停止条
件を使用して、次のいずれかが満たされると Evolver が自動的に処
理を停止するようにします。a) 所定数のシナリオ (つまり「解」)
を試行した後、b) 所定の時間が経過した後、c) 最後の n 回の試行
で改善が見られない場合、d) 入力した Excel 数式が真になった場合。
実行詳細オプションを表示したり編集したりするには、次の手順を行
います。
1) Evolver リボンまたはツールバーの [設定] アイコンをクリック
します。
2) [実行詳細] タブを選択します。
[最適化設定] ダイアログでは、最適化の停止条件の任意の組み合わ
せを選択できます。または、停止条件を一切指定しないことも可能で
す。複数の停止条件を選択すると、Evolver はそのうち 1 つでも満
32
Evolver の基本操作
たされる条件がある場合に停止します。停止条件を 1 つも選択しな
いと、ユーザーが Evolver ツールバーの [停止] ボタンをクリック
して手動で停止するまでの間 Evolver は処理を続行します。あるい
は、起こりうる解をすべて試行した時点で Evolver が停止する可能
性もあります。
試行
回数
進行
数式が真
このオプション
は、Evolver で実
行する試行の数を
設定します。各試
行につき Evolver
は問題のすべての
変数のセット (つ
まり 1 つの可能な
解) を評価しま
す。
指定した時間が経
過すると Evolver
が停止します。こ
の時間には 4.25
などの小数も入力
できます。
これは、改善度が低下
した時点で Evolver を
停止するオプション
で、一番よく使われま
す。例えば、20000 回
の試行後にターゲット
セルの値の改善率が
0.01% 未満だった場合
に Evolver を停止する
場合があります。
指定した Excel
数式がモデルの再
計算中に真になる
と、Evolver が停
止します。

Evolver の処理を条件に関係なく継続させるには、すべての停止
条件をオフにします。
Evolver: ステップバイステップ
33
[表示] タブのオ
プション
[表示] タブにある一連のオプションを使って、Evolver の実行中に
画面に表示される情報を指定することができます。
[Excel の再計算を表示] には次のオプションがあります。
試行ごと
新たなベスト試行ごと
再計算を実行するたびに画
面が更新され、Evolver が
変数を調整して出力を計算
する様子を確認できます。
Evolver の使い方を学習す
る際や、新しいモデルに対
して Evolver を実行する
場合にはこのオプションを
オンにすることをお勧めし
ます。モデルの計算が正し
く行われているかどうか確
認できます。
Evolver が新しいベストの
解を生成するたびに画面が
更新されるので、最適化の
処理中にいつでも現在の最
適な解を確認できます。

34
[試行ごと] を選択します。
Evolver の基本操作
最適化の実行
これまでの手順で、生産制限のガイドラインを満たしながら合計利益
が最大になるようモデルを最適化する準備ができました。以下の手順
を行います。
1) [OK] をクリックして [最適化設定] ダイアログを閉じます。
2) [最適化の開始] アイコンをクリックします。
最適化の実行中、進行状況ウィンドウに次の情報が表示されます。1)
これまでの最適な解。2) Evolver による最適化の開始時の、ターゲ
ット セルの初期値。3) モデルですでに実行した試行数および、その
うち有効な (つまり制限を満たす) 試行数。4) 最適化を開始してか
らの経過時間。
実行中は [Excel の更新オプションの表示] アイコンをいつでもクリ
ックして、各試行の画面を随時更新することができます。
Evolver: ステップバイステップ
35
Evolver ウオッ
チャー
Evolver では、各試行解について実行される処理のログを随時表示す
ることもできます。このログは Evolver の実行中、Evolver ウオッ
チャーに表示されます。実行中の試行のログを表示するには、次の手
順を行います。
1) 進行状況ウィンドウにある、ウオッチャー (虫眼鏡) のアイコン
をクリックして Evolver ウオッチャーを表示します。
2) [ログ] タブをクリックします。
このレポートには、各試行解の実行結果が表示されます。[結果] 列
は、最小化・最大化する必要のあるターゲット セルの試行ごとの値
です。この例ではセル $I$11 の「合計利益」がこれに相当します。
B4 から G4 の各列は、調整可能セルに使用した値です。
36
Evolver の基本操作
最適化の停止
[実行詳細] タブや [最適化設定] ダイアログで何も選択しない状態
で最適化を実行しているので、次のいずれかの方法で最適化を停止す
る必要があります。
1) Evolver ウオッチャーまたは [進行状況] ウィンドウで、[停止]
アイコンをクリックします。
Evolver の処理が停止すると、次のオプションが含まれた [停止オプ
ション] タブが表示されます。
[Evolver - 最適化設定] ダイアログで設定した停止条件が 1 つでも
満たされると、これらのオプションが自動的に表示されます。
Evolver: ステップバイステップ
37
概要レポート
Evolver では、実行日時、使用した最適化設定、ターゲット セルの
計算値、および各調整可能セルの初期値とベストの値などが含まれた、
最適化の概要レポートを作成できます。
このレポートは、最適化を繰り返し行った結果を比較する場合に便利
です。
38
Evolver の基本操作
結果によるモデ
ルの更新
ベーカリーのモデル ワークシートの 6 種類の各パンの値を、最適化
された新しい値で更新するには、次の手順を行います。
1) [停止オプション] が表示されたときに [調整可能セルを初期値
に戻す] オプションが選択されていないことを確認します。
2) [OK] ボタンをクリックします。
すると BAKERY – TUTORIAL WALKTHROUGH.XLS スプレッドシートが、
ベストな解を生成した新しい変数値をすべて反映した状態で表示され
ます。
重要事項: この例では Evolver が 4,686,193 の合計利益を生み出す
解を見つけましたが、実際の結果はこの値と異なることもあります。
その理由は、Evolver とほかのすべての問題解決アルゴリズムとの重
要な相違点にあります。Evolver の遺伝的アルゴリズムと OptQuest
エンジンは、多様な問題を解決して最適な解を見つける機能にとって
不可欠なものです。
Evolver: ステップバイステップ
39
Evolver を実行した後でスプレッドシートを保存すると、Evolver の
実行後にシートの値を元に戻した場合でも、Evolver ダイアログのす
べての設定がそのシートに保存されます。次回このシートを開くと、
Evolver の最新の設定がすべて自動的に読み込まれます。ほかのすべ
てのサンプル ワークシートには Evolver の設定がすでに入力されて
いるので、最適化をすぐに実行することができます。
注意: 最適化設定がすべて指定済みのベーカリーのモデルを確認する
には、「Bakery.xls」または「Bakery.xlsx」というサンプル モデル
を開いてください。
40
Evolver の基本操作
Evolver リファレンス ガイド
[モデルの定義] コマンド ................................... 43
調整可能セルの範囲 ......................................
調整可能セル グループ ...................................
レシピ解法 .......................................
順序解法 .........................................
グルーピング解法 .................................
予算解法 .........................................
プロジェクト解法 .................................
スケジュール解法 .................................
タイム ブロック数と制限セル.......................
制限 ....................................................
追加 - 制限の追加 ................................
エントリー スタイル ..............................
ソフト制限 .......................................
45
47
49
50
50
52
53
54
56
57
57
58
59
[最適化設定] コマンド ..................................... 63
[最適化設定] コマンドの [実行詳細] タブ..................
[最適化実行詳細] のオプション.....................
[最適化設定] コマンドの [エンジン] タブ..................
最適化モード .....................................
最適化の方法 .....................................
遺伝的アルゴリズムの設定..........................
演算子 ...........................................
[最適化設定] コマンドの [表示] タブ .....................
[最適化設定] コマンドの [マクロ] タブ ...................
63
64
66
66
67
67
70
72
73
[最適化の開始] コマンド ................................... 75
[ユーティリティ] コマンド ................................. 77
[アプリケーション設定] コマンド ......................... 77
[制約ソルバー] コマンド ................................. 78
Evolver リファレンス ガイド
41
Evolver ウオッチャー ...................................... 81
[Evolver
[Evolver
[Evolver
[Evolver
[Evolver
[Evolver
42
ウオッチャー]
ウオッチャー]
ウオッチャー]
ウオッチャー]
ウオッチャー]
ウオッチャー]
の
の
の
の
の
の
[進行] タブ .................... 82
[サマリー] タブ ................ 84
[ログ] タブ .................... 85
[個体群] タブ .................. 86
[相違] タブ .................... 87
[停止オプション] タブ .......... 88
Evolver の基本操作
[モデルの定義] コマンド
モデルのゴール、調整可能セル、および制限を定義
Evolver の [モデルの定義] コマンドを選択するか、Evolver ツール
バーで [モデルの定義] アイコンをクリックすると、[モデル] ダイ
アログが表示されます。
[Evolver - モデル] ダイアログ
[Evolver - モデル] ダイアログを使って、Evolver に最適化する問
題を指定します。このダイアログを新しい Excel ワークブックで開
くと、すべての値が空の状態で表示されますが、いったん指定した情
報は各ワークブックに保存されます。同じシートをもう一度開くと、
保存された値が表示されます。このセクションでは、このダイアログ
の各要素について説明します。
Evolver リファレンス ガイド
43
[モデル] ダイアログには、次のオプションがあります。

[最適化ゴール] - [最適化ゴール] オプションを使用して、
Evolver にどのような解を探しているかを指定します。[最小]
を選択すると、Evolver は、ターゲット セルの値が可能な限り
最小になるような変数値を探します (検索可能な最小値は 1e300 です)。[最大] を選択すると、Evolver は、ターゲット
セルの値が最大値になるような変数値を探します (検索可能な最
大値は +1e300 です)。
[ターゲット値] を選択すると、Evolver は、ターゲット セルの
値がユーザーの指定した値にできるだけ近づくような変数値を探
します。Evolver はこのような結果を生み出す解を見つけると自
動的に停止します。例えば Evolver に対して、結果が 14 に一
番近くなる解を検索するよう指定すると、値が 13.7 や 14.5 な
どになるシナリオが見つかります。ここで、13.7 の方が 14.5
よりも 14 という値に近いことに注意してください。Evolver で
は、値が指定の値より大きいか小さいかは関係なく、目標値との
差異のみが考慮されます。

[セル] - セル、つまり「ターゲット セル」には、モデルの出力
が含まれます。Evolver が生成した各「試行解」(調整可能セル
の可能な値の各組み合わせ) に対して、このターゲット セルの
値が 1 つ生成されます。ターゲット セルには、調整可能セルに
直接、あるいは一連の計算を介して間接的に依存する数式が含ま
れている必要があります。この数式は、SUM() などの Excel の
標準の式か、ユーザーが定義する VBA マクロ関数を使って指定
できます。VBA マクロ関数を使用すると、Evolver でより複雑な
モデルを処理できるようになります。
Evolver は解を検索する際に、ターゲット セルの値を適格度ま
たは「目標関数」として使用して、各シナリオの適性を評価しま
す。モデルの構築にあたっては、Evolver が起こりうる結果を計
算する際にその進行状況を正確に測定できるよう、ターゲット
セルには特定のシナリオの「適応度」が反映されるようにする必
要があります。
44
[モデルの定義] コマンド
調整可能セルの範囲
[調整可能セルの範囲] テーブルには、Evolver が調整できるセルま
たは値の各範囲と、これらのセルに入力した説明が表示されます。各
行に 1 セットの調整可能セルが表示されます。[調整可能セル グル
ープ] には、1 つ以上の調整可能セルが含まれています。特定の調整
可能セル グループ内のすべてのセル範囲に共通の解法が設定され、
また遺伝的アルゴリズムが使用される場合は共通の交差率、突然変異
率、および演算子も設定されています。
調整可能セルには問題の変数が含まれるので、Evolver を使用する前
に、少なくとも 1 つの調整可能セル グループを定義する必要があり
ます。大半の問題は 1 つの調整可能セル グループで定義できますが、
より複雑な問題の場合には、さまざまな解法を同時に使用して複数の
変数セットを処理することもあります。この独自のアーキテクチャに
よって、調整可能セルのグループをいくつも使って複雑な問題も簡単
にモデル化することが可能になります。
調整可能セルの範囲を入力するには、次のオプションを使用できます。

[追加] - 新しい調整可能セルを追加するには、[調整可能セル]
リスト ボックスの隣にある [追加] ボタンをクリックします。
追加するセルまたはセル範囲を選択すると、[調整可能セルの範
囲] テーブルに新しい行が追加されます。このテーブルに、その
範囲のセルの [最小] 値と [最大] 値および、テストする値の種
類 (指定範囲内の [整数] 値、定義されたステップ サイズの
[離散] 値、または [すべて] の値など) を入力できます。

[最小]、[最大] - 調整可能セルの位置を指定したら、次に [最
小] と [最大] を入力して各調整可能セルの値の許容範囲を設定
します。デフォルトでは、各調整可能セルは正と負の無限大の範
囲内の実数 (倍精度浮動小数点) 値を取ることができます。
Evolver リファレンス ガイド
45
範囲の設定は、制限として強制的に適用されます。Evolver では、
変数が所定の範囲を超える値を取ることは許可されません。
Evolver のパフォーマンスを向上させるには、変数の範囲をでき
るだけ小さくすることをお勧めします。例えば、変数が負の値を
取りえない場合や、特定の変数の値として Evolver で検討する
範囲を 50 ~ 70 に限定できる場合などもあります。

[範囲] - [範囲] フィールドには、調整するセル (範囲) の参照
を入力します。参照を入力するには、マウスでスプレッドシート
の 範 囲 を 選 択 す る か 、 範 囲 名 ま た は 有 効 な Excel 参 照
(Sheet1!A1:B8 など) を入力することもできます。[範囲] フィ
ールドは、すべての解法で使用できます。ただし、レシピ解法と
予算解法では、調整可能セルの範囲を入力するための [最小]、
[最大]、[値] の各オプションが追加されることもあります。
注意: 変数の範囲を小さくすることで、検索の対象範囲を制限
し、Evolver による解の収束の処理時間を短縮することができま
す。ただし、変数値の範囲をあまり小さくしすぎると、Evolver
で最適な解が見つからない可能性があるので、注意が必要です。

[値] - [値] オプションを使用して、指定範囲のすべての変数を
実数ではなく整数 (20、21、22 など)、離散型の実数 (例えばス
テップ サイズが 0.5 の場合は 20、20.5、21、21.5、22 など)、
または指定範囲内のすべての実数として処理するよう、Evolver
に指定します。このオプションは、「レシピ」と「予算」の解法
を使用する場合のみ利用できます。デフォルトでは指定範囲内の
すべての実数値を許可するよう設定されています。
例えば、値の範囲を 1 ~ 4 に指定した場合は次のようになりま
す。
46

[すべて] は、1 ~ 4 のすべての実数値が含まれること
を示します。

[整数] は、1、2、3、および 4 が含まれることを示しま
す。
[モデルの定義] コマンド

[離散] を選択して [ステップ サイズ] を 0.5 に設定し
た場合、1、1.5、2、2.5、3、3.5、および 4 が含まれる
ことを示します。
デフォルトでは指定範囲内のすべての実数値を含めるよう設定されて
います。[値] オプションは、「レシピ」と「予算」の解法を使用す
る場合のみ利用できます。
「離散」の調整可能セルを使用すると、「すべて」の値が許可される
調整可能セルよりも可能な解の数が大幅に減るので、多くの場合は最
適化の処理時間が短縮されます。
調整可能セル グループ
調整可能セルの各グループに、複数のセル範囲を指定することができ
ます。これにより、関連のあるセル範囲グループの「階層」を構築で
きます。各グループ内にある各セル範囲ごとに最小 - 最大の範囲制
限を指定できます。
特定の調整可能セル グループ内のすべてのセル範囲には、共通の解
法が設定されています。これは [調整可能セルのグループ設定] ダイ
アログで指定できます。このダイアログを開くには、[調整可能セル
の範囲] テーブルの隣にある [グループ] ボタンをクリックします。
新しいグループを作成してこれに調整可能セルの範囲を追加したり、
既存のグループの設定を変更することができます。
Evolver リファレンス ガイド
47
[調整可能セルのグループ設定] ダイアログには、次のオプションが
あります。

[説明] - ダイアログやレポートに、調整可能セル範囲のグルー
プについての説明として表示されます。

[解法] - グループ内の各調整可能セル範囲に適用する解法を選
択します。
Evolver で調整するセルの範囲を選択するときに、それらの調整可能
セルに適用する「解法」も選択します。変数の値を変化させる方法は
解法によって異なります。
例えば「レシピ」解法は、選択された各変数をレシピの材料として扱
うため、各変数の値をほかの変数値とは独立して個別に変更すること
ができます。これに対して「順序」解法は、調整可能セル間で既存の
値をスワップして、元々あった値を異なる変数に割り当てます。
Evolver には 6 つの解法が用意されています。このうち 3 つの解法
(レシピ、順序、グルーピング) は、まったく異なるアルゴリズムを
使用しています。残りの 3 つは最初の 3 つの「子孫」で、追加の制
限が適用されます。
次のセクションでは、各解法の機能について説明します。各解法の使
い方について詳しく理解するには、Evolver に付属のサンプル ファ
イルの内容を参照してください。
48
[モデルの定義] コマンド
レシピ解法
「レシピ」解法は、最もシンプルで一番よく使われる種類の解法です。
レシピ解法は、一連の変数があり、その各変数をほかの変数とは独立
して調整できる場合に使用します。この解法では各変数をケーキの各
材料のように扱います。「レシピ」解法を指定すると、Evolver がこ
れらの変数をさまざまな値に設定してベストな組み合わせを見つけま
す。レシピの変数に適用される唯一の制限は、これらの値が取りうる
範囲 (最小値と最大値) です。この範囲 (例えば「1 ~ 100」の範
囲) は [調整可能セル] ダイアログの [最小] フィールドと [最大]
フィールドで設定します。また、整数 (1、2、7)、ステップ サイズ
の指定された範囲内の離散値 (1、1.5、2、2.5、3)、および実数
(1.4230024、63.72442) のうちどれを使用して処理を実行するかも指
定します。
次の表に、Evolver を呼び出す前にシートに設定されていた一連の変
数の初期値と、レシピ解法を使用した後に起こりうる 2 つのシナリ
オの例を示します。
変数セットの初期値
レシピ解法で起こりう
る変数値のセット A
レシピ解法で起こりう
る変数値のセット B
23.472
15.344
37.452
145
101
190
9
32.44
7.073
65,664
14,021
93,572
Evolver リファレンス ガイド
49
順序解法
「順序」解法は、「レシピ」の次に最もよく使われる種類の解法です。
順序とはアイテムのリストの順列のことを指し、この解法では一連の
特定値を並べ替えて、最適な順序を見つけ出します。選択された変数
の値を Evolver が生成する「レシピ」や「予算」解法とは異なり、
「順序」解法ではモデルに設定されている既存の値が使用されます。
ここでいう順序は、一連のタスクを実行する順序などのことです。例
えば、1 ~ 5 の番号が付いた 5 つのタスクを実行する順序を判断し
たいと仮定します。「順序」解法は、1 ~ 5 の番号を例えば 3、5、
2、4、1 という順序に入れ替えます。順序解法ではユーザーが設定し
たシートの変数値を Evolver がそのまま用いるので、最小 - 最大の
範囲は入力しません。
次の表に、Evolver を呼び出す前にシートに設定されていた一連の変
数の初期値と、順序解法を使用した後に起こりうる 2 つのシナリオ
の例を示します。
グルーピング解
法
変数セットの初期値
順序解法で起こりうる
変数値のセット A
順序解法で起こりうる
変数値のセット B
23.472
145
65,664
145
23.472
9
9
65,664
145
65,664
9
23.472
「グルーピング」解法は、複数の項目をいくつかのグループに分ける
必要がある問題に使用します。デフォルトでは、RISKOptimizer が作
成するグループの数は、最適化の開始時に調整可能セルに設定されて
いる、一意の値の数に等しくなります。(このデフォルトの動作は、
[グループ ID] フィールドを使用して以下に説明する手順で変更する
ことができます。)
例えば、50 個のセルで取りうる値が 2、3.5、17 の 3 つに限られる
とします。この 50 のセルを選択して「グルーピング」解法で値を調
整する場合、Evolver が 50 個すべてのセルを 2、3.5、17 のグルー
プのいずれかに割り当てます。ここでは各グループに調整可能セルの
うち少なくとも 1 つが割り当てられます。これは 50 個の変数をい
くつかの箱に投げ入れ、それぞれの箱に少なくとも 1 つの変数が入
るようにするのと同じです。この解法の例には、1、0、-1 の各値を
取引システムに割り当て、買い、売り、ホールドの各ポジションを示
す場合なども当てはまります。「順序」解法と同様、Evolver が既存
の値を並べ替えるだけなので、最小 - 最大の範囲や整数オプション
は定義しません。
50
[モデルの定義] コマンド
注意: 「グルーピング」解法を使用する場合、すべてのセルに必ず値
を入力してください。値を入力しないと、0.0 という値が 1 つのグ
ループであると解釈されます。
「グルーピング」解法は、一見すると「レシピ」解法の整数オプショ
ンをオンにして範囲を 1 ~ 3 (またはその他のグループ数) に設定
した場合と似ています。ただし、レシピとグルーピングでは調整可能
セルの検索の処理方法が異なります。グルーピング問題を解く場合、
あるグループからの一連の変数をほかのグループからの一連の変数と
スワップできるので、レシピ解法の場合に比べてすべての変数の値が
重視されます。
次の表に、Evolver を呼び出す前にシートに設定されていた一連の変
数の初期値と、グルーピング解法を使用した後に起こりうる 2 つの
シナリオの例を示します。
変数セットの初期値
グルーピング解法で起
こりうる変数値のセッ
ト A
グルーピング解法で起
こりうる変数値のセッ
ト B
6
6
8
7
6
7
8
8
6
8
7
7
グルーピング解法を使用する場合、[調整可能セルのグループ設定]
ダイアログに次の 2 つの追加の設定が表示されます。
 [グループ ID] (オプション) この設定を使用して、数値のグル
ープ ID を含む範囲を指定できます。通常の場合、Evolver は
調整可能範囲からグループ ID を読み取ります。例えば、調整
可能範囲が A1:D1 であり、その数値が 1、1、3、2 である場合、
Evolver は 1、2、および 3 をグループ ID として使用します。
ただし、グループの数が調整可能セルの数よりも多い場合もあ
ります。例えば、セル A1:D1 で表される項目を、1 ~ 5 のグ
ループに割り当てたいとします。その場合、グループ ID の設
定を使用して、最適化の処理中にグループ ID として使用する
1 ~ 5 の 5 つのセルを含む範囲を指定することができます。
 [すべてのグループの使用を義務づける] このオプションをオン
にすると、各解にすべてのグループからのメンバーが使用され
ます。例えば、調整可能セルが A1:D1 でグループ ID が 1、2、
3 の場合、Evolver は 4 つすべてのセルに 1 が割り当てられ
た解 (つまり 2 と 3 がない状態の解) を試行しません。これ
Evolver リファレンス ガイド
51
に対して、このチェック ボックスをオフにした場合はそのよう
な解も試行されます。
予算解法
「予算」解法は「レシピ」解法に似ていますが、変数のすべての値の
合計が特定の値になる必要がある点で異なります。この特定の値とは、
最適化の開始時に設定されていた変数値の合計です。
例えば、年度予算をいくつかの部署に分配する最適な方法を判断した
いとします。「予算」解法では各部署の現在の値の合計を計算し、そ
の値を予算の合計額とみなし、その最適な分配方法を探します。次の
表に、予算解法を使用した後に起こりうるシナリオの 2 つの例を示
します。
一連の
予算額の初期値
予算解法で起こり
うる予算額のセット A
予算解法で起こ
りうる予算額のセット B
200
93.1
223.5
3.5
30
0
10
100
-67
10
.4
67
さまざまな値が試されますが、その合計は常に 223.5 です。
「予算」解法を使用する代わりに、「レシピ」解法を使用して調整可
能セルの合計値を一定に保つ制限を追加することもできます。この方
法は OptQuest エンジンを使用する場合に適しています。ただし、遺
伝的アルゴリズムでは「予算」解法の方がより効率的です。
52
[モデルの定義] コマンド
プロジェクト解
法
「プロジェクト」解法は「順序」解法に似ていますが、特定のアイテ
ム (タスク) をほかのタスクの前に配置する必要がある点で異なりま
す。「プロジェクト」解法は、その直前のタスクに関する制限を常に
満たしながら、タスクの遂行順序を並べ替える必要のある、プロジェ
クト管理などに使用します。
「プロジェクト」解法を使ってモデル化した問題は、タスク順序を含
む調整可能セルが横 1 行ではなく縦 1 列に並んでいる方がわかりや
すく、作業もしやすくなります。これは、この解法では直前のタスク
のセルが横並びではなく縦並びになっていると仮定して処理が行われ、
またユーザーにとっても調整可能セルが縦に並んでいる方がワークシ
ートを確認しやすいためです。
調整可能セルの場所を指定したら、ダイアログの [直前のタスク] セ
クションで、そのタスクに先行するタスクのセルの場所を指定します。
次の表は、どのタスクの前にどのタスクを行う必要があるかを示した
ものです。プロジェクト解法はこの表を使って、先行タスクの制限が
満たされるようになるまで、シナリオの変数の順序を並べ替えます。
調整可能セルの各タスクにつき、直前のタスク範囲を示す行が 1 つ
必要になります。直前のタスク範囲の 1 列目以降に、そのタスクが
依存する各タスクの ID 番号を各列に指定します。
プロジェクト解法の先行条件の設定方法の例
先行タスクの範囲は n 行× m 列で指定します。ここで n はプロジ
ェクトに含まれるタスク (調整可能セル) の数、m は 1 つのタスク
に先行するタスクの最大数です。
Evolver リファレンス ガイド
53
次の表に、Evolver を呼び出す前にシートに設定されていた一連の変
数の初期値と、プロジェクト解法を使用した後に起こりうる 2 つの
シナリオの例を示します。
スケジュール解
法
変数セットの初期値
プロジェクト解法で起
こりうる値のセット A
プロジェクト解法で起
こりうる値のセット B
1
1
1
2
3
2
3
2
4
4
4
3
スケジュールは、タスクを時間に割り当てるという点でグルーピング
に似ています。学校の授業時間がすべて同じであるように、各タスク
の所要時間は一定しているものと仮定されます。ただし、グルーピン
グと異なり、「スケジュール」解法の [調整可能セルのグループ設
定] ダイアログでは、使用するタイム ブロック (またはグループ)
の数を直接指定できます。「スケジュール」解法を選択すると、ダイ
アログ ボックスの下部にこの解法のオプションがいくつか表示され
ます。
スケジュールに関連する制限が定義された範囲を指定できます。この
範囲の行数は任意の長さにできますが、列数は 3 列でなければなり
ません。ここでは 8 種類の制限を適用できます。
1) [とともに] (with) - 1 列目と 3 列目のタスクを同じ時間ブロ
ックに割り当てる必要があります。
2) [ともにではなく] (not with) - 1 列目と 3 列目のタスクを同
じ時間ブロックに割り当てることができません。
3) [前] (before) - 1 列目のタスクを 3 列目のタスクの前に割り
当てる必要があります。
4) [において] (at) - 1 列目のタスクを 3 列目のタイム ブロック
内に割り当てる必要があります。
54
[モデルの定義] コマンド
5) [後ではなく] (not after) - 1 列目のタスクを 3 列目のタスク
と同じ時間か、その前に割り当てる必要があります。
6) [前ではなく] (not before) - 1 列目のタスクを 3 列目のタス
クと同じ時間か、その後に割り当てる必要があります。
7) [においてではなく] (not at) - 1 列目のタスクを 3 列目のタ
イム ブロック内に割り当てることはできません。
8) [後] (after) - 1 列目のタスクを 3 列目のタスクの後に割り当
てる必要があります。
制限の入力には 1 ~ 8 の数値コードか、テキストの説明 (「後」、
「においてではなく」など) を使用できます。(注意: 制限の入力で
はすべての言語の Evolver で、その言語および英語で入力された説
明の両方が認識されます。) スケジュール解法では、問題に指定した
すべての制限が満たされます。制限を作成するには、ワークシートの
空いている場所に表を作成し、1 列目と 3 列目にタスクを指定して、
2 列目に制限の種類を指定します。1 ~ 8 の数値は、前のセクショ
ンで説明した制限の種類を表します。制限範囲内のセルには、最適化
を開始する前に制限データを入力しておく必要があります。
タスク
制限
タスク
5
4
2
12
2
8
2
3
1
7
1
5
6
2
4
9
3
1
Evolver リファレンス ガイド
55
次の表に、Evolver を呼び出す前にシートに設定されていた一連の変
数の初期値と、スケジュール解法を使用した後に起こりうる 2 つの
シナリオの例を示します。
変数セットの初期値
スケジュール解法で起
こりうる値のセット A
スケジュール解法で起
こりうる値のセット B
1
1
1
2
1
3
3
3
1
1
1
2
2
2
2
3
3
2
注意: スケジュール解法を選択した場合、調整可能セルの初期値に関
係なく、1 からの整数 (1、2、3...) が使用されます。これらの値は
時間帯を表し、可能な最大値は [タイム ブロック数] フィールドで
指定された値に等しくなります。
タイム ブロック
数と制限セル
56
これらのオプションについて詳しくは、この章の「解法」セクション
にある、「スケジュール解法」の説明を参照してください。
[モデルの定義] コマンド
制限
Evolver では制限を入力できます。制限は、解が有効であるためには
満たさなければならない条件です。入力した制限は、[モデル] ダイ
アログ ボックスの [制限] テーブルに表示されます。
追加 - 制限の追
加
[制限] テーブルの隣にある [追加] ボタンをクリックすると、制限
を入力するための [制限設定] ダイアログ ボックスが表示されます。
このダイアログ ボックスを使って、制限の説明、タイプ、および定
義を入力できます。
制限の種類
Evolver では次の 2 種類の制限を指定できます。

[ハード] - ハード制限は、解を有効とみなすために満たす必要
のある条件です。(例えば、ハード制限として C10<=A4 という条
件を指定すると、解で生成された C10 の値がセル A4 の値より
大きい場合、その解は破棄されます。)
Evolver リファレンス ガイド
57

制限の精度
[ソフト] - ソフト制限は、できる限り満たすことが望ましい条
件ですが、ターゲット セルの結果が大幅に改善される場合には
妥協することが可能なものです。(例えば、C10 の値が 100 を超
えることは可能ですが、その場合にはターゲット セルの計算値
が指定のペナルティ関数に基づいて減算されます。)
制限の精度は、あまりに小さいために Evolver によって無視される
制限違反のことを指します。これらの小さい違反があっても、
Evolver は解を有効とみなします。制限の処理で生じる微小な違反
は、コンピューターでは有限精度の数学的演算しか行えない点に起因
しています。
[精度] は [自動] のままにすることをお勧めします。その場合、実
際の精度値が最適化サマリーに報告されます。これは、無視される最
大限の制限違反を示します。または、[精度] フィールドに特定の値
を入力することもできます。
エントリー スタ
イル
制限の入力には、「シンプル」と「数式」の 2 つのエントリー スタ
イルを使用できます。

シンプルな形式を指定する場合、<、<=、>、>=、または = の
関係を使用して制限を入力できます。典型的なシンプル形式
の制限としては、例えば「0< A1 の値 <10」があります。こ
の場合、[セル範囲] ボックスに A1、[最小] ボックスに 0、
[最大] ボックスに 10 を入力します。演算子はドロップダウ
ン リストから選択します。シンプルな形式の制限では、[最
小] ボックスのみ、[最大] ボックスのみ、またはその両方を
指定することができます。

これに対して「数式」形式の制限では、任意の有効な Excel
式を制限として入力できます。例えば「=IF(A1>100, B1>0,
B1<0)」という式を入力できます。この制限では、B1 の値が
正と負のどちらになるかが、セル A1 の値によって決まりま
す。または、セルに数式を入力し、そのセルが C1 の場合に
は、[制限設定] ダイアログの [数式] フィールドに「=C1」
と入力できます。
一般に制限をシンプル形式で入力すると、Evolver による最適な解の
検 索 が よ り 高 速 に な り ま す 。 前 に 説 明 し た 数 式 は セ ル D1 に
「=IF(A1>100, B1, -B1)」として入力できます。その場合、D1>0 に
なるよう強制するシンプル形式の制限を追加できます。
58
[モデルの定義] コマンド
ソフト制限
ソフト制限は、できる限り満たすことが望ましい条件ですが、ターゲ
ット セルの結果 (目標関数の値) が大きく改善される場合には妥協
することが可能なものです。ソフト制限が満たされない場合、ターゲ
ット セルの結果に、最適な値との差が大きくなるようなペナルティ
が課されます。ソフト制限違反による値の変化量は、ソフト制限の指
定時に入力するペナルティ関数を使って計算されます。
ここではペナルティ関数について詳しく説明します。

ペナルティ関数の入力。Evolver では、ソフト制限を最初に入
力するときにデフォルトのペナルティ関数が表示されます。ただ
し、ここに任意の有効な Excel 式を入力して、ソフト制限が満
たされない場合に適用するペナルティを計算することができます。
入力するペナルティ関数には「deviation」(偏差値) というキ
ーワードを含める必要があります。これは、制限を越えている絶
対量を表します。Evolver は再計算を行うごとに、ソフト制限が
満たされているか確認し、満たされていない場合は入力されたペ
ナルティ関数に偏差値を代入してから、ターゲット セルに適用
するペナルティの量を計算します。
ペナルティは、最適な値との差を広げるために、ターゲット セ
ルの値に加算または減算されます。例えば、[Evolver - モデル]
ダイアログの [最適化ゴール] フィールドで [最大] を選択した
場合、ペナルティはターゲット セルの値から差し引かれます。
Evolver リファレンス ガイド
59

入 力 し た ペ ナ ル テ ィ 関 数 の 効 果 の 確 認 。 Evolver に は 、
「 Penalty Functions and Soft Constraints.xlsx 」 お よ び
「 Penalty Functions and Soft Constraints.xls 」 と い う
Excel ワークシートが付属しています。これを使って、さまざま
なペナルティ関数が特定のソフト制限とターゲット セルの結果
に与える影響を評価できます。
「Penalty Functions and Soft Constraints (ペナルティ関数とソフ
ト制限)」ワークブックでは、効果を分析するソフト制限を、モデル
から選択することができます。その後、ペナルティ関数を変更して、
制限が満たされない場合に特定の値が、ペナルティの課された特定の
ターゲット値にどうマッピングされるかを確認できます。例えば
A10<100 というソフト制限がある場合、Penalty Functions and Soft
Constraints.xls を使用して、セル A10 の計算値が 105 のときにタ
ーゲット値がどうなるかを確認できます。

適用されたペナルティの確認。ソフト制限が満たされないため
にターゲット セルにペナルティが適用された場合、そのペナル
ティ量を Evolver ウオッチャーで確認することができます。ペ
ナルティ値は、最適化の後にオプションで作成することのできる、
「最適化ログ」ワークシートにも表示されます。
注意: 最適化の終了時にワークシートに解を配置した場合、スプレッ
ドシートに表示されるターゲット セルの計算結果には、ソフト制限
違反のために適用されたペナルティが一切含まれません。ペナルティ
が適用されたターゲット セルの結果および、違反した各ソフト制限
ごとに適用されたペナルティの量は、最適化ログのワークシートを確
認してください。
60
[モデルの定義] コマンド

ワークシートの数式を使ったソフト制限の指定。ペナルティ関
数は、ワークシートの数式に直接指定することができます。ソフ
ト制限をワークシートで直接指定する場合、メインの Evolver
ダイアログに同じ制限を入力しないでください。ワークシートで
のペナルティ関数の指定について詳しくは、「Evolver のその他
の機能」の「ソフト制限」セクションを参照してください。
Evolver リファレンス ガイド
61
62
[最適化設定] コマンド
[最適化設定] コマンド
[最適化設定] コマンドの [実行詳細] タブ
最適化の実行時の詳細設定を定義
[最適化設定] ダイアログの [実行詳細] タブには、Evolver の最適
化の実行時間を指定する設定が表示されます。これらの停止条件は、
Evolver が最適化の処理を停止するタイミングとその方法を指定しま
す。[最適化の開始] コマンドをいったん選択すると、Evolver は選
択された停止条件が満たされるまで、より良い解を探してシミュレー
ションを実行する処理を継続します。任意数の条件をオンにすること
ができますが、手動で停止するまでの間 Evolver を実行し続ける場
合は、条件をまったく指定しないことも可能です。複数の条件を選択
した場合、そのうちいずれかの条件が満たされた時点で Evolver は
処理を停止します。ここで選択した条件は、Evolver ウオッチャーま
たは [進行状況] ウィンドウにある [停止] ボタンを使って、いつで
もオーバーライドすることができます。
Evolver リファレンス ガイド
63
[最適化実行詳
細] のオプショ
ン
[実行詳細] タブの [最適化実行詳細] オプションには次があります。

[試行] - このオプションを設定すると、特定数の試行解を生成
した後で Evolver が停止します。
[試行] の設定は、さまざまなモデリング手法を試すときに
Evolver の効率を比較するのに特に便利です。問題をモデル化す
る手法を変更したり、異なる解法を選択することによって、
Evolver の効率が向上する可能性があります。モデルで特定数の
試行を処理するよう指定すると、選択された変数の数の違いや、
コンピューター ハードウェアの処理速度、また画面の再描画に
かかる時間などとは関係なく、Evolver がどの程度の効率で解を
収束できるかがわかります。各実行の結果を比較するには、
Evolver の最適化サマリー ワークシートも役立ちます。最適化
サマリー ワークシートについて詳しくは、この章の「[Evolver
ウオッチャー] の [停止オプション] タブ」セクションを参照し
てください。

[時間] - このオプションを設定すると、所定の時間数、分数、
または秒数が経過すると Evolver がシナリオの実行を停止しま
す。任意の正の実数 (600 や 5.2 など) を入力できます。

[進行] - このオプションを設定すると、ターゲット セルの改
善度が所定の量 (変量) より少なくなった時点で、Evolver がシ
ナリオの実行を停止します。改善度を確認する頻度を、試行回数
として整数で指定できます。[最大変量] フィールドには、最大
の変化量を 0.01% などのパーセント値で入力できます。
例えばターゲット セルの値を最大化する必要があり、[進行] 停
止条件のパラメーターで試行数が 20000、改善率が 0.01% に指
定されているとします。さらに、10000 回の試行後、それまでに
見つかったベストの解が 2000 であるとします。ここで [進行]
オプションが唯一の停止条件として選択されている場合、
Evolver は 30000 回目の試行で一時停止し、最後の 20000 の試
行で 2000.2 かそれ以上の解を見つけることができた場合にのみ、
処理を続行します。つまり、最後の 20000 回の試行による改善
率が 0.01% を超えていないため、Evolver がそれ以上の改善は
期待できないと判断し、処理が停止されるわけです。最適化問題
が複雑になるほど、この停止条件で指定する試行回数も大きくす
る必要があります。
このオプションでは、改善度が低下しそれ以上の優れた解は
見つからないと思われる時点で、ユーザーが Evolver を停
止することができるので、停止条件として一番よく使われま
す。Evolver ウオッチャーの [進行状況] タブに最適な結果
のグラフを表示している場合、この条件が満たされて
64
[最適化設定] コマンド
Evolver が停止する前に、このグラフがしばらくの間横ばい
状態を続けます。改善度が横ばいになるまで実行を継続する
[進行] オプションは、ユーザーがグラフに基づいて手動で
処理を停止する作業を自動化したものです。
 [数式が真] - この停止条件では、最適化の最中に、入力 (ま
たは参照) された Excel の数式が真になった時点で処理を
停止します。
 [エラー時に停止] - この停止条件では、ターゲット セルの
計算結果がエラー値となった時点で処理を停止します。
注意: 停止条件を 1 つも選択しないことも可能です。その場合
Evolver は、[Evolver 進行状況] または [Evolver ウオッチャー]
ウィンドウの停止ボタンをユーザーが使用するか、起こりうるすべて
の解を試行したと判断されるまで処理を続行します。
Evolver リファレンス ガイド
65
[最適化設定] コマンドの [エンジン] タブ
最適化エンジンおよび設定を選択
[最適化設定] ダイアログの [エンジン] タブで、最適化に使用され
る最適化エンジンと設定を選択します。Evolver は OptQuest および
遺伝的アルゴリズムを使用して、問題の最適な解を検索します。また、
[最適化モード] を [自動] のままにした場合、線形の問題の解決に
は線形計画法を使用します。
[初期シード] フィールドは、最適化アルゴリズム (遺伝的アルゴリ
ズムまたは OptQuest) の乱数ジェネレーターのシードを示します。
このフィールドを整数の固定値に設定すると、調整可能セルの初期値
が同じ場合に 2 つの最適化で同じ解のシーケンスが生成されます。
このフィールドを [自動] のままにすると、Evolver によって初期セ
ットが無作為に選択されます。
最適化モード
66
ほとんどの場合、指定のモデルに対してどのエンジンが最も短時間で
ベストな解を提供できるかは、Evolver が自動的に判定できます。こ
れは [自動] に設定した場合の動作です (また、[自動] 設定では
Evolver が線形問題の解決に線形計画法を使用します)。ただし状況
によっては、特定のエンジンを使用するよう指定したいこともありま
す。例えば、遺伝的アルゴリズム エンジンでしか使用できないプロ
ジェクト解法またはスケジュール解法がモデルに必要とされる場合な
どがあります。
[最適化設定] コマンド
最適化の方法
問題の最適な解の検索には、遺伝的アルゴリズムと OptQuest という
2 つの最適化エンジンを使用できます。
遺伝的アルゴリズム エンジンは Palisade 社の Evolver で初めて採
用された技術で、バージョン 6.0 より以前の Evolver にも使われて
います。遺伝的アルゴリズムはダーウィンの進化論の原理を模倣した
もので、ある問題に対して何百もの起こりうる解が存在する中で、こ
れらが互いに競争し合った結果「適者」のみが生存するような環境を
作り出します。生物の進化と同じように、各解がその優れた「遺伝
子」を子孫の解に受け渡し、解の集団全体がさらにより良い解へと進
化し続けていきます。
OptQuest エンジンは、メタヒューリスティックな数学的最適化とニ
ューラル ネットワーク コンポーネントを使用して、あらゆる種類の
意思決定および計画問題に対する最適な解を検索します。OptQuest
の解決手法は、タブー検索、ニューラル ネットワーク、およびスキ
ャッター検索といった最新のメタヒューリスティック プロシージャ
を 1 つの複合メソッドに統合したものです。
遺伝的アルゴリ
ズムの設定
[エンジン] タブの [遺伝的アルゴリズムの設定] には次のオプショ
ンがあります。
[個体群サイズ] - 個体群サイズにより、メモリに一度に保管される
個体 (変数の完全なセット) の数を Evolver に指定します。各種の
問題に最適な個体群サイズについては現在でも研究が進められていま
すが、一般に個体群には問題のサイズに応じて 30 ~ 100 個の個体
を使用することをお勧めします (大きな問題にはより大きな個体群を
使用します)。個体群が大きいと解を見つけるための所要時間が長く
なりますが、遺伝子プールが多様になるため、より大局的な解答が得
られるという見方が一般的です。
[交差率] と [突然変異率] - 果てしない数のシナリオが想定できる
問題に対して最適な解を探す場合、問題のどの部分にエネルギーを集
中したらよいかは特に難しい課題となります。解空間の新しい領域を
検索するためにかける処理時間と、個体群内の既に良質であることが
わかっている解の微調整にかける処理時間はどのように判断したらよ
いでしょうか?
遺伝的アルゴリズム (GA: Genetic Algorithm) が効果的である大き
な理由として、この 2 者間のバランスを本質的に維持できることが
挙げられます。GA はその構成上、良質な解を「繁殖」させながら、
潜在遺伝子が最終的な解にとって重要なものとなる可能性を考慮した
上で「適応度の低い」個体も残すことで、多様性を維持できます。
交差と突然変異の 2 つのパラメーターは、検索の対象範囲に影響を
与えます。Evolver では、これらのパラメーターを進化の過程の前、
Evolver リファレンス ガイド
67
またはその最中にユーザーが変更することができます。したがって知
識が豊富なユーザーは、集中すべき領域を指定することにより、GA
の処理を助けることができます。通常は、交差と突然変異のデフォル
ト設定 (.5 と .1) を変更する必要はありません。状況に合わせてア
ルゴリズムを微調整したり、比較調査を行ったり、実験を行いたい場
合などには、次の概要を参考にしてください。

[交差率] - 交差率は 0.01 ~ 1.0 の範囲で設定できます。この
数値は、将来のシナリオ (個体) にその前世代の親からの情報の
組み合わせが含まれる確率を示します。経験の豊かなユーザーは
この率を変更して、複雑な問題を解決する場合の Evolver のパ
フォーマンスを微調整することができます。
交差率が 0.5 の場合、子孫の個体の変数の約 50% が一方の親か
ら継承され、残りがもう片方の親から継承されることを意味しま
す。交差率が 0.9 の場合は、子孫の個体の値の約 90% が一方の
親から継承され、残りの 10% がもう片方の親から継承されます。
交差率が 1 の場合には交差が起こらず、親のクローンのみが評
価されます。
Evolver では、デフォルトの交差率が 0.5 に設定されています。
Evolver で問題の処理を開始した後は、Evolver ウオッチャーを
使って交差率を変更できます (この章の「Evolver ウオッチャ
ー」セクションを参照してください)。

[突然変異率] - 突然変異率は 0.0 ~ 1.0 の範囲で設定できま
す。この数値は、将来のシナリオにランダムな値が含まれる確率
を示します。突然変異率が高いと、より多くの突然変異、つまり
ランダムな「遺伝子」値が個体群に取り入れられることを意味し
ます。突然変異は交差の後で起こります。したがって、突然変異
率を 1 (つまり 100% がランダムな値) に設定すると、交差の効
果がゼロになり、Evolver が完全にランダムなシナリオを生成す
ることになります。
最適な解のすべてのデータが個体群のどこかに含まれている場合
は、交差演算子のみで解を見つけ出すことができるはずです。突
然変異は、生物界において強い力を持つことが証明されています
が、遺伝的アルゴリズムに突然変異が必要である理由も、生物学
の場合と似ています。突然変異は、個体の集団内に多様性を維持
し、個体群があまりに固定化され環境の変化に適応できななるの
を防ぐために不可欠な現象です。遺伝的アルゴリズムと同様、動
物の進化においても、突然変異が新しい機能の進化につながるこ
とはよくあります。
通常の場合、デフォルトの突然変異率を変更する必要はありませ
ん。ただし、複雑な問題を処理する場合に経験豊富なユーザーが
68
[最適化設定] コマンド
この値を変更して Evolver のパフォーマンスを微調整すること
は可能です。例えば、Evolver の個体群がほぼ均質であり、最後
の数百試行で新しい解が見つかっていない場合などは、突然変異
率を高く設定することができます。この設定を変更する場
合、.06 から .2 に変えるのが一般的です。Evolver で問題の処
理を開始した後は、Evolver ウオッチャーを使って突然変異率を
変更できます (この章の「Evolver ウオッチャー」セクションを
参照してください)。
[突然変異率] フィールドのドロップダウン リストで [自動] を
選択すると、突然変異率の自動調整機能が使用されます。突然変
異率の自動調整では、個体が非常に古くなった場合 (つまり何回
試行しても変わらなくなった場合) に、Evolver が突然変異率を
自動的に上げることができます。多くのモデルでは、特に最適な
突然変異率が判断できない場合に [自動] を選択すると、優れた
結果がより迅速に見つかることがあります。
Evolver リファレンス ガイド
69
演算子
Evolver では、「レシピ」解法を使用する際に遺伝演算子を選択する
ことができます。[最適化設定] ダイアログの [エンジン] タブで
[演算子] ボタンをクリックすると、一連の調整可能セルの可能な値
を生成するときに使用する、特定の遺伝演算子 ([ヒューリスティッ
ク交差] や [境界突然変異] など) を選択できます。または、利用で
きるすべての演算子を Evolver で自動的に試行して、状況に最も適
したものを判断させることも可能です。
遺伝的アルゴリズムは遺伝演算子を使用して、個体群の現在のメンバ
ーから新しいメンバーを生成します。Evolver が使用する遺伝演算子
には「突然変異」と「交差」の 2 種類があります。突然変異演算子
は、遺伝子 (変数) にランダムな変化が発生させるかどうかおよび、
その発生方法を決定します。交差演算子は、個体群のメンバーのペア
の遺伝子をスワップして、親よりも優れた解となりうる「子孫」を生
成する方法を決定します。
70
[最適化設定] コマンド
Evolver には、次の特殊な遺伝演算子があります。

[線形演算子] - 最適な解が、制限で定義された検索空間の境界
にあるような問題を処理するための演算子です。突然変異と交差
を行うこの演算子ペアは、線形の最適化問題を解決するのに向い
ています。

[境界突然変異] - 単調な方法で結果に影響を与える、制限に違
反せずにその範囲の極限に近い値に設定できる変数を、迅速に最
適化するための演算子です。

[コーシー突然変異] - 大半の場合、変数をごくわずかに変更す
るだけですが、大きな変化をもたらすことがあります。

[非一様突然変異] - 試行の計算回数を重ねるごとに、突然変異
の量をより少なくします。これにより、Evolver が解を「微調
整」することができます。

[算術交差] - 遺伝子を単に交換する代わりに 2 つの親を組み合
わせて、算術的な方法で新しい子孫を作成します。

[ヒューリスティック交差] - 親により生成された値を使用し
て、子孫の作成方法を判断します。最も有望と思われる方向に検
索を続け、局所的な微調整を行うことができます。
最適化の問題の種類によっては、交差と突然変異の各演算子をさまざ
まに組み合わせて、より良い結果を見つけ出すことも可能です。レシ
ピ解法を使用する場合、[調整可能セルのグループ設定] ダイアログ
の [演算子] タブで任意数の演算子を選択することができます。複数
の演算子を選択すると、Evolver がこれらの演算子の有効な組み合わ
せをテストして、そのモデルに一番適したパフォーマンスの演算子を
判断します。実行後、[最適化サマリー] ワークシートに、選択され
た各演算子のパフォーマンス順位が報告されます (ただし、このスコ
アは最適化でこれらの値を求めるのに十分な回数の試行が処理された
場合のみ表示されます)。その後、同じモデルを実行するときは、パ
フォーマンスが上位の演算子だけを選択すると、処理がより迅速にな
り、より良い最適化を行うことができます。
Evolver リファレンス ガイド
71
[最適化設定] コマンドの [表示] タブ
最適化の表示設定を定義
[最適化設定] ダイアログの [表示] タブには、Evolver の最適化の
処理中に表示されるものを指定する設定が含まれています。
[表示] タブには次のオプションがあります。
72

[開始時に Excel を最小化] - 最適化の開始時に Excel を最小
化するよう指定します。

[Excel の再計算を表示] - Excel を [新たなベスト試行ごと]
または [試行ごと] に更新するよう指定します。
[最適化設定] コマンド
[最適化設定] コマンドの [マクロ] タブ
最適化の処理中に実行するマクロを定義
最適化の処理中や、各試行解の実行中に、さまざまなタイミングで
VBA マクロを実行できます。これにより、最適化の処理中に呼び出さ
れるカスタムの計算を設定することができます。
マクロは最適化の処理中に次のタイミングで実行できます。

[最適化の開始時] - 開始アイコンをクリックした後、最初の試
行解が生成される前に、マクロが実行されます。

[各試行の再計算前] - 実行される各試行の再計算の前に、マク
ロが実行されます。

[各試行の再計算後] - 実行される各試行の再計算の後に、マク
ロが実行されます。

[出力の保存後] - 各試行を実行し、ターゲット セルの値を最
適化エンジンに保存した後で、マクロが実行されます。したがっ
て、セル値に対する変更は、その試行で最適化エンジンに渡され
る情報には影響しません。このマクロを使用して、ユーザーに表
示される最適化の進行状況を更新したり、進行状況をログに書き
出すことができます。

[最適化の終了時] - 最適化の処理が完了した時点でマクロが実
行されます。
Evolver リファレンス ガイド
73
この機能によって、マクロの使用が必要な計算を、最適化中に実施す
ることができます。マクロによって実施される計算の例には、反復的
な「ループ」計算や、外部ソースの新規データを必要とする計算が挙
げられます。
[マクロ名] には、実行するマクロを指定します。
74
[最適化設定] コマンド
[最適化の開始] コマンド
最適化を開始
[最適化の開始] コマンドを選択するか、[最適化の開始] ボタンをク
リックすると、アクティブなモデルとワークブックの最適化が開始さ
れます。Evolver の処理が開始されると、次の [Evolver 進行状況]
ウィンドウが表示されます。
[進行状況] ウィンドウには、次の情報が表示されます。

[試行] - 既に実行された試行の合計数です。そのうち有効だっ
た試行 (すべての制限を満たした試行) の数も表示される場合が
あります。

[実行時間] - 実行を開始してからの経過時間です。

[オリジナル] - ターゲット セルの初期値です。

[ベスト] - 最小化または最大化する必要のある、ターゲット
セルの現在のベストの値です。
Evolver リファレンス ガイド
75
[進行状況] ウィンドウの Evolver ツールバーには、次のオプション
があります。
76

[Excel の更新オプションの表示] - Excel の表示の更新オプシ
ョンを、[試行ごとに再計算]、[新たなベスト試行ごとに再計
算]、または [更新しない] のいずれかを選択します。ただし、
最適化が一時停止された場合など、これらの設定とは関係なく画
面が更新されることもあります。

[Evolver ウオッチャーの表示] - [Evolver ウオッチャー] ウ
ィンドウを表示します。

[実行] - [実行] アイコンをクリックすると、[Evolver - モデ
ル] ダイアログの現在の設定内容に基づいて Evolver が解の検
索を開始します。Evolver を一時停止した場合でも、[実行] ア
イコンをクリックしてより良い解を見つけるために処理を再開す
ることができます。

[一時停止] - Evolver の処理を一時停止するには、[一時停止]
ボタンをクリックします。すると Evolver の処理が一時的に停
止されます。一時停止中に Evolver ウオッチャーを開いて、ロ
グの表示、グラフのコピー、遺伝的アルゴリズムのパラメーター
の変更などを行うことができます。

[停止] - 最適化を停止します。
[最適化の開始] コマンド
[ユーティリティ] コマンド
[アプリケーション設定] コマンド
プログラムのデフォルト設定を指定する [アプリケーション設
定] ダイアログを表示
Evolver に は 、 実 行 す る た び に デ フ ォ ル ト 値 と し て 使 用 さ れ る
Evolver 設定がいくつもあります。これらの設定には、停止のデフォ
ルト、デフォルトの交差率と突然変異率、などが含まれます。
Evolver リファレンス ガイド
77
[制約ソルバー] コマンド
制約ソルバーを実行
注意: 制限ソルバーは、遺伝的アルゴリズムを使用した最適化に役立
ちます。一般に、OptQuest による最適化で制限ソルバーを使用する
必要はありません。以下の説明は遺伝的アルゴリズムのみに該当しま
す。
制約ソルバーを使用して、Evolver によるモデル制限の処理能力を向
上させることができます。Evolver による最適化の実行では、調整可
能セルの初期値がすべてのハード制限を満たしていること、つまりオ
リジナルの解が有効であることを前提としています。そうでない場合、
最初の有効な解が見つかるまで、アルゴリズムにより何度も繰り返し
シミュレーションが処理される可能性があります。ただし、複数の制
限が含まれているモデルでは、すべての制限を満たしている調整可能
セルの値を判断するのが難しいこともあります。
Evolver モデルに複数のハード制限が含まれていて、すべての解が無
効となり最適化が失敗した場合、これを通知するメッセージが表示さ
れて制約ソルバーを実行できるようになります。制約ソルバーは、最
適化を特殊なモードで実行し、すべてのハード制限を満たす解を見つ
けようとします。通常の最適化の場合と同様に、ユーザーには最適化
の進行状況が表示されます。進行状況ウィンドウには、オリジナルの
解およびベストな解で満たされている制限の数が表示されます。
78
[ユーティリティ] コマンド
進行状況ウィンドウにあるボタンを使用して、Evolver ウオッチャー
に切り替えることができます。制約ソルバー モードでも通常の最適
化モードと同様に [進行]、[サマリー]、[ログ]、[個体群]、[相違]
という各タブに最適化処理の詳細が表示されます。ただし制約ソルバ
ー モードでは、ウオッチャーに [制約ソルバー] という追加のタブ
も表示されます。このタブには、ベスト、オリジナル、最終の解の各
ハード制限のステータス (達成または不達成) が表示されます。
制約ソルバー モードの最適化は、すべてのハード制限を満たす解が
見つかると自動的に停止されますが、進行ウィンドウまたは Evolver
ウオッチャーにあるボタンをクリックして手動で停止することも可能
です。制約ソルバーの実行後、通常モードの最適化と同じように
Evolver ウオッチャーの [停止オプション] タブでベスト、オリジナ
ル、または最終の解を保持するように指定できます。
制約ソルバーは、これを実行する前に設定する必要はありません。制
約ソルバーはモデル内で指定されている設定を使用しますが、最適化
のゴールが変更されて、すべてのハード制限を満たす解を見つけよう
とします。
Evolver リファレンス ガイド
79
80
[ユーティリティ] コマンド
Evolver ウオッチャー
[Evolver 進行状況] ウィンドウのツールバーにある虫眼鏡のアイコ
ン を ク リ ッ ク す る と 、 Evolver ウ オ ッ チ ャ ー が 表 示 さ れ ま す 。
Evolver ウオッチャーは、Evolver のすべての操作を制御し、これら
の操作に関する報告を行います。
Evolver ウオッチャーを使用してパラメーターを変更したり、最適化
の進行状況を分析したりできます。また、Evolver ウオッチャーの下
部のステータス バーで、問題に関するリアルタイムの情報や、
Evolver の進行状況を確認することもできます。
Evolver リファレンス ガイド
81
[Evolver ウオッチャー] の [進行] タブ
ターゲット セル値の進行状況のグラフを表示
Evolver ウオッチャーの [進行] タブには、選択されたターゲット
セルの結果が試行ごとにどう進行しているかが、グラフに表示されま
す。
進行状況のグラフの X 軸は試行数を、Y 軸はターゲット セルの値を
示します。進行状況グラフを右クリックして [グラフのオプション]
ダイアログを表示し、グラフをカスタマイズすることもできます。
82
Evolver ウオッチャー
[グラフのオプシ
ョン] ダイアロ
グ
[グラフのオプション] ダイアログには、グラフのタイトル、凡例、
スケール、およびフォントを指定する設定が表示されます。
Evolver リファレンス ガイド
83
[Evolver ウオッチャー] の [サマリー] タブ
調整可能セルの値の詳細を表示
Evolver ウオッチャーの [サマリー] タブには、最適化中にテストさ
れた調整可能セルの値のサマリー テーブルが表示されます。遺伝的
アルゴリズム エンジンを使用している場合、交差率と突然変異率を
調整するためのツールも表示されます。
[遺伝的アルゴリズムのパラメーター] では、最適化の処理中に遺伝
的アルゴリズムの交差率と突然変異率を変更することができます。こ
こで行ったすべての変更はこれらのパラメーターの初期設定を上書き
し、直ちに有効になります。
通常の場合、交差率にはデフォルト設定の 0.5 を使用するようお勧
めします。突然変異率は、最も適した解を見つける必要があり、処理
時間が長くなっても構わない場合には、多くのモデルでは 0.4 程度
にまで上げることができます。Evolver では交差の後に突然変異を実
行するので、突然変異率を最大値の 1 に設定すると、完全にランダ
ムな推測が行われます。この場合、選択された 2 つの親を交差して
子孫の解を作成した後で、その解の遺伝子の 100% の突然変異が起こ
り、すべてが乱数で置き換えられます (詳しくは、索引の「交差率、
機能」および「突然変異率、機能」の項を参照してください)。
84
Evolver ウオッチャー
[Evolver ウオッチャー] の [ログ] タブ
最適化中に実行された各試行のログを表示
Evolver ウオッチャーの [ログ] タブには、最適化中に実行された各
試行のサマリー テーブルが表示されます。このログにはターゲット
セル、各調整可能セル、および入力した制限の結果が含まれています。
[表示] オプションで、[すべての試行] のログを表示するか、[進行
ステップ] のあった (つまり最適化結果が改善された) 試行のみを表
示するかを選択します。ログには次の情報が含まれています。
1)
[経過時間] - 試行の経過時間。
2)
[結果] - ソフト制限のペナルティを適用した後の、最小化・最
大化する必要のあるターゲット セルの統計値。
3)
入力値の列 - 調整可能セルに使用した値。
4)
制限の列 - 制限が満たされたかどうかを示します。
Evolver リファレンス ガイド
85
[Evolver ウオッチャー] の [個体群] タブ
現在の個体群に含まれる各個体 (起こりうる各解) のすべての
変数を表示
遺伝的アルゴリズム エンジンを使用している場合、[個体群] タブが
表示されます。[個体群] タブには、現在の個体群に含まれる各個体
(起こりうる各解) の全変数のリストが表示されます。これらの個体
(“Org n”) は、最悪なものから最良のものへと並んでいます。この
テーブルには個体群のすべての個体が含まれるので、ここに表示され
る個体の数は [Evolver 最適化設定] ダイアログの [個体群サイズ]
の設定によって決まります (デフォルトの数は 50 です)。また、
「結果」列には各個体のターゲット セルの結果値が表示されます。
86
Evolver ウオッチャー
[Evolver ウオッチャー] の [相違] タブ
現在の個体群のすべての変数のカラー プロットを表示
このタブは遺伝的アルゴリズムを使用している場合にのみ表示され、
OptQuest 最適化エンジンの使用時には表示されません。[相違] タブ
のプロット図では、特定の時点でメモリに保管されている個体 (解)
群において特定セルの値にどの程度の差異が見られるかによって、調
整可能セルの値に色が割り当てられます。(これは遺伝的最適化の分
野においては、遺伝子プールにどの程度の多様性が存在するかを示し
ます。)プロット図の縦の各列は 1 つの調整可能セルを表し、列内の
各行は、異なる個体 (解) におけるその調整可能セルの値を表します。
各行の色は、特定の調整可能セルの最小値から最大値までの範囲を
16 等分し、その各区間にそれぞれ異なる色を割り当てることによっ
て決まります。例えば、2 番目の調整可能セルを表す縦の列がすべて
同じ色になっているのは、メモリ内のすべての解でこのセルの値が同
じであることを示します。
Evolver リファレンス ガイド
87
[Evolver ウオッチャー] の [停止オプション] タブ
最適化の停止オプションを表示
[停止] ボタンをクリックすると、[Evolver ウオッチャー] ダイアロ
グの [停止オプション] タブが表示されます。このタブには、ワーク
シートを調整可能セルのベストな計算値で更新したり、元の値を復元
したり、最適化サマリー レポートを生成したりするためのオプショ
ンが表示されます。
このダイアログは、ユーザーの指定した停止条件が満たされた場合
(例えば、指定の試行数に達したり、指定の分数が経過した場合) に
も表示されます。[停止オプション] では、調整可能セルを Evolver
が実行される前の初期値に戻すことができます。
[停止オプション] タブで使用できるすべてのアクションは、Evolver
メニューまたはツールバーのコマンドを使っても実行できます。アク
ションを何も選択せずに [OK] をクリックしてウォッチャーを閉じる
場合でも、メニューやツールバーのコマンドを使って調整可能セルを
初期値にリセットし、レポートを生成できます。
[生成するレポート] セクションのオプションを使って、実行の結果
をレポートしたり複数の実行結果を比較するのに役立つ、最適化サマ
リー ワークシートを生成します。レポートのオプションには次があ
ります。
88
Evolver ウオッチャー

[最適化サマリー] - 最適化の実行日時、使用した最適化設定、
ターゲット セルの計算値、および各調整可能セルの初期値とベ
ストの値などが含まれています。
このレポートは、最適化を繰り返し行った結果を比較する場合に便利
です。
Evolver リファレンス ガイド
89

90
[全試行のログ] - 実行されたすべての試行の結果が記録されて
います。紫色の値は制限を満たさなかったことを示します。
Evolver ウオッチャー

[進行ステップのログ] - ターゲット セルの結果が改善された
すべての試行の結果が記録されています。
Evolver リファレンス ガイド
91
92
Evolver ウオッチャー
最適化
最適化の手法 .............................................. 95
山登り法アルゴリズムについて ............................ 97
Excel ソルバーを使用した局所的な最適化.................. 100
大局的な最適化 - ソルバーと Palisade 社アドインの比較 ... 101
問題の種類 ............................................. 102
線形の問題 ...................................... 102
非線形の問題 .................................... 102
テーブルベースの問題 ............................ 104
順列組み合わせの問題 ............................ 105
最適化
93
94
最適化の手法
最適化問題の例についてはすでにチュートリアルでいくつか説明しま
した。最適化問題の中には、ほかの問題に比べて解決するのが難しい
ものもあります。例えば 1,000 都市間の最短経路を見つけるといっ
た困難な問題では、起こりうるすべての解を考慮することは不可能で
す。このような方法は、最高速のコンピューターを使っても計算を完
了するのに何年もかかります。
こうした問題を解決するには、起こりうるすべての解のサブセットを
検索することが必要になります。解のサブセットを考慮することによ
り、さらに良い解を見つけ出す方法を判断できます。これを行うには
「アルゴリズム」を使用します。アルゴリズムは、問題を解決するた
めのアプローチを順を追って指定したものです。例えば、すべてのコ
ンピューター プログラムは、多くのアルゴリズムの組み合わせで構
築されています。
ここではまず、一般的な問題解決アルゴリズムで問題がどのように表
されるかを見てみましょう。大半の問題は、入力、何らかの関数、そ
の結果の出力、という 3 つの基本要素に分割することができます。
探している答え
前提条件
最適化の対象
問題の構成要素
入力
関数
出力
Evolver/Excel の
構成要素
変数
モデル
ゴール
例として、X と Y の 2 つの変数がある問題の場合を想定します。こ
れらの変数を方程式に代入した結果が Z であるとします。Z の値が
最大になるような X と Y の値を見つけるにはどうしたらよいでしょ
うか。ここで Z を、特定の X と Y の組み合わせの質についての
「評価」であると考えることができます。
この例の問題
最適化
探している答え
前提条件
最適化の対象
X と Y
方程式
Z
95
X と Y の組み合わせとその結果である Z を 1 つのセット値として、
そのすべてをプロットすると、次のような 3 次元の面グラフになり
ます。
起こりうるシナリオ、または解の「地形」
X 値と Y 値の各交点により Z (高さ) の値が生成されます。この
「地形」で高点は良い解を示し、低点は不適切な解を示します。すべ
ての解を 1 つずつ検討することにより、この関数の最大値 (最も高
い位置) を見つけ出すには、いかに最高速のコンピューターで最先端
のプログラムを用いた場合でも、多大な時間がかかります *。ここで
Excel には関数自体のみを提供し、関数のグラフは提供しないこと、
そして実際にはこの例のように 2 次元ではなく、200 次元で表され
る問題が多いことに注意してください。そこで、実行する計算の数を
減らしても最適な答えを見つけられるような方法が必要となります。
* 上の図では関数がスムーズな地形として表されています。関数がシンプルでスムーズ
な (微分可能な) 場合、微積分により最小値と最大値を見つけることは可能ですが、
実際にはほとんどの問題がこのようにスムーズな関数で表されることはありません。
96
最適化の手法
山登り法アルゴリズムについて
ここではシンプルな山登り法アルゴリズムについて見てみます。
1) 地形のランダムな地点から処理を開始します (ランダムな推
測をします)。
2) 任意の方向にわずかな距離だけ進みます。
3) 新しい位置が前の位置よりも高い場合、その地点からステッ
プ 2 を繰り返します。新しい位置が前の位置よりも低い場合
には、元の地点に戻ってもう一度最初から繰り返します。
このように山登り法は、1 度に 1 つの解、またはシナリオのみを試
行します。次のプロット図では、起こりうる 1 つの解 (X、Y、Z 値
のセット) を黒い点 (• ) で表しています。この点をランダムな開始
位置に配置して、山登り法でグラフの一番高い位置に到達するよう試
してみるとします。
上の図を見れば、この点をその右方向にある高地の部分に向かわせる
のが望ましいことがわかります。ただし、これがわかるのは、地形全
体が把握できているからです。このアルゴリズムでは、現在地点のす
ぐ周りの部分だけが見えています。つまり、個々の木は見えても、森
林全体を把握することができません。
最適化
97
実世界の問題においては、この地形がスムーズではなく計算に何年も
かかるため、現在のシナリオとそのすぐ周辺のシナリオだけを計算す
ることになります。上図の点は、なだらかな丘が続く風景の中に、目
隠しをされて立っている男性だと考えることができます。山登り法ア
ルゴリズムでは、この男性は各方向に 1 歩ずつ踏み出してみて、現
在の場所よりも高くなっていると思われる方向だけに進むことになり
ます。すると、彼はより高いところへと登り続け、最終的に丘の頂上、
つまり周りの全方向が今の位置よりも低いと感じられる地点に到達し
ます。これは理論的にはごく簡単です。しかし、もしもこの男性が別
の場所から出発した場合には、間違った丘を登ってしまうことになり
ます (下の図を参照してください)。
関数がスムーズであっても、違う場所から
出発すると、山登り法は失敗します (右図)。
山登り法では一番近くの山頂、つまり「極大値」のみを見つけること
ができます。ほとんどの現実的なモデルでは問題の解の地形が非常に
荒く、起伏が激しいため、山登り法では一番近くの山よりも高い山頂
を見つけることは不可能です。
山登り法には、現在位置の周りの地勢をどのようにして把握するかと
いう、もう 1 つの問題があります。地形をスムーズな関数で表せる
場合は、どの方向にある坂の傾斜が一番大きいかを微分により求める
ことができます。ところが実世界の問題では、地形が不連続で微分が
不可能な場合が多いため、周囲のシナリオの「スコア」を計算する必
要が出てきます。
98
最適化の手法
例えば、銀行が 9:00 am ~ 5:00 pm 勤務の警備員を 1 名採用する
場合を想定してみましょう。この警備員には、30 分の休憩時間を 2
度与える必要があります。この問題のゴールは、生産性と疲労度の関
係についての通則と、顧客のアクティビティ レベルを考慮した上で、
最適な休憩時間のスケジュールを見つけることです。まず、休憩時間
のさまざまな組み合わせを見つけて、これらを評価することから始め
ます。現在のスケジュールでは 11:00 am と 3:00 pm に休憩時間が
設けられているとして、その周りの時間帯の生産性を計算してみまし
ょう。
方向
休憩時間 1 (x)
休憩時間 2 (y)
スコア (z)
現在の解
11:00 am
3:00 pm
= 46.5
西のシナリオ
10:45 am
3:00 pm
= 44.67
東のシナリオ
11:15 am
3:00 pm
= 40.08
北のシナリオ
11:00 am
3:15 pm
= 49.227
南のシナリオ
11:00 am
2:45 pm
= 43.97
ここで、調整可能セル (休憩時間) を 2 回ではなく 3 回設けるとな
ると、8 つのシナリオを検討する必要が出てきます。実際、中規模の
問題では変数の数が 50 個ほどになることがよくあります。すると、
一人の警備員につき 2 の 50 乗、つまり 1,000 兆通りの生産性を計
算する必要があることになります。
山登り法に変更を加えて、大局的な最大値 (地形全体における最高山
頂) を見つける能力を向上させることができます。山登り法は単峰型
の (峰が 1 つの) 問題に向いていることから、一部の分析プログラ
ムで好んで使用されます。しかし、複雑な問題や大規模な問題に対す
る用途は非常に限られます。
最適化
99
Excel ソルバーを使用した局所的な最適化
Excel には「ソルバー」という最適化ユーティリティが付属していま
す。このソルバーは、山登り法の 1 つである GRG アルゴリズムを使
用して局所的な解を見つけますが、大局的な解の検索には適していま
せん。山登り法のルーチンは、現在の変数値から開始して、モデルの
出力がこれ以上改善されなくなるまで、値を調整し続けます。したが
って、複数の解が考えられる問題を GRG でうまく解決するのは不可
能です。これは、ソルバーが「局所的」な解に辿り着くことはできて
も、「大局的」な解にジャンプすることができないためです (下図を
参照)。
起こりうる解の地形
さらに GRG では、モデルの表す関数が連続的でなければなりません。
連続的とは、入力値の調整に応じて出力がスムーズに変化することを
意味します。例えばモデルでルックアップ テーブルを使用する場合
や、別のプログラムからノイズの多いリアルタイム データを受け取
る場合、ランダムな要素が含まれる場合、または if-then 規則を使
用する場合などには、モデルが不連続になります。GRG ではこのよう
な問題を解決することができません。
Excel 2010 がリリースされるまでは GRG が唯一の非線形型最適化ア
ルゴリズム ソルバーとして採用されていました (ソルバーには線形
の問題を解くための線形計画法アルゴリズムも用意されています)。
次のセクションで説明するように、Excel 2010 のソルバーには大局
的な最適化を行うツールが新しく追加されました。
100
最適化の手法
大局的な最適化 - ソルバーと Palisade 社アドイン
の比較
Palisade 社の Excel 用アドインである Evolver と RISKOptimizer
では、製品が初めてリリースされて以来、大局的な最適化手法を提供
してきました。これに対して Excel ソルバーの場合、Excel 2010 が
リリースされるまでは非線形問題の解決手法として局所的な最適化を
行う GRG アルゴリズムのみが採用されていました。Microsoft では
大局的な最適化ツールのニーズを認識し、Excel 2010 バージョンの
ソルバーからこの機能を追加しました。
Excel 2010 のソルバーでは、連続問題と不連続の問題に対しそれぞ
れ異なる大局的な最適化手法が採用されています。連続関数で大局的
な最大値を検索するには、ユーザーが [マルチスタートを使用する]
オプションを選択して GRG 手法を実行します。不連続関数の大局的
な最適化を行う場合は「エボリューショナリー」という手法が用意さ
れています。これは、ユーザーが最適化問題のタイプを特定してそれ
に適したアルゴリズムを選択する必要のない Palisade のアドインと
は対照的です。Evolver と RISKOptimizer で使用できる遺伝的アル
ゴリズムと OptQuest は、どちらも連続と不連続の両方の大局的な最
適化問題を解くことができます。一般に Palisade 製品を使用する場
合、アルゴリズムの選択はソフトウェアが自動的に行ってくれます。
また、Excel ソルバーでは処理できる問題の規模が制限されます。変
数 (調整可能セル) の数は最大 200、また制限の数も最大 100 個ま
でしか使用できません。(この制限の最大数には、調整可能セルの境
界を定義するシンプルな制限は含まれません。)
さらに、Evolver には調整可能セルの値を離散型として定義して、そ
のステップ サイズを指定するオプションがあります (例えば、ステ
ップ サイズが 0.5 の場合、調整可能セルには 1、1.5、2、2.5、3
の値が許可されます)。Excel のソルバーにはこの機能がありません。
最適化
101
問題の種類
一般に最適化の対象となる問題にはいくつか種類があります。
線形の問題
線形の問題では、すべての出力が入力の単純な線形関数として、例え
ば y=mx+b のように表されます。加算や減算などのシンプルな数式と
TREND() や FORCAST() などの Excel 関数のみを使用する問題は、変
数間の純粋な線関係によって表されています。
線形の問題は、コンピューターの進歩と George Dantzig が編み出し
たシンプレックス手法によって比較的簡単に解決することができます。
シンプルな線形の問題は、線形計画法ユーティリティを使うと最も迅
速かつ正確に解決できます。Excel に付属のソルバー ユーティリテ
ィは、Excel 2007 またはそれ以前では [線形モデルで計算] チェッ
クボックスをオンにし、Excel 2010 では [シンプレックス LP] 解法
を選択すると、線形計画法ツールとして機能します。すると、ソルバ
ーは線形計画法ルーチンを使って完璧な解を見つけ出します。純粋な
線形関数で問題を表すことができる場合は、線形計画法を使用するの
が一番良い方法です。ただし残念なことに、実世界の問題のほとんど
は線形関数では表せません。
Evolver のバージョン 6 では、線形計画法を使って線形問題を解く
こともできるようになりました。ただし Excel のソルバーとは異な
り、問題が線形であるかどうかをユーザーが判断する必要はありませ
ん。問題が線形であると Evolver が判断した場合には、自動的に線
形計画法が適用されます (ただし、[最適化設定] ダイアログの [エ
ンジン] タブで [最適化モード] をデフォルトの [自動] のままにし
ておく必要があります)。
非線形の問題
102
5,000 個の小型装置を製造して出荷するコストが 5,000 ドルである
場合、1 台の装置の製造と出荷コストが 1 ドルということは、まず
ありえないはずです。たとえ 1 台の装置であっても、製造工場の燃
料費、各部署で必要な事務処理、素材の一括購入、運送トラックのガ
ソリン代、そしてドライバーの日給などが、装置の数や積荷の量に比
例するとは限りません。実世界において、変数と単純な線関係で処理
できる問題はほとんどありません。線形の問題には、乗算、除算、指
数、また SQRT() や GROWTH() といった Excel 関数が使われます。
変数間の関係が不均衡である場合、その問題は常に非線形になります。
最適化の手法
非線形問題の典型的な例として、化学プラントの製造過程管理が挙げ
られます。例えば、いくつかの化学反応物を混合して化学薬品を製造
する場合を想定してみましょう。この化学反応率は、利用できる反応
物の量に応じて非線形の関数に従い変化する可能性があります。触媒
が飽和状態に達すると、それ以上の過剰な反応物は邪魔になります。
次の図は、この関係を示しています。
反応率を最大化する反応物の最小量を見つけるには、グラフの任意の
場所から開始して、山登り法で曲線を辿り頂上に到達すればよいこと
になります。このような解決手法は、山登り法と呼ばれます。
山登り法で最適な解を見つけるには、a) 関数がスムーズであること、
b) 変数の初期値が一番高い山の側面にあること、の 2 つの条件が必
要となります。このどちらかの条件が満たされない場合には、全体の
解ではなく局所的な解を見つけた時点で山登り法の処理は完了してし
まいます。
実世界によく見られる非線形の問題では、複雑な地形の上に複数の解
が存在しています。問題に多くの変数が含まれていたり、使用する数
式にノイズが多かったり、曲線式であると、たとえ多くの異なる開始
地点を試した場合であっても、山登り法で最適な解を見つけるのは困
難を極めます。大半のケースでは、局所的な最適でない解が見つかる
ことになります (下図を参照)。
山登り法では大局的な最大値でなく極大値
が見つかります。
最適化
ノイズの多いデータ: 何度試行しても山
登り法は効果がありません。
103
RISKOptimizer と Evolver は山登り法を使用せず、遺伝的アルゴリ
ズムと OptQuest エンジンという確率的な大局的最適化手法を用いま
す。これにより RISKOptimizer は、解空間を自由に移動しながら、
極大値に惑わされることなく、入力値のさまざまな組み合わせを試す
ことができます。これらの手法では、以前に試行された解に関する情
報がコンピューターのメモリに保持され、その情報を利用して成功確
率が最も高いシナリオを推測します。
Evolver では多くの可能なシナリオを生成し、
そのフィードバックに基づいて検索方法を調整します。
テーブルベース
の問題
104
テーブルとデータベースを使用すると、問題が不連続になり、スムー
ズでなくなります。そのため、ソルバーの GRG アルゴリズムのよう
な山登り法ルーチンで最適な解を見つけるのは困難です。Excel 2010
では、不連続の最適化に使用できる「エボリューショナリー」解法が
新たに追加されました。Evolver と RISKOptimizer には、不連続の
問題を解くためのエボリューショナリーな解法、つまり遺伝的な解法
が最初のリリース以来採用されています。さらにバージョン 6 では、
不連続の最適化における最新の解法を実装した OptQuest という最適
化エンジンも新たに追加されています。また、Palisade 製品では問
題が不連続であるかどうかをユーザーが判断する必要がありません。
Palisade ソフトウェアは、ソルバーのデフォルト オプションである
GRG とは異なり、連続と不連続の両方の問題を同じようにうまく解決
できます。
最適化の手法
順列組み合わせ
の問題
これまで見てきた数値的な問題とはまったく異なる種類の問題もあり
ます。既存の入力変数やそのサブセットの順序の並べ替えが出力結果
となる問題のことを、順列組み合わせ問題と呼びます。これらの問題
の解決にかかる時間は指数関数的に増大するため、解決するのが非常
に難しいことがあります。例えば、4 つの変数が関与する問題の解決
にかかる時間が 4 x 3 x 2 x 1 であるとすると、変数の数が 8 に増
えた場合には、解決にかかる時間が 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1、
つまり 1,680 倍に増えることになります。変数の数が 2 倍になった
だけで、検討が必要な起こりうる解の数は 1,680 倍に膨らみます。
例えば、野球チームの打順は順列組み合わせ問題です。ここでは 9
名の選手のうち 1 名を第 1 打者として選ぶ必要があります。その後、
第 2 打者として残りの 8 名から 1 名を選び、第 3 打者として 7
名から 1 名を選ぶ、という方法で選択していきます。したがって、9
名の打順は 9x8x7x6x5x4x3x2x1 (9 の階乗) 通りあることになります。
つまり、可能な打順は 362,880 通りあります。ここで、選手の数が
倍 に 増 え た 場 合 、 打 順 の 組 み 合 わ せ は 18 の 階 乗 、 つ ま り
6,402,373,705,000,000 通り考えられることになります。
RISKOptimizer と Evolver の遺伝的アルゴリズムおよび OptQuest
エンジンは、起こりうる順列をインテリジェントに検索します。これ
は、すべての可能な解を検索するよりも実用的であり、純粋にランダ
ムな順列組み合わせを使うよりもずっと効率的です。この手法では、
優れたシナリオからの部分的な打順を維持し、さらに優れたシナリオ
を作成するために活用することができます。
最適化
105
106
最適化の手法
遺伝的アルゴリズムと OptQuest
はじめに ................................................. 109
歴史的背景 ............................................... 109
生物の例 ................................................. 113
コンピューターの例 ....................................... 114
遺伝的アルゴリズムと OptQuest
107
108
はじめに
はじめに
Evolver はその最初のリリース以来、シミュレーション モデルの最
適な解を探すための遺伝的アルゴリズムを提供してきました。さらに
バージョン 6 では、これに OptQuest 最適化エンジンが追加されて
います。この章では、遺伝的アルゴリズムと OptQuest に関する基礎
的な情報を説明します。
歴史的背景
遺伝的アルゴリズムは、1970 年代初頭にミシガン大学のジョン ホラ
ンドにより開発されました。ホランドは、最高速のスーパーコンピュ
ーターを使っても不可能なタスクを、生物体系が難なくこなす点に注
目しました。例えば動物は、周囲にある物体を正確に認識し、音を理
解して解釈し、環境の変化に瞬時にして対応することができます。
科学者は何十年も前からこのような能力をいずれ機械でも実現できる
ようになると提唱してきましたが、今日ではこれがいかに困難なタス
クであるかが明らかになってきています。科学者の大半は、こうした
能力のあるすべての複雑な生物体系は、進化を経てその能力を取得し
たという説に同意しています。
進化論
進化論によれば、以下のように比較的単純なルールに従い自己繁殖を
する構成要素を通じて、進化により驚くべき能力を備えた体系が生ま
れたとされています。
1) 進化は染色体レベルで起こる。個体そのものは進化せず、遺伝子
を伝播するための容器に過ぎません。遺伝子の各組み合わせごと
に動的に変化するのは、染色体です。
2) 自然は、より「適応度の高い」個体を生み出す染色体をより多く
複製する傾向を持つ。個体が長い間存続し、健康であれば、その
遺伝子が繁殖により次世代の個体に受け継がれる可能性も大きく
なります。この原理のことを「適者生存」の法則と呼びます。こ
こで言う「適者」とはあくまで相対的な意味であり、個体が現在
の集団の中で「成功」するためには、その集団のほかの個体より
も適応度が高ければよいわけです。
3) 集団の多様性は維持しなければならない。自然界では一見してラ
ンダムな突然変異が頻繁に発生し、個体の多様性が維持されるよ
うになっています。こうした遺伝子の突然変異は、その種の存続
に役立つ、または場合によっては不可欠な、特性につながること
が多くあります。起こりうる組み合わせの範囲が広まれば、その
遺伝的アルゴリズムと OptQuest
109
母集団の全個体を破壊しうる弱点 (ウイルスなど) や、同系交配
から起こるその他の問題の発生率を低くすることができます。
進化について上記の基本的な構成要素に分けて考えると、これらの手
法をコンピューターの分野に応用しやすくなり、より柔軟で自然な動
作をする機械の誕生へと近づくことができます。
ホランドは、こうした進化の特性を、染色体を表す単純な数値の文字
列に適用しました。まずは問題を、染色体を表すバイナリ文字列 (1
と 0 の行) にエンコードしてから、コンピューターでこれらの「ビ
ット」文字列を多く生成して、その母集団 (または個体群) を作り上
げます。そして各ビット文字列を評価するための適応度関数をプログ
ラミングで記述し、そのうち「適応度が高い」と判断された全文字列
が、「交差」ルーチンを使ってほかの文字列とデータを交換し、ビッ
ト文字列の「子孫」を生成します。さらにホランドは、このデジタル
染色体に「突然変異」演算子を適用し、生成された「子孫」の染色体
にランダム性を導入して集団の多様性が保たれるようにしました。こ
の適応度関数は、生物界にたとえれば死の役割を果たすもので、どの
文字列に交配を続けるだけの価値があり、またどの文字列をプログラ
ムから排除すべきかを判断します。
このプログラムは特定数の「染色体」をメモリに保持し、文字列の
「個体群」全体が、適応度関数の解が最大になるまで進化を続けます。
そしてその結果をデコードして元の値に戻すことで、解を求めます。
ジョン ホランドは今でもこの分野の先駆者として活躍を続けており、
現在では彼のほかにも数多くの科学者が従来の線形型のプログラム的、
数学的、統計的な手法に代わる、遺伝的アルゴリズムの研究に力を注
いでいます。
ホランドが開発した初代の遺伝的アルゴリズムはごくシンプルであり
ながら非常に堅牢で、広範に及ぶ問題の最適な解を見つけることがで
きました。非常に大規模で複雑な実世界の問題を解決するカスタム
プログラムの多くは、このオリジナルの遺伝的アルゴリズムにごく若
干の変更を加えただけのバージョンを今でも用いています。
110
歴史的背景
遺伝的アルゴリ
ズムの現在
一般のデスクトップ コンピューターに本格的な計算能力が備わり、
Microsoft Windows や Excel といった標準ソフトによる複雑なモデ
ルの管理が行いやすくなると、各学界の関心を呼ぶようになりました。
ビット文字列表現の代わりに実数を使用することで、染色体のエンコ
ードとデコードという困難なタスクが不要になりました。
遺伝的アルゴリズムの人気は今でも急増しており、この分野の関連セ
ミナー、書籍、雑誌、コンサルタントはあらゆるところで次々と出現
しています。International Conference of Genetic Algorithms (遺
伝的アルゴリズム国際会議) では、すでに実用的な用途に焦点を当て
ており、人工知能技術のほかの分野には見られない成熟度を示してい
ます。証券ブローカーから発電所、電話会社、チェーン レストラン、
自動車メーカー、そしてテレビ局まで、多くの Fortune 500 企業が
日常業務に関する問題を解決するために遺伝的アルゴリズムを利用し
ています。実際のところ、誰もが今までに何らかの形で遺伝的アルゴ
リズムを使ったことがあると言っても過言ではありません。
遺伝的アルゴリズムと OptQuest
111
112
歴史的背景
生物の例
では、生物界における進化の簡単な例を見てみましょう。ここで言う
「進化」とは、個体群における遺伝子の分布または頻度の変化のこと
を指します。一般には進化の結果として、個体群がその環境の変化に
随時適応する能力が備わることになります。
この例では、ハツカネズミの個体群について見てみます。これらのハ
ツカネズミにはサイズが小と大の 2 通りあり、色も淡色と濃色の 2
通りあります。この個体群は、次の 8 匹のハツカネズミで構成され
ています。
ある日、数匹の猫がどこからかやって来て、このネズミ達を餌にし始
めました。猫にとって、濃色のネズミと小さいネズミは、ほかのタイ
プのネズミに比べて見つけるのが困難です。したがって、このネズミ
たちが繁殖する前に猫に食べられてしまう確率は、ネズミのタイプに
よって異なります。その結果、次世代のネズミの特性が影響を受けま
す。ネズミは生殖後間もなく死亡すると仮定した場合、次世代のネズ
ミの構成は次のようになります。
大きいネズミ、淡色のネズミ、そして大きくて淡色のネズミは特に、
生殖に至るまで生存するのが難しいことがわかります。さらにその次
の世代は、次のような構成になります。
この世代の個体群のほとんどが、この環境においてほかのタイプのネ
ズミよりも生存に適している、小さい濃色のネズミで構成されていま
す。同様に、捕獲できるネズミの数が減り空腹感を覚えた猫たちは、
遺伝的アルゴリズムと OptQuest
113
いずれ草食を好むようになり、草食嗜好の遺伝子を次世代の猫に受け
渡す可能性があります。これが、「適者生存」の法則と呼ばれる原理
です。より正確に言えば、この生存とは「生殖までの生存」を指して
います。進化論の観点から見た場合、個体群内で一番健康な独身男性
であること自体には価値がありません。これは、自分の遺伝子により
後の世代に影響を与えるには、生殖を行う必要があるからです。
コンピューターの例
ここでは X と Y の 2 つの変数があり、結果として Z を生成する問
題について考えてみます。X と Y の可能なすべての値に対して結果
の Z を計算し、プロット図にすると、解の「地形」が現れます (詳
しくは、「最適化」を参照してください)。ここでは Z が最大になる
解を探しているので、各山頂は「良い」解であり、谷は「悪い」解と
なります。
遺伝的アルゴリズムを使って関数を最大化する場合、1 箇所から開始
するのではなく、いくつかの可能な解、つまりシナリオ (グラフ上の
黒い点) を無作為に作成することから始めます。その後、各シナリオ
の関数の出力を計算し、各シナリオを 1 つの点としてプロットしま
す。次に、すべてのシナリオをその高度によって評価し、昇順に並べ
ます。上位半分のシナリオを維持し、残りは破棄します。
まず、起こりうる解の「個体群」全体を作成
します。このうち一部はほかのシナリオより
高度が高くなります。
114
次に、すべての解を評価し
て、優れた結果を生む解だ
けを維持します。
コンピューターの例
残った 3 つのシナリオをそれぞれ複製し、シナリオの数を 6 つに増
やします。この 6 つのシナリオは、それぞれ 2 つの調整可能値 (X
座標と Y 座標) で構成されています。各シナリオの値を、ほかのシ
ナリオの値と無作為に入れ換えます。つまり、各シナリオが 2 つの
調整可能値のうち最初の値をその親の値と交換することになります。
たとえば、次のような使い方があります。
交換前
交換後
シナリオ 1
3.4, 5.0
2.6, 5.0
シナリオ 2
2.6, 3.2
3.4, 3.2
この操作のことを「交差」と呼びます。6 つのシナリオを無作為に交
差した結果、例えば次のような新しい一連のシナリオが得られます。
上記の例では、オリジナルの 3 つのシナリオ a、b、c が、それぞれ
の複製である A、B、C と交差され、aB、bC、bA というペアが生まれ
ると仮定しました。その後、これらのペアの最初の調整可能セルを交
換しました。これは、上の図では点のペア間で X と Y の座標値を交
換する操作に相当します。これでシナリオの個体群が死と生のサイク
ルを繰り返し、1 世代を経たことになります。
遺伝的アルゴリズムと OptQuest
115
新しいシナリオのうち、一部の出力 (高度) は最初の世代よりも低下
しています。しかし、このうち 1 つのシナリオは前世代よりも進歩
し、一番高い山頂近くに達しています。 この個体群の進化をもう 1
世代だけ続けると、例えば次のような結果となる可能性があります。
この一番新しい世代ではシナリオ群のパフォーマンスが平均して高く
なっていることがわかります。この例では、これ以上の改善の余地は
あまりありません。各個体に遺伝子が 2 つしかなく、個体の数も 6
つだけであり、新しい遺伝子が作成される可能性もないからです。こ
れは、つまり遺伝子プールが限られていることを意味します。遺伝子
プールは、その個体群に含まれるすべての個体の全遺伝子を合計した
ものです。
生物界の進化に組み込まれたより多くの優れた特性を複製することに
より、遺伝的アルゴリズムを強化することができます。これには例え
ば、各個体の遺伝子数を増やす、個体群に含まれる個体の数を増やす、
ランダムな突然変異を発生させる、などの方法があります。また、よ
り自然な形で生存し繁殖するシナリオを選択することもできます。こ
うしたシナリオは、単にパフォーマンスが最高の個体を選んで交差す
る代わりに、優れたパフォーマンスをわずかに重視するランダムな要
素を含んでいます (いかに大きく力強いライオンであっても、稲妻に
打たれる可能性があるということです)。
これらすべての手法では、遺伝子の調整を刺激して遺伝子プールの多
様性を維持し、さまざまな組み合わせで役立つ可能性のある、いろい
ろなタイプの遺伝子を残しておくことができます。Evolver には、こ
うした手法がすべて自動的に組み込まれています。
116
コンピューターの例
OptQuest
はじめに
OptQuest エンジンは、検索アルゴリズムをより良い解へと導くため
にメタヒューリスティクスを用いています。このアプローチでは、優
れた解を記憶しておき、それらを組み合わせて新しいより良い解を生
成します。またこの手法は、局所的な解から抜け出せなくなったり、
ノイズの多い (不確実な) モデル データによって悪影響を受けたり
することがありません。OptQuest エンジンは、タブー検索、スキャ
ッター検索、整数計画法、およびニューラル ネットワークを 1 つの
複合検索アルゴリズムとして統合し、新しいシナリオ特定の効率を最
大限に引き出します。
線形の制限
OptQuest では、ほとんどのケースにおいて指定された線形の制限を
すべて満たす解を生成しますが、無効な解の評価を避けることで処理
時間を短縮できます。(場合によっては OptQuest が線形の制限を満
たさない解を生成することもあります。これは、コンピューターでは
無限精度の計算を処理できないためです。その場合には、Evolver の
ログに解が無効なものとして報告されます。)
ベーカリーの例は、OptQuest で線形の制限がどう扱われるかを示し
ています。3 つの制限のうち 2 つが線形で、OptQuest によって生成
されるすべての解はその 2 つの制限を満たしています。その一方で
「許容合計作業時間」の制限は非線形であり、生成された解の中には
これを満たさないものもあります。
遺伝的アルゴリズムと OptQuest
117
非線形の制限
OptQuest は、調整可能セルの初期値が無効であっても (つまり指定
の制限を満たしていなくても)、非線形の制限を効率よく処理できま
す。一般に遺伝的アルゴリズムでは、調整可能セルの初期値が制限を
満たしている必要があります。初期値が無効な場合、制限ソルバー
ツールが有効な解を見つけて、遺伝的アルゴリズムを使用する最適化
の開始点を決定します。しかし OptQuest では制限ソルバーを使用す
る必要がありません。OptQuest は、初期の解が無効であっても、無
効な解のシーケンスを生成して最適化を開始することができます。た
だし、有効な解を見つけるために、この段階で各解が必要な制限から
どれほど離れているかに関する情報を収集します。
118
OptQuest
Evolver のその他の機能
制限の追加 ............................................... 121
範囲制限 ...............................................
カスタムのハード制限 ...................................
ソフト制限 .............................................
ペナルティ関数 ..................................
ペナルティ関数の入力 ............................
入力したペナルティ関数の効果の確認 ...............
適用されたペナルティの確認.......................
ワークシートへのソフト制限の入力.................
ペナルティ関数の例 ..............................
ペナルティ関数の使用 ............................
ゴールが複数ある問題 ...................................
Evolver のその他の機能
122
123
124
125
125
126
126
127
128
129
130
119
120
制限の追加
実世界の問題には、最適な解を探す際に満たさなければならない条件
がいくつも存在します。例えば、チュートリアルにあるベーカリーの
例には、許可される最大作業時間数を指定する制限が設定されていま
す。
モデルの条件をすべて満たすシナリオのことを「有効」な解と呼びま
す。モデルに対して有効な解、特に最適かつ有効な解を見つけるのが
困難な場合もあります。これは、例えば問題がとても複雑で有効な解
がごく少数しかなかったり、問題に規則が多すぎる (制限が多すぎた
り、一部の条件がほかの条件と競合する場合など)、といった理由か
ら、有効な解が存在しないことが原因です。
制限には、調整可能セルに適用される範囲制限 (最小 - 最大の範囲)、
常に満たす必要のあるハード制限、そして、できる限り満たすことが
望ましいが、ターゲット セルの値 (目標関数) が大幅に改善される
場合には妥協が可能なソフト制限、の 3 つの基本タイプがあります。
Evolver のその他の機能
121
範囲制限
最も単純なハード制限は、変数自体に課されるものです。各変数に特
定の範囲を設定すると、Evolver が試行する可能な解の合計数が減り、
検索の処理時間を短縮することができます。[モデル] ウィンドウの
[調整可能セルの範囲] セクションにある [最小] フィールドと [最
大] フィールドに値を入力し、各変数で許容される値の範囲を指定し
ます。
Evolver が、指定のセルで 0 ~ 5,000 の値のみを試します。
変数に適用される 2 つ目の制限タイプであるハード制限は、Evolver
の一部の解法 (予算、順序、グルーピングなど) に組み込まれていま
す。例えば、予算解法を使って変数を調整する場合、Evolver には合
計が同じ値になる値のセットのみを試行するよう、ハード制限が課さ
れます。また、グルーピング解法では、指定されたグループ ID のリ
ストからの値のみを使用するよう、Evolver に制限が課されます。範
囲制限と同様、このハード制限によっても、検索対象となる可能なシ
ナリオの数を減らすことができます。
[モデル] ダイアログ ボックスの [整数] および [離散] オプション
も一種のハード制限です。例えば、変数値を調整するときに、実数
(1.34 や 2.034 など) ではなく整数 (1、2、3 など) のみを使用す
るよう Evolver に指定します。
122
制限の追加
カスタムのハード制限
Evolver の変数制限に含まれていない制限は、[制限設定] ダイアロ
グ ボックスを使って入力することができます。
Evolver は、範囲制限やその他の変数制限を満たさない解を生成しま
せん。その一方で、カスタム制限を満たさない解を生成することはあ
ります。その場合、解を無効として破棄する前に、その解を評価する
必要があります。ただし OptQuest エンジンでは、すべての線形の制
限が変数範囲の制限のように扱われ、制限を満たさない解は生成され
ません。線形の制限の例としては、調整可能セルのグループの合計が
一定の値になるよう指定する制限などが挙げられます。これは予算解
法に組み込まれている制限に対応します。したがって、ユーザーは予
算解法を使用する代わりに、レシピ解法を選択して適切な線形の制限
を指定することも可能です。
Evolver のその他の機能
123
ソフト制限
すべての制限を満たす解のみを検索するようプログラムに強要すると、
有効な解が見つからないこともあります。その場合には、いくつかの
解で制限が満たされなくても、ほぼ有効な解を見つける方が有用です。
常に満たす必要のあるハード制限を使用する代わりに、「ソフト制
限」を使用すると、これらの制限をなるべく満たすように Evolver
に指定することができます。ソフト制限はハード制限よりも実用的で、
Evolver が試行できるオプションの数を増やすことができます。制限
が厳しい (すべての制限を満たすような可能な解が少ない) 問題の場
合、Evolver の遺伝的アルゴリズムでは、制限をほぼ満たすような解
からのフィードバックを得られるようにすると、最適な解の見つかる
可能性が高くなります。(OptQuest 最適化エンジンを使用する場合は
ソフト制限を考慮する必要はありません。この 2 つのアルゴリズム
では無効な解、つまりハード制限を満たさない解の扱い方が異なりま
す。一般に OptQuest は、ソフト制限を使用せずに、無効な解でも効
率よく調査し活用することができます。)
制限が、例えば「ナイフの 2 倍の数のフォークを生産する」という
ような設計目標である場合、これらの制限を満たすのはそれほど重要
でないことがあります。これは、完璧にバランスの取れた生産スケジ
ュールを見つけるための最適化処理に、終日かかる場合などは特に当
てはまります。このような状況では、制限がほぼ満たされる (例えば
フォークの生産数が 40%、ナイフが 23%、スプーンが 37% になるよ
うな) 良い解を短時間で得る方が、1 日中処理を続けた後で、すべて
の制限が満たすことが不可能なために解が 1 つも見つからないとい
う結果よりも好ましいと言えます。
124
制限の追加
ペナルティ関数
ソフト制限はペナルティ関数を使用して Excel で簡単に設定できま
す。ソフト制限では、解の検索に特定の値は絶対に使用しないよう指
定する代わりに、無効な値の使用を許可し、その結果得られた解にペ
ナルティを適用します。例えば、トラックを 3 台だけ使用するとい
う制限の下に、商品を流通させる最も効率的な方法を探していると想
定します。より現実的なモデルを構築するには、4 台以上のトラック
も使用できるようにして、その場合には利益に大きな悪影響を及ぼす
ペナルティ関数を含めます。ペナルティ関数の指定は、[制限設定]
ダイアログで指定するか、これを表す数式をモデルに直接入力して追
加することもできます。
ペナルティ関数
の入力
Evolver では、ソフト制限を最初に入力するときにデフォルトのペナ
ルティ関数が表示されます。ただし、ここに任意の有効な Excel 式
を入力して、ソフト制限が満たされない場合に適用するペナルティを
計算することができます。入力したペナルティ関数には、
「deviation」(偏差値) というキーワードを含める必要があります。
これは、制限を越えている絶対量を表します。Evolver は、特定の試
行解の終了時に、ソフト制限が満たされているか確認し、満たされて
いない場合は入力されたペナルティ関数に偏差値を代入してから、最
小化または最大化するターゲット セルの値に適用するペナルティの
量を計算します。
ペナルティは最適な値との差を広げるために、ターゲット セルの値
に加算あるいは減算されます。例えば、[Evolver - モデル] ダイア
ログの [最適化ゴール] フィールドで [最大] を選択した場合、ペナ
ルティはターゲット セルの値から差し引かれます。
Evolver のその他の機能
125
入力したペナル
ティ関数の効果
の確認
Evolver には、「Penalty Functions and Soft Constraints.xlsx」
お よ び 「 Penalty Functions and Soft Constraints.xls 」 と い う
Excel ワークシートが付属しています。これを使って、さまざまなペ
ナルティ関数が特定のソフト制限とターゲット セルの結果に与える
影響を評価できます。
「Penalty Functions and Soft Constraints.xlsx (ペナルティ関数
とソフト制限)」ワークブックでは、効果を分析するソフト制限を、
モデルから選択することができます。その後、ペナルティ関数を変更
して、ソフト制限が満たされない場合に特定の値が、ペナルティの課
された特定のターゲット セル値にどうマッピングされるかを確認で
きます。例えば A10<100 というソフト制限がある場合、Penalty
Functions and Soft Constraints.xlsx を使用して、セル A10 の計
算値が 105 のときにターゲット値がどうなるかを確認できます。
適用されたペナ
ルティの確認
126
ソフト制限が満たされないためにターゲット セルにペナルティが適
用された場合、そのペナルティ量を Evolver ウオッチャーで確認す
ることができます。ペナルティ値は、最適化の後にオプションで作成
することのできる、「最適化ログ」ワークシートにも表示されます。
制限の追加
ワークシートへ
のソフト制限の
入力
ペナルティ関数はワークシートに直接入力することもできます。ブー
ル演算子のペナルティ関数は、指定された制限を満たさないすべての
シナリオに、指定されたペナルティ値を適用します。例えば、セル
B1 (供給) の値がセル A1 (需要) の値と同じかそれ以上になるよう
にするには、別のセルに「=IF(A1>B1, -1000, 0)」というペナルティ
関数を指定します。このセルの結果をターゲット セルの統計に追加
すると、Evolver がこの制限に違反する解 (つまり供給が需要を満た
さない解) を試行するたびに、最大化するターゲット セルの統計は
実際の結果より 1,000 低い値に設定されます。この制限に違反する
すべての解でターゲット セルの統計値が低くなり、最終的には
Evolver でこれらの個体は破棄されます。
ペナルティ関数には、制限を超えた度合いに応じてより正確なペナル
ティ値を解に適用する、スケーリング ペナルティ関数を使用するこ
ともできます。実世界では、スケーリングを使う方が実用的なことが
あります。これは、供給が需要レベルを大幅に下回る解よりは、供給
が需要レベルをわずかに下回っている解の方が好ましいためです。簡
単なスケーリング ペナルティ関数により、制限のゴール値とその実
際の値との絶対差を計算します。例えば、A1 (需要) が B1 (供給)
を越えることのできない上記の問題には、「=IF(A1>B1, (A1-B1)^2,
0)」というペナルティ関数を設定することができます。この種のペナ
ルティ関数は、実際の値が制限をどの程度満たしているかを求め、そ
の差異を 2 乗して増大します。したがって、制限の違反の程度によ
ってペナルティ値が変化することになります。
Evolver のその他の機能
127
ペナルティ関数
の例
例えば、木材の使用量がプラスチックの使用量と等しくなければなら
ないという制限のある製造業のモデルを構築したと想定します。この
制限は、「AmountWood (木材の量) = AmountPlastic (プラスチック
の量)」の場合に満たされます。ここではこの 2 つの素材の量が均等
になる解を見つける必要があるので、ゴールと異なる結果を生む解に
対して、関数を使ってペナルティを課します。「=ABS(AmountWoodAmountPlastic)」という数式により、木材とプラスチックの使用量の
絶対差を計算します。ABS() 関数を使用するので、木材がプラスチッ
クより 20 多い場合でも少ない場合でも、ペナルティの値は同じにな
ります。このモデルを最適化する際のゴールは、この絶対差に対する
シミュレーション結果の平均値を最小化することです。
では仮に、上記の代わりに、木材の使用量がプラスチックの 2 倍で
なければならないという制限を課すとします。この場合のペナルティ
関数は次のようになります。
=ABS(AmountWood-AmountPlastic*2)
または、木材の量がプラスチックの量の 2 倍以上でなければならな
いという制限も考えられます。この前の例では木材の量が少なすぎて
も多すぎてもペナルティを適用しましたが、ここでは木材が少なすぎ
る場合にのみペナルティが課されます。したがって、AmountWood が
AmountPlastic の 10 倍である場合はペナルティを適用しません。こ
の例のペナルティ関数は次のようになります。
=IF(AmountWood<AmountPlastic*2,
ABS(AmountPlastic*2-AmountWood),0)
AmountWood が少なくとも AmountPlastic の 2 倍ある場合にはペナ
ルティ関数の値が 0 になり、そうでない場合は AmountWood の量が
AmountPlastic の 2 倍の量をどれだけ超えているかを返します。
128
制限の追加
ペナルティ関数
の使用
モデルのソフト制限を指定するペナルティ関数を作成したら、これを
ターゲット セルの数式に組み合わせて制限が適用されたターゲット
セル式を設定します。次の例では、セル C8 でプロジェクトの総費用
が計算され、セル範囲 E3:E6 に 5 つのペナルティ関数が設定されて
いるので、セル C10 には「=SUM(C8, E3:E6)」などの数式を作成する
ことができます。
合計値に制限を加えるセルを作成し、そのセルのシミュレーション結果の平均値を最
小化します。
ここでは C10 で E 列 のペナルティを C8 の費用に加算して、ペナ
ルティ適用後の費用を求めています。ただし、最大化を行う問題の場
合には、ペナルティ値をオリジナルのターゲット セル値に加算する
のではなく、減算することになるので注意してください。Evolver を
使用する場合、制限適用後のセル C10 のみを、最適化の対象となる
シミュレーション統計を得るターゲット セルとして選択します。
すると、Evolver が制限適用後のターゲット セルの統計を最適化す
る際、ペナルティ関数により、制限を満たすシナリオを重視して検索
が行われるようになります。そして最終的には、すべての制限を満た
しているか、ほぼ満たしている (つまりペナルティ関数の値が 0 に
近い)、優れた解答のみが Evolver の解として残ります。
Evolver のその他の機能
129
ゴールが複数ある問題
Evolver のターゲット セル フィールドに指定できるセルは 1 つだ
けですが、2 つのゴールを 1 つのゴールに組み合わせる関数を使用
することにより、ゴールが複数ある問題を解決することもできます。
例えば、高分子化学者が柔軟性と強度の両面で優れた物質を合成しよ
うとしている場合を想定してみます。このモデルでは、特定の化学物
質の組み合わせから得られる強度、柔軟性、重量を計算します。この
問題の変数は、各化学物質の使用量です。
物質の強度 (セル S3) と柔軟性 (セル F3) の両方を最大限にしたい
ので、新しいセルに「=(S3+F3)」という数式を入力します。これが新
しいターゲット セルとなり、この値が大きいほど解全体が優れてい
ることになります。
強度よりも柔軟性を重視する場合には、ターゲット セルの数式を
「=(S3+(F3*2))」に変更します。すると柔軟性が特定量だけ高まるシ
ナリオの方が、強度がそれと同じ量だけ高まるシナリオよりも評価が
良くなります (つまり目標関数の値が高くなります)。
物質の強度 (セル S5) を最大限にし、それと同時に重量 (セル W5)
を最小限にするには、新しいセルに「=(S5^2)-(W5^2)」という数式を
入力します。この式の計算値は、合成物質が頑丈で軽量な場合に高く
なり、弱くて重い物質の場合は低くなります。また、弱くて軽い物質
と強くて重い物質では均等な値となります。したがって、強度と重量
の両方のゴールを満たすには、このセルをターゲットとして使用し、
その平均値を最大化します。
130
制限の追加
処理速度の向上
Evolver を使用した問題の解決処理では、Evolver のコンパイル済み
ルーチン ライブラリを使って処理が制御され、Excel のスプレッド
シート評価機能を使ってさまざまなシナリオが検討されます。実際に
は Evolver の処理時間の大部分は、Excel でスプレッドシートの再
計算に費やされます。Evolver での最適化と Excel の再計算の処理
速度を向上させるには、いくつかの方法があります。

Evolver の処理速度はコンピューター プロセッサの処理速度と
直接関係があります。プロセッサの処理速度が 2 倍になれば、
Evolver が同じ時間内に 2 倍の数のシナリオを処理できること
になります。

ウィンドウの再描画をなるべく避けます。画面上に画像や数値を
再描画する操作は時間がかかります。最適化にかかる時間の半分
以上を再描画に費やす場合もあります。シートに表やグラフが含
まれていると、再計算の所要時間が大幅に長くなることもありま
す。Evolver の処理中に Excel の再描画を行わないようにする
には、[最適化設定] ダイアログの [表示] タブにある [Excel
の再計算を表示] オプションをオフにするか、同じタブの [開始
時に Excel を最小化] を選択します。問題の処理速度が向上さ
れたかどうかは、ステータス バーで確認できます。

調整可能セルの範囲を狭くします。すると、Evolver で解を検索
する範囲が小さくなり、結果として処理時間を短縮できます。た
だし、Evolver が現実的な解をすべて検討するのに十分な自由が
与えられるような範囲を設定してください。
Evolver のその他の機能
131
132
処理速度の向上
遺伝的アルゴリズムによる最適化の Evolver に
おける実装
このセクションでは、遺伝的アルゴリズムによる最適化が Evolver
でどのように実装されているかについて説明します。
注意: Evolver を使用するために、このセクションの内容を理解する
必要はありません。
レシピ解法や順序解法など、Evolver で採用されている遺伝的アルゴ
リズム技術のほとんどは、遺伝的アルゴリズムの分野における過去
10 年にわたる学術研究の成果に基づいています。ただし、Evolver
に含まれているほとんどの派生解法を始めとして、複数の調整可能セ
ル グループを使用できる機能、バックトラック機能、戦略、そして
確率機能などは、Evolver 固有のものです。
Evolver では定常状態法を採用しています。これは、世代全体を 1
度に置換するのではなく、1 度に 1 つの個体のみを置換することを
意味します。定常状態法は、世代置換法と同等かそれ以上の効果があ
ることが証明されています。Evolver で実行された「世代」の数を求
めるには、処理した試行の数を個体群のサイズで割り算します。
選択
新しい個体が作成される場合、現在の個体群から 2 個の親が選択さ
れます。目標関数の値が高い個体は、親として選択される確率が高く
なります。
Evolver では、順位に基づいて親が選択されます。繁殖時の親の選択
確率がその目標関数値に直接比例する一部の遺伝的アルゴリズム体系
よりも、順位付けを用いた方が、選択確率の曲線が滑らかになります。
これにより、進化の初期段階から優秀な個体が完全に支配するという
状況を防ぐことができます。
Evolver のその他の機能
133
交差
変数の調整方法は各解法ごとに異なるため、Evolver では特定の問題
のタイプに最も適した交差ルーチンが使用されます。
基本的なレシピ解法は、一様交差ルーチンを使って交差を実行します。
一様交差では、特定のシナリオの変数のリストを途中で分割して 2
つの各ブロックを処理する (一点交差または二点交差と呼ばれます)
のではなく、アイテムを無作為に選びどちらかのグループに割り当て
ることによって 2 つのグループが形成されます。従来の一点交差や
二点交差では、変数の位置が不適切なために検索が偏る可能性があり
ますが、一様交差ではスキーマを維持しやすく、2 つの親からあらゆ
るスキーマを生成することができます。
順序解法は、L デイビス著の『Handbook of Genetic Algorithms』 *
で説明されている順序交差演算子に似たアルゴリズムを使用して交差
を実行します。このアルゴリズムは一方の親から無作為にアイテムを
選択し、もう片方の親のこれに相当する位置を見つけて、残りのアイ
テムを最初の親に見られるのと同じ順序で 2 番目の親にコピーしま
す。これにより、元の親の順序の一部が維持されると同時に、順序の
一部は新しく作成されます。
* Davis, Lawrence (1991).Handbook of Genetic Algorithms.New York: Van Nostrand
Reinhold.
134
遺伝的アルゴリズムによる最適化の Evolver における実装
突然変異
交差と同様に、突然変異の方法も各解法に応じてカスタマイズされて
います。例えば基本的なレシピ解法は、各変数を個別に検討して突然
変異を実行します。個体の各変数に対して 0 ~ 1 の範囲のランダム
値が生成され、突然変異率と同じかそれ以下の値 (例: 0.06) となっ
た場合、その変数の突然変異が行われます。突然変異の量と性質は、
Palisade 社独自のアルゴリズムによって自動的に決定されます。変
数の突然変異では、その値が最小 - 最大の有効範囲内で無作為に生
成された値に置き換えられます。
順序解法では、オリジナルの値をすべて維持するため、個体の一部の
変数の位置をスワップする方法で突然変異を実行します。実行するス
ワップの数は、突然変異率の設定 (0 ~ 1) に比例して増減します。
置換
Evolver では世代置換ではなく順位による置換を用いるので、パフォ
ーマンスが最下位の個体は、その目標関数の値に関係なく、常に選択、
交差、突然変異によって作成された新しい個体で置換されます。
制限
ハード制限は、Palisade 社独自の「バックトラック」技術を用いて
実装されています。新しい子孫が外部から課された制限に違反すると、
Evolver はその親のどちらかにバックトラックして、有効な解の範囲
内に収まるような子孫ができるまで、子の値を調整します。
Evolver のその他の機能
135
136
遺伝的アルゴリズムによる最適化の Evolver における実装
付録 A: Evolver の自動化
VBA
Evolver には、その機能を使用するカスタム アプリケーションを構
築するための完全なマクロ言語が付属しています。Evolver のカスタ
ム関数を Visual Basic for Applications (VBA) で使用して、最適
化処理の実行や最適化の結果を表示することもできます。このプログ
ラミング インターフェイスの詳細については、Evolver デベロッパ
ー キットのヘルプ マニュアルを参照してください。このマニュアル
は Evolver の [ヘルプ] メニューからアクセスできます。
付録 A: Evolver の自動化
137
138
VBA
付録 B: トラブルシューティング
と Q&A
付録 B: トラブルシューティングと Q&A
139
140
トラブルシューティングと Q&A
トラブルシューティングと Q&A
このセクションには、Evolver に関して頻繁に寄せられる質問とその
答えが記載されています。ここで一般的な質問、問題、および推奨事
項についての最新情報を確認できます。このセクションに目を通して
も疑問が解決しない場合は、このマニュアルの最初に記載されている
Palisade 社カスタマー サポートまでお問い合わせください。
Q: Evolver で有効な答えが得られないのはなぜですか?
A: Evolver のダイアログが正しく設定されているか確認してくださ
い。ほとんどの問題は変数の設定に関連しています。調整可能セ
ルの各グループは排他的でなければなりません。つまり、1 つの
セルやセル範囲を複数の解法で処理することはできません。
Q: Evolver で数値ではなく概念やカテゴリの処理を行うことはでき
ますか?
A: 数値は単なる記号に過ぎないため、Evolver ではあらゆる種類の
データを間接的に処理できます。整数とテキスト文字列のマッピ
ングを行うには、Excel のルックアップ テーブルを使用しま
す。Evolver もほかのすべてのコンピューター プログラムと同
様、究極的には数値のみを処理します。しかし、適切なインター
フェイスによりこれらの数値を使ってあらゆる文字列を表現する
ことが可能です。
付録 B: トラブルシューティングと Q&A
141
Q: ダイアログを同じように設定して Evolver での処理を同じ時間
だけ実行しても、見つかる解が違うことがあるのはなぜですか?
A: 生物界の自然淘汰と同じく、Evolver の遺伝的アルゴリズムも解
の検索において常に同じ経路を辿るとは限りません (ただし乱数
生成のシード値を固定する場合は除きます)。皮肉なことに、こ
の「意外性」こそは、Evolver が従来の手法と比べてより多くの
種類の問題に対して優れた解答を見つけ出せる理由でもありま
す。Evolver の遺伝的アルゴリズム エンジンでは、あらかじめ
プログラミングされたコマンドを単に実行したり、数式を使って
値を代入したりするだけではなく、多くの無作為な仮説を同時に
使って効率的な実験を行い、その結果、ランダムな要素を含む
「適者生存」演算子を通じて検索を絞り込んでいきます。
上記の説明は Evolver に採用されているもう 1 つの最適化アル
ゴリズムである OptQuest にも当てはまります。OptQuest は、
起こりうるさまざまな解を使って実験を行い、そうした実験の結
果を追跡します。このプロセスに関連するランダム性のため、こ
のアルゴリズムが (より良い大局的な最適解が存在する場合に
は) 局所的に最適な解を返すことはありません。
Evolver の 2 つの最適化で同一の結果が返されるような設定を
指定することも可能です。これには、[最適化設定] ダイアログ
の [表示] タブにある [初期シード] フィールドに任意の整数を
入力します。また、同じダイアログの [実行詳細] タブで停止条
件として [試行] か [進行] を選択する必要もあります。
Q: ベストな解が変化しないのはなぜですか?
A: [Evolver - モデル] ダイアログで、ターゲット セルを誤って指
定している可能性があります。Evolver が空白のセルをターゲッ
ト セルとして処理していると、そこに数式がないために値が変
化しません。これを修正するには、[Evolver - モデル] ダイア
ログを表示して適切なターゲット セル、つまり起こりうる各解
の適応度を正確に反映しているセルを選択します。ターゲット
セルには、Evolver が調整する変数 (調整可能セル) に直接ある
いは間接的に依存する数式が入っている必要があります。
Q: スプレッドシート モデルのセルの一部に「####」という記号が
表示されるのはなぜですか?
A: セルが小さすぎてその値がすべて収まらない場合、一連の # 記
号が表示されます。セルのサイズを大きくしてください。
142
トラブルシューティングと Q&A
Q: Evolver は一応機能していますが、より優れた結果を得る簡単な
方法はありますか?
A: Evolver で使用できる遺伝的アルゴリズムと OptQuest の 2 つ
の最適化手法を両方試してみます。[最適化設定] ダイアログの
[エンジン] タブにある [手動] オプションを使用して、両方の
アルゴリズムによる最適化を試してみます (どの最適化アルゴリ
ズムが使用されたかは [最適化サマリー] レポートに報告されま
す)。遺伝的アルゴリズムの場合、突然変異率の値と遺伝演算子
の設定を変えてみることもできます。
Evolver では試行するシナリオの数が多いほど、最適化の結果は
改善されます。Evolver の処理時間を短縮するには、[最適化設
定] ダイアログの [表示] タブで [Excel の再計算を表示] オプ
ションをオフにするか、[新たなベスト試行ごと] に設定してく
ださい。
付録 B: トラブルシューティングと Q&A
143
144
付録 C: 参考文献
付録 C: 参考文献
145
146
参考文献
以下は、遺伝的アルゴリズムおよび人工知能について参考になる文献
のリストです。アスタリスク (*) が付いているのは、弊社が特に推
奨する文献です。
書籍
• Bolles, R.C., & Beecher, M.D. (Eds.).
Learning. Lawrence Erlbaum.
(1988).
Evolution and
• Beer, R.D. (1990). Intelligence as Adaptive Behavior: An
Experiment in Computational Neuroethology. Academic Press.
• Davis, Lawrence (1987). Genetic Algorithms and Simulated
Annealing. Palo Alto, CA: Morgan Kaufman.
* Davis, Lawrence (1991). Handbook of Genetic Algorithms.
Van Nostrand Reinhold.
• Darwin, Charles (1985). On The Origin of Species.
Penguin Classics. (originally 1859)
* Dawkins, Richard.
Press.
(1976).
The Selfish Gene.
New York:
London:
Oxford University
• Eldredge, N. (1989). Macroevolutionary Dynamics: Species,
Niches, and Adaptive Peaks. McGraw-Hill.
• Fogel, L., Owens, J., and Walsh, J. (1966). Artificial
Intelligence through Simulated Evolution. New York: John Wiley
and Sons.
• Goldberg, David (1989). Genetic Algorithms in Search,
Optimization, and Machine Learning. Reading, MA: Addison-Wesley
Publishing.
• Holland, J.H. (1975). Adaptation in Natural and Artificial
Systems. Ann Arbor, MI: University of Michigan Press.
• Koza, John (1992).
Press.
* Langton, C.L.
Genetic Programming.
(1989).
• Levy, Steven (1992).
Artificial Life.
Artificial Life.
Cambridge, MA: MIT
MIT Press.
[ALife I]
New York: Pantheon.
• Meyer, J.-A., & S.W. Wilson (Eds.). (1991). Proceedings of the
First International Conference on Simulation of Adaptive
Behavior: From Animals to Animats. MIT Press/Bradford Books.
付録 C: 参考文献
147
* Proceedings of the Sixth International Conference (ICGA) on Genetic
Algorithms (1995). San Mateo, CA: Morgan Kaufman Publishing.
(Also available; the first five ICGA proceedings).
• Proceedings of the Workshop on Artificial Life (1990).
Christopher G. Langton, Senior Editor. Reading, MA: AddisonWesley Publishing.
• Rawlins, Gregory (1991). Foundations of Genetic Algorithms.
Mateo, CA: Morgan Kaufman Publishing.
San
• Richards, R.J. (1987). Darwin and the Emergence of Evolutionary
Theories of Mind and Behavior. U. Chicago Press.
• Williams, G.C. (1966).
Princeton U. Press.
Adaptation and Natural Selection.
論文・記事
* Antonoff, Michael (October, 1991).
Popular Science, p. 70-74.
Software by Natural Selection.
• Arifovic, Jasmina (January, 1994). Genetic Algorithm Learning and
the Cobweb Model. In Journal of Economic Dynamics & Control v18
p.3
* Begley, S (May 8, 1995).
“Software au Naturel” In Newsweek p.
70
• Celko, Joe (April, 1993). Genetic Algorithms and Database
Indexing. In Dr. Dobb’s Journal p.30
• Ditlea, Steve (November, 1994).
Magazine p.48
Imitation of Life.
In Upside
• Gordon, Michael (June, 1991). User-based Document Clustering by
Redescribing Subject Descriptions with a Genetic Algorithm. In
Journal of the American Society for Information Science v42 p.311
• Hedberg, Sara (September, 1994).
AI Expert, p. 25-29.
Emerging Genetic Algorithms.
In
• Hinton, G.E., & Nowlan, S.J. (1987). How Learning Can Guide
Evolution. In Complex Systems 1: p.495-502.
* Kennedy, Scott (June, 1995). Genetic Algorithms: Digital
Darwinism. In Hitchhicker’s Guide to Artificial Intelligence
Miller Freeman Publishers
• Kennedy, Scott (December, 1993).
Expert, p. 35-38
• Lane, A (June, 1995).
p.11
148
Five Ways to a Better GA.
In AI
The GA Edge in Analyzing Data. In AI Expert
参考文献
• Lee, Y.C. (Ed.). (1988).
In World Scientific.
Evolution, learning, and cognition.
• Levitin, G and Rubinovitz, J (August, 1993). Genetic Algorithm
for Linear and Cyclic Assignment Problem. In Computers &
Operations Research v20 p.575
• Marler, P., & H.S. Terrace. (Eds.).
Learning. Springer-Verlag.
(1984).
The Biology of
• Mendelsohn, L. (December, 1994) Evolver Review In Technical
Analysis of Stocks and Commodities. p.33
• Maynard Smith, J. (1987).
Nature 329: p.761-762.
When Learning Guides Evolution.
In
• Murray, Dan (June, 1994). Tuning Neural Networks with Genetic
Algorithms. In AI Expert p.27
• Wayner, Peter (January, 1991). Genetic Algorithms: Programming
Takes a Valuable Tip from Nature. In Byte Magazine v16 p.361
雑誌・ニュースレター
• Advanced Technology for Developers (monthly newsletter). Jane
Klimasauskas, Ed., High-Tech Communications, 103 Buckskin Court,
Sewickley, PA 15143 (412) 741-7699
•
AI Expert (monthly magazine). Larry O’Brien, Ed., 600 Harrison
St., San Francisco, CA 94107 (415) 905-2234. *Although AI Expert
ceased publishing in the spring of 1995, its back issues contain
many useful articles. Miller-Freeman, San Francisco.
• Applied Intelligent Systems (bimonthly newsletter). New Science
Associates, Inc. 167 Old Post Rd., Southport, CT 06490 (203)
259-1661
• Intelligence (monthly newsletter). Edward Rosenfeld, Ed., PO Box
20008, New York, NY 10025-1510 (212) 222-1123
• PC AI Magazine (monthly magazine). Joseph Schmuller, Ed., 3310
West Bell Rd., Suite 119, Phoenix, AZ 85023 (602) 971-1869
• Release 1.0 (monthly newsletter). Esther Dyson, Ed., 375 Park
Avenue, New York, NY 10152 (212) 758-3434
• Sixth Generation Systems (monthly newsletter). Derek Stubbs, Ed.,
PO Box 155, Vicksburg, MI, 49097 (616) 649-3592
付録 C: 参考文献
149
150
参考文献
用語集
用語集
151
152
用語に関する詳細については、このマニュアルの索引を参照してくだ
さい。
OptQuest
最適化エンジン (ベストな解の検索を導くアルゴリズム)。OptQuest
の解法は、タブー検索、ニューラル ネットワーク、およびスキャッ
ター検索といった最新のメタヒューリスティク プロシージャを 1 つ
の複合メソッドに統合したものです。
アルゴリズム
特定の種類の問題を解決するための方法を、順を追って数学的に指定
したもの。すべてのコンピューター プログラムは、多くのアルゴリ
ズムの組み合わせで構築されています。
遺伝子型
生物学における遺伝子型とは、個体の遺伝子構造のことです。一般に
この用語は個体の遺伝子を総体したものを指します。遺伝的アルゴリ
ズムの分野においては、問題の 1 つな可能な解として評価される人
工「染色体」のことを意味します。
遺伝的アルゴリ
ズム
いくつかの可能な解を繰り返し試行して、より良い解の構成要素を複
製したり混合することにより、操作の結果を改善するための手順。こ
の処理は、適者生存の法則により生殖が行われる、生物界の進化の過
程に基づいています。
解
すべてのモデルに、1 つの出力を生成する多くの変数が含まれていま
す。Evolver で言う「解」とは通常、変数の唯一の最適な組み合わせ
ではなく、起こりうる変数の組み合わせのうちの 1 つを指します。
解法
Evolver には 6 つの解法が用意されています。各解法には、特定の
種類の問題を解決するためにカスタムのアルゴリズムが使われます。
問題で選択された変数の各セットについて、ユーザーがその処理に使
用する解法を指定する必要があります。利用できる解法には、グルー
ピング、順序、レシピ、予算、プロジェクト、スケジュールがありま
す。
確率性
不確実性やリスク性の類義語です。
→「リスク」、「決定性」を参照
関数
Excel の関数はあらかじめ定義された数式で、入力された値に対して
操作を行い、その結果を返します。Excel には、式の操作に必要な時
間とスペースを節約できる、「SUM」などの数百の数式が組み込まれ
ています。例えば、「A1+ A2+ A3+ A4+ A5+ A6」と入力する代わりに、
「SUM(A1:A6)」と入力するだけで同じ結果を得られます。
極大値
特定の値の範囲内において、特定の関数が取りうる最大値。極大値は、
変数の一部またはすべての値をわずかに変更することで、関数の結果
がそれより少ない量だけ変化する場合に、関数内の変数の一連の値に
対して存在します。
→「大局的な最大値」も参照
用語集
153
交差
遺伝子学における交差とは、分裂中に同種の染色分体間で行われる同
等な遺伝物質の交換のことです。Evolver で言う交差とは、これに相
当する計算処理のことを意味します。変数間の交換により新しいシナ
リオの組み合わせが生成されます。
個体群
Evolver の遺伝的アルゴリズムによってメモリに保管されるシナリオ
のセット全体を指します。この個体群から新しいシナリオが生成され
ます。
最適化
関数の出力が最大化または最小化されるような変数の値を見つける処
理。方程式を解くタイプの最適化は、変数が少なく変動の滑らかな関
数では簡単に行えますが、実世界の問題を処理するのは非常に困難で
す。一般に、困難な問題を解くには検索機構が必要となります。
Evolver では遺伝的アルゴリズムまたは OptQuest 最適化エンジンを
使って最適化が行われます。
試行
Evolver で問題の各変数の値を生成し、シナリオを再計算して評価を
行う処理のことです。
シナリオ
スプレッドシート モデル内の変数の一連の値を指します。通常の場
合、各シナリオが 1 つの可能な解を表します。
ステータス バー
ステータス バーは Excel ウィンドウの下部にあり、Evolver の現在
の状況が表示されます。
制限
制限は、シナリオを有効とみなすために、満たすことが好ましい条件
(ソフト制限)、または満たす必要のある条件 (ハード制限) です。
世代
遺伝的アルゴリズムの分野では、まったく新しい「子孫」の解からな
る個体群のことを、新しい「世代」と呼びます。一部の遺伝的アルゴ
リズム ルーチンでは、個体群の全メンバーを 1 度に掛け合わせ、ま
ったく新しい世代の子孫を生成して前世代の個体群を置き換えます。
Evolver では、1 度に 1 つの個体を評価し置き換える (順位置換)
ので、「世代」という用語は使われません。この定常状態法は、世代
置換と同等の効果があります。
セル
セルは、スプレッドシートにデータを保管するための基本単位です。
ソフト制限
制限を必ずしも満たす必要がない場合には、ハード制限の代わりにソ
フト制限として設定することができます。ソフト制限を設定するには、
Evolver でペナルティ関数を指定するか、ターゲット セルの目標関
数にペナルティ関数を追加します。
ソルバー
(俗語) 線形計画法手法の組み合わせか、基本的な山登り法アルゴリ
ズムを使って、目的の出力を生成するような入力を見つけるためのシ
ンプルなソフトウェア プログラム。ソルバーでは、推測を行った上
で解答を調整しますが、最終的な答えが「大局的」な解ではなく「局
所的」な解となることがよくあります。
154
ターゲット セル
最小化または最大化する必要のある値が入っている、スプレッドシー
ト セル。このセルは [Evolver - モデル] ダイアログで設定します
(Evolver の [モデルの定義] コマンドか、[モデル] アイコンを選択
します)。
ダイアログ
ユーザーからの入力を求めるためにコンピューター画面に表示される
ウィンドウのことを指します。「ダイアログ ボックス」とも呼ばれ
ます。Evolver には [Evolver - モデル] と [調整可能セル] という
2 つの主要なダイアログがあります。
大局的な最大値
特定の関数の、起こりうる最大値。複雑な関数やモデルでは多くの極
大値が存在しても、大局的な最大値は 1 つしか存在しないことがあ
ります。
調整可能セル
ターゲット セルの値を最適化するために、Evolver によって値を調
整できるスプレッドシート セル。調整可能セルは可変の値であり、
式ではなく数値を指定する必要があります。
調整可能セルの
グループ
一連の変数とその処理方法をまとめて、1 つの調整可能セル グルー
プにします。Evolver では、[モデル] ダイアログの変数セクション
にすべての調整可能セル グループが表示されます。このアーキテク
チャにより、複雑な問題を構築して複数の調整可能セル グループと
して表すことが可能になります。
目標関数
特定の問題に対する、提示された解の適応度を求める数式です。遺伝
的アルゴリズムの分野では「適応度関数」とも呼ばれます。
適者生存
適者生存とは、環境への適応度の高い個体ほど生存期間が長くなり、
生殖により個体群の次世代に遺伝子を受け渡す可能性が高い、という
理論のことです。
突然変異
生物界では遺伝子の突然変異によって、効果的な自然淘汰に必要とさ
れる多様性が生まれます。遺伝的アルゴリズムでもこれと同様、突然
変異を使って可能なシナリオの個体群中の多様性を維持します。
ハード制限
常に満たさなければならない制限。例えば、レシピ解法の変数の範囲
にハード制限を適用する場合、10 ~ 20 に範囲が設定された変数に
は、10 未満の値や 20 より大きい値は決して使用できません。
→「ソフト制限」も参照
用語集
155
範囲
Evolver における定義:
Evolver で特定の変数を調整する際に許可される範囲、つまり最大値
と最小値は、ユーザーが設定します。範囲を設定する理由は必ずしも
問題を解決するためではなく、可能な値を制限して Evolver の検索
対象を絞り込むためです。
Excel における定義:
ワークシート内の連続したセルのブロック。範囲を定義するには、左
上隅のセルと右下隅のセルを指定します (例えば、「A5:C9」の範囲
には 15 個のセルが含まれます)。
表現型
生物学では、遺伝子間および遺伝子と環境との間の相互作用により、
目に見える形で現れる個体の特質のことを表現型と呼びます。遺伝的
アルゴリズムの分野においては、表現型は完全な解 (または「染色
体」) を構成する個々の変数 (または「遺伝子」) のことを指します。
→「遺伝子型」を参照
フィールド
データを入力するための基本単位。フィールドには、その種類によっ
てテキスト、画像、数値などのアイテムが含まれます。Evolver のダ
イアログの大半のフィールドは、ユーザーがスプレッドシート セル
の位置または Evolver の動作を指定するオプションを入力するため
に表示されます。
ペナルティ関数
特定の条件を満たさないシナリオにペナルティを課すために Evolver
が使用することのできるスプレッドシート方程式。ペナルティ関数を
使用すると、シナリオの副作用を最小化したり、複数のゴールを達成
するのに役立ちます。ハード制限と異なり、ペナルティ関数は無効な
解の検討を許可しますが、個体群がこれらの解とは離れた方向に進化
するように、そのような解の評価を下げる役割を果たします。ブール
演算子によるペナルティはオンかオフのどちらかになり、無効な解の
すべてに同量のペナルティを適用します。スケーリング ペナルティ
はこれより柔軟性があり、制限の違反の度合いに比例する量のペナル
ティを適用します。
モデル
このマニュアルで言うモデルとは、実世界の状況を Excel で数値に
より表したものを指します。
山登り法アルゴ
リズム
特定のシナリオから開始して、解を改善する方向に繰り返し少しずつ
進めていく最適化の手法。山登り法アルゴリズムはシンプルで処理も
高速ですが、欠点が 2 つあります。まず、改善度が最も大きい方向
を見つけるために多大な処理が必要となる可能性があります。さらに、
一般に山登り法では一番近くの山頂、つまり「極大値」が見つかりま
す。そのため、問題が難しい場合、大局的な最大値が見つからないこ
とがあります。
156
乱数ジェネレー
ター
用語集
乱数ジェネレーターとは、通常 0 から 1 の範囲で乱数を選択するア
ルゴリズムです。これらの乱数は、最小値 0 と最大値 1 の一様分布
から抽出された標本と同等であり、これを特定の分布タイプから抽出
された標本へ変換するその他のルーチンの基盤となります。
→「シード」を参照
157
158
索引
E
Evolver
概要
チュートリアル
利点
Evolver ウオッチャー
Evolver のコンピューターからの削除
Evolver の自己学習
13
9
16
36, 81
7
9
P
Palisade 社
5
あ
アプリケーション設定コマンド
アルゴリズムの定義
77
95
い
遺伝演算子
遺伝子プール
遺伝的アルゴリズム
コンピューターの例
生物の例
利点
70, 71
116
116
114
16
う
ウオッチャー
索引
36, 81
159
え
演算子
70, 71
お
「お読みください (README)」ファイル
9
か
解の地形
解法
グルーピング
スケジュール
制限としての解法
予算
レシピ
画面の再描画
画像
96
50
54
122
52
49
34
き
技術仕様
局所的な解
~と大局的な解
133
100
く
グラフ
グラフの進行状況
画像
グルーピング解法
説明
36, 82
34
50
こ
交差率
機能
実装方法
ゴールが複数ある問題
160
68, 84, 115
68
134
130
さ
最適化
概要
手法
最適化ゴール
最適化実行詳細オプション
15
95
25, 44
64
し
時間
順列組み合わせの問題
処理速度、向上
進行状況ウィンドウ
シンプレックス手法
64
106
131
75
102
す
スケジュール解法
説明
ステータス バー
54
81, 154
せ
制限
実装
制約ソルバー コマンド
世代置換
使用しない理由
線形の問題
選択ルーチン
129
135
78
133
102
133
そ
ソフト制限
28, 58, 59, 124
た
ターゲット セル
大局的な解
~と局所的な解
索引
25, 44, 155
100
161
ち
置換方法
チュートリアル
調整可能セル
135
9
25, 45
つ
追加 - 制限の追加
57
て
停止条件
概要
データベース
テーブルベースの問題
64
32
104
104
と
突然変異率
機能
実装方法
84
68
135
は
ハード制限
バックトラック
28, 57
135
ひ
非線形の問題
103
へ
ペナルティ関数
使用
説明
例
162
129
125
128
も
目標関数
モデル ダイアログ
問題
順列組み合わせ
線形
テーブルベース
非線形
21, 44
24, 43
106
102
104
103
や
山登り法
説明
ソルバーでの使用
103
100
よ
用語集
予算解法
説明
152
52
れ
レシピ解法
説明
索引
49
163
164