二次錐計画法

nAG Library for Python Example集

<i>n</i>AG ロゴ

二次錐計画法

二次錐計画法 (SOCP) は、線形計画法 (LP) を二次 (ローレンツまたはアイスクリーム) 錐で拡張した凸最適化です。解の探索領域は、アフィン線形多様体と二次錐のデカルト積の交差です。

以下の図は、3変数のSOCP問題の実行可能領域の例を示しています。

SOCP 例

SOCPは、工学、制御理論、定量的金融から二次計画法や堅牢最適化まで、幅広い応用分野に現れます。その強力な性質により、金融最適化の重要なツールとなっています。内点法 (IPM) は、その理論的な多項式複雑性と実用的な性能により、SOCP問題を解くための最も一般的なアプローチです。

このディレクトリには、PythonでnAGのSOCPソルバーを使用するデモンストレーションが含まれています。

基本的なSOCP例

CVXPYへのインターフェース

CVXPY は、凸最適化問題のためのPython組み込みモデリング言語です。ソルバーが要求する制限的な標準形ではなく、数学に従った自然な方法で問題を表現することができます。nAGのSOCPソルバーはCVXPY内から使用できます。

二次制約付き二次計画法 (QCQP) としてのポートフォリオ最適化

このデモンストレーションは、nAGライブラリの二次錐計画法を使用したポートフォリオ最適化におけるモデリング技術の解説です。ポートフォリオ最適化のモデルには以下が含まれます:

  • 二次計画法 (効率的フロンティア)
  • 二次制約付き二次計画法 (TEVポートフォリオ)
  • 二次と線形の分数を目的関数とする最適化 (シャープレシオ)

nAGは、二次目的関数と制約を簡単に定義するための2つの関数を提供しています。その後、二次錐計画法ソルバーを直接呼び出して、再定式化の追加作業なしに問題を解くことができます。

ユーザーは、QCQPの問題を手動で二次錐計画法モデルに変換することもできます。以下のノートブックには、SOCPの再定式化の基本的な考え方をユーザーが理解するための2つの一般的な関数が含まれています。

nAGライブラリを使用したポートフォリオ最適化におけるロバスト線形計画法

ランダムに生成されたデータを使用した確率制約付きの平均分散モデル。

データ

  • stock_price.pkl - 2018年3月から2019年3月までのDJIAの30銘柄の日次価格を含むピクルス化されたデータファイル。サンプル外の期待リターンと共分散行列を推定するために使用されます。
  • djia_close_price.csv - 2018年3月から2019年3月までのDJIAの30銘柄の日次価格のCSVバージョン。

nAGライブラリ for Pythonの入手方法

関連情報
MENU
© 日本ニューメリカルアルゴリズムズグループ株式会社 2024
Privacy Policy  /  Trademarks