Palisade EVOLVER 5.5 User Manual [ja]

ユーザー ガイド
Evolver
遺伝的アルゴリズムを使った
Microsoft Excel 解決ツール
アドイン
バージョン 5.5
Palisade Corporation 798 Cascadilla St. Ithaca, NY 14850 USA +1-607-277-8000 +1-607-277-8001 (fax)
http://www.palisade.com (Web サイト) sales@palisade.com (電子メール)
著作権表記
Copyright © 2010, Palisade Corporation.
商標について
Microsoft、Excel、Windows は Microsoft Corporation の登録商標です。 IBM は International Business Machines, Inc. の登録商標です。 Palisade、Evolver、TopRank、BestFit、RISKview は Palisade Corporation の登録商標 です。 RISK は Tonka Corporation の一部である Parker Brothers の商標であり、商標保有者 の許可を元に使用されています。
目次
第 1 章: はじめに 1
はじめに................................................... 3
インストール方法 ........................................... 7
第 2 章: Evolver について 11
Evolver について .......................................... 13
第 3 章: Evolver: ステップバイステップ 19
はじめに.................................................. 21
Evolver の基本操作 ........................................ 23
第 4 章: 実用例 41
はじめに.................................................. 43
広告ミックス .............................................. 45
アルファベット順の並べ替え ................................ 47
タスクの割り当て .......................................... 49
ベーカリー................................................ 51
予算の配分................................................ 53
化学平衡.................................................. 55
授業のスケジュール ........................................ 57
目次 i
コードのセグメント化 ...................................... 59
ノースダコタ: 制限付きの経路判断........................... 63
製作工場のスケジュール..................................... 65
ラジオ塔の配置 ............................................ 67
ポートフォリオの分散 ...................................... 69
ポートフォリオの配分 ...................................... 71
ラジオ送信機 .............................................. 73
購入判断 .................................................. 75
巡回セールスマンの問題..................................... 77
スペースシャトル .......................................... 79
証券トレーダー ............................................ 81
変圧器 .................................................... 83
輸送費 .................................................... 85
第 5 章: Evolver リファレンス ガイド 87
[モデルの定義] コマンド.................................... 89
[最適化設定] コマンド .................................... 113
[最適化の開始] コマンド................................... 119
[ユーティリティ] コマンド................................. 121
Evolver ウオッチャー ..................................... 125
第 6 章: 最適化 135
最適化の手法 ............................................. 137
Excel ソルバー ........................................... 143
ii
問題の種類............................................... 147
第 7 章: 遺伝的アルゴリズム 151
はじめに................................................. 153
歴史的背景............................................... 153
生物の例................................................. 157
コンピュータの例 ......................................... 159
第 8 章: Evolver のその他の機能 163
制限の追加............................................... 165
処理速度の改善 ........................................... 175
Evolver の最適化の実装 ................................... 176
付録 A: Evolver の自動化 179
付録 B: トラブルシューティングと Q&A 181
トラブルシューティングと Q&A ............................. 181
付録 C: 参考文献 185
参考文献................................................. 185
用語集 191
索引 199
目次 iii
iv

第 1 章: はじめに

はじめに................................................... 3
インストールの前に ....................................... 3
製品パッケージの確認 ..................................... 3
このバージョンについて ................................... 3
ご利用のオペレーティング環境での作業 ..................... 4
サポートについて ......................................... 4
お問い合わせの前に ................................ 4
Palisade へのお問い合わせ.......................... 5
ステューデント版 .................................. 6
Evolver システム必要条件 ................................. 6
インストール方法 ........................................... 7
一般的なインストール方法 ................................. 7
Evolver のコンピュータからの削除................... 7
DecisionTools Suite ...................................... 8
Evolver アイコンおよびショートカットの設定................ 8
起動時に表示されるマクロのセキュリティ警告メッセージ...... 9
Evolver に関する追加の情報 .............................. 10
Evolver の「お読みください (Readme)」............. 10
Evolver の自己学習 ............................... 10
Evolver の自己学習 ...................................... 10
第 1 章: はじめに 1
2

はじめに

Evolver は一般市場で現在入手できる製品のうち、最も高速で高機能 な遺伝的アルゴリズム ベースの最適化ツールです。Evolver は、遺 伝的アルゴリズム (GA: Genetic Algorithm) に基づく強力な最適化 手法を用いて、線形処理や非線形処理による一般の最適化ツールでは 解くことのできない問題を解決できます。Evolver は、ニーズに合わ せてプロフェッショナル版とインダストリアル版の 2 種類から選択 することができます。
この『Evolver ユーザー ガイド』では、まず Evolver とその仕組み について概要を説明した後、Evolver 特有の遺伝的アルゴリズムを用 いた最適化の実用例をいくつか紹介します。このマニュアルは、 Evolver の各機能の説明が記載された索引付きリファレンス ガイド としてご利用いただくこともできます。

インストールの前に

Evolver をインストールして使用する前に、Evolver の製品パッケー ジに必要なものがすべて含まれているか確かめ、お使いのコンピュー タが特定用途の最小要件を満たしていることを確認してください。

製品パッケージの確認

Evolver は、独立した製品として購入する場合と、DecisionTools Suite プロフェッショナル版またはインダストリアル版の一部として 出荷される場合があります。 Evolver CD-ROM には、Evolver Excel アドイン、Evolver のサンプル ファイル、および索引付きの Evolver オンライン ヘルプ システムがそれぞれ含まれています。 DecisionTools Suite プロフェッショナル版およびインダストリアル 版には、上記すべてとさらに追加のアプリケーションが含まれていま す。

このバージョンについて

このバージョンの Evolver は、Microsoft Excel 2000 またはそれ以 降に 32 ビット プログラムとしてインストールできます。
第 1 章: はじめに 3

ご利用のオペレーティング環境での作業

このユーザー ガイドは、Windows オペレーティング システムおよび Excel についての一般的な知識がある読者を対象としています。特に 以下の知識が必要です。
ご利用のコンピュータ、およびマウスの使い方に精通してい
ること。
アイコン、クリック、ダブルクリック、メニュー、ウィンド
ウ、コマンド、およびオブジェクトといった用語に精通して いること。
ディレクトリ構造やファイルの命名といった、基礎的な概念
を理解していること。

サポートについて

テクニカル サポートは、有効なメンテナンス プランをお持ちの Evolver 登録ユーザー様に対して無償で、あるいはインシデントごと に有償で 提 供 して おり ま す。 Evolver 登録ユーザーになるには、 http://www.palisade.com/support/register.asp にてオ ンライン登 録を行ってください。
電話でのお問い合わせの際には、あらかじめ製品のシリアル番号とユ ーザー ガイドを手元にご用意ください。また、コンピュータで作業 できる状態でご連絡いただければ、さらに効果的なテクニカル サポ ートを受けることができます。
お問い合わせの 前に
4 はじめに
テクニカル サポートへのお問い合わせの前に、次の事柄をご確認く ださい。
オンライン ヘルプを参照しましたか?
本ユーザー ガイドを確認し、オンライン マルチメディア チュ
ートリアルの内容を参照しましたか?
「お読みください」(README.WRI) ファイルを読みましたか?こ
のファイルには、マニュアルに収録されていない、Evolver に関 する最新情報が記載されています。
問題となっている障害は再現することが可能ですか?また、別の
コンピュータやモデルでも問題点を再現することは可能ですか?
弊社の Web サイトをご覧になりましたか?弊社サイトの URL ア
ドレスは http://www.palisade.com です。Web サイトのテクニ カル サポートのセクションには、最新の FAQ (テクニカル サポ ートに寄せられた質問とその回答集を収録した検索可能なデータ ベース) と Evolver ソフトウェア用のパッチが掲載されていま す。Evolver およびその他の Palisade ソフトウェアの最新情報
をいち早く入手できるよう、弊社のサイトには定期的にアクセス されることをお勧めします。
Palisade へのお 問い合わせ
Palisade 社では、Evolver に関するご質問、ご意見、およびご提案 をお待ちしております。テクニカル サポートには、以下のいずれか の方法でご連絡いただけます。
電子メール: support@palisade.com
電話: +1-607-227-8000 (米国)、米国東海岸時間平日午前 9 時
から午後 5 時まで。テクニカル サポートへの電話案内の指示に 従ってください。
ファックス: +1-607-227-8001 (米国)
郵便:
Technical Support Palisade Corporation 798 Cascadilla St Ithaca, NY 14850 USA
Palisade Europe へのお問い合わせ:
電子メール: support@palisade-europe.com
電話: +44 1895 425050 (英国)
ファックス: +44 1895 425051 (英国)
郵便:
Palisade Europe 31 The Green West Drayton Middlesex UB7 7PN United Kingdom
Palisade Asia-Pacific へのお問い合わせ:
電子メール: support@palisade.com.au
電話: +61 2 9929 9799 (オーストラリア)
ファックス: +61 2 9954 3882 (オーストラリア)
郵便:
Palisade Asia-Pacific Pty Limited Suite 101, Level 1 8 Cliff Street Milsons Point NSW 2061 Australia
第 1 章: はじめに 5
いずれの方法でお問い合わせいただく場合でも、必ず製品名、正確な バージョン番号、およびシリアル番号をご連絡ください。正確なバー ジョンは、Excel の Evolver メニューから [Evolver について] コ マンドを選択することで確認できます。
ステューデント 版
ステューデント版の Evolver に対する電話サポートは提供しており ません。サポートが必要な場合は、以下の方法をご検討ください。
担当の教授または教育助手に相談する。 http://www.palisade.com にアクセスして FAQ を参照する。電子メールまたはファックスで弊社のテクニカル サポート部
門に連絡する。

Evolver システム必要条件

Evolver の必要システム条件は以下のとおりです。
ハードディスクが備わった Pentium 以上のパーソナル コンピュ
ータ
Microsoft Windows 2000 SP4 またはそれ以降
Microsoft Excel バージョン 2000 またはそれ以降
6 はじめに

インストール方法

Evolver は、Microsoft Excel のアドイン プログラムです。Evolver は Excel のメニュー バーにコマンドを追加して、スプレッドシート プログラムの機能を強化します。

一般的なインストール方法

Evolver のセットアップ プログラムは、ユーザーが指定したハード ディスク上のディレクトリに Evolver システム ファイルをコピーし ます。Windows 2000 およびそれ以降でのセットアップ プログラム実 行方法は、以下のとおりです。
1) CD-ROM ドライブに Evolver あるいは DecisionTools Suite プ
ロフェッショナル版またはインダストリアル版の CD-ROM を挿入 します。
2) [スタート] ボタンをクリックし、[設定] > [コントロール パネ
ル] をクリックします。
3) [プログラムの追加と削除] アイコンをダブルクリックします。
4) [インストール/アンインストール] タブの [インストール] ボタ
ンをクリックします。
5) 画面に表示されるセットアップ手順に従います。
Evolver のインストール中に問題が発生する場合は、インストール対 象のドライブに十分な空きスペースがあることを確認してください。 十分な空きスペースが確保できたら、再度、インストール手順を実行 してください。
Evolver のコン ピュータからの 削除
第 1 章: はじめに 7
ご利用のコンピュータから、 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 ディレクトリ (デフォルト名「Evolver5」) です。このディレクトリには、Evolver アドイン プログラム ファイ ル (EVOLVER.XLA) に加えて、サンプル モデルおよび、Evolver を実 行するために必要な関連ファイルが含まれています。Program Files\Palisade には、SYSTEM というサブディレクトリも作成されま す。このディレクトリには、共通のヘルプ ファイルやプログラム ラ イブラリなど、DecisionTools Suite のすべてのプログラムで必要と されるファイルが含まれています。

Evolver アイコンおよびショートカットの設定

Evolver のセットアップ プログラムは、タスクバーのプログラム メ ニューに、Evolver コマンドを自動的に作成します。ただし、セット アップ作業中に問題が発生した場合、あるいは、後日このコマンドを 手動で作成する場合は、以下の手順に従います。
1) [スタート] ボタンをクリックし、[設定] を選択します。
2) [タスク バーと [スタート] メニュー] をクリックし、[[スター
ト] メニュー] タブをクリックします。
3) [カスタマイズ]、[追加] の順にクリックし、[参照] をクリック
します。
4) EVOLVER.EXE ファイルを見つけてダブルクリックします。
5) [次へ] をクリックし、プログラムのショートカットを保存する
メニューをダブルクリックします。
6) 名前として「Evolver」と入力し、[完了] をクリックします。
8 インストール方法

起動時に表示されるマクロのセキュリティ警告メッ セージ

Microsoft Office には、Office アプリケーション上で不要なマクロ、 または悪意をもって作成されたマクロが実行されるのを防止するため に、さまざまなセキュリティ設定 ([ツール] > [マクロ] > [セキュ リティ]) が用意されています。最低限のセキュリティ設定を使用し ない限り、マクロ付きのファイルを読み込むたびに警告メッセージが 表示されます。Palisade 社のアドインを実行するたびにこのような メッセージが表示されることを防ぐため、Palisade では自社のアド イン ファイルにデジタル署名を付与しています。したがって、いっ たん Palisade Corporation を信頼できる作成元として登録すれば、 Palisade 社のすべてのアドインを警告メッセージの表示なしに開く ことができます。以下の手順に従ってください。
z Evolver の起動時に、次のような [セキュリティの警告] ダイア
ログが表示されたら、[この発行者のドキュメントをすべて信頼 する] ラジオ ボタンをオンにします。
第 1 章: はじめに 9

