Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LCP_3_pivoting_methods_1
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
seytwo
May 30, 2020
Science
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LCP_3_pivoting_methods_1
there are some mistakes
to be revised
seytwo
May 30, 2020
More Decks by seytwo
See All by seytwo
ポケモンバトル例
seytwo
0
860
LCP_6_geometry_and_degree_theory_2
seytwo
0
120
LCP_5_geometry_and_degree_theory_1
seytwo
0
70
LCP_4_pivoting_methods_2
seytwo
0
110
LCP_2_existence_and_multiplicity
seytwo
0
1.5k
LCP_1_introduction
seytwo
0
250
Other Decks in Science
See All in Science
機械学習 - 決定木からはじめる機械学習
trycycle
PRO
0
1.7k
データベース06: SQL (3/3) 副問い合わせ
trycycle
PRO
1
1.2k
データベース02: データベースの概念
trycycle
PRO
2
1.4k
Controller Design for Symbolic Input-Output Systems Using Feedforward Neural Networks
konakalab
0
130
共生概念の整理と AIアライメントの構想
hiroakihamada
0
350
[Relay webinaire eBIS actu n°16] Amélioration de la survie des JB avec la génétique - Introduction
institutdelelevage
PRO
0
240
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
1.4k
バランスって大事だね
akasan
1
160
データベース10: 拡張実体関連モデル
trycycle
PRO
0
1.6k
データベース01: データベースを使わない世界
trycycle
PRO
1
1.5k
Van Dare naar Durf
voginip
0
310
データベース03: 関係データモデル
trycycle
PRO
1
890
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
350
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
ラッコキーワード サービス紹介資料
rakko
1
5.2M
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Product Roadmaps are Hard
iamctodd
55
13k
Side Projects
sachag
456
43k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
Between Models and Reality
mayunak
4
490
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
RailsConf 2023
tenderlove
30
1.6k
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 目次