1. トップページ
  2. 製品
  3. 機能とシステム要件
  4. 最適化

Oracle Crystal Ball 最適化


最適化とは?

     最適化という言葉がありますが、そもそも「最適」とは一体どのようなものでしょうか? 例えば「最適な手法」という言葉を用いるとき、「この手法は最短時間で作業を完了できます」や「最少の人員で済みます」 といった数値的な保証がなされていないと、その手法が最適とは言えません。 このように、「その解は本当に最適なのか?」という問いに答えるための定量的な評価を行うことが必須です。 つまり最適化は「定量的に最適性が保証できる解を求めること」なのです。

    optimization_01.png

最適化の難しさ

     最適化が難しいといわれているのは、解を求めることが困難であるからではありません。 考えられる解の中で「これよりも良い解がない」という保証を得ることが難しいのです。 例えば、図のようにたくさんの都市を一筆書きですべて巡るルートを考えてみてください。 ルートを発見することは非常に簡単ですが、そのルートが最短であることが果たして容易に言えるでしょうか? 理論的にはほぼすべてのルートを探索して長さを比較しないと最短であることが言えません。 都市の数が少ない場合はそこまで時間がかからないかもしれませんが、都市の数が増えればルートの数は莫大になります。 都市の数をnとすればルートの総数はn!(逆回りを同一ルートと考えると(n-1)!/2)通り存在します。 実際にnに大きな数を入れて計算すると、ルートの総数が莫大な数になることがお分かりいただけるかと思います。

    optimization_02.png

最適化とモンテカルロ・シミュレーション

     上の都市を巡る問題を少しアレンジして、距離ではなく時間的に最短なルートを求めることを考えます。 都市間の距離は一般に不変ですが、時間は交通状況や天候によって変化します。 そのような不確実な要因を最適化することは不可能です。なぜならそのルートが最短になる保証が全くないからです。 そこで厳密な最適解ではなく、最適ではないが最適に近い解(近似解)を求めることにします。 つまり「様々な不確実性を考慮する中で平均的に良い解」を求めることを考えるのです。

     不確実性を考慮するときに力を発揮するのがモンテカルロ・シミュレーションです。 時々刻々と変化する都市間所要時間を乱数で表現し、様々な状況下でのルート構築を行います。 都市の数が少なければ、10000回シミュレーションを行い平均的に所要時間が最も小さくなるルートを求めることが可能です。 下図はA、B、C、D、Eの5つの都市に対し、時間変動を考慮した最適化を行った様子です。下記の結果は「A→B→D→E→C→A」となりました。

    optimization_03.png

Crystal Ballにおける最適化

     上のようにCrystal Ballのプロパックにはモンテカルロ・シミュレーションを用いて最適化を行う機能があります(スタンダードにはございません)。 この機能もモンテカルロ・シミュレーションと同様にExcel®上で使用することができ、特別なプログラミングをすることなく最適化を行うことができます。 また、制約条件や必要条件を設定し予め探索範囲や求められる解に制限を設けることも可能です。 例えばある2組の都市間移動に時間的な制約を設けたり、全都市を巡回する時間が1時間以上を超える解は除外するといった設定が可能です。

     今回の例では、世間で広く知られている「都市を一筆書きで巡る問題(巡回セールスマン問題)」を例に最適化を説明してきましたが、 最適化を適用できる事例は数多く存在します。リスクを加味した最適化では、例えば得られるリターンと成功率に幅がある投資案件がいくつかあり、 その中から限られた予算でプロジェクトを選択する場合はモンテカルロ・シミュレーションが非常に有効です。具体的な紹介は下記をご覧ください。

    caseimg_0003a.png


  • Crystal Ballとは?

  • icon-crystalball.png
  • リスク分析ソフトウェアCrystal Ballについて
  • セミナーで体験する

  • icon-seminar.png
  • 無料のセミナーを毎月開催しています
  • お見積り

  • icon-buy.png
  • 価格の確認や購入を検討中の方はこちら
  • モデル作成のご相談

  • icon-consultation.png
  • 業務で利用するためのモデルづくりをお手伝いします