Evolver に関する追加の情報

Evolver に関する追加の情報は、以下の方法で入手できます。
Evolver の「お 読みください (Readme)」
Evolver の自己 学習
このファイルには、Evolver の概要と、最新バージョンに関する新し い情報が記載されています。「お読みください」ファイルを表示する には、Windows の [スタート] メニューから [プログラム] > [Palisade DecisionTools] > [Readmes] を選択し、[Evolver 5.0 ­お読みください] をクリックします。Evolver をお使いになる前に、 このファイルの内容を確認することをお勧めします。
Evolver オンライン チュートリアルでは、Evolver を初めて利用さ れるユーザーを対象に、Evolver および遺伝的アルゴリズムの概要に ついて説明しています。このチュートリアルはごく短時間で修了でき ます。チュートリアルへのアクセス方法については、次の「Evolver の自己学習」セクションを参照してください。

Evolver の自己学習

Evolver の使い方を素早く習得するには、オンラインの Evolver チ ュートリアルを利用するのが一番簡単です。このムービー形式のチュ ートリアルでは、エキスパートがサンプル モデルを使って基礎を紹 介しています。このチュートリアルは、Evolver の主要機能について 解説したマルチメディア プレゼンテーションです。
チュートリアルを実行するには、Evolver [ヘルプ] メニューの [基 礎チュートリアル] コマンドを選択します。
10 インストール方法

第 2 章: Evolver について

Evolver について .......................................... 13
Evolver の仕組み ........................................ 14
遺伝的アルゴリズム ............................... 14
最適化について .......................................... 15
Excel でモデルを構築する理由 ............................ 16
Evolver の利点 .......................................... 16
推測が不要になる ................................. 16
より正確で意味のある分析.......................... 17
優れた柔軟性 ..................................... 17
高機能 ........................................... 17
使いやすさ ....................................... 18
コスト効率 ....................................... 18
第 2 章: Evolver について 11
12

Evolver について

Evolver ソフトウェア パッケージを使用して、あらゆるタイプの問 題に対する最適な解を簡単に見つけることができます。Evolver は、 目標とする出力を得るために最も適した入力を判断するためのツール です。例えば Evolver を使って、利益を最大限にしたりリスクを最 小限に抑えるための最適な条件の組み合わせや順序を判断したり、最 小量の原料から得ることのできる最大商品数などを求めることができ ます。Evolver は Microsoft Excel スプレッドシート プログラムの アドインとして機能します。まず Excel を使って問題のモデルを設 定してから、Evolver でその問題を解決します。
まず Excel で問題のモデルを作成してから、Evolver アドインで解決します。
Excel は、問題の実用的なモデルを作成するために大半のユーザーが 必要とする、すべての数式、関数、グラフ、およびマクロ機能を提供 します。Evolver 指定するためのインターフェイスおよび、その解を見つけるためのエ ンジンを提供します。この 2 つのプログラムを連携させることによ り、実質的にモデル化が可能なすべての問題 ことが可能になります。
第 2 章: Evolver について 13
は、モデルに含まれる不確実性と、探している解を
に対する答えを見つける

Evolver の仕組み

Evolver は、Palisade 社独自の一連の遺伝的アルゴリズムを使用し て問題の最適な解を検索し、確率分布とシミュレーションを用いてモ デルに含まれる不確実性に対応します。
遺伝的アルゴリ ズム
Evolver では、モデルの最適な解を見つけるために遺伝的アルゴリズ ムを使用しています。遺伝的アルゴリズムはダーウィンの進化論の原 理を模倣したもので、ある問題に対して何百もの起こりうる解が存在 する中で、これらが互いに競争し合った結果「適者」のみが生存する ような環境を作り出します。生物の進化と同じように、各解がその優 れた「遺伝子」を子孫の解に受け渡し、解の集団全体がさらにより良 い解へと進化し続けていきます。
遺伝的アルゴリズムの分野では、その基盤である進化論の分野と似た 用語がよく使われます。例えば、「交差」関数を使って解の検索を絞 り込む、「突然変異」率により「遺伝子プール」の多様化を促進する、 解または「個体」の「個体群」全体を評価する、などという言い方を します。Evolver の遺伝的アルゴリズムの仕組みについて詳しくは、 「第 7 章: 遺伝的アルゴリズム」を参照してください。
14 Evolver について

最適化について

最適化とは、数多くの起こりうる解の中から最適なものを見つけ出す 過程のことです。通常の場合、問題には特定の数式や制限に基づいて 相互に作用する、多くの変数が関与しています。例えば、それぞれ異 なる数量の複数の商品を生産している 3 つのプラントを所有する企 業があると想定します。各商品の生産費、各プラントから各店舗への 出荷コスト、そして各プラントの制限を前提とした場合、運送費を最 小限に抑えた状態で各地のリテール店舗の需要を満たすには、どのよ うな生産方法が一番適しているでしょうか。最適化ツールは、こうし たタイプの問題を解決するために設計されています。
一般的な最適化では、特定のリソースを前提とした場合に
最高の利益につながる組み合わせを見つけます。
上記の例で可能な各解は、どのプラントがどの商品を生産しており、 それがどのトラックでどのリテール店舗に運送されるかを完全に指定 したリストで構成されます。最適化の問題のその他の例としては、利 益を最大限にする方法、コストを最小化する方法、最多数の人命を救 助する方法、回路のノイズを最小化する方法、一連の都市間の経路を 最短化する方法、そして最も効果のある広告メディアの購入ミックス の判断、などが挙げられます。また、最適化の問題の重要なカテゴリ として、スケジュール管理が挙げられます。これには、特定の勤務シ フト中の効率の最大化や、さまざまなグループの会議時間の予定重複 を最小化する問題などが含まれます。最適化について詳しくは、「第 6 章: 最適化」を参照してください。
第 2 章: Evolver について 15

Excel でモデルを構築する理由

どのような体系であっても、その効率を上げるには、まずその動作を 理解する必要があります。体系のモデルを構築する理由は、ここにあ ります。複雑な体系を調査する場合、これを抽象化したモデルが必要 となりますが、そのモデルから実世界に通用する結果を得るには、変 数間の因果関係を単純化し過ぎないことが肝心です。今日ではソフト ウェアの機能改善やプロセッサ処理能力の向上により、経済学者は経 済のより現実的なモデルを構築し、科学者は化学反応の予測精度を高 め、またビジネスマンは企業モデルの感度をより高めることが可能に なっています。
この数年間でコンピュータ ハードウェアおよび Microsoft Excel な どのソフトウェア プログラムが飛躍的な進歩を遂げ、パーソナル コ ンピュータさえあれば誰もが複雑な体系の現実的なモデルを構築でき るようになりました。Excel の組み込み関数、マクロ機能、そしてク リーンでわかりやすいインターフェイスを使えば、初心者であっても 複雑な問題のモデル化と分析を簡単に行うことができます。モデルに ついて詳しくは、「第 8 章: Evolver のその他の機能」を参照して ください。

Evolver の利点

Evolver 特有の技術によって、パーソナル コンピュータと Windows 版 Excel さえあれば最適化ツールを利用して問題を解決することが できます。Evolver が発売される以前には、生産効率を上げたり最適 な解を見つけ出す方法としては、機能の劣る問題最適化ソフトウェア を使う、推測する、最適化を専門とするコンサルタントに依頼してカ スタムのソフトウェアを設計・作成する、という 3 つのオプション に限られていました。Evolver の主な利点としては次のようなものが あります。
推測が不要にな る
16 Evolver について
相互に作用する多くの変数を前提として、これらの変数の最適な組み 合わせ、順位、またはグループ分けを判断する必要がある場合、人は つい知識と経験に基づく推測をしがちです。そして、単なる推測にと どまらずモデル化や分析を行うためには、複雑なプログラミングや難 解な統計または数学的なアルゴリズムが必要だと思っている人も沢山 います。優れた最適な解が見つかれば、数億円の資金や、大量の燃料、 また数ヶ月分の作業時間を節約することが可能になります。高速なデ スクトップ コンピュータを安価で入手でき、Excel や Evolver とい ったソフトウェアも手軽に購入できるようになった今日では、単なる 推測だけに頼ったり、貴重な時間を割いて手作業で多くのシナリオを 試したりする必要はありません。
より正確で意味 のある分析
Evolver では Excel のすべての数式とマクロを使用して、あらゆる 問題のより現実的なモデルを構築できます。Evolver を使用する場合、 特定のアルゴリズムが実世界の複雑さに対処できないためにモデルの 精度が落ちる、ということはありません。従来の一般的なソルバー (統計および線形プログラミング ツール) では、ユーザーが問題の変 数間の相互作用について無理に推測する必要があるため、結果として 極度に単純化された非現実的なモデルが出来上がります。これらの解 決ツールで対応できるレベルにまで問題を単純化してしまうと、得ら れる解も抽象化された非実用的なものとなります。そして、問題に多 くの変数、非線形関数、ルックアップ テーブル、if-then 文、デー タベース クエリー、または確率的 (ランダム) な要素が含まれてい る場合には、モデルをいかに単純化したとしても、こうしたツールで 問題を解決することは不可能です。
優れた柔軟性
高機能
シンプルで規模の小さい線形・非線形タイプの問題を処理できる解決 アルゴリズムは数多くあります。これには、山登り法やソルバー、そ の他の数学的方法が含まれます。こうした汎用の最適化ツールはスプ レッドシートのアドインとして提供されていますが、処理の対象とな るのは数値計算による最適化に限られます。より複雑で規模の大きい 問題の場合、特定のカスタム アルゴリズムを作成することで良い結 果を得ることができたとしても、これには多くの調査や開発努力が必 要となります。また、このような方法で作成したプログラムは、モデ ルが変化するごとに変更を加える必要があります。
Evolver では、数値計算の問題を処理できるだけでなく、一般に市販 されている世界で唯一のプログラムとして、ほとんどの順列組み合わ せ問題を解決することができます。組み合わせ問題には、さまざまな 順列や組み合わせを試す必要のある変数が含まれています。例えば、 野球チームの打順決定は、選手がバッター ボックスに入る順番を決 める順列組み合わせ問題です。また、複雑なスケジュール管理も順列 組み合わせ問題の 1 つです。Evolver があれば、このようにほかの ツールでは対処が不可能なさまざまなタイプの問題を、1 つのツール で解決することができます。Evolver 独自の遺伝的アルゴリズムによ り、ほぼあらゆるタイプ、サイズ、そして複雑度のモデルを最適化す ることが可能です。
Evolver を使用すればさらに優れた解を見つけ出すことができます。 大半のソフトウェアは数学的かつ体系的な手法により最適な解を求め ます。これらの手法では、既存の解に基づいてより優れた一番近い解 を検索することしかできません。しかしこのような「局所的」な解は、 実際の最適解とはかけ離れていることがあります。Evolver では、イ ンテリジェントな方法により可能性のある領域全体から標本を抽出す るため、一段と優れた「大局的」な解を見つけることができます。
第 2 章: Evolver について 17
使いやすさ
Evolver は強力な機能と優れた柔軟性を備えていますが、その基盤と なる複雑な遺伝的アルゴリズムを用いた手法をユーザーが理解する必 要はまったくなく、使い方はごく簡単です。Evolver にいわゆる問題 の「要点」を理解させる必要はありません。必要なのは、各シナリオ の適性を評価できるスプレッドシート モデルを指定するだけです。 変数が入っているスプレッドシート セルを選択し、探している答え を Evolver に指定します。Evolver を使用するのに難しい技術を理 解する必要は一切なく、問題分析における仮説の処理を自動的に行う ことができます。
数学的プログラミングおよびモデル構築用に開発されたプログラムは いくつも市販されていますが、スプレッドシートは毎月何百万という ユーザーが購入する、最もよく使われるプログラムです。行と列を使 ったわかりやすい形式を採用したスプレッドシートには、ほかの専用 製品よりも設定や管理がしやすいという利点があります。さらに、ワ ードプロセッサやデータベースといったほかのプログラムとの互換性 にも優れ、どのスタンドアロン型製品よりも多くの数式、書式設定オ プション、グラフ オプション、およびマクロ機能が用意されていま す。Evolver は Microsoft Excel のアドインとして機能するので、 多様な関数や開発ツールを利用して問題の現実的なモデルを手軽に構 築することができます
コスト効率
多くの企業では、専門家に依頼してカスタムの最適化システムを構築 しています。このようなシステムは優れたパフォーマンスを発揮しま すが、その開発と導入には何か月もの時間と大規模な投資が必要です。 また、カスタムのシステムは使い方が難しいために多額のトレーニン グ費用を必要とし、日々のメンテナンスも欠かせません。さらに、い ったん構築したシステムに変更を加える場合、最適な解を求めるため のまったく新しいアルゴリズムを開発する必要が出てくることも多々 あります。これに対して Evolver を利用すれば、今日市販されてい る最も強力な遺伝的アルゴリズムが低コストで手に入り、さまざまな タイプの問題について迅速で正確な解を得ることが可能になります。 使い慣れたわかりやすい作業環境で使用できるので、トレーニングや メンテナンス費用もほぼ不要です。
また、Evolver の最適化機能を自社のカスタム プログラムに取り入 れたい場合には、Visual Basic を使って専用のスケジュール管理、 製造、そして財務管理システムを短時間で開発することができます。 Evolver ベースのアプリケーションを開発する方法の詳細については、 Evolver デベロッパー キットを参照してください。
18 Evolver について

