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
線形計画法-1-2段階単体法まで-20260616
Search
TomNJP
July 23, 2026
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
線形計画法-1-2段階単体法まで-20260616
TomNJP
July 23, 2026
More Decks by TomNJP
See All by TomNJP
線形計画法-2-双対問題-双対定理-双対単体法-20260707
tomnjp
0
72
非線形計画法-1-凸関数と最適性条件-誤り修正版-20260721
tomnjp
0
130
機械学習モデルの解釈手法-1-前提知識&基本手法-20250728
tomnjp
0
370
深層学習-1-誤差逆伝播法まで-20250616
tomnjp
0
130
因果推論-1-前提知識-20250616
tomnjp
0
160
因果推論-2-基本実装-20250630
tomnjp
0
190
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
The Spectacular Lies of Maps
axbom
PRO
1
940
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
GitHub's CSS Performance
jonrohan
1033
470k
Design in an AI World
tapps
1
290
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
400
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
A Soul's Torment
seathinner
6
3.5k
Are puppies a ranking factor?
jonoalderson
2
3.8k
Darren the Foodie - Storyboard
khoart
PRO
3
3.7k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Transcript
数理最適化 1 2 段階単体法まで 中島 智哉 電気通信大学 / 経営社会情報学プログラム /
学部 3 年 2026/6/16 中島智哉|電気通信大学 1
参考書籍 しっかり学ぶ数理最適化 梅谷 俊治 引用元: amazon.co.jp 中島智哉|電気通信大学 2
目次 1 導入 2 線形計画法 中島智哉|電気通信大学 3
目次 1 導入 2 線形計画法 中島智哉|電気通信大学 4
数理最適化の一般形式 数理最適化で扱う最適化問題は以下のような一般的な形で表現される. 最大化 / 最小化 f (x) 制約条件 x∈S (1)
決定変数 (x): 最適化問題における操作変数 解: 決定変数に割り当てられた値 実行可能解: 制約条件を満たす解 実行可能領域 (S): 実行可能解の集合 制約つき最適化問題: 制約条件を持つ最適化問題 制約なし最適化問題: 制約条件を持たない最適化問題 中島智哉|電気通信大学 5
最適解の定義 目的関数 (f ): 最大化 / 最小化を目指す対象 最適解 (x∗ ):
最適化問題の解 最適値 (f (x∗ )): 最適解 x∗ における目的関数の値 最適化問題を解く: 一般に「最適解を 1 つ求める」ことを指す 列挙問題: 複数存在する最適解のすべてを求める問題 最大化問題における最適解の定義 x∗ ∈ S が最大化問題の最適解であるとは,以下を満たすことである. f (x∗ ) ≥ f (x), 中島智哉|電気通信大学 ∀x ∈ S (2) 6
最適化問題の 4 つの分類 最適化問題は以下の 4 つの場合に分類される. 1 実行不能 (infeasible): 制約を満たす解が存在しない
(S = ∅) 2 非有界 (unbounded): 目的関数の値を限りなく改善できるため最適解がない 3 有界であるが最適解が存在しない: 目的関数の値は有限だが最適解が存在しない 4 最適解が存在する: 有限な最適値と最適解が存在する 中島智哉|電気通信大学 7
大域最適解と局所最適解 大域最適解: 定義通りの最適解 局所最適解: 十分に小さい近傍のなかでの最適解 最大化問題における局所最適解の定義 近傍 N (x∗ )
内の任意の実行可能解 x ∈ S ∩ N (x∗ ) に対して以下を満たすもの f (x∗ ) ≥ f (x) (3) 大域最適解は局所最適解であるが局所最適解は必ずしも大域最適解にはならない 中島智哉|電気通信大学 8
目次 1 導入 2 線形計画法 中島智哉|電気通信大学 9
標準形 線形計画問題を単体法で解くために標準形へ変形する 標準形の定義 最大化 条件 n X j=1 n X
cj xj aij xj ≤ bi i = 1, . . . , m (4) j=1 xj ≥ 0 中島智哉|電気通信大学 j = 1, . . . , n 10
標準形への変換ルール 線形計画問題は以下の規則により標準形へ変換可能 最小化問題: 目的関数に −1 を掛け最大化問題にする − + − 非負制約のない変数:
変数 xj を 2 つの非負変数 x+ j , xj を用いて xj = xj − xj と置き換 える 不等式制約(≥): 両辺に −1 を掛け不等号の向きを ≤ に反転させる 等式制約(=): ≤ と ≥ の 2 つの不等式に分解し ≥ の方を −1 倍する 中島智哉|電気通信大学 11
標準形への変換例 標準形 元の問題 最小化 3x1 + 4x2 − 2x3 条件
2x1 + x2 = 4 x1 − 2x3 ≤ 8 3x2 + x3 ≥ 6 x1 , x 2 ≥ 0 中島智哉|電気通信大学 (5) → − 最大化 −3x1 − 4x2 + 2x+ 3 − 2x3 条件 2x1 + x2 ≤ 4 −2x1 − x2 ≤ −4 − x1 − 2x+ 3 + 2x3 ≤ 8 − −3x2 − x+ 3 + x3 ≤ −6 + − x1 , x 2 , x 3 , x 3 ≥ 0 (6) 12
単体法の概略 以下の標準形へ変換済みの線形計画問題を考える. 最大化 x1 + 2x2 条件 x1 ≥ 0
· · · ① x2 ≥ 0 · · · ② x1 + x2 ≤ 6 · · · ③ x1 + 3x2 ≤ 12 · · · ④ 2x1 + x2 ≤ 10 · · · ⑤ (7) 実行可能領域は 5 本の直線に囲まれた凸多角 形になる 最適解は凸多角形の頂点上に存在する 単体法は,頂点から隣接する頂点への移動を 繰り返し,目的関数の値を改善していく手法 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 13
全探索が困難な理由 一般に非負制約以外の制約が m 本,変数が n 個の標準 形の問題では,連立方程式を解いて頂点の候補を求める 組合せの数は以下となる.
m+n (m + n)! = (8) n m!n! 変数 n や制約 m が増えると,組合せの数は階乗の オーダーで爆発的に増加する したがって,すべての頂点を列挙して調べる全探 索の手法は実用的ではない 全探索を避け,ごく一部の頂点だけを探索して効 率的に最適解を求めるアルゴリズム(単体法など) が必要となる 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 14
スラック変数の導入と辞書 非負のスラック変数 x3 , x4 , x5 と目的関数の値を表 す変数 z
を新たに導入し,制約条件 ③〜⑤ を等式 に変形する. そこから単体法の手続きに必要な部分を取り出し, 移項して左辺に基底変数,右辺に非基底変数が集 まるよう整理したものを辞書 と呼ぶ. 初期状態の辞書は以下の通り. z = x1 + 2x2 x3 = 6 − x1 − x2 x4 = 12 − x1 − 3x2 x5 = 10 − 2x1 − x2 x1 , x2 , x3 , x4 , x5 ≥ 0 ←削除 中島智哉|電気通信大学 (9) 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 15
単体法の用語 スラック変数: 不等式制約を等式に変形するために 導入する非負の変数.制約に対する「余裕」を 表す. 基底変数: 辞書の左辺に現れ,非基底変数を 0 とし た際に値が一意に定まる変数.
非基底変数: 辞書の右辺に現れ,値を 0 に固定する 変数. 実行可能基底解: 実行可能領域の頂点に対応す る解. ピボット操作: 目的関数を改善するために基底変数 と非基底変数を 1 組入れ替える操作.隣接する頂 点への移動を意味する. 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 16
辞書の幾何学的な意味 右辺の非基底変数の値を 0 に固定し左辺の基 底変数の値を算出する 変数を 0 に固定することは対応する不等式制 約が等号で成立することと同義 複数の変数を
0 に固定する操作はそれらの直 線の交点を求めることに対応 初期状態では非基底変数が x1 = 0 x2 = 0 と固 定され目的変数は z = 0 となる これは図における直線①(x1 = 0)と② (x2 = 0)の交点である頂点 (a) に対応 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 17
ピボット操作(頂点 a から c への移動) z = x1 + 2x2
より x1 または x2 のいずれかを 増やせば z は改善する x1 = 0 に保ち x2 を増やすことを考える 各基底変数は非負制約 (x ≥ 0) を満たす必要がある ため,x2 の増加量には限界がある. x3 = 6 − x2 ≥ 0 x4 = 12 − 3x2 ≥ 0 ⇒ x2 ≤ 4 x5 = 10 − x2 ≥ 0 (10) x2 = 4 とすると x4 = 0 となる 基底変数 x4 と非基底変数 x2 を入れ替える (ピボット操作) これにより頂点 (a) から (c) へ移動する (z = 8) 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 18
辞書の更新とピボット操作(頂点 c から e へ) x4 = 12 − x1
− 3x2 を x2 について解き直し,辞書 の x2 に代入して更新する. z = 8 + 13 x1 − 23 x4 x3 = 2 − 23 x1 + 13 x4 x2 = 4 − 13 x1 − 13 x4 (11) x5 = 6 − 53 x1 + 13 x4 次に係数が正である x1 を増やす(x4 = 0 は 固定) 非負制約から x3 = 2 − 23 x1 ≥ 0 ⇒ x1 ≤ 3 x1 = 3 とすると x3 = 0 となる x1 と x3 を入れ替え,頂点 (c) から (e) へ移動 する 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 19
最適解の発見 x3 = 2 − 23 x1 + 13 x4
を x1 について解き直し,辞書 を更新する. z = 9 − 12 x3 − 12 x4 x1 = 3 − 32 x3 + 12 x4 x2 = 3 + 12 x3 − 12 x4 (12) x5 = 1 + 52 x3 − 12 x4 目的関数 z の非基底変数の係数がすべて 0 以 下になる x3 と x4 は非負であるためこれ以上増やして も z は改善しない したがって頂点 (e) における (x1 , x2 ) = (3, 3) が最適解であり最適値は z = 9 であることが 分かる 中島智哉|電気通信大学 【出典】https://speakerdeck.com/umepon/ mathematical-optimization-in-60-minutes?slide=15 20
2 段階単体法の導入 一般には初期実行可能基底解を簡単に見つけることは できない.以下の問題を考える. 最大化 条件 x1 + 2x2 x1
+ x2 ≤ 6 x1 + 3x2 ≤ 12 −3x1 − 2x2 ≤ −6 x1 , x 2 ≥ 0 (13) スラック変数を導入した初期状態の辞書は以下の通り. z = x1 + 2x2 x3 = 6 − x1 − x2 x4 = 12 − x1 − 3x2 x5 = −6 + 3x1 + 2x2 非基底変数を x1 = 0 x2 = 0 に固定 (14) 【出典】https://docswell.com/s/kyoto-kaira/ KLV228-2025-10-23-213822#p11 x5 = −6 となり非負制約を満たさず実行不能 中島智哉|電気通信大学 21
補助問題と人工変数 実行可能解を 1 つ見つける補助問題を作成する. 人工変数 (x0 ): 制約違反の量を表す非負変数 負の定数項を持つ等式に一時的に加えることで強 制的に非負条件を満たす
本来の目的関数を無視し,人工変数 x0 を最小化する補 助問題を定義する. 最小化 条件 w = x0 x3 = 6 − x1 − x2 x4 = 12 − x1 − 3x2 x5 = −6 + 3x1 + 2x2 + x0 x0 , x 1 , . . . , x 5 ≥ 0 中島智哉|電気通信大学 (15) 【出典】https://docswell.com/s/kyoto-kaira/ KLV228-2025-10-23-213822#p11 22
第 1 段階:実行可能解の探索 x5 の式から人工変数 x0 を基底変数として移項し,実行 可能な辞書を作成する(第 1 段階の開始).
w = 6 − 3x1 − 2x2 + x5 x3 = 6 − x1 − x2 x4 = 12 − x1 − 3x2 x0 = 6 − 3x1 − 2x2 + x5 (16) この補助問題に対して単体法を適用し w を最小化する. 終了時の w の値によって以下のように場合分けされる. w = 0 の場合: 制約違反が解消され実行可能解を発 見(第 2 段階へ) w > 0 の場合: どのようにしても制約を満たせない ため元の問題は実行不能と判定して終了 中島智哉|電気通信大学 【出典】https://docswell.com/s/kyoto-kaira/ KLV228-2025-10-23-213822#p11 23
第 2 段階:本来の問題の最適化 第 1 段階で w = 0 となり実行可能解が得られたら,人工
変数 x0 = 0 を削除し,本来の目的関数 z を復活させる. 第 1 段階終了時の辞書の連立方程式が以下であったと する. x1 = 2 − 23 x2 + 13 x5 (17) x3 = 4 − 13 x2 − 13 x5 x4 = 10 − 73 x2 − 13 x5 本来の目的関数 z = x1 + 2x2 に上式の x1 を代入 z = (2 − 23 x2 + 13 x5 ) + 2x2 = 2 + 43 x2 + 13 x5 更新された辞書から通常の単体法を再開し最適解 を探索 中島智哉|電気通信大学 【出典】https://docswell.com/s/kyoto-kaira/ KLV228-2025-10-23-213822#p11 24