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
26
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
530
LCP_6_geometry_and_degree_theory_2
seytwo
0
87
LCP_5_geometry_and_degree_theory_1
seytwo
0
36
LCP_4_pivoting_methods_2
seytwo
0
76
LCP_2_existence_and_multiplicity
seytwo
0
1.4k
LCP_1_introduction
seytwo
0
180
Other Decks in Science
See All in Science
SCOTT: Self-Consistent Chain-of-Thought Distillation
meshidenn
0
310
qeMLパッケージの紹介
bob3bob3
0
970
LCG20
lcolladotor
0
210
同じデータでもP値が変わる話/key_considerations_in_NHST
florets1
1
1.1k
Unlocking Healthcare data: the power of Open Formats in Python Data Science
whitone
0
150
スポーツメトリクス設計に対比較法を使いまくる / Sports metrics design using pairwise comparison method (spoana#14)
konakalab
1
720
名古屋市立大学データサイエンス学部 夏のオープンキャンパス模擬授業20230818
ncu_ds
0
1.1k
JSol'Ex : solar image processing in Java
melix
0
240
Snowflake上でRを使う: RStudioセットアップとShinyアプリケーションのデプロイ
ktatsuya
0
110
B-Cubed: Leveraging analysis-ready biodiversity datasets and cloud computing for timely and actionable biodiversity monitoring
peterdesmet
0
160
Machine Learning for Materials (Lecture 6)
aronwalsh
0
420
外国人が思う日本語のむずかしいところ
jamashita
0
480
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Git: the NoSQL Database
bkeepers
PRO
422
63k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Writing Fast Ruby
sferik
621
60k
It's Worth the Effort
3n
180
27k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
A designer walks into a library…
pauljervisheath
200
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
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 目次