数理計画の実務と 半正定値対称行列 田辺隆人 [email protected] [email protected] (株)NTTデータ数理システム 数理計画法アルゴリズム • • • • • • • • 線形計画法(単体法、内点法) 二次計画法(有効制約法、内点法) 非線形計画法(逐次二次計画法,内点法) 非線形半正定値計画(内点法) 線形混合整数計画法(分枝限定法) 混合整数二次計画法(分枝限定法) 非線形整数計画法(分枝限定法) 重み付き制約充足問題(タブ・サーチ) 数理計画法アルゴリズム • • • • 線形計画法(単体法、内点法) 二次計画法(有効制約法、内点法) 非線形計画法(逐次二次計画法,内点法) 非線形半正定値計画(内点法) • • • • 線形混合整数計画法(分枝限定法) 混合整数二次計画法(分枝限定法) 非線形整数計画法(分枝限定法) 重み付き制約充足問題(タブ・サーチ) 数理計画法アルゴリズム • • • • 線形計画法(単体法、内点法) 二次計画法(有効制約法、内点法) 非線形計画法(逐次二次計画法,内点法) 非線形半正定値計画(内点法) • • • • 線形混合整数計画法(分枝限定法) 混合整数二次計画法(分枝限定法) 非線形整数計画法(分枝限定法) 重み付き制約充足問題(タブ・サーチ) 線形計画問題(標準形) 最小化 条 件 xR , mn Ax b, A R , t c x, x0 n 変数の分割.. n m b A x c 変数の分割 n m AB AN xB b cB xN cN 線形計画問題の性質 適当な分割: 非基底 x ( xB | xN ) ( xB | 0) 基底 とした解(基底解)の中に 最小化問題の解は存在する 最適解の全体 基底解 単体法アルゴリズム • 分割を探す⇔(基底)解を探す AB xB AN xN b x ( xB | xN ) ( xB | 0) 1 B xB A b 分割があれば 解の取得は容易 単体法アルゴリズム 変数一つを選択し て基底変数に できるだけ目的関数に実質 貢献するものを選ぼう (プライシング) x ( xB | x N ) 行列 対応する一つを 非基底変数に AB1とABT 効率よく更新しよう.. 線形計画法のKKT条件 (最適解の必要十分条件) Ax b, c A y z 0, t Xz 0, x 0, z 0 X diag ( x) 最適な基底解は KKT条件を満たす Ax b, c A y z 0, x ( xB | 0) t z (0 | cN A y) t N T B B 1 B y A c xB A b Xz 0, x 0, z 0 最適解の全体 最適な基底解 最適な基底解は KKT条件を満たす 問題の性質に特化 単体法 より汎用的 内点法 Ax b, c A y z 0, x ( xB | 0) t z (0 | cN A y) t N T B B 1 B y A c xB A b Xz 0, x 0, z 0 最適解の全体 最適な基底解 内点法アルゴリズム (線形計画法) • 次を「非線形方程式」として解こう! Ax b, c A y z 0, t Xz 0, x 0, z 0 X diag ( x) 内点法アルゴリズム (線形計画法) • 次を「非線形方程式」として解こう! Ax b, c A y z 0, 解法テクニック Xz , t x 0 , z 0 Newton法 f ( x x) f ( x) f ( x)x 0 f ( x) 1 x (f ( x)) f ( x) x ステップサイズの取得(一次方程式解法) に計算負荷が集中 内点法のステップ方向取得 • 一次方程式の形 D A x A O y t b 正定値対称行列への帰着 • Normal Equation Form (Adler,Karmarkar’89) D A A t O 不定値行列 ピボット選択不要 コレスキー分解の存在保障 1 AD A B t 正定値対称行列 係数行列の更新 for(k){ for(i,j){ B[i,j] += A[k,i]・A[k,j]・D[k,k] } 反復中不変 } 特殊なデータ構造 Normal Equation Formの欠点 • Dense column 問題 D A 疎行列 A t 1 O t AD A B 密行列 Dense Column 問題の解決 • Column 分割(Gonzio’94) • Rank-One-Update の利用 (Andersen’94) • Normal Equation Form の放棄 Augumented System Approach(Maros,Meszaros’95) エレガントな解決: 脱・正定値対称行列 • Augumented System Approach 列の並べ替え・変形 D 密 な 列 A 疎行列 A t O As Ds As 疎行列 t 不定値だが ピボット選択 は不要 Meszaros’95 内点法の特徴 • 最適性条件に依拠 ⇒汎用的な解法の枠組み • 汎用かつ効率的な実装? 正定値対称行列への帰着は必須ではない 非線形最適化問題の実装 (脱・正定値対称行列) • NLP用Augumented System Approach 並べ替え・変形 GD A 密 な 列 Bunch-Palett 分解 Bunch, Palett ’71 ならば分解可能 A t O As Ds As t 疎な不定値行列 (後付けの)まとめ • 正定値対称性は 直接法による一次方程式解法には 「オーバースペック」 • 単純な実装 ≠ よい実装 金融工学アプリケーションと 正定値対称性との出会い G L L, R R I , G R L (LR) t t t t • 相関行列 G に従った乱数列が欲しい • G を感覚的に手修正 • G のコレスキー分解が失敗 ⇒ソフトベンダーに電話: 「本件の修正には どのくらいの工数が必要でしょうか」 エレガントな解決: 半正定値計画問題(SDP)を内点法で解く 最小化 GX 制約 X I : 半正定値 F :最小固有値 最も近い相関行列の生成: Matrix Calibration 実行 ポートフォリオ R( x) rj x j r x xj 1 , xj 0 jAsset jAsset t ポートフォリオ最適化 E R( x) V R( x) rj x j r x r0 Qij xi x j x Qx jAsset i , jAsset t t 最小化 1 k k k k Qij ri E (ri ) rj E (rj ) K k ポートフォリオ最適化 分散最小化 均等分配 定式化の選択 • Full Covariance 最小化 i , jAsset Qij xi x j • コンパクト分解 最小化 制約 s sk kSample 2 k jAsset ( Rkj R j )x j 定式化の選択 • Full Covariance 最小化 半正定値 i , jAsset • コンパクト分解 最小化 制約 Qij xi x j 3000銘柄でも1~20秒程度 s sk kSample 2 k jAsset ( Rkj R j )x j 銘柄数制約付き 平均分散モデル 最小化 制約 t x Qx jAsset xj 1 , x j 0 または x j [l j , u j ] supp( x) K supp( x) {i | xi 0} とりあえず分枝限定法(MIQP) 「場合分け」+限定 最小化 制約 t x Qx xj 1 , j jAsset K j l j j x j u j j , j {0,1} 限界あり.二次の目的関数は特に難しい 凸緩和してSDP/SOCPに帰着 目的関数の書きかえとラグランジュ緩和 x Qx x (Q diag (d )) x z diag (d ) z t 正定値になるよ うに d >0を選ぶ t t xz Ax b jAsset xj 1 Az b jAsset zj 1 z j 0 または z j [l j , u j ] Xiaojin Zheng, Xiaoling Sun, Duan Li, Convex Relaxations and Mixed-Integer Quadratic Reformulations for Cardinality Constrained Quadratic Programs supp( z ) K 凸緩和してSDP/SOCPに帰着 目的関数の書きかえとラグランジュ緩和 x Qx x (Q diag (d )) x z diag (d ) z t t t xz jAsset xj 1 jAsset 緩和(乗数:λ) zj 1 z j 0 または z j [l j , u j ] supp( z ) K 凸緩和してSDP/SOCPに帰着 下界値の最大化問題 最大化 min{ f x ( x; , d )} min{ f z ( z; , d )} x z jAsset xj 1 jAsset zj 1 z j 0 または z j [l j , u j ] supp( z ) K ( , d ) を解く問題⇒SDP,( ) を解く問題⇒SOCP 凸緩和してSDP/SOCPに帰着 • SDP/SOCPの定式化 ⇒下界値の導出 ⇒ MIQPの補強による高速化 上下界値の改善 エレガントな解決: StQP StQPに関する事実の応用 最小化 制約 t x Qx jAsset xj 1 , xj 0 半正定値に 限らない StQP の最適解は t x Qx が強凸であるようなフェース ( I ) の relative interior に 存在する. Francesco Cesarone,Andrea Scozzari, and Fabio Tardella, A new method for mean-variance portfolio optimization with cardinality constraints エレガントな解決: StQPに関する事実の応用 最小化 制約 これも StQP t x Qx jI Asset xj 1 , xj 0 I K x Qx が強凸であるようなフェース ( I ) を t I Asset , I K について 調べ尽くせば銘柄数制約付き分散モデルの 大域的最適解を見逃すことはない エレガントな解決: StQPに関する事実の応用 最適解を与える集合 正定値な Q の部分行列の * インデックスの集合の中に I はある ⇒ インデックス I 0 について Q の部分行列が正定値でなければ,I 0 を含むあらゆる集合は I * に成り得ない ⇒ Increasing Set Algorithm 複数のベンチマーク問題に厳密解を 与えることに成功 StQPに関する事実の応用 そういえば.. ヘッセ行列が 低ランク なことが理由では? • ポートフォリオ最適化問題で 選択される銘柄は一般に少ない (⇒有効制約法が有利) long/short ポジションを許容する リスク最小化 最小化 ( x x ) Q( x x ) L L 制約 x 1 , x j j 0 L S t L jAsset jAsset x Sj 1 , x Sj 0 x Lj 0 または x Sj 0 S とりあえず分枝限定法(MIQP) 最小化 ( x x ) Q( x x ) L L 制約 x 1 , x j j 0 L S t L S jAsset jAsset x Sj 1 , x Sj 0 j x , (1 j ) x , j {0,1} L j S j とりあえず分枝限定法(MIQP) • 連続緩和問題の補強 収益率制約や複雑な投資制約が助けになっていた.. とりあえず分枝限定法(MIQP) • 制約なしの場合.. PROBLEM_NAME NUMBER_OF_VARIABLES (#INTEGER/DISCRETE) NUMBER_OF_FUNCTIONS PROBLEM_TYPE METHOD <preprocess begin>..........<preprocess end> <iteration begin> .1.2B up: 1e+050 lo:7.2290069e-020 #1 up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: iqp 600 200 603 MINIMIZATION ACTIVE_SET_QP time: 0.5s:mem(Mb)=77/57:avail(Mb)=4039/1872 llen:0 #prob:0 #piv:173 211.13232 time: 33.4s:mem(Mb)=111/91:avail(Mb)=4004/1837 llen:1286 #prob:2702 #piv:181822 211.13232 time: 61.8s:mem(Mb)=139/119:avail(Mb)=3977/1808 llen:2364 #prob:5329 #piv:345892 211.13232 time:124.7s:mem(Mb)=153/133:avail(Mb)=3963/1793 llen:2904 #prob:7589 #piv:720381 211.13232 time:184.0s:mem(Mb)=177/157:avail(Mb)=3938/1768 llen:3808 #prob:9569 #piv:1046687 211.13232 time:187.2s:mem(Mb)=178/157:avail(Mb)=3939/1767 llen:3856 #prob:9689 #piv:1066187 とりあえず分枝限定法(MIQP) • 制約なしの場合.. PROBLEM_NAME NUMBER_OF_VARIABLES (#INTEGER/DISCRETE) NUMBER_OF_FUNCTIONS PROBLEM_TYPE METHOD <preprocess begin>..........<preprocess end> <iteration begin> .1.2B up: 1e+050 lo:7.2290069e-020 iqp 600 200 603 MINIMIZATION ACTIVE_SET_QP 分枝限定法は全探索と同じ: #1 up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: up: 211.13232 lo:7.2290069e-020 gap: time: 0.5s:mem(Mb)=77/57:avail(Mb)=4039/1872 llen:0 #prob:0 #piv:173 211.13232 time: 33.4s:mem(Mb)=111/91:avail(Mb)=4004/1837 llen:1286 #prob:2702 #piv:181822 211.13232 time: 61.8s:mem(Mb)=139/119:avail(Mb)=3977/1808 llen:2364 #prob:5329 #piv:345892 211.13232 time:124.7s:mem(Mb)=153/133:avail(Mb)=3963/1793 llen:2904 #prob:7589 #piv:720381 211.13232 time:184.0s:mem(Mb)=177/157:avail(Mb)=3938/1768 llen:3808 #prob:9569 #piv:1046687 211.13232 time:187.2s:mem(Mb)=178/157:avail(Mb)=3939/1767 llen:3856 #prob:9689 #piv:1066187 緩和解は相補性を満たさず 目的関数は零 緩和⇒SDPを利用した補強の導出 • 相補性条件を緩和した問題 L( ) t L x x 最小化 S M ( ) S x x L 制約 jAsset x 1 L j jAsset Q M ( ) Q x Sj 1 x , x 0, j Asset L j S j M ( ) が半正定値ならば解ける! Q Q 緩和⇒SDPを利用した補強の導出 • L( ) の最小値を最大化する問題 (SDP) 最小化 制約 過去の反復で得られた解 変数 L ,( i ) Q Q x x L ,( i ) S ,( i ) S ,( i ) j xj xj S ,( i ) x Q Q x jS L ,( i ) T M ( ) 0 (半正定値) i 1,.., I 緩和⇒SDPを利用した補強の導出 • n=200での実験結果 緩和⇒SDPを利用した補強の導出 • λを用いて補強されたMIQP t 最小化 x x S M ( ) S x x 制約 x 1 , x 0 x Sj 1 , x Sj 0 L jAsset jAsset L L j L j j x , (1 j ) x , j {0,1} L j S j 緩和⇒SDPを利用した補強の導出 PROBLEM_NAME NUMBER_OF_VARIABLES (#INTEGER/DISCRETE) NUMBER_OF_FUNCTIONS PROBLEM_TYPE METHOD <preprocess begin>..........<preprocess end> <iteration begin> .1.......2B up: 1e+050 lo: 65.069268 qp_int 600 200 603 MINIMIZATION ACTIVE_SET_QP up: 1e+050 lo: 65.202836 up: 1e+050 lo: 65.507298 up: 1e+050 lo: 65.507298 #1 up: 78.939007 lo: 65.507298 gap: 13.431709 #2 up: 77.947918 lo: 65.507298 gap: 12.44062 #3 up: 77.930633 lo: 65.507298 gap: 12.423335 #4 up: 77.928705 lo: 65.507298 gap: 12.421407 up: 77.928705 lo: 65.507298 gap: 12.421407 50銘柄程度ならば 厳密解が得られる場合も.. time: 1.4s:mem(Mb)=51/32:avail(Mb)=4064/1897 llen:0 #prob:0 #piv:797 time: 65.1s:mem(Mb)=59/39:avail(Mb)=4058/1890 llen:1 #prob:349 #piv:136291 time:127.3s:mem(Mb)=59/40:avail(Mb)=4055/1888 llen:360 #prob:1119 #piv:357707 time:189.1s:mem(Mb)=75/56:avail(Mb)=4041/1874 llen:985 #prob:2369 #piv:649083 time:192.7s:mem(Mb)=77/57:avail(Mb)=4039/1872 llen:1034 #prob:2472 #piv:670000 time:192.8s:mem(Mb)=77/58:avail(Mb)=4038/1871 llen:1007 #prob:2473 #piv:670194 time:193.5s:mem(Mb)=76/57:avail(Mb)=4040/1873 llen:1006 #prob:2498 #piv:674716 time:193.8s:mem(Mb)=76/57:avail(Mb)=4039/1872 llen:1006 #prob:2508 #piv:676891 time:249.1s:mem(Mb)=88/68:avail(Mb)=4028/1860 llen:1455 #prob:3488 #piv:919435 Copositive Programmingに帰着 • 等価な定式化(Copositive Programming の 双対形) completely positive matrixのconeの集合 エレガントな解決: ? 偏微分方程式制約付き最適化 PDE constrained optimization 離散点での物理量 パラメータ 変数 , i i 最小化 (i i ) 2 i 制約 F ( , ) 0 パラメータと物理量を同時に解く 観測点での値 離散化された 物理方程式 偏微分方程式制約付き最適化 動機づけ Gassan S Abdoulaev, Kui Ren and Andreas H Hielscher, Optical tomography as a PDE-constrained optimization problem, Inverse Problems 21 (2005) 1507–1530 偏微分方程式制約付き最適化 「最適化」の位置づけ 協働の絶好の素材ではないでしょうか... 偏微分方程式制約付き最適化 最適化問題としての側面 ○ 不等式制約はほぼ効かない ○ KKT条件は線形性が強い × 超大規模(⇒反復法必須) × ヘッセ行列の正定値性は保障できない (⇒正規化項の導入) 偏微分方程式制約付き最適化 解くべき一次方程式 正規化項を加えて優対角にはできる H A A x bx y b W y t またお会いしましたね.. “Saddle Point System” Augumented Lagrangean のペナルティの逆数 偏微分方程式制約付き最適化 内点法の場合との違い 超大規模(⇒反復法必須) H A A x bx y b W y t 正定値性への目配りが必要に 61 前処理なし反復法での限界 • 正規化項を手厚くする • 次の形に変形してCG法 似たような方に以前お目にかか ったような.. H AW A x b t 1 計算の安定化(CG反復減少) 正規化項増大で非物理的解 エレガントな解決? Constraint Preconditioner H A 1 A H 1 t AH A S A t H H, S A W AH A W 1 t あなたは..! S の構成が鍵 (approximate Schur complement) t エレガントな解決? Approximate Schur complement を左辺とする一次方程式解法 • • • • • を対角行列に置き換えてコレスキー分解 multigrid 法による前処理行列でCG法 ノルムの定義を変更してCG法 対角スケーリングしてCG法を数回適用したものを前処理 行列としてGMRES法 ピボット選択付きの分解を数ステップ行ったものを前処理 行列としてGMRES法 H H, S AH A W 1 t 今度は近似で良いので自由度が高い まとめ • 半正定値性は結果を保障の「拠り所」 ー convex QP ー SDP緩和 • 「距離感」の調整も必要 ー 内点法の実装(線形計画法) ー cardinality constrained portfolio
© Copyright 2024