9.7 Optimizer Examples (最適化の事例)
このフォルダには、Analytica で Optimizer を使用する事例が含まれています。これらのモデルは、Analytica と共に Optimizer ライセンスを購入したときだけ完全に機能するようになっています。
- Airline NLP (飛行機の非線形計画問題)
このモデルには、非線型プログラミング最適化とインテリジェント配列の事例が複数用意されています。
- 利益を最大化する飛行機の数と費用を選択する単純な飛行機決定問題:需要に関するパラメトリック分析。
- 不確実性を使った同じ問題で、期待される利益を最大化。
- 不確実性を使った同じ問題で、不確実性変数に値を与えて、期待される利益を最大化。
- 複数年にまたがる最適化の動態モデル
- 年毎に最適化を使った動態モデル
- Asset allocation (資産分配)
リスクとリターンのトレードオフ関係がそれぞれ異なる投資に関する各種候補が与えられたとき、多角化 (diversification) を通じてリスクを減らすことがしばしばあります。最良のケースは、期待される値上がり r が同じでも、共変動が反相関関係 (anti-correlated) であり、リスクのなく期待されるリターン率をもたらすような2つの資産に投資することです。この問題をさらに一般化すると、リターンを最大化し、リスクを最小化するようなポートフォリオを選択することになります。この問題に関しては、幾つかの定式化の候補があり、このモデルでは以下の3つを探索します:
- 与えられたリターンの期待値を条件として分散 (リスク) を最小化する。
- 与えれれた分散 (リスク) を条件としてリターンを最大化する。
- 与えられた危険回避 (risk aversion) 水準で期待効用を最大化することによってリスクとリターンを均衡させる。
- Automobile Production (自動車製造)
このモデルは、“Quick Review of Linear Programming,” Management Science Techniques for Consultants, by M.A. Trick (1996) から引用した線形プログラミングの事例です。この目的は、線形プログラムから変動するすべての結果を示すことです。
- The optimal solution
- The value of the objective function at the optimum
- The solution status
- The reduced costs (dual values for the variables) at the optimal solution
- The slack or surplus values for the constraints at the optimal solution
- The shadow prices or dual values for the constraints at the optimal solution
- The range over which the objective function coefficient can vary in the linear program without changing the optimal solution
- The range over which a right-hand-side coefficient can vary without changing the dual value (shadow price) of the optimal solution
- Big Mac Attack (ビッグマック問題)
このモデルは、マクドナルドで摂取するある人の1日の必要栄養量問題を取り扱います。この目標には、コスト、総カロリー摂取量、総炭水化物のいずれかを最小化することを選択できます。このモデルを使えば、連続 (Continuous)、整数 (Integer)、2値 (Binary) の解としてこの問題を解くことができます。Continuous を選択すると、計算的に問題は簡単になりますが、ビッグマックを 4.35 個注文することは不可能なので現実味のない結果になります。
- Capital Investment (資本投資)
このモデルは、4つのプロジェクト候補に関する資本予算の事例です。トータルのリターンを最大化するようなプロジェクトをどれにするかを決定することが目標です。
- Labor production allocation (労働者の配置問題)
製品のどの種類を生産し、労働者のスキルセットに基づいて労働者を各種製造ステップにどのように配置すべきかを決定する線形プログラムです。
- Magic Square (魔方陣)
整数の領域をグループ分けする簡単な事例です。正方形の縦と横の升目の合計がいずれも同じ値になるように1から n2 までの整数を埋めていきます。
- NLP with Jacobian (ヤコビアンを使った NLP)
このモデルは、制約条件付き非線形最適化へのヤコビ行列式 (Jacobian) と勾配 (gradient) の使用例を紹介するものです。ヤコビ行列式を解析的に利用すると、最適解を効率よく求めることができます。
この例は、簡単な幾何学問題です。互いに交叉する円の集合 (すべての円の共通集合は空白ではない) が与えられたとき、すべての円に含まれる点のうちターゲット点に最も近いのはどの点か?
このモデルのノード Abstractable NLP は、NLP (非線形計画) を配列抽出 (array-abstractable) の方法で定義する一般的メカニズムを示す例という点で特徴的です。
- Optimal can dimensions (最適な缶の寸法)
このモデルは、Analytica Optimizer の NLP Optimizer を使用する簡単な事例です。このモデルは与えられた容量が必ず入る円筒缶の最適な寸法を計算します。最適な缶の表面積は最小になります (すなわち、使用する材料は最小になります)。
- Optimal Production Allocation (最適な製品割当て)
このモデルは、 Analytica Optimizer を使った線形計画法の簡単な事例です。集積回路の製造業者が複数の異なる IC 製品 (チップ) を製造します。いずれのチップも、それぞれ異なるマシンによる一連の工程で製造します。いずれのチップも、すべての工程を必ず通過しますが、それぞれの工程にかかる時間は製品によって異なります。ある製品は工程1に多くの時間を費やしますが、他の製品は非常にわずかな時間しかかかりませんが、別の工程で多くの時間を費やします。この会社の目標は、各工程の能力を超えずに利益を最大化するような各製品の生産高を決定することです。
- Problems with Local Optima (局所最適問題)
非線形最適化問題には、 大域的最適解 (global optima) はもちろん、局所的最適解 (local optima) が含まれることがしばしばあります。理想的には最適化アルゴリズムで大域的最適解を常に求められればいいのですが、これを保証できるアルゴリズムは一般的にありません。大域的最適解のいずれの特性にも一般に局所的最適解が存在しますので、Optimizer が局所的最小値を見つけると、探索はそこで終了するのが一般的です。
NlpDefine() にオプションパラメーター guess をつけると、大域的最適解になると考えられる一般的な領域に探索をシードすることができます。Optimizer が局所的最適解に収束すると、それが guess (あて推量) の近辺となる可能性が高くなります。従って、さまざまなあて推量を試すことによって、局所的最適解が幾つか見つかります。これらの中の最適なものを使用すれば、真の大域的最適解が見つかる可能性が高くなります。
このモデルはこの手法を紹介するものです。
- Production Planning LP (生産計画の線形最適問題)
このモデルは、 生産計画の線形最適問題の事例です。ある企業が4種類の製品を製造しており、製造の最終工程には組み立て、研磨、および、梱包作業があります。これらの作業にかかる時間は販売単位あたりの利益に応じて製品ごとに異なっています。この会社は各製品をそれぞれどれだけ製造すればよくて、そのときの利益は幾らになるでしょうか?
- Quadratic Constraints (2次の制約)
最適化問題を2次の目的関数を使って2次的に制約する事例です。
- Solve using NLP (非線形計画法を使った解法)
このモデルは、非線形計画法を使って非線形方程式を解く方法を紹介するものです。この例では、方程式を制約条件としてエンコードし (これにより非線形制約条件の系に一般化します)、目的関数を無視 (定数に) します。
- Sudoku with Optimizer (Optimizer を使った数独)
数独の解を求めます。 数独は多くの新聞の呼び物記事として掲載されています。
- Traveling salesman (巡回セールスマン)
与えられた地点の最短の順回路を求めるものです。NP 完全問題の事例としてしばしば引用される問題です。すなわち、P ≠ NP として広く知られているように、問題の解を多項式時間で検証できますが、実用的な (多項式) 時間で常に解けるとは限らない問題です。
- Two Mines Model (2鉱山モデル)
このモデルは、生産問題のもうひとつの事例です。Two Mines Company は、ある鉱石を産出する2つの鉱山を所有しています。鉱石は粉砕されたあと、high, medium, low グレードの3つに分類されます。この会社には、high グレードなら週あたり 12 トン、medium グレードなら 8 トン、low グレードなら 24 トンを精製できる下請けがいます。2つの鉱山には、操業および各タイプの鉱石の生産コストに関してそれぞれ異なる操業特性があります。精錬プラントの契約を履行するには、各鉱石をそれぞれ1週間あたり何日稼動したらよいでしょうか?