第 3 章: Evolver: ステップバイ ステップ

はじめに.................................................. 21
Evolver の基本操作 ........................................ 23
Evolver の起動 .......................................... 23
Evolver ツールバー ............................... 23
サンプル モデルを開く ............................ 23
[Evolver - モデル] ダイアログ ........................... 24
ターゲット セルの選択 ................................... 25
調整可能セルの範囲の追加 ................................ 25
解法の選択 ....................................... 27
制限 .................................................... 28
制限の追加 ....................................... 29
シンプルな値の範囲と数式による制限................ 29
その他の Evolver オプション ............................. 32
停止条件 ......................................... 32
[表示] タブのオプション........................... 34
最適化の実行 ............................................ 35
Evolver ウオッチャー ............................. 36
最適化の停止 ..................................... 37
概要レポート ..................................... 38
結果によるモデルの更新............................ 39
第 3 章: Evolver: ステップバイステップ 19
20

はじめに

この章では、Evolver の最適化の処理全体についてステップごとに解 説します。ハードディスクに Evolver がインストールされていない 場合、このチュートリアルを始める前に、まず「第 1 章: はじめ に」のインストール方法を参照して Evolver をインストールしてく ださい。
このチュートリアルでは、事前作成されたスプレッドシート モデル を開き、確率分布と Evolver のダイアログを使って Evolver に問題 を指定します。その後、Evolver が解を検索する間に進行状況を確認 し、Evolver ウオッチャーのいくつかのオプションについて考察しま す。特定のトピックについて詳しくは、このマニュアルの索引または、 「第 5 章: Evolver リファレンス ガイド」を参照してください。
注意:以下の画面は Excel 2007 の例です。それ以外のバージョンの Excel ではウィンドウの表示が若干異なる場合があります。
問題を解決するには、まずその問題を正確に表せるモデルが必要です。 このモデルは、特定の一連の入力値 (調整可能セル) を評価して、こ れらの入力により問題がどの程度解決されるかを示す数値 (評価、ま たは「適応度」関数) を生成できなければなりません。Evolver が解 を探す間、この適応度関数によって各推測の適応度についてのフィー ドバックを Evolver に返し、Evolver がさらに優れた推測を行える ようにします。問題のモデルを作成する際には、この適応度関数に十 分注意する必要があります。Evolver は、このセルの値を最大化また は最小化できるような最適な解を探します。
第 3 章: 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.XLS」ワークシートを開 きます。
第 3 章: Evolver: ステップバイステップ 23
このサンプル シートには、ベーカリーを経営するためのシンプルな 利益最大化問題が設定されています。このベーカリーでは 6 種類の パンを作っています。ここでは売上高、コスト、および生産利益を管 理するベーカリーのマネージャとして、生産限度のガイドラインを満 たす範囲内で利益を最大限にするには各種類のパンをそれぞれ何ケー ス生産すればよいかを判断することにします。生産限度のガイドライ ン項目は以下のとおりです。1) 低カロリー パンの特定数量を生産す ること。2) 高ファイバー パンと低カロリー パンの比率を特定範囲 内に保つこと。3) 5 グレイン パンと低カロリー パンの比率を特定 範囲内に保つこと。4) 生産時間を特定の所要人時限度内に留めるこ と。

[Evolver - モデル] ダイアログ

このワークシート用に Evolver のオプションを設定するには、次の 手順を行います。
1) Evolver ツールバーの一番左にある Evolver モデルのアイコン
をクリックします。
[Evolver - モデル] ダイアログ ボックスが表示されます。
[Evolver - モデル] ダイアログは、問題をわかりやすく簡潔に指定 できるように設計されています。このチュートリアルの例では、全体 的な利益を最大限にするために、各種類のパン製品を何ケースずつ生 産したらよいかを判断しようとしています。
24 Evolver の基本操作

ターゲット セルの選択

サンプル モデルにある「合計利益」というセルが、いわゆるターゲ ット セルです。ターゲット セルには、最小化または最大化しようと している値、または、あらかじめ設定された値にできるだけ近づける 必要のある値が含まれています。ターゲット セルを指定するには、 次の手順を行います。
1) [最適化ゴール] オプションを [最大] に設定します。
2) [セル] フィールドに、ターゲット セル「$I$11」を入力しま
す。
Evolver ダイアログのフィールドにセル参照を入力する方法は 2 つ あります。1) カーソルでフィールドをクリックし、フィールド内に 直接参照を入力します。または、2) 選択したフィールドにカーソル を置いた状態で、[参照入力] アイコンをクリックして、マウスで直 接ワークシート セルを選択します。

調整可能セルの範囲の追加

次に、Evolver が解を見つけるために調整することのできる値を含む セルの場所を指定する必要があります。これらの変数の追加と編集は、 [モデル] ダイアログの [調整可能セルの範囲] セクションを使って 1 ブロックずつ行います。[調整可能セルの範囲] に入力できるセル の数は、お使いの Evolver のバージョンによって異なります。
1) [調整可能セルの範囲] セクションの [追加] ボタンをクリック
します。
2) 調整可能セルとして追加する セルとして、 Excel で $C$4:$G$4
を選択します。
調整可能セルの 最小 - 最大範囲 の入力
第 3 章: Evolver: ステップバイステップ 25
通常の場合は調整可能セルの取りうる値を、最小 - 最大の範囲を指 定して制限する必要があります。Evolver ではこの制限のことを「範 囲」制限と呼びます。この最小 - 最大の範囲は、一連の調整可能セ ルを選択して、簡単に入力できます。ベーカリーの例では、生産でき る各種類のパンのケース数の最小値が 0、最大値が 100,000 です。 この範囲制限を入力するには、次の手順を行います。
1) [最小] セルに 0 を入力し、[最大] セルに 100,000 を入力し
ます。
2) [値] セルのドロップダウン リストから [整数] を選択しま
す。
次に、2 番目の調整可能セル範囲を入力します。
1) [追加] をクリックして 2 番目の調整可能セルを入力します。
2) セル B4 を選択します。
3) [最小] に 20,000、[最大] に 100,000 を入力します。
すると低カロリー パンの生産レベルを示す最後の調整可能セル B4 が指定されます。
ほかにも追加の変数がある場合は、ここで一連の調整可能セルの入力 を続けます。Evolver で作成できる調整可能セルのグループの数に制 限はありません。セルをさらに追加するには、[追加] ボタンをクリ ックします。
26 Evolver の基本操作
一度設定した調整可能セルを、後日あらためて確認したり変更したり する場合もあります。これには、テーブル内で最小 - 最大の範囲を 編集します。また、一連のセルを選択してから [削除] ボタンをクリ ックすると、セルを削除できます。
解法の選択
調整可能セルを定義するときに、使用する解法を指定できます。調整 可能セルのタイプによって、それぞれ異なる解法により処理されます。 解法は調整可能セルのグループに対して設定します。解法を変更する には、[グループ] ボタンをクリックして [調整可能セルのグループ 設定] ダイアログ ボックスを表示します。デフォルト値の [レシピ] 解法は、一般によく使用される解法で、各セルの値をほかのセルとは 独立した値として変更できます。この解法はデフォルトとしてすでに 選択されています。
最もよく使われる解法は [レシピ] と [順序] です。この 2 つを一 緒に使用して、複雑な順列組み合わせ問題を解くことができます。 「レシピ」解法は、各変数をレシピの材料として扱い、各変数の値を 個別に変更することにより、「ベストな組み合わせ」を探し出します。 これに対して「順序」解法は、変数間で値をスワップして、初期の値 の位置を動かすことで「ベストな順序」を探し出します。
このモデルでは解法は [レシピ] のままにし、次の手順を行います。 [説明] フィールドに「生産ケース数」と入力します。
第 3 章: Evolver: ステップバイステップ 27
制限
Evolver では制限を入力できます。制限とは、解を有効とみなすには 満たされなければならない条件のことです。このサンプル モデルで は、各種類のパンの生産レベルの可能な組み合わせが有効とみなされ るには、3 つの追加の制限を満たす必要があります。これらの制限は、 調整可能セルに対して入力した範囲制限とは別個のものです。ここで 使用する制限は次のとおりです。
1) 高ファイバー パンと低カロリー パンの比率を許容範囲内に保つ
(高ファイバーの生産ケース数 >= 1.5 * 低カロリーの生産ケー ス数)
2) 5 グレイン パンと低カロリー パンの比率を許容範囲内に保つ
(5 グレインの生産ケース数 >= 1.5 * 低カロリーの生産ケース 数)
3) 生産時間を所要人時制限内に留める (合計所要人時 < 50,000)
Evolver でモデルの起こりうる解を生成するたびに、ここで入力した 制限が満たされているかが確認されます。
制限は [Evolver - モデル] ダイアログの下部にある [制限] セクシ ョンに表示されます。Evolver では次の 2 種類の制限を指定できま す。
ハード制限。ハード制限は、解を有効とみなすには満たさなけれ
ばならない条件です。(例えば、ハードな反復試行制限として C10<=A4 という条件を指定すると、解で生成された C10 の値が セル A4 の値より大きい場合はその解が破棄されます。)
ソフト制限。ソフト制限は、できる限り満たすことが望ましい
条件ですが、適応度やターゲット セルの結果が大きく改善され る場合には妥協することが可能なものです。(例えば、ソフト制 限として C10<100 と指定すると、C10 の値が 100 を超えること は可能ですが、その場合はターゲット セルの計算値が所定のペ ナルティ関数に基づいて減算されます。)
28 Evolver の基本操作
制限の追加
シンプルな値の 範囲と数式によ る制限
制限を追加するには、次の手順を行います。
1) Evolver のメイン ダイアログの [制限] セクションにある [追
加] ボタンをクリックします。
モデルの制限を入力するための [制限設定] ダイアログ ボックスが 表示されます。
制限の入力には、「シンプル」と「数式」の 2 つの形式を使用でき ます。「シンプル」な値の範囲を指定する場合、<、<=、>、>=、また は = のシンプルな関係を使用して制限を入力できます。シンプルな 値の範囲を使った一般的な制限としては、例えば「0< A1 の値 <10」 があります。この場合、[セル範囲] ボックスに A1、[最小] ボック スに 0、[最大] ボックスに 10 を入力します。演算子はドロップダ ウン リストから選択します。シンプルな値の範囲を使った制限では、 [最小] ボックスのみ、[最大] ボックスのみ、またはその両方を指定 することができます。
これに対して「数式」形式の制限では、有効な任意の Excel 式 (例 えば A19<(1.2*E7)+E8 など) を制限として入力できます。Evolver は、可能なすべての解について、入力された数式の真偽を確認し、制 限が満たされているかどうかを判断します。ワークシート セルに制 限としてブール演算式を使用するには、[制限設定] ダイアログ ボッ クスの [数式] フィールドでそのセルを参照します。
第 3 章: Evolver: ステップバイステップ 29
ベーカリーのモデルの制限を入力するには、新しい制限を 3 つ入力 する必要があります。これらはハード制限であり、ここに入力した条 件を満たさない可能な解は Evolver によって破棄されます。まず、 シンプルな値の範囲形式のハード制限を入力します。
1) 説明ボックスに「許容合計作業時間」と入力します。
2) [制限対象の範囲] に「I8」と入力します。
3) [制限対象の範囲] の右から [<=] 演算子を選択します。
4) [最大] ボックスに「50,000」と入力します。
5) [最小] ボックスのデフォルト値 (0) を消去します。
6) [制限対象の範囲] の左のドロップダウン リストで空白を選択
し、演算子を消去します。
7) [OK] をクリックしてこの制限を設定します。
30 Evolver の基本操作
次に、数式形式のハード制限を入力します。
1) [追加] をクリックして [制限設定] ダイアログ ボックスをもう
一度表示します。
2) 説明ボックスに「高ファイバーと低カロリーの許容比率」と入力
します。
3) [エントリー スタイル] ボックスで [数式] を選択します。
4) [制限数式] ボックスに「C4>= 1.5*B4」と入力します。
5) [OK] をクリックします。
6) [追加] をクリックして [制限設定] ダイアログ ボックスをもう
一度表示します。
7) 説明ボックスに「5 グレインと低カロリーの許容比率」と入力し
ます。
8) [エントリー スタイル] ボックスで [数式] を選択します。
9) [制限数式] ボックスに「D4>= 1.5*B4」と入力します。
10) [OK] をクリックします。
[モデル] ダイアログの [制限] セクションに、追加した制限が表示 されます。
第 3 章: Evolver: ステップバイステップ 31

その他の Evolver オプション

