
金融分野での『最適化』ツールといえば、「ポートフォリオの最適化」という業務に多く使われていました。 投資対象銘柄が多くて数千程度を、1期間で、EXCEL やMATLAB® の範囲で解決できる規模です。 一部、デリバティブ評価用の各種の複雑なモデルのパラメータ推定(キャリブレーション)にも使われています。 学術的には、10年ほど前から研究されていたことですが、最近、ALM(Asset Liability Model)やリスク管理の分野で、モンテカルロ シミュレーションと併用し、負債(預金、保険など)の特性を考慮した最適運用の大規模問題にも適用されようとしています。
現在、銀行等にはバーゼルIII 規制、保険会社にはソルベンシー規制、また、IFRS(国際財務報告基準)などへの対応が求められています。 バーゼルIII のレバレッジ規制、流動性リスク規制、追加的リスク規制など、また、IFRSでの公正価値や償却原価法での資産、負債評価など、今までのような取得原価(簿価)に重きを置く会計制度とは異なり、市場環境の変動に感応的であり、資本をより必要とするリスク感度が高い規制等が導入されていこうとしています。 このため、資本を効率的に使用し、収益を向上させていくこと(リスク・リターン指向)が、金融機関の生き残りの雌雄を決することになります。 よって、「同一資本額でより収益を稼ぐ」ための大規模最適化問題に適したGurobi Optimizerの金融分野における活躍の場が、ますます広がっていくでしょう。

保険会社や年金運用機関を考えた場合、矛盾をかかえた「単年度の決算」と「長期の運用」にどう折り合いをつけるか。 また、今までは最適化の対象として考えていなかった銀行勘定(預貸勘定)を考えれば、長期間負債側に滞留するコア預金や、流動性制約の大きい長期貸出運用など、同じ問題を抱えることになります。 短期の1期間モデルを、複数回繰り返すことが最適になっているのか、最適化専門家でなくても、大きな疑問を感じることでしょう。 単年度ごとのリスク制約を満たしながら、長期の収益最大化を図るためには、また、市場変動の影響を大きく受ける会計制度への対応を考えた場合、大きなポートフォリオを対象とした確率計画問題が前提となり、大規模な最適化問題を解く必要がでてきます。 以前と比較してより安価で、高速化、並列化などの高度なマシン環境を構築し易くなった現在においては、大規模問題に対応可能なGurobi Optimizerにより実現可能です。
リスク制約下での収益最大化問題を考えてみます。

対象ポートフォリオの価値に影響を与える要因(金利、株価、為替、商品、信用スプレッド等)のシナリオを複数発生し、複数時点での最適化問題を解きます。
例として、3年後の純資産価値(資産価値-負債価値)最適化問題を前提とします。

Gurobi Optimizer では、数千万制約にも及ぶ超大規模最適化問題を、マルチコアCPUマシン1台で、1時間以内で解いてしまうパフォーマンスを持っています。 1千案件、1万シナリオ、複数時点の期待値制約、リスク制約を考えると、1時間以内で解けることになりますが、資産、負債案件が多くなると、各時点の資産、負債価値を計算するモンテカルロ シミュレーション側の計算時間の制約で、解ける問題の規模が決まると思います。 これには、各時点の価値計算にはリスク中立確率、各時点間は観測確率という、シミュレーションでの確率切替による計算オーバーヘッドの問題もあるためです。
上記例は、一般的なシミュレーション型確率計画モデルですが、参考文献(1)に、各時点で複数の戦略を考慮できるシミュレーション/ツリー混合型多期間確率計画モデルの例が紹介されています。 なお、変動要因(金利、株価、為替など)が複数になると、ツリーのカテゴライズが複雑になり、適用が困難になる場合もあるでしょう。