Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LCP_3_pivoting_methods_1
Search
seytwo
May 30, 2020
Science
0
31
LCP_3_pivoting_methods_1
there are some mistakes
to be revised
seytwo
May 30, 2020
Tweet
Share
More Decks by seytwo
See All by seytwo
ポケモンバトル例
seytwo
0
720
LCP_6_geometry_and_degree_theory_2
seytwo
0
100
LCP_5_geometry_and_degree_theory_1
seytwo
0
48
LCP_4_pivoting_methods_2
seytwo
0
100
LCP_2_existence_and_multiplicity
seytwo
0
1.5k
LCP_1_introduction
seytwo
0
230
Other Decks in Science
See All in Science
How To Buy, Verified Venmo Accounts in 2025 This year
usaallshop68
2
110
アナログ計算機『計算尺』を愛でる Midosuji Tech #4/Analog Computing Device Slide Rule now and then
quiver
1
190
オンプレミス環境にKubernetesを構築する
koukimiura
0
260
眼科AIコンテスト2024_特別賞_6位Solution
pon0matsu
0
410
Lean4による汎化誤差評価の形式化
milano0017
1
240
06_浅井雄一郎_株式会社浅井農園代表取締役社長_紹介資料.pdf
sip3ristex
0
500
トラブルがあったコンペに学ぶデータ分析
tereka114
2
1.6k
統計学入門講座 第4回スライド
techmathproject
0
140
KH Coderチュートリアル(スライド版)
koichih
1
41k
動的トリートメント・レジームを推定するDynTxRegimeパッケージ
saltcooky12
0
150
学術講演会中央大学学員会府中支部
tagtag
0
270
安心・効率的な医療現場の実現へ ~オンプレAI & ノーコードワークフローで進める業務改革~
siyoo
0
250
Featured
See All Featured
Code Review Best Practice
trishagee
69
18k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Visualization
eitanlees
146
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
線形相補性問題ゼミ 4章 ピボットアルゴリズム 前半 せい@seytwo 2020/5/30 線形相補性問題ゼミ③ 1 https://epubs.siam.org/doi/book/10.1137/1.9780898719000?mobileUi=0
線形相補性問題の定義 ⚫ 線形相補性問題LCP(, ) − 実行可能性と相補性を満たす点を探す • 実行可能性: = +
≥ 0, ≥ 0 • 相補性:⊤ = 0 − ∈ ℝ, ∈ ℝ, ∈ ℝ, ∈ ℝ× find subject to = + , ≥ 0 ⊤ = 0 2020/5/30 線形相補性問題ゼミ③ 2 線形相補性問題の復習
幾何的解釈 ⚫ 実行可能性:多面体上にある ⚫ 相補性:二つの超平面のどちらかの上 − = 0 or =
+ ⊤ = 0 2020/5/30 線形相補性問題ゼミ③ 3 線形相補性問題の復習
行列クラスとLCPクラスの対応関係 2020/5/30 線形相補性問題ゼミ③ 4 線形相補性問題の復習 (⇒):実行可能なら十分条件 (⇐):実行可能なら必要条件 行列/LCP 実行可 存在性
唯一性 凸性 有限性 凸QP LP S ⇔ ⇐ ⇐ Q ⇒ ⇔(def) ⇐ (⇐) (⇐) P ⇒ ⇒ ⇔ ⇒ ⇒ (⇐) (⇐) 列十分 ⇔ (⇐) (⇐) 行十分 (⇒) 非退化 ⇐ ⇔ (⇐) (⇐) 正定値 ⇒ ⇒ ⇒ ⇒ ⇒ ⇔ ⇐ K ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇔
教科書目次 1. Introduction 2. Background 3. Existence and Multiplicity 4.
Pivoting Methods 5. Iterative Methods 6. Geometry and Degree Theory 7. Sensitivity and Stability Analysis 2020/5/30 線形相補性問題ゼミ③ 5 目次
4. Pivoting Methods 1. Invariance Theorems 2. Simple Principal Pivoting
Methods 3. General Principal Pivoting Methods 4. Lemke’s Methods 5. Parametric LCP Algorithms 6. Variable Dimension Schemes 7. Methods for Z-Matrices 8. A Special n-Step Scheme 9. Degeneracy Resolution 10.Computational Consideration 2020/5/30 線形相補性問題ゼミ③ 6 目次
本日の流れ 1. ピボットアルゴリズムの概要 2. 基底解 3. 辞書 4. ピボット規則 5.
アルゴリズム一覧 6. simple principal pivoting method 7. general principal pivoting method 8. Lemke’s method 2020/5/30 線形相補性問題ゼミ③ 7 目次
ピボットアルゴリズムの概要 ⚫ ピボットアルゴリズム − 基底解をたどって解を得る − 基底解 • 少なくとも個の変数がゼロの解 •
個の超平面の交点 − 基底変数 • 値が非ゼロの変数 − 非基底変数 • 値がゼロの変数 2020/5/30 線形相補性問題ゼミ③ 8 ピボットアルゴリズムの概要
ピボット演算 ⚫ ピボット演算 − 基底変数と非基底変数を交換する操作 ⚫ 入変数:driving variable − 基底変数に入れる非基底変数
− 非ゼロ→ゼロ ⚫ 出変数:blocking variable − 基底変数から出す基底変数 − ゼロ→非ゼロ 2020/5/30 線形相補性問題ゼミ③ 9 ピボットアルゴリズムの概要
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 10
基底解 = +
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 11
基底解 = +
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 12
基底解 = −
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 13
基底解 =
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 14
基底解 = ഥ ℬ ℬ ഥ ℬ ℬ
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 15
基底解 = ℬ ℬ ഥ ℬ ഥ ℬ +
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 16
基底解 − ℬ ℬ ഥ ℬ ഥ ℬ =
基底解の計算方法 ⚫ 辞書を作成し,非基底変数にゼロを代入 − 辞書: • 基底を従属変数,非基底を独立変数とする形式 2020/5/30 線形相補性問題ゼミ③ 17
基底解 − ℬ = ℬ −1 ഥ ℬ ഥ ℬ ℬ −1
辞書の特徴 ⚫ 基底変数は非基底変数の関数 − 非基底をゼロにすると,基底の値が分かる − 非基底変数の値を変えたときの,基底変数の変 化量が分かる − 基底の値をゼロにさせる変化量を見積もれる
• minimum ratio test 2020/5/30 線形相補性問題ゼミ③ 18 辞書 = + ҧ ⋅ ҧ ҧ ҧ ҧ
辞書の簡易表現 ⚫ 変数:, ⚫ 変数の値: ҧ , ഥ 2020/5/30 線形相補性問題ゼミ③
19 辞書 1 2 3 1 1 11 12 13 ഥ 1 2 2 21 22 23 ഥ 2 3 3 31 32 33 ഥ 3 ҧ 1 ҧ 2 ҧ 3
ピボット演算の例 ⚫ 入変数:1 ⚫ 出変数:1 2020/5/30 線形相補性問題ゼミ③ 20 辞書 入
1 2 3 1 -3 0 -1 2 -3 2 6 2 0 -2 6 出 3 -1 -1 1 0 -1 0 0 0
ピボット演算の例 ⚫ 入変数:1 ⚫ 出変数:1 2020/5/30 線形相補性問題ゼミ③ 21 辞書 3
2 3 1 -3 0 -1 2 -3 2 4 -2 2 -2 12 1 -1 -1 1 0 3 -4 0 0
ピボット規則 ⚫ ピボット規則 − 入変数と出変数を選択する規則 ⚫ 闇雲にピボットしても解に収束しない − 「何か」を保ったまま, −
「何か」を改善するピボット規則が必要 ⚫ 例:シンプレックス法 − 実行可能性を保ちながら,目的関数値を改善 ⚫ LCPにおける「何か」 − 実行可能性 − 相補性 2020/5/30 線形相補性問題ゼミ③ 22 ピボット演算
アルゴリズム一覧 2020/5/30 線形相補性問題ゼミ③ 23 アルゴリズム 概要 simple principal pivoting 相補性を保ったまま,
実行可能な解が得られるまで繰り返す. general principal pivoting 粗相補性を保ったまま, 実行可能な制約数を徐々に増やす. Lemke 実行可能性&粗相補性を保ったまま, 相補解が得られるまで繰り返す. 粗相補性(almost complementary):一か所以外は相補性を満たす
アルゴリズム一覧 2020/5/30 線形相補性問題ゼミ③ 24 アルゴリズム 実行可能性 相補性 粗相補性 simple principal
pivoting × ◦ --- general principal pivoting step by step × ◦ Lemke ◦ × ◦
概要 ⚫ Simple Principal Pivoting Method − 相補性を保ったまま,実行可能になるまで反復 2020/5/30 線形相補性問題ゼミ③
25 Simple Principal Pivoting Method
ピボット規則 ⚫ 出変数: − 負の基底変数 − →実行可能性を改善するため ⚫ 入変数: −
出変数の相補対変数 − →相補性を保つため 2020/5/30 線形相補性問題ゼミ③ 26 Simple Principal Pivoting Method
アルゴリズム 1. 基底変数を初期化 − 基底変数:1 , … , − 非基底変数:
1 , … , 2. while not 実行可能 3. ҧ < 0 or ഥ < 0である添字を選択 4. ҧ とഥ をピボット 5. return ҧ 2020/5/30 線形相補性問題ゼミ③ 27 Simple Principal Pivoting Method
実行例 2020/5/30 線形相補性問題ゼミ③ 28 Simple Principal Pivoting Method 入 1
2 3 出 1 -3 2 -1 0 -3 2 6 -1 2 -1 6 3 -1 0 -1 2 -1 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 29 Simple Principal Pivoting Method 入 1
2 3 1 3/2 1/2 1/2 0 3/2 2 9/2 -1/2 3/2 -1 9/2 出 3 -1 0 -1 2 -1 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 30 Simple Principal Pivoting Method 1 2
3 1 3/2 1/2 1/2 0 3/2 2 4 -1/2 1 -1/2 4 3 1/2 0 1/2 1/2 1/2 0 0 0
アルゴリズム一覧 アルゴリズム 実行可能性 相補性 粗相補性 simple principal pivoting × ◦
--- general principal pivoting step by step × ◦ Lemke ◦ × ◦ 2020/5/30 線形相補性問題ゼミ③ 31 アルゴリズム一覧
アイデア ⚫ SPMMの欠点 − 負の基底変数をピボットしたからといって,ピ ボット後にその相補対が正になる保証はない − ⇒収束性の保証が難しい,効率が悪い 2020/5/30 線形相補性問題ゼミ③
32 General Principal Pivoting Method
アイデア ⚫ 実行可能性を保つ・改善するピボット − 実行可能性を改善: • 負の基底解の相補対変数を入変数に選択 − 実行可能性を保つ: •
minimum ratio testで出変数を選択 • 入変数がブロックされないことがある 2020/5/30 線形相補性問題ゼミ③ 33 General Principal Pivoting Method 入 1 2 3 1 -3 0 -1 2 -3 2 6 2 0 -2 6 3 -1 -1 1 0 -1 0 0 0 1 = 1 1 = 0
概要 ⚫ General Principal Pivoting Method − 実行可能な制約数を徐々に増やす − 基底解の概念を拡張し,出変数を必ずブロック
⚫ 基底解の概念の拡張 − 元々:非基底変数はゼロ − 拡張:非基底変数はゼロか下限 • 下限 < min 2020/5/30 線形相補性問題ゼミ③ 34 General Principal Pivoting Method 1 2 3 1 -3 0 -1 2 -3 2 6 2 0 -2 6 3 -1 -1 1 0 -1 0 0 0 1 = 1 1 = 0 1 =
ピボット規則 ⚫ 目印変数:distinguished variable − = 0, < 0となる −
= となる − →実行可能性を改善するため ⚫ 入変数: − 前ステップで出変数の相補対変数 − 最初のステップの場合,目印変数の相補対変数 − →(粗)相補性を保つため ⚫ 出変数: − minimum ratio testで選択(下限でもOK) − →実行可能性を保つため 2020/5/30 線形相補性問題ゼミ③ 35 General Principal Pivoting Method
アルゴリズム 1. 基底変数を設定 2. 基底解を計算: 3. while 実行不能 4. 目印変数を選択:
< 0 5. do 6. 入変数を選択 7. 出変数を選択 8. 入変数と出変数をピボット 9. while 出変数 != 目印変数 10.return ҧ 2020/5/30 線形相補性問題ゼミ③ 36 General Principal Pivoting Method
実行例 2020/5/30 線形相補性問題ゼミ③ 37 General Principal Pivoting Method 入 1
2 3 目 1 -3 0 -1 2 -3 2 6 2 0 -2 6 出 3 -1 -1 1 0 -1 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 38 General Principal Pivoting Method 入 3
2 3 目出 1 -3 0 -1 2 -3 2 4 -2 2 -2 12 1 -1 -1 1 0 3 -4 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 39 General Principal Pivoting Method 目入 3
2 1 3 3/2 0 1/2 1/2 3/2 2 1 -2 1 -1 9 出 1 -1 -1 1 0 3 -4 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 40 General Principal Pivoting Method 入 1
2 1 3 3/2 0 1/2 1/2 3/2 出 2 3 2 -1 -1 3 目 3 -1 -1 1 0 -1 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 41 General Principal Pivoting Method 入 1
2 2 3 3 1 0 -1/2 3 1 3 2 -1 -1 3 目出 3 -1 -1 1 0 -1 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 42 General Principal Pivoting Method 1 3
2 3 3 1 0 -1/2 3 1 2 1 -1 -1 2 2 1 1 1 0 1 0 0 0
アルゴリズム一覧 アルゴリズム 実行可能性 相補性 粗相補性 simple principal pivoting × ◦
--- general principal pivoting step by step × ◦ Lemke ◦ × ◦ 2020/5/30 線形相補性問題ゼミ③ 43 アルゴリズム一覧
アイデア ⚫ GPPMの欠点 − ピボット規則が複雑 − 初期解に実行可能な基底解を使えばよいのでは? ⚫ 実行可能な基底解の計算 −
相補性を未考慮:二段階シンプレックス法 − ある程度相補性を満たした解の計算は困難 2020/5/30 線形相補性問題ゼミ③ 44 Lemke’s Method
概要 ⚫ Lemke’s Method − 拡張問題で実行可能な初期解を得る − 実行可能性を保ったまま基底解を更新 ⚫ 拡張問題LCP(
, ෩ ) − ∈ ℝ, ∈ ℝ, ∈ ℝ, ∈ ℝ× − 0 ∈ ℝ, 0 ∈ ℝ, ∈ ℝ, 0 ∈ ℝ − > 0,十分に大きい 0 2020/5/30 線形相補性問題ゼミ③ 45 Lemke’s Method = + 0 0 0 0 −
拡張問題の性質 ⚫ 補題 − 拡張問題は解を持つ ⚫ 主張 − LCP( ,
෩ )の解が0 = 0 − ⇒はLCP(, )の解 ⚫ 主張 − LCP( , ෩ )の解が0 > 0 − ⇒LCP(, )に解は存在しない 2020/5/30 線形相補性問題ゼミ③ 46 Lemke’s Method
初期解の計算 ⚫ 0 を限りなく大きくすれば実行可能になる − 0 の係数が > 0で,は必ず増加するから ⚫
と0 をピボット: ∈ argmax − / 2020/5/30 線形相補性問題ゼミ③ 49 Lemke’s Method 0 1 2 3 0 + 0 - - - 10 1 -3 + -3 2 6 + 6 3 -1 + -1 0 0 0 0
ピボット規則 ⚫ 入変数 − 前ステップで出変数の相補対変数 − 最初のステップの場合,初期化での出変数 − →(粗)相補性を保つため ⚫
出変数 − minimum ratio testで選択 − →実行可能性を保つため 2020/5/30 線形相補性問題ゼミ③ 50 Lemke’s Method
アルゴリズム 1. if ≥ 0 then return 2. 実行可能な初期解を計算 3.
do 4. 入変数に選択 5. 出変数を選択 6. 入変数と出変数をピボット 7. while not 0 , 0 が出変数 8. if 0 が出変数 return ҧ 9. 解無し 2020/5/30 線形相補性問題ゼミ③ 51 Lemke’s Method
実行例 2020/5/30 線形相補性問題ゼミ③ 52 Lemke’s Method 入 0 1 2
3 0 10 0 -1 -1 -1 10 出 1 -3 1 0 -1 2 -3 2 6 1 2 0 -2 6 3 -1 1 -1 1 0 -1 0 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 53 Lemke’s Method 入 1 1 2
3 0 10 0 -1 -1 -1 10 0 3 1 0 1 -2 3 2 9 1 2 1 -4 9 出 3 2 1 -1 2 -2 2 0 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 54 Lemke’s Method 入 1 3 2
3 0 8 -1 1 -3 1 8 0 3 1 0 1 -2 3 2 13 3 -2 5 -8 13 出 1 2 1 -1 2 -2 2 0 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 55 Lemke’s Method 入 1 3 2
1 0 9 -1/2 1/2 -2 -0.5 9 0 1 0 1 -1 1 1 出 2 5 -1 2 -3 4 5 3 1 1/2 -1/2 1 -1/2 1 0 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 56 Lemke’s Method 入 2 3 2
1 0 13/2 1/2 -1/2 -1/2 -5/2 13/2 出 0 1 0 1 -1 1 1 1 5 -1 2 -3 4 5 3 7/2 -1/2 1/2 -1/2 3/2 7/2 0 0 0 0
実行例 2020/5/30 線形相補性問題ゼミ③ 57 Lemke’s Method 入 2 3 0
1 0 6 1/2 -1 1/2 -3 6 出 2 1 0 1 -1 1 1 1 2 -1 -1 3 1 2 3 3 -1/2 0 1/2 1 3 0 0 0 0
アルゴリズム適用条件 アルゴリズム 行列 備考 simple principal pivoting P行列 最小添字 general
principal pivoting 列十分行列 --- Lemke any --- 2020/5/30 線形相補性問題ゼミ③ 58
まとめ ⚫ ピボットアルゴリズム − 基底解をたどって解を得る − ピボット:基底と非基底を交換する操作 ⚫ ピボット規則 −
交換する基底と非基底を決める規則 − 「何か」を保存・改善するように設計 2020/5/30 線形相補性問題ゼミ③ 59 4.ピボットアルゴリズム アルゴリズム 実行可能性 相補性 粗相補性 simple principal pivoting × ◦ --- general principal pivoting step by step × ◦ Lemke ◦ × ◦
4. Pivoting Methods 1. Invariance Theorems 2. Simple Principal Pivoting
Methods 3. General Principal Pivoting Methods 4. Lemke’s Methods 5. Parametric LCP Algorithms 6. Variable Dimension Schemes 7. Methods for Z-Matrices 8. A Special n-Step Scheme 9. Degeneracy Resolution 10.Computational Consideration 2020/5/30 線形相補性問題ゼミ③ 60 目次