表示の更新、乱数シード、最適化の停止条件などのオプションを使用 して、最適化の処理中の Evolver の動作を制御することができます。 ここでは停止条件と表示の設定をいくつか指定してみます。
停止条件
Evolver は、指定の条件が満たされるまで処理を継続します。停止条 件により、次のいずれかが満たされると Evolver が自動的に処理を 停止するようにします。a) 所定数のシナリオ (つまり「解」) を試 行した後、b) 所定の時間が経過した後、c) 最後の n 個のシナリオ で改善が見られない場合、d) 入力した Excel 数式が真になった場合。 停止条件を表示したり編集したりするには、次の手順を行います。
1) Evolver ツールバーの [最適化設定] アイコンをクリックしま
す。
2) [実行詳細] タブを選択します。
[最適化設定] ダイアログでは、最適化の停止条件の任意の組み合わ せを選択できます。または、停止条件を一切指定しない す。複数の停止条件を選択すると、Evolver はそのうち 1 つでも満 たされる条件がある場合に停止します。停止条件を 1 つも選択しな いと、ユーザーが Evolver ツールバーの [停止] ボタンをクリック して手動で停止するまでの間、Evolver は処理を続行します。
32 Evolver の基本操作
ことも可能で
試行
このオプション は、Evolver で実 行する試行の数を 設定します。各試 行につき Evolver は問題のすべての 変数のセット (つ まり 1 つの可能な 解) を評価しま す。
指定した時間が経 過すると Evolver が停止します。こ の時間には 4.25 などの小数も入力 できます。
時間
進行
これは、改善度が低下 した時点で Evolver を 停止するオプション で、一番よく使われま す。例えば、これまで に見つかったベストの 解が、その後 100 回の 試行で改善されなかっ た場合に、Evolver を 停止させることができ ます。
数式が真
指定した Excel 数式がモデルの再 計算中に真になる と、Evolver が停 止します。
Evolver の処理を条件に関係なく継続させるには、すべての停止
条件をオフにします。
第 3 章: Evolver: ステップバイステップ 33
[表示] タブのオ プション
[表示] タブにある一連のオプションを使って、Evolver の実行中に 画面に表示される情報を指定することができます。
[最適化時] セクションには、次のオプションがあります。
試行ごと
再計算を実行するたびに 画面が更新され、Evolver が変数を調整して出力を 計算する様子を確認でき ます。Evolver の使い方 を学習する際や、新しい モデルに対して Evolver を実行する場合にはこの オプションをオンにする ことをお勧めします。モ デルの計算が正しく行わ れているかどうか確認で きます。
新たなベスト試行ごと
Evolver が新しいベストの解 を生成するたびに画面が更新 されるので、最適化の処理中 にいつでも現在の最適な解を 確認できます。
最適化の処理中に画面を 一切更新しません。最適 化の処理速度は最短にな りますが、実行中は計算 結果に関するフィードバ ックがほとんど得られま せん。
表示しない
[試行ごと] をオンにします。
34 Evolver の基本操作

最適化の実行

これまでの手順で、生産制限のガイドラインを満たしながら合計利益 が最大になるようモデルを最適化する準備ができました。以下の手順 を行います。
1) [OK] をクリックして [最適化設定] ダイアログを閉じます。
2) [最適化の開始] アイコンをクリックします。
Evolver が問題の最適化を開始し、スプレッドシートに調整可能セル (生産ケース数) の現在のベストの値が表示されます。強調表示され たセルに「合計利益」のベスト値が表示されます。
最適化の実行中、進行状況ウィンドウに次の情報が表示されます。1) これまでの最適な解。2) Evolver による最適化の開始時の、ターゲ ット セルの初期値。3) モデルですでに実行した試行数および、その うち有効な (つまり制限を満たす) 試行数。4) 最適化を開始してか らの経過時間。
実行中は [Excel の更新オプションの表示] アイコンをいつでもクリ ックして、各試行の画面を随時更新することができます。
第 3 章: Evolver: ステップバイステップ 35
Evolver ウオッ チャー
Evolver では、各試行解について実行される処理のログを随時表示す ることもできます。このログは Evolver の実行中、Evolver ウオッ チャーに表示されます。Evolver ウオッチャーを使用して、最適化の 実行中に問題のさまざまな設定を確認したり変更したりすることがで きます。実行中の試行のログを表示するには、次の手順を行います。
1) 進行状況ウィンドウにある、ウオッチャー (虫眼鏡) のアイコン
をクリックして Evolver ウオッチャーを表示します。
2) [ログ] タブをクリックします。
このレポートには、各試行解の実行結果が表示されます。[結果] 列 は、最小化・最大化する必要のあるターゲット セルの試行ごとの値 です。この例ではセル $I$11 の「合計利益」がこれに相当します。 C4 から G4 の各列は、調整可能セルに使用した値です。
36 Evolver の基本操作
最適化の停止
Evolver は 5 分経過した時点で最適化を停止します。または、次の 手順で最適化を停止することもできます。
1) Evolver ウオッチャーまたは [進行状況] ウィンドウで、[停止]
アイコンをクリックします。
Evolver の処理が停止すると、次のオプションが含まれた [停止オプ ション] タブが表示されます。
[Evolver - 最適化設定] ダイアログで設定した停止条件が 1 つでも 満たされると、これらのオプションが自動的に表示されます。
第 3 章: Evolver: ステップバイステップ 37
概要レポート
Evolver では、実行日時、使用した最適化設定、ターゲット セルの 計算値、および各調整可能セルの値などが含まれた、最適化の概要レ ポートを作成できます。
このレポートは、最適化を繰り返し行った結果を比較する場合に便利 です。
38 Evolver の基本操作
結果によるモデ ルの更新
ベーカリーのモデル ワークシートの 6 種類の各パンの値を、最適化 された新しい値で更新するには、次の手順を行います。
1) [停止] ボタンをクリックします。
2) [表示されたワークブックの調整可能セル値を更新する対象] オ
プションが [ベスト] に設定されていることを確認します。
すると BAKERY – TUTORIAL WALKTHROUGH.XLS スプレッドシートが、 ベストな解を生成した新しい変数値をすべて反映した状態で表示され ます。
重要事項: この例では Evolver が 3,645.773 の合計利益を生み出す 解を見つけましたが、実際の結果はこの値と異なることもあります。 その理由は、Evolver とほかのすべての問題解決アルゴリズムとの重 要な相違点にあります。Evolver の遺伝的アルゴリズム エンジンの ランダムな性質は、多様な問題を解決して最適な解を見つける機能に とって不可欠なものです。
第 3 章: Evolver: ステップバイステップ 39
Evolver を実行した後でスプレッドシートを保存すると、Evolver の 実行後にシートの値を元に戻した場合でも、Evolver ダイアログのす べての設定がそのシートに保存されます。次回このシートを開くと、 Evolver の最新の設定がすべて自動的に読み込まれます。ほかのすべ てのサンプル ワークシートには Evolver の設定がすでに入力されて いるので、最適化をすぐに実行することができます。
注意: 最適化設定がすべて指定済みのベーカリーのモデルを確認する には、「Bakery.XLS」というサンプル モデルを開いてください。
40 Evolver の基本操作

第 4 章: 実用例

はじめに.................................................. 43
広告ミックス .............................................. 45
アルファベット順の並べ替え ................................ 47
タスクの割り当て .......................................... 49
ベーカリー................................................ 51
予算の配分................................................ 53
化学平衡.................................................. 55
授業のスケジュール ........................................ 57
コードのセグメント化 ...................................... 59
ノースダコタ: 制限付きの経路判断 .......................... 63
製作工場のスケジュール .................................... 65
ラジオ塔の配置 ............................................ 67
ポートフォリオの分散 ...................................... 69
ポートフォリオの配分 ...................................... 71
ラジオ送信機 .............................................. 73
購入判断.................................................. 75
巡回セールスマンの問題 .................................... 77
第 4 章: 実用例 41
スペースシャトル .......................................... 79
証券トレーダー ............................................ 81
変圧器 .................................................... 83
輸送費 .................................................... 85
42

はじめに

この章では、Evolver のさまざまな実用例について解説します。これ らの実用例は、実際のモデルに必要な特徴をすべて網羅しているとは 限りません。アイデアを得るためや、テンプレートとして活用してく ださい。すべての実用例で、ワークシートにすでに指定されている関 係に基づいて Evolver が解を見つける方法が取られています。した がって、解決対象の問題を正確に表すようなワークシート モデルを 作成することが重要です。
これらの Excel ワークシート例はすべて、EVOLVER5 ディレクトリ内 の EXAMPLES というサブディレクトリに保存されています。実用例で は色を使って内容を次のように区別しています。
青枠のセル. . . Evolver によって調整される調整可能セルを
示します。
赤枠のセル. . . 目標となるターゲット セルを示します。
各例には、ターゲット セル、調整可能セル、解法、制限など、すべ ての Evolver 設定がすでに指定されています。最適化を行う前に、 これらの設定内容を確認することをお勧めします。数式を確認したり、 さまざまな設定を試すことで、Evolver の使い方がよくわかるように なります。また、モデルのデータ例を独自のユーザー データに置き 換えることもできます。サンプル シートを変更したりカスタマイズ する場合には、ファイルを別名で保存して、オリジナルのサンプルを 維持しておくことをお勧めします。
第 4 章: 実用例 43
44

広告ミックス

広告エージェンシーが、対象視聴者の数を最大限にできるように PR 予算を配分するための一番効率的な方法を見つけようとしています。 ただし予算を超過することはできず、テレビの宣伝費がラジオの宣伝 費を下回ることができないという制限が課されます。
サンプル ファイル: ゴール:
解法: 類似問題:
Advertising Selection.xls
広告費用を枠内に抑えながらさまざまな価格割引の ある各メディアに配分する。アピールできる視聴者 数を最大限にする。
予算 追加の制限が課される予算の問題。

モデルの仕組み

まず、Evolver に対して変数の処理方法を指示する解法を選択する必 要があります。各解法の説明は「第 5 章: Evolver リファレンス ガ イド」を参照してください。
第 4 章: 実用例 45
これは基本的には予算タイプの問題に、テレビの宣伝コストがラジオ の宣伝コストを上回らなければならないという制限が追加されたもの です。
解決方法
Evolver で調整する変数はセル範囲 C5:C9 に入っています。ここで は Evolver に対して「予算」解法を使ってこれらの変数を調整し、 各変数を独立値として扱うように指示します。合計視聴者数はセル G13 で SUM 関数により計算されます。Evolver にはこのセルを最大 化するよう指定します。ハード制限により、テレビの広告費がラジオ の広告費より大きくなるよう指定します。
46 広告ミックス

アルファベット順の並べ替え

この例では Evolver を使って 7 つの名前のリストをアルファベット 順に並べ替えます。これは単純な例ですが、Evolver では各データが 独立した複雑な並べ替えを処理したり、モデル内のその他の情報に基 づいて名前に重み付けをして並べ替えを処理することもできます。
サンプル ファイル: ゴール: 解法: 類似問題:
Alphabetize.xls 名前のリストをアルファベット順に並べ替える。 順序 Excel では処理できないあらゆる並べ替え問題。

モデルの仕組み

「Alphabetize.xls」ファイルは Evolver の並べ替え機能を示す、ご くシンプルなモデルです。B 列に 7 人の人物のファースト ネームが 入っていて、A 列には各人に対応する ID 番号が含まれています。D 列では Excel の VLOOKUP 関数を使用して C 列で選択された番号に 対応する名前を求めます。セル範囲 E4:E9 はシンプルなペナルティ 関数を使用して、それより前の名前が後ろの名前の後に並べられるた びに 1 の値を割り当てています。ターゲット セルの E11 には、こ れらのエラーの合計値が含まれています。
第 4 章: 実用例 47
解決方法
このモデルで調整する変数は、C 列 (C3:C9) に入っています。ここ では「順序」解法を使ってセル範囲 C3:C9 の値を調整するよう指定 します。「順序」解法は Evolver に対して、選択値の順序を入れ替 えて、新しい値を試行する代わりに変数のさまざまな組み合わせを試 行するように指示します。セル E11 のエラー合計が 0 に最も近くな る値を見つけるよう指示します。このターゲット セルが 0 の場合、 すべての名前の順序が正しいことを示します。
[Evolver - 最適化設定] ダイアログで停止条件を一切選択しないの で、Evolver ツールバーの [停止] ボタンをクリックして手動で停止 しない限りは Evolver が処理を続行します。ただしこのモデルでは 「最近似値」オプションを選択してあるので、Evolver はこの値が 0 に最も近くなる解を見つけた時点で、自動的に処理を停止します。
最適な個体群サイズを選択するための絶対の規則はないため、個体群 のサイズを小さく設定しています。これは、可能な解の合計数が少な い問題の場合には小さな個体群サイズでも十分であり、パフォーマン スの優れた解の交差に作業を集中しやすくなるためです。この問題で は 7 つの名前の可能な順序は 5,040 種類しか存在しません。
48 アルファベット順の並べ替え

タスクの割り当て

この例はリソースの割り当てに関するごく一般的な問題を表していま す。あるマネージャが 16 のタスクに 16 名の従業員をそれぞれ割り 当てようとしています。各従業員の各タスクを遂行する能力は 1 ~ 10 (1= 遂行不可能、10= 最適任) のスケールにより格付けされてい ます。ここでは各従業員をどのタスクに割り当てれば全体的な生産性 を最大限に伸ばすことができるかを判断することが課題となります。
サンプル ファイル: ゴール:
解法: 類似問題:
Assignment of Tasks.xls
全体の生産性を最大化できるように 16 名の従業 員を 16 のタスクに割り当てる。
順序
割り当ての問題、大半の従業員にとって都合の良 い会議スケジュールの設定、一連の作業に最適な 機械の選択問題。
第 4 章: 実用例 49
このモデルは 16×16 のグリッド (セル範囲 B4:Q19) で構成されて いて、各従業員の各タスクへの適格度が指定されています。グリッド の右にある選択されたタスクの列 (S 列) では、各従業員をいずれか のタスクに任意に割り当てています。その次の列 (U 列) ではどのタ スクが割り当てられているかをチェックし、各従業員のそのタスクへ の適格度が入力されます。個々の適格度をすべて加算した合計した値 が、解全体の合計スコア (セル U21) となります。

モデルの仕組み

解決方法
各タスクに割り当てる従業員は 1 名だけなので、タスク番号は重複 が不可能で 1 度しか使用できません。各従業員のタスク適格度は INDEX() 関数を使用して U 列に記録されます。これらのスコアがセ ル U21 で加算され、特定の割り当てのセットの合計スコアが求めら れます。
Evolver では S 列にある選択されたタスクの変数 (S4:S19) を調整 します。ここでは「順序」解法を使ってセルの値を調整するよう指定 します。この解法ではセルの既存値を入れ替えるので、最適化を開始 する前に各値が 1 度だけ使われていることを確認する必要がありま す。Evolver でターゲット セル U21 の値を最大化するよう指定しま す。このセルの値が大きいほど割り当て全体の生産性が向上します。
50 タスクの割り当て

ベーカリー

この例は製造業によく見られる意思決定問題を表しています。製品の 種類が多くない場合でも、各製品の適正な生産数量を判断するのは困 難を極めます。ここではベーカリー経営者が、合計利益を最大化する ために各種類のパンの生産ケース数を判断しようとしています。従業 員の労働時間合計数や各製品の適切な比率などの制限についても以下 のように考慮する必要があります。(注意: このモデルについては 「第 3 章: Evolver ステップバイステップ」で説明済みです。)
サンプル ファイル: ゴール:
解法: 類似問題:
Bakery.xls
必要な生産量をすべて満たして利益を最大限にす るための各種類のパンの最適な生産量を求める。
レシピ ポートフォリオ開発、製造計画。
第 4 章: 実用例 51

モデルの仕組み

この問題では表の一番上にある 4 行目に生産する各パン製品の数量 が入っています。各変数の値 (セル B4:G4) を調整すると、モデルに よって必要な労働時間とコストおよび、その生産量から得られる利益 が計算されます。利益 (セル範囲 B11:G11) の合計値が含まれている セル I11 が、最大化するターゲット セルとなります。
このモデルには 3 つの制限があります。これらはすべてハード制限 として設定されています。そのうち 1 つはシンプルな値の範囲形式 の制限で、あとの 2 つは Excel 数式を使った入力されています。
解決方法
Evolver はセル I11 (合計利益) の値が最大になるようなセル範囲 B4:G4 (生産量) の値を見つける必要があります。ここでは各値がほ かの値に依存しないので、「レシピ」解法を使用します。セル C4、 D4、および I8 の制限を満たすように指定します。
52 ベーカリー

予算の配分

ここでは上級管理者が、利益を最大限にするために最も効果的な各部 署への資金の配分方法を見つけようとしている場合の例を見てみます。 以下に、この企業のモデルと向こう 1 年間の予想利益を示します。 このモデルでは、年度予算に基づいて広告活動の売上げへの影響など について推測することにより、来年度の利益を予想しています。この モデルでは内容が簡素化されていますが、あらゆるケースをモデル化 し、Evolver で入力を提供して最善の出力を見つけるための方法を示 しています。
サンプル ファイル: ゴール:
解法: 類似問題:
Budget Allocation.xls
来年度の利益を最大化できるような方法で、5 つ の部署に年度予算を配分する。
予算
限られたリソース (労力、資金、ガソリン、時間 など) を、さまざまな方法や効率でこれを消費す るエンティティ間に配分する問題。
第 4 章: 実用例 53

モデルの仕組み

「Budget Allocation.xls」ファイルは、企業の予算が将来の売上げ と利益にもたらす影響をモデル化しています。セル範囲 C4:C8 (変 数) には、5 つの部署それぞれに配分する金額が含まれています。こ の合計値がセル C10 で、この企業の予算総額を示します。この予算 は企業により設定されており、変更することはできません。
セル範囲 F6:F10 では、広告およびマーケティング予算に基づいて、 企業の製品に対する来年度の需要を計算しています。実際の売上げは、 計算された需要と供給のうち小さい方の値になります。需要は、製造 部と業務部に割り当てられた資金に依存しています。
解決方法
「予算」解法を使用してセル範囲 C4:C8 の値を調整することで、セ ル I16 の利益を最大限にします。各部署の予算の各調整可能セルに それぞれ個別の範囲を設定し、Evolver が負の値や、その部署の予算 に解として不適切な値 (広告に全額を割り当て、製造予算を 0 にす るなど) を使わないようにします。
「予算」解法は、選択された変数の適切な「ミックス」を見つけよう とする点で、「レシピ」解法に似ています。ただし、予算解法を用い る場合、すべての変数の和が Evolver での最適化をはじめる前の値 と等しくならなければならないという制限が追加されます。
54 予算の配分

化学平衡

いくつかの初期条件を前提としてある結果を生み出すようなモデルを 構築できる過程であれば、Evolver を使って最適化を行うことが可能 です。この例では Evolver を使用して、化学反応が平衡状態に至っ た後の自由エネルギーが最小になるような、さまざまな化学物質 (生 成物と反応物) のレベルを見つけます。複雑な化学過程では化合物の 濃度が一定して平衡状態に至るまでの間、成分 (試薬) と生成物が相 互に反応し合います。平衡状態に至ると、平衡化学物の反応物と生成 物の比率は例えば 5% と 95% というように一定します。
サンプル ファイル: ゴール:
解法: 類似問題:
Chemical Equilibrium.xls
反応環境の自由エネルギーを計算し、ソフト制限 を満たすような物質の量を見つける (一部の化学 物質量はほかの物質の量に比例)。
レシピ
最も安定した市場均衡が得られる条件を判断する 問題。
第 4 章: 実用例 55
モデルの仕組み
この問題のセル範囲 B4:B13 にある変数は、混合する化学物質量を示 します。セル B15 で計算される合計量は、ペナルティに従って特定 の範囲内に収める必要があります。
F20:F22 の制限はソフト制限
です。ソフト制限では Evolver に有効 な解のみを受け入れるよう強制するのではなく、特定の化学物質のほ かの物質に対する比率が所定の範囲内にない場合にそのペナルティ
を 計算します。これらのソフト制限は、ワークシート モデルに直接指 定されているペナルティ関数を使用します。ペナルティはセル F17 の自由エネルギーの合計値に加算されます。Evolver はターゲットの 値を最小化しようとするので、結果的にはペナルティの課されていな い解を探すことになります。
解決方法
セル範囲 B4:B13 にレシピ解法を使用します。セル F17 を最小化し ます。
56 化学平衡

授業のスケジュール

大学で 25 のクラスを 6 つの時間枠に割り当てる必要があります。 各クラスの時間はすべて 1 時間です。このような問題は通常「グル ーピング」解法を用いて解決します。ただしこの例では、クラスをス ケジュールする際にいくつもの制限が適用されます。例えば、医学部 の学生は同じ学期に生物学と化学の両方を取る必要があるため、これ らのクラスは同じ時間枠に設定できません。ここではこのような制限 を満たすため、「スケジュール」解法を使用します。「スケジュー ル」解法は「グルーピング」解法に似ていますが、特定のタスクをほ かのタスクの前、後、または最中に行う (あるいは行わない) 必要が あるという制限が課される点で異なります。
サンプル ファイル: ゴール:
解法: 類似問題:
Class Scheduler.xls
25 のクラスを 6 つの時間枠に割り当て、クラス がいっぱいで受講できない学生の数を最小限に抑 える。特定のクラスの時間枠に関する一連の制限 を満たす。
スケジュール
すべてのタスクの所要時間が同じで、事前に決め られた任意数の時間枠に割り当てることのでき る、すべてのスケジュール問題。特定の項目を割 り当てられるグループについて制限がある、すべ てのグループ化問題。
第 4 章: 実用例 57
モデルの仕組み
「Class Scheduler.xls」ファイルには、数々の制限を満たす必要の ある、一般的なスケジュール問題のモデルが含まれています。セル範 囲 C5:C29 は、25 のクラスを 6 つの時間枠に割り当てています。使 える講義室は 5 つだけなので、1 つの時間枠に 6 つ以上のクラスを 割り当ててしまうと、実施できないクラスが出てきます。
セル範囲 K17:M25 には制限が含まれており、制限の説明は各項目の 左側に書かれています。制限には数値コードか、テキストの説明のい ずれかを使用できます。スケジュール問題の制限コードのリストにつ いては、「第 5 章: Evolver リファレンス ガイド」の「解法」セク ションを参照してください。
起こりうる各スケジュールは、a) 実施できないクラス数および、b) 講義室が満席でクラスに参加できない学生の数、の両方を計算するこ とにより評価されます。上記の制限 b) により、Evolver が学生数の 多いクラスをすべて同時にスケジュールしないようにします。1 つの 時間枠に割り当てられた大人数のクラスが 1 つか 2 つに限られてい れば、大きい講義室を使うことができます。
セル範囲 I8:N8 は、Excel 関数の DCOUNT を使用して、各時間枠に 割り当てられたクラス数を数えます。セル範囲 I9:N9 のすぐ下の部 分では、その時間枠で講義室が割り当てられなかったクラスの数を計 算しています。講義室がないクラスの合計数はセル K10 で求められ ます。
特定のクラスで必要な席数が、使用可能な席数を超えた場合、セル範 囲 I12:N12 でその超過数が計算され、K13 で席のない学生数が計算 されます。セル F6 では、席のない学生の総数が平均のクラス サイ ズに追加され、これに講義室のないクラスの数を掛け合わせています。 これにより、すべてのペナルティを 1 つのセルに組み合わせて、こ のセルの値が低いほど優れたスケジュールであることがわかるように します。
解決方法
セル範囲 C5:C29 を調整することにより F6 のペナルティ値を最小化 します。「スケジュール」解法を使用します。この解法を選択すると、 ダイアログ ボックス下部の [最適化のパラメータ] セクションに、 いくつかの関連オプションが表示されます。時間枠 (タイム ブロッ ク) の数を 6 に設定し、制限セルを K17:M25 に設定します。
58 授業のスケジュール

コードのセグメント化

Windows プログラマがプログラムをいくつかのコード セグメントに 分け、使用中のコード セグメントのみをメモリに保存することで Windows のメモリ消費を効率化したいと考えています。
これは類似項目をいくつかのグループに分類する問題の例です。各項 目は同じグループ内のほかの項目とは簡単に相互作用できますが、異 なるグループにある項目同士の相互作用は難しくなります。各項目が ほかの全項目と直接作用するのを妨げるような自然な境界が存在する 場合 (例えばすべてのコンピュータ ユーザーが 1 台のプリンタに直 接接続したい場合など)、これらの項目をグループに分ける必要があ ります。効率的なグルーピングによって、全体の生産性を大幅に向上 させることができます。
サンプル ファイル: ゴール:
解法: 類似問題:
Code Segmenter.xls
プログラムの処理速度が最短になるような方法 でプログラム ルーチンを 8 つのコード セグメ ントに分ける。
グルーピング
グループ間の通信コストが最小になるような LAN 上のワークステーションのクラスタ化、ま たはマイクロチップ回路の区分。
第 4 章: 実用例 59

モデルの仕組み

Windows プログラマは、プログラムの効率を上げるためにプログラム をいくつかのセグメントに分けることがよくあります。Windows では 別のセグメントのルーチンを実行する必要がある場合、まず呼び出し 側のセグメントを破棄して、呼び出されたセグメントをディスクから 読み込みます。2 Mb のプログラムをそれぞれが 20 Kb の 80 セグメ ントに分けた場合、そのプログラムを実行するには 20 Kb のメモリ が必要となります。ただし、プログラムのパフォーマンスを維持する ためにセグメントの分け方を慎重に判断する必要があります。別のセ グメントにある関数を呼び出すと、同じセグメント内にある関数を呼 び出すよりも長い処理時間がかかります。別のセグメント間との関数 呼び出しを最小限に抑える問題のことを、コードのセグメント化問題 と呼びます。
アプリケーションの一部を最適化した結果、全体のパフォーマンスが 低下してしまう可能性もあるので、ここでは Evolver を使って大局 的な最適化を行うことにします。
「Code Segmenter.xls」サンプル ファイルでは、すでにセグメント 化されたコンパイル済みのアプリケーションを前提としています。こ のアプリケーションをユーザーが使用する場合と同じように実行し、 パフォーマンス追跡ルーチンによって各関数がほかの全関数を呼び出 す回数を追跡しています。この追跡結果はアプリケーションの一般的 な使用における各呼び出しの性質を表しており、これに基づいてさま ざまなセグメント化によって得られるアプリケーションの処理速度に ついての予測を立てることができます。
このワークシートは「SegCost」というカスタム関数を使用していま す。SegCost は、一般的な使用統計を取得するのと同じ方法でユーザ ーがプログラムを実行する場合の所要時間を計算します。所要時間は セグメント内呼び出しとセグメント間呼び出しの数をカウントし、こ れに各種類の呼び出しのコストを掛け合わせることで求められます。 ここでは 386 コンピュータを前提とし、セグメント内呼び出し (near call) にかか る 時間を 7 クロックサイ クル、セグメント間 (far call) の所要時間は 34 サイクルとして計算しています。
60 コードのセグメント化
SegCost 関数は Excel VBA マクロで次のように定義されています。
Function segCost(segs, calls, inP, outP) As Double
Dim inCost#, outCost#, total#, temp#, tempPtr# Dim i%, j%, wide%, funcNumber%, ThisSeg%, OtherSeg% Dim NumCalls%, NumInCall%, NumOutCall%, SegOrder$, CallOrder$
SegOrder = Application.Names("segs").RefersTo CallOrder = Application.Names("calls").RefersTo NumInCall = 0 NumOutCall = 0 inCost = Range("k2") outCost = Range("k3") total = 0 wide = Range(CallOrder).Columns.Count For i = 1 To Range(SegOrder).Rows.Count ThisSeg = Range(SegOrder).Rows(i) For j = 1 To wide temp = Range(CallOrder).Rows(i).Columns(j) If temp <> 0 Then funcNumber = Int(temp) OtherSeg = Range(SegOrder).Rows(funcNumber + 1) NumCalls = 10000 * (temp - funcNumber) If ThisSeg = OtherSeg Then temp = NumCalls * inCost NumInCall = NumInCall + 1 Else temp = NumCalls * outCost NumOutCall = NumOutCall + 1 End If total = total + temp End If Next Next segCost = total End Function
サンプル アプリケーションには 80 の関数が使われています。各関 数がほかの関数を呼び出す回数は「呼び出し」のセル範囲 (C5:I104) に保存されます。この例では 80 × 80 の行列を作成して呼び出しパ ターンを表すことも可能です。ただし
n
× n 式の表現は、Excel で
は列数が 256 に制限されること、また必要なメモリ容量が増大する ことから、関数が 256 以上ある場合には使用できません。
第 4 章: 実用例 61
したがって、ここでは短縮表記を使って呼び出しパターンを表します。 まず、すべての関数が呼び出すほかの関数の数が特定の範囲を超える ことはないと仮定します。サンプル ファイルではこの上限を 7 に設 定しているために呼び出し範囲が 7 列になっていますが、この限度 は任意に設定できます。さらに、各関数がほかの関数から呼び出され る回数についても 9,999 回を超えることはないと仮定します。
では、関数 1 についてセル C5 から順に見てみることにします。関 数 1 は関数 3、9、81、41 をそれぞれ呼び出します。呼び出しの最 初の行 C5:I5 には、呼び出される各関数につき 1 つの実数が含まれ ています (例: 3.0023)。この整数部分 (3) は呼び出される関数を表 し、小数部分に 10,000 を掛けた値 (.0023 x 10,000 = 23) はアプ リケーションの標準的な使用において関数 1 が関数 3 を呼び出した 回数を表しています。したがって 9.1117 という値は、この関数が関 数 9 を 1,117 回呼び出したことを示します。この短縮形式によりメ モリを節約し、Excel で使用できる列数を最大限に活用することがで きます。
セル範囲 A5:A104 (セグメントのセル範囲) には、各関数が割り当て られたセグメントの番号が含まれています。セル K4 で「SegCost」 を実行して現在のセグメント化方法の全体的なパフォーマンスが計算 されます。
解決方法
ここではセル範囲 A5:A104 を調整して、セル K4 の値を最小化しま す。解法は「グルーピング」を使用します。「グルーピング」解法は、 Evolver に対して変数を x 個のグループに分けるよう指定します。x は、最適化の開始時に調整可能セルにある異なる値の数です。
62 コードのセグメント化

ノースダコタ: 制限付きの経路判断

ある不動産業者がノースダコタ州の物件をすべて見て回りたいと考え ています。その際、一部の物件をほかの物件の前に訪れる必要があり ます。これは、いくつもの都市を訪れる際に各都市を 1 度ずつ訪れ るための最短経路を見つけるという点では典型的な巡回セールスマン 問題と似ています。ただしここでは、特定の都市をほかの都市の前に 訪れる必要がある (例えば 都市 2 は都市 4 の後に訪れる必要があ るなど) という追加の制限が課されます。したがって、「順序」解法 の代わりに「プロジェクト」解法を使います。
プロジェクトでは、あるタスクをほかのタスクの前に完了するという 必要条件を満たしながら、一連のタスクの順序を決定します。カスタ ム関数と「プロジェクト」解法を使用して、完了期日やリソース使用 率などの任意数の条件の組み合わせに基づいてプロジェクトの最適な 遂行順序を求めることができます。
サンプル ファイル: ゴール:
解法: 類似問題:
Dakota.xls
ノースダコタ州 41 都市を巡回する経路を計画 し、特定都市をほかの都市の前に訪れる必要条 件を満たす最短経路を見つける。
プロジェクト
リソース使用率が最適になるようなプロジェク トのスケジュール調整。一部の作業をほかより 先に完了し、合計労働時間を削減するための機 械工場の作業フロー管理。
第 4 章: 実用例 63
モデルの仕組み
セル範囲 F3:F43 には各都市を訪れる順序が含まれています。順序と x,y 座標による各都市のロケーション (セル範囲 C3:D43) に基づい て、セル H10 で経路の合計距離が求められます。セル H10 で合計距 離を迅速に計算するために「BigRouteLength」というカスタム関数を 使用しています。
セル範囲 J3:L43 には順序の制限が指定されています。この表は、ど の都市の前にどの都市を訪れる必要があるかを示したものです。ここ では 8 つの都市 (1、2、3、4、5、7、11、13) について、その前に 訪れる必要のある都市が指定されています。

解決方法

セル範囲 F3:F43 を調整することにより H10 の合計距離を最小化し ます。「プロジェクト」解法を使用し、J3:L43 にタスク順序を指定 します。タスクの順序は [調整可能セルのグループ設定] ダイアログ の [直前のタスク] フィールドで設定します。
64 ノースダコタ: 制限付きの経路判断

製作工場のスケジュール

金属加工工場が、さまざまな機械で処理される工程に分割できる一連 のジョブをスケジュールする最適な方法を探しています。各ジョブは 5 つのタスクから構成され、これらのタスクは決まった順序で行う必 要があります。各タスクは特定の機械で処理する必要があり、それぞ れの所要時間も決まっています。機械は 5 台あり、ジョブの数も 5 つです。
シート上部の「スケジュールの図化」ボタンをクリックすると、棒グ ラフが再描画されて各ジョブ タスクの実行スケジュールが表示され ます。
サンプル ファイル: ゴール:
解法: 類似問題:
Job Shop Scheduling.xls
すべてのジョブの合計所要時間が最小限になる ような方法で、ジョブの各工程 (タスク) を機 械に割り当てる。
順序 スケジュールやプロジェクト管理の問題。
第 4 章: 実用例 65
モデルの仕組み
セル D5 は、最初のタスクの開始から最後のタスクが完了するまでの 経過時間を計算します。ここではこの合計時間を最小限にする必要が あります。セル範囲 G11:G35 には、最適な割り当て順序を見つける ために入れ替えることのできる変数 (タスク) が含まれています。ワ ークシートの方程式により、各タスクを適切な機械で行えるようにな るまでの時間が計算されます。
解決方法
一連の調整可能セル G11:G35 を選択し、順序解法を選択します。セ ル D5 を最小化します。
66 製作工場のスケジュール

ラジオ塔の配置

ラジオ局が 12 の主要な町で構成される地域に放送塔を建設したいと 考えています。各町の人口はさまざまで、信号の届く範囲も各ラジオ 塔によって異なります。ここでは、塔の放送半径内に入る聴取者の数 が最大限になるような位置にラジオ塔を配置するのが目標です。
11
xy
より複雑なロケーション判断の問題の例としては、複数の工場を a) ベンダーと顧客の両方に近い地域内に、b) 安価な空き地を利用して、 c) 技術訓練を受けた人材が多くいるような場所に配置する問題など があります。こうしたモデルには、ほかにも税制上の優遇措置などの 条件による影響も追加することができます。Evolver を使用して、 x,y 座標やときには x,y,z 座標で指定される領域内の最適なロケー ションを見つけ出すことができます。
サンプル ファイル: ゴール:
解法: 類似問題:
Radio Tower Location.xls
放送範囲内の潜在的な聴取者数が最大になるよう に、ラジオ塔の最適な位置を x,y 座標値として 判断する。
レシピ
倉庫と店舗間で必要な出荷が最小限になるような 倉庫の場所の判断。住宅密度などの要素を考慮に 入れながら、限られた数の消防署で最大数の住人 をカバーできるような消防署の配置。
第 4 章: 実用例 67

モデルの仕組み

「Radio Tower Location.xls」ファイルのモデルでは、2 次元座標を 使って、3 つのラジオ塔の配置によって聴取範囲内に入る聴取者の数 を判断します。セル範囲 C6:D8 には 3 つのラジオ塔の x,y 座標が 含まれています。モデルの図には、Windows ペイント プログラムか ら貼り付けた人口密度のビットマップ画像 (緑色) と、自動再計算に よりラジオ塔の場所を表示する Excel の散布グラフが含まれていま す。
12 の町はそれぞれ点で表されています。この Excel モデルは K4:M15 で町とラジオ塔間の距離を計算し、各町が聴取範囲内にある か (○)、範囲外にあるか (×) を判断します。範囲内にあるすべて の町の人口合計 (これが最大化するターゲットです) は、セル O17 で計算されます。
解決方法
ラジオ塔の配置 (C6:D8) を調整することでセル O17 の聴取者数を最 大化します。「レシピ」解法を使用し、変数の範囲を 0 ~ 50 (当該 地域の限界) に設定します。
「レシピ」解法は、Evolver に対して変数の値を自由に調整するよう 指定します。パンを焼くためのレシピと同様に、最適な結果が得られ る材料 (x,y 座標値) の組み合わせを見つけることが目標です。
68 ラジオ塔の配置

ポートフォリオの分散

ある金融ブローカーが、それぞれ時価の異なる 80 銘柄の証券を抱え ています。このブローカーは、これら銘柄を 5 つのパッケージ (ポ ートフォリオ) にグループ化し、各パッケージの時価がなるべく均等 になるようにしたいと考えています。
これは、箱詰め問題と呼ばれる種類の問題です。箱詰め問題には、例 えば貨物船の積荷をなるべく均等な重さになるよう配分する場合など も該当します。船倉への穀物の積み込みなど、無数の小さなアイテム をいくつかのグループに分ける場合は、各グループがほぼ均等な重量 になるように配分を推測することができます。ただし、重量やサイズ のそれぞれ異なる数十個のパッケージをさまざまな組み合わせで積み 込んで、効率的な荷積みによりバランスを改善することも可能です。
サンプル ファイル: ゴール:
解法: 類似問題:
Portfolio Balancing.xls
銘柄リストを時価総額がなるべく均等になるよ うな方法で 5 つのポートフォリオに分ける。
グルーピング
チームごとの能力がほぼ均等になるようにチー ム分けをする。重量が均等に分散されるような 方法で貨物船の船倉にコンテナを積み込む。
第 4 章: 実用例 69
モデルの仕組み
「Portfolio Balancing.xls」ファイルは、一般的なグルーピングの 問題をモデル化したものです。A 列には特定の銘柄の ID 番号、B 列 には各銘柄の時価がドルで指定されています。C 列は各銘柄を 5 つ のポートフォリオのいずれかに割り当てています。グルーピングや箱 詰めの問題を設定してグルーピング解法を使用する場合、Evolver を 起動する前に、現在のシナリオで各グループ (1 ~ 5) が少なくとも 1 度は使われていることを確認する必要があります。
セル範囲 F6:F10 では 5 つのポートフォリオそれぞれの時価総額を 求めます。この計算には画面外のデータベース条件 (I 列) とセル範 囲 F6:F10 の DSUM() 式が使われます。例えば、セル F6 は、C 列で グループ 5 に割り当てられたすべての値 (B 列) の DSUM を計算し ます。
セル F12 は、STDEV() 関数を使ってポートフォリオ全体の時価の標 準偏差を計算します。これにより、各ポートフォリオの時価総額が互 いにどの程度近くなるかを推測できます。グラフには、各ポートフォ リオの合計額が示されています。参照ラインは、すべてが均等である 場合の金額、つまりゴールを表します。

解決方法

セル範囲 C5:C104 を調整することにより、セル F12 の値を最小化し ます。ここでは「グルーピング」解法を使用します。1、2、3、4、5 の各値が C 列に少なくとも 1 度は使われていることを確認します。
「グルーピング」解法は、Evolver に対して変数を x 個のグループ に分けるよう指定します。x は、最適化の開始時に調整可能セルにあ る異なる値の種類の数です。
70 ポートフォリオの分散

ポートフォリオの配分

ある若夫婦がそれぞれ異なる利率、予想成長率、リスクの伴うさまざ まなタイプの投資からなる資産を保有しています。この夫婦はいくつ かの数式によりさまざまな重み付けを行い、これら投資の特定の組み 合わせにより彼らのニーズがどの程度満たされるかを示すカスタムの 「スコア」を計算しました。
サンプル ファイル: ゴール:
解法:
Portfolio Mix.xls
リスクと収益の現在のニーズに基づいて、利益 を最大限に伸ばせる投資配分を見つける。
予算
第 4 章: 実用例 71

モデルの仕組み

これは、投資収益と損失リスクの最適なバランスを見つけようとする、 典型的な金融モデルです。A 列にある各資産に対して C 列で重み付 けがされています。このモデルはポートフォリオ内の各資産の重みを 収益率に掛け合わせ、セル C18 で合計収益率を求めています。また、 セル C19 で計算される合計リスクがセル D19 にある許容リスクを超 えないようにする必要があります。
解決方法
セル C22 の合計スコアは、合計収益率からペナルティ (リスクが許 容範囲を上回る場合) を差し引いた値です。このスコアを最大化しま す。
72 ポートフォリオの配分

ラジオ送信機

あるラジオ局が、9 つの主要な町から構成される地域にある使用廃止 となった放送塔を 3 つ購入しました。このラジオ局は新しいラジオ 送信機を購入してこれらの放送塔に設置し、放送を再開したいと考え ています。
ただし予算が限られるため、9 つすべての町で受信できる範囲で送信 機のコストを最小限に抑えるのが目標です。ここでは送信機のコスト が信号強度に直接比例する線形の価格モデルを想定し、信号が最も弱 い放送機を探しますが、送信機の実際のタイプと価格を指定したルッ クアップ テーブルを簡単に作成することもできます。
サンプル ファイル: ゴール:
解法: 類似問題:
Power Stations.xls
周辺 9 つの町で聴取できる範囲で、古いラジオ 塔に設置する最小 (安価) の放送機を見つけ る。
レシピ
一連の要素を、定義の明確な少数のセットによ りカバーする必要のある問題。
第 4 章: 実用例 73

モデルの仕組み

これはラジオ塔の配置問題 (Radio Tower Location.xls) とよく似て いますが、塔の場所はすでに決まっており、セル範囲 E5:E7 にある 各塔の信号強度が調整可能な変数となります。3 つの塔のコストを合 計したセル E12 をターゲットとして最小化します。
セル範囲 K4:M12 で各町から塔までの距離を計算し、その町がいずれ かの送信機の受信エリアに入っている場合は N 列の値が TRUE にな ります。これらすべての制限が「全域聴取可能」という 1 つのハー ド制限によってチェックされます。この制限は AND($N$4:$N$12) と いう式で定義され、N 列の値がすべて TRUE の場合のみに TRUE を返 します。
解決方法
セル範囲 E5:E7 のラジオ塔放送範囲を調整することにより、必要な 信号強度 (セル E12) を最小化します。「レシピ」解法を使用し、変 数の範囲を 0 ~ 100 に設定します。Excel 式を使用して、上記のハ ード制限を 1 つ設定します。
74 ラジオ送信機

購入判断

複数の品目を組み合わせて注目する場合、数量割引があるためにコス ト効率を最小限にするにはどうしたらよいかを判断するのは困難です。 このモデルではシンプルな価格表に特殊な溶剤の数量割引価格が一覧 されています。少なくとも 155 リットルの溶剤を購入する必要があ ります。容器のサイズは小、中、大、特大の 4 種類です。
コストを最小化するには各サイズの容器をいくつずつ購入すればよい かを判断します。
サンプル ファイル: ゴール:
解法: 類似問題:
Purchasing.xls
155 リットルの溶液を最も安価に購入する方法 を判断する。
レシピ
上記と逆に、注文数量が多いほどコストも安価 になるような価格表を作成する。
第 4 章: 実用例 75

モデルの仕組み

溶剤はそれぞれ 3、6、10、または 14 リットルの容器に入って販売 されています。セル範囲 D6:H9 はこれら各サイズの価格表です。セ ル範囲 H13:H16 は各サイズの購入数量を示します。K 列で各サイズ の合計金額を計算し、セル K18 に注文全体の合計金額が入っていま す。このモデルでは、必要な購入量 (セル I19) を 155 以上の値に 変更することができます。セル I18 には購入した合計量がリットル で示されており、このセルの値はセル I19 の必要量 (155) と等しい かそれ以上でなければなりません。ハード制限を 1 つ設定し、合計 購入量が必要条件を満たすように指定します。
必要量は 155 リットルなので、特大サイズを 11 個 (154 リットル) と小サイズを 1 個 (3 リットル) 購入すれば合計 157 リットルで必 要条件を満たすことができます。その場合、価格表によると合計額は $1,200 です。しかし最適化を行うことにより、さらにコスト効率の 良いサイズの組み合わせを見つけることができます。
解決方法
セル範囲 H13:H16 の購入数量を調整することにより、セル K18 のコ ストを最小化します。「レシピ」解法を使用して値を調整し、変数の 範囲を 1 ~ 20 に設定します。容器の一部のみを購入することはで きないので、[調整可能セル] ダイアログの整数オプションをオンに して Evolver に整数のみを試行するよう指定します。155 リットル に満たない量を購入することもできないので、「I18>155」というハ ード制限を 1 つ設定します。
76 購入判断

巡回セールスマンの問題

セールスマンが担当地域の各都市を 1 度ずつ訪問する必要がありま す。すべての都市を最短距離で巡回するには、どの順序で移動すれば よいでしょうか?これは典型的な最適化問題ですが、都市の数が多く 50 を超えるような場合、この不確実要素に従来の手法で対処するこ とは非常に難しくなります。
これと類似した問題に、工場で行うタスクの最適な順序を見つけると いう問題が挙げられます。例えば、白い塗料の後で黒い塗料を塗布す る方が、その反対の順序で行うよりもずっと簡単な場合があります。 Evolver でこうしたタイプの問題を解決するには、「順序」解法が一 番適しています。
サンプル ファイル: ゴール:
解法: 類似問題:
Salesman Problem.xls
n 個の都市をそれぞれ 1 度ずつ訪問できる最 短経路を見つける。
順序
回路板の穴を最短時間で空ける方法を見つけ る。
第 4 章: 実用例 77

モデルの仕組み

「Salesman Problem.xls」ファイルは、都市間の距離をテーブルで調 べ、各都市への移動距離を計算します。A 列には特定の都市の ID 番 号が入っています。B 列では、ルックアップ関数を使ってこれらの番 号が表す都市名を求めます。都市 (とその番号) の表示順序は、訪問 順序を表します。例えば、セル A3 に 9 と入力した場合、最初にオ タワを訪れることになります。同様に、A4 に 6 (ハリファックス) が指定されている場合は、ハリファックスを 2 番目に訪問します。
都市間の移動距離は、C25 以降のテーブルに指定されています。この テーブルの移動距離は対称的です (つまり A から B への距離と、B から A への距離は同じです)。現実的なモデルの場合には、非対称の 走行距離を設定して、料金所、利用できる移動方法、風向き、道の傾 斜などのために、往復で移動時間が異なる点を考慮に入れることも可 能です。
次に、関数を使用してこれらの都市間の経路の距離を計算する必要が あります。経路の合計距離はセル G2 に保存されます。最適化する必 要があるのはこのセルです。この計算には RouteLength 関数を使い ます。これは Salesman Problem.xls に含まれている、カスタムの VBA 関数です。
解決方法
セル範囲 A3:A22 を調整することにより、セル G2 の値を最小化しま す。「順序」解法を使用します。また、最適化を始める前に、調整可 能セル (A3:A22) に 1 ~ 20 の値が入っていることを確かめます。
「順序」解法は、選択した変数を並べ替えて既存の変数のさまざまな 順列を試すよう、Evolver に指定します。
78 巡回セールスマンの問題

スペースシャトル

スペースシャトル Evolver III 号の乗組員が、ロケット噴射の推力 と方向を求めて最少量の燃料で目的地に達する方法を判断しようとし ています。付近の太陽の重力によるスイングバイ効果を利用して燃料 を節約すると、さらに優れた解となります。
サンプル ファイル: ゴール:
解法: 類似問題:
Space Navigator.xls
消費燃料が最小限になるような方法でスペース シャトルを目的地に到達させる。付近の惑星の 重力を利用する。
レシピ プロセス管理の問題。
第 4 章: 実用例 79

モデルの仕組み

セル範囲 Q5:R15 には、10 ステップある各噴射の推力と方向値が入 っています。ここではセル Q16 を最小化します。この値は 10 のス テップで燃焼される燃料の合計です (Q4:Q13)。
ハード制限は、シャトルの最終位置が目的地から a) 10 水平単位以 内および、b) 10 垂直単位以内であることです。
解決方法
セル Q16 を最小化します。選択範囲 Q5:R13 に対してレシピ解法を 使用する調整可能セル グループを 1 つ作成します。「噴射サイズ」 セル (Q5:Q13) の値は 0 ~ 300、「方向変化」セル (R5:R13) は -3 ~ 3 でなければなりません。噴射の方向はラジアンを使って表され ます。1 ラジアンは約 57 度に相当します。
80 スペースシャトル

証券トレーダー

S&P 500 のトレーダーが、従来のファンダメンタル分析に比べてテク ニカル分析の方がより正確な株式予測を行うことができ、いったんシ ステムを構築すれば最終的に時間を節約できると判断しました。一見 したところ取引判断を左右するルールが無限にあるように思えますが、 実際に相当な収入を生むことのできるルールはほんの僅かです。そこ でインテリジェントなコンピュータ検索を利用して、過去のケースに ついて、どのルールに従った場合に特定期間の利益が最大になったか を判断することにします。
サンプル ファイル: ゴール:
解法: 類似問題:
Trader.xls
特定な期間に利益を最大化できるような 3 つの ルールを見つける。
レシピ
最良の結果につながる最適な平均移動値を見つ ける問題、ルールまたは条件を見つけようとす るすべての問題。
第 4 章: 実用例 81

モデルの仕組み

このモデルではいくつかの調整可能セル グループを使って全体的な 問題を解決します。各取引日につき 3 つのルールを評価します。3 つすべてのルールが真である場合はコンピュータがその日に銘柄を購 入し、そうでない場合は売却します。(より現実的なトレーディング システムでは、購入と売却だけでなく持ち株をホールドすることもあ ります。)
各ルールはセル範囲 C5:E8 にある 4 つの数値のセットにより次のよ うに記述されます。1) ルールが参照するデータ ソース、2) データ 値が基準値を上回るべきか下回るべきか、3) ルールが真かどうかを 判断するための基準値、4) 値自体を検査するか、または前日の値ま たは前日以降の変化を検査するかを判断する修正値。
基準値の範囲は 0 ~ 1 で、データ ソースの範囲の割合を表します。 例えば出来高の範囲が 5,000 ~ 10,000 であり、基準値が 0.0 の場 合は出来高 5,000 に一致し、基準値が 1.0 の場合は出来高 10,000 に一致し、さらに基準値が 0.5 の場合は出来高 7,500 に一致します。 この方法によってルールが実際のデータ値には関係なく、すべてのデ ータ ソースを参照することができます。
解決方法
「レシピ」解法を使って調整可能セル グループを作成します。C5:E5、 C6:E6、C7:E7、および C8:E8 の各行は個別に作成し、各グループを 整数や範囲など独自のオプションに簡単に割り当てることができるよ うにします。各変数セットの設定は F5:F8 に指定されます。セル E10 を最大化します。このセルはこれらのルールを使って行われたト レーディングのシミュレーションを実行するマクロを呼び出します。 その結果、履歴データベースに含まれる各取引日のトレーディングの シミュレーション後の合計利益がセル E10 に返されます。
82 証券トレーダー
変圧器
定格容量 1080 VA、負荷損 28 ワット未満、表面放熱 0.16 ワット
2
/cm
以下の二巻線変圧器を設計する際に、パフォーマンスの必要条
件を満たす範囲でコストを最小限にしたいとします。
サンプル ファイル: ゴール: 解法: 類似問題:
Transformer.xls 変圧器の導入および運用コストを最小化する。 レシピ 回路の設計、橋の設計。
第 4 章: 実用例 83

モデルの仕組み

定格、負荷損失、および放熱に関する制限はソフト制限として設定し ます。ソフト制限を作成するには、必要条件を満たさない解や無効な 解にペナルティを適用します。指定の条件を満たさなければならない ハード制限と異なり、Evolver は無効な解でも試行できますが、これ らの解にはモデル内の違反を検査する関数によってペナルティが課さ れるため、ターゲット セルの値は有効な解に比べて低くなります。 したがって最終的には、進化を続ける可能な解の個体群からこれらの 解は破棄されます。
ソフト制限を使用したモデルでは、問題の制限がそれほど厳しくない 場合にはハード制限よりも優れた解が見つかることがあります。また、 ソフト制限の場合、制限に多少違反していても非常に優秀な解を Evolver が受け入れることができるので、すべての制限を満たすそれ ほど優れない解より望ましい結果を生み出す可能性があります。
解決方法
セル F11 とセル F12 で材料費 (導入費用) と運用費用 (電気料金 * 廃棄電気量) を計算します。これらに F18:F20 に設定されたペナル ティ関数の値を加味した、制限適用後の最終コストをセル F22 で求 めます。レシピ解法を使用してこのターゲット セルの値を最小化し ます。
84 変圧器
輸送費
ここでは国内のさまざまな場所にトラックで製品を輸送する一番安価 な方法を判断します。この典型的な問題は、従来からある Microsoft ソルバーの例を拡張したものです。
各工場の供給限度を超えずに各都市区域からの需要を満たす範囲で、 製造工場から都市部の需要中心地近辺の倉庫へ製品を輸送する費用を 最小化します。
問題をさらに現実的なものにするには、トラックの必要台数によって 配送費用が決まるように設定を変更できます。トラック 1 台で最大 6 つの製品を運送できるとすると、14 の製品を運ぶには 3 台のトラ ックが必要です (6 + 6 + 2 = 12)。
サンプル ファイル: ゴール:
解法: 類似問題:
Transportation.xls
3 つの工場から 3 つの倉庫へ製品をトラックで 輸送する、最も安価な方法を判断する。
レシピ 通信ネットワークの設計。
第 4 章: 実用例 85

モデルの仕組み

セル範囲 C5:E7 には各工場から各倉庫に配送する製品の数が含まれ ています。セル範囲 C13:E13 では、これらの製品の輸送に必要なト ラックの台数を計算します。以下のハード制限を設定します。1) 各 工場から発送する合計数が、各工場の在庫量を超えないこと、2) す べての工場から各倉庫へ発送する合計数が、各倉庫で必要な数と等し いかそれ以上であること。この制限により、各倉庫に必要数の製品が 配送されると同時に、工場の生産能力に負荷がかからないようにしま す。
解決方法
0 ~ 500 の整数を使用して、レシピ解法をセル範囲 C5:E7 に適用し ます。一連のハード制限を各工場について入力し、その工場からの発 送数が工場の供給能力を超えないようにします。次に 2 番目のハー ド制限を各倉庫について入力し、その倉庫への配送合計数が倉庫の需 要を下回らないようにします。セル B22 の配送費用を最小化します。
86 輸送費

第 5 章: Evolver リファレンス ガイド

[モデルの定義] コマンド ................................... 89
調整可能セルの範囲 ...................................... 91
調整可能セル グループ ................................... 93
レシピ解法 ....................................... 95
順序解法 ......................................... 96
グルーピング解法 ................................. 97
予算解法 ......................................... 98
プロジェクト解法 ................................. 99
スケジュール解法 ................................ 100
交差と突然変異率 ................................ 103
タイム ブロックと制限セルの数.................... 104
直前のタスク .................................... 104
演算子 .......................................... 105
制限 ................................................... 107
追加 - 制限の追加 ............................... 107
シンプルな制限と数式による制限................... 108
ソフト制限 ...................................... 109
[最適化設定] コマンド .................................... 113
[最適化設定] コマンドの [一般] タブ .................... 113
[最適化設定] コマンドの [実行詳細] タブ................. 114
[最適化実行詳細] のオプション.................... 115
[最適化設定] コマンドの [表示] タブ .................... 117
[最適化設定] コマンドの [マクロ] タブ .................. 118
[最適化の開始] コマンド .................................. 119
[ユーティリティ] コマンド ................................ 121
[アプリケーション設定] コマンド ........................ 121
[制約ソルバー] コマンド ................................ 122
第 5 章: Evolver リファレンス ガイド 87
Evolver ウオッチャー ..................................... 125
[Evolver ウオッチャー] の [進行] タブ ................... 126
[Evolver ウオッチャー] の [サマリー] タブ ............... 128
[Evolver ウオッチャー] の [ログ] タブ ................... 129
[Evolver ウオッチャー] の [個体群] タブ ................. 130
[Evolver ウオッチャー] の [相違] タブ ................... 131
[Evolver ウオッチャー] の [停止オプション] タブ ......... 132
88 輸送費

[モデルの定義] コマンド

モデルのゴール、調整可能セル、および制限を定義
Evolver の [モデルの定義] コマンドを選択するか、Evolver ツール バーで [モデルの定義] アイコンをクリックすると、[モデル] ダイ アログが表示されます。
[Evolver - モデル] ダイアログを使って、Evolver に最適化する問 題を指定します。このダイアログを新しい Excel ワークブックで開 くと、すべての値が空の状態で表示されますが、いったん指定した情 報は各ワークブックに保存されます。同じシートをもう一度開くと、 保存された値が表示されます。このセクションでは、このダイアログ の各要素について説明します。
第 5 章: Evolver リファレンス ガイド 89
[Evolver - モデル] ダイアログ
[モデル] ダイアログには、次のオプションがあります。 z [最適化ゴール] - [最適化ゴール] オプションを使用して、
Evolver にどのような解を探しているかを指定します。[最小] を選択すると、Evolver は、ターゲット セルの値が可能な限り 最小になるような変数値を探します (検索可能な最小値は ­1e300 です)。[最大] を選択すると、Evolver は、ターゲット セルの値が最大値になるような変数値を探します (検索可能な最 大値は +1e300 です)。
[ターゲット値] を選択すると、Evolver は、ターゲット セルの 値がユーザーの指定した値にできるだけ近づくような変数値を探 します。Evolver はこのような結果を生み出す解を見つけると自 動的に停止します。例えば Evolver に対して、結果が 14 に一 番近くなる解を検索するよう指定すると、値が 13.7 や 14.5 な どになるシナリオが見つかります。ここで、13.7 の方が 14.5 よりも 14 という値に近いことに注意してください。Evolver で は、値が指定の値より大きいか小さいかは関係なく、目標値との 差異のみが考慮されます。
z [セル] - セル、つまり「ターゲット セル」には、モデルの出力
が含まれます。Evolver が生成した各「試行解」(調整可能セル の可能な値の各組み合わせ) に対して、このターゲット セルの 値が 1 つ生成されます。ターゲット セルには、調整可能セルに 直接、あるいは一連の計算を介して間接的に依存する数式が含ま れている必要があります。この数式は、SUM() などの Excel の 標準の式か、ユーザーが定義する VBA マクロ関数を使って指定 できます。VBA マクロ関数を使用すると、Evolver でより複雑な モデルを処理できるようになります。
Evolver は解を検索する際に、ターゲット セルの値を「適応度 関数」として使用して、各シナリオの適性を評価し、その結果か ら変数値の異種交配を続けるか破棄するかを判断します。個体群 に受け渡す遺伝子を決定する「適応度関数」は、生物の進化に喩 えれば死に相当します。モデルの構築にあたっては、Evolver が 起こりうる結果を計算する際にその進展状況を正確に測定できる よう、ターゲット セルには特定のシナリオの適応度、つまりフ ィットが反映されるようにする必要があります。
90 [モデルの定義] コマンド

調整可能セルの範囲

[調整可能セルの範囲] テーブルには、Evolver が調整できるセルま たは値の各範囲と、これらのセルに入力した説明が表示されます。各 行に 1 セットの調整可能セルが表示されます。[調整可能セルのグル ープ] には、1 つ以上の調整可能セルが含まれています。特定の調整 可能セル グループ内のすべてのセル範囲には、共通の解法、交差率、 突然変異率、および演算子が設定されています。
調整可能セルには問題の変数が含まれるので、Evolver を使用する前 に、少なくとも 1 つの調整可能セル グループを定義する必要があり ます。大半の問題は 1 つの調整可能セル グループで定義できますが、 より複雑な問題の場合には、さまざまな解法を同時に使用して複数の 変数セットを処理することもあります。この独自のアーキテクチャに よって、調整可能セルのグループをいくつも使って複雑な問題も簡単 にモデル化することが可能になります。
調整可能セルの範囲を入力するには、次のオプションを使用できます。 z [追加] - 新しい調整可能セルを追加するには、[調整可能セル]
リスト ボックスの隣にある [追加] ボタンをクリックします。 追加するセルまたはセル範囲を選択すると、[調整可能セルの範 囲] テーブルに新しい行が追加されます。このテーブルに、その 範囲のセルの [最小] 値と [最大] 値および、テストする値の種 類 (指定範囲内の [整数] 値、または [すべて] の値など) を入 力できます。
z [最小]、[最大] - 調整可能セルの位置を指定したら、次に [最
小] と [最大] を入力して各調整可能セルの値の許容範囲を設定 します。デフォルトでは、各調整可能セルは正と負の無限大の範 囲内の実数 (倍精度浮動小数点) 値を取ることができます。
第 5 章: Evolver リファレンス ガイド 91
範囲の設定は、制限として強制的に適用されます。Evolver では、 変数が所定の範囲を超える値を取ることは許可されません。 Evolver のパフォーマンスを向上させるには、変数の範囲をでき るだけ小さくすることをお勧めします。例えば、変数が負の値を 取りえない場合や、特定の変数の値として Evolver で検討する 範囲を 50 ~ 70 に限定できる場合などもあります。
z [範囲] - [範囲] フィールドには、調整するセル (範囲) の参照
を入力します。参照を入力するには、マウスでスプレッドシート の範囲を選択するか、範囲名または有効な Excel 参照 (Sheet1!A1:B8 など) を入力することもできます。[範囲] フィ ールドは、すべての解法で使用できます。ただし、レシピ解法と 予算解法では、調整可能セルの範囲を入力するための [最小]、 [最大]、[値] の各オプションが追加されることもあります。
注意: 変数の範囲を小さくすることで、検索の対象範囲を制限 し、Evolver による解の収束の処理時間を短縮することができま す。ただし、変数値の範囲をあまり小さくしすぎると、Evolver で最適な解が見つからない可能性があるので、注意が必要です。
z [値] - [値] オプションを使用して、指定範囲のすべての変数
を実数ではなく整数として処理するよう (例えば、22.395 を 22 として処理するよう)、Evolver に指定します。このオプション は、「レシピ」と「予算」の解法を使用する場合のみ利用できま す。デフォルトでは変数が実数として処理されます。
モデルで変数を使用してテーブルからアイテムを検索する場合 (例え ば HLOOKUP()、VLOOKUP()、INDEX()、OFFSET() を使用する場合など)、 必ず [整数] オプションを選択してください。整数オプションを設定 すると、選択した範囲のすべての
変数が影響を受ける点に注意してく ださい。一部の変数のみを実数として扱い、残りを整数として扱うに は、調整可能セルのグループを 2 つ作成し、一方のグループを整数、 もう片方を実数として処理することができます。これを行うには、調 整可能セルのレシピ グループを 1 つ追加して、[値] を [すべて] のままにします。次に、セル範囲をもう 1 つ追加し、その値オプシ ョンに [整数] を設定して、整数の調整可能セルのみを選択します。
92 [モデルの定義] コマンド

調整可能セル グループ

調整可能セルの各グループに、複数のセル範囲を指定することができ ます。これにより、関連のあるセル範囲グループの「階層」を構築で きます。各グループ内にある各セル範囲ごとに最小 - 最大の範囲制 限を指定できます。
特定の調整可能セル グループ内のすべてのセル範囲には、共通の解 法、交差率、突然変異率、および演算子が設定されています。これら は [調整可能セルのグループ設定] ダイアログで指定できます。この ダイアログを開くには、[調整可能セルの範囲] テーブルの隣にある [グループ] ボタンをクリックします。新しいグループを作成してこ れに調整可能セルの範囲を追加したり、既存のグループの設定を変更 することができます。
第 5 章: Evolver リファレンス ガイド 93
[調整可能セルのグループ設定] ダイアログの [一般] タブには、次 のオプションがあります。
z [説明] - ダイアログやレポートに、調整可能セル範囲のグルー
プについての説明として表示されます。
z [解法] - グループ内の各調整可能セル範囲に適用する解法を選
択します。
Evolver で調整するセルの範囲を選択するときに、それらの調整可能 セルに適用する「解法」も選択します。基本的には、各解法がまった く異なる遺伝的アルゴリズムを用いており、それぞれ独自の最適解選 択、交差、突然変異のルーチンを使用しています。変数の値を変化さ せる方法は解法によって異なります。
例えば「レシピ」解法は、選択された各変数をレシピの材料として扱 うため、各変数の値をほかの変数値とは独立して個別に変更すること ができます。これに対して「順序」解法は、調整可能セル間で既存の 値をスワップして、元々あった値を異なる変数に割り当てます。
Evolver には 6 つの解法が用意されています。このうち 3 つの解法 (レシピ、順序、グルーピング) は、まったく異なるアルゴリズムを 使用しています。残りの 3 つは最初の 3 つの「子孫」で、追加の制 限が適用されます。
次のセクションでは、各解法の機能について説明します。各解法の使 い方について詳しく理解するには、Evolver に付属のサンプル ファ イルの内容および、「第 4 章: 実用例」を参照してください。
94 [モデルの定義] コマンド
Loading...