数理計画法 (Mathematical...
Transcript of 数理計画法 (Mathematical...
数理計画法 (Mathematical Programming)
Jan. 24, 2020
来嶋秀治 (Shuji Kijima)
システム情報科学研究院情報学部門
Dept. Informatics, ISEE
Todays topics
• what is mathematical programming?
• object + subject to
数理計画法 (Mathematical Programming)
電気情報工学科3年
本題に入る前に
成績評価等
3
成績評価
•レポート課題 =: z (全10回程度)
講義の最後に提出.
レポートは返却しない.
•中間試験: 12月, =:x (50点満点)
•期末試験: 1月末, =:y (50点満点)
•成績 = x+y + min{(100-(x+y))z, 10} (目安)
• 60点で合格. 追試は無い.
レポート提出は必須ではないが, 提出を強く推奨する.
4
参考文献
副読本
加藤直樹, 数理計画法, コロナ社, 2007, 2800円+税
久保幹夫(監修), 並木誠(著), Pythonによる数理最適化入門, 朝倉書店, 2018, 3200円+税
参考書
福島雅夫, 新版数理計画入門, 朝倉書店, 2011, 3200円+税
田村明久, 村松正和, 最適化法, 共立出版, 2002, 3000円+税
数理計画法とは
Oct. 4, 2019
来嶋秀治
システム情報科学研究院情報学部門
今日の課題
•数理計画法 = 最適化の技法
•ルーチン: モデル化, 定式化, 解法
数理計画法(Mathematical Programming)
数理計画法 (Mathematical programming)6
最小化問題 (minimization)
minimize 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
目的関数
(objective function)
制約 (constraints)
「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」
講義計画7
1 10/4 導入 モデル化,定式化,解法
2 10/18 準備 1変数最適化(微分復習)2変数最適化(線形代数復習)
3 10/25 線形計画基礎I 単体法
4 11/1 線形計画基礎II 双対理論
5 11/8 線形計画基礎III 実践: python
6 11/15 非線形(制約なし) 最急降下法,ニュートン法
7 11/22 非線形(制約あり) 未定乗数法,KKT条件
8 11/29 非線形まとめ 大域最適、局所最適、ラグランジュ双対
python
9 12/6 中間試験?
10 12/13 数理計画法I
11 12/20 数理計画法II
12 1/10 数理計画法III
13 1/15 数理計画法IV
14 1/24 数理計画法V
15 1/31 期末試験?
ネットワーク計画 最大流
組合せ最適化 マトロイド,劣モジュラ
ゲーム理論 二人零和ゲーム
多面体論
中間試験の範囲
期末試験の範囲
8
はじめに: 数理計画法(mathematical programming)とは
(今あるもので)何かを “良く”したい
1. モデル化
2. 定式化
3. 求解
で解決/達成する数学的方法論。
数理計画法 = 最適化 (optimization)の技法
例1. 企業のコストを減らしたい。
例2. 消防署をどこに立てたら良いだろう?
例3. スケジュールをもっと良くしたい。etc.
関連分野
アルゴリズム,プログラム
機械学習
物理,エネルギー
統計
制約論理
9
数理計画法: モデル化と定式化
何をどうしたいのか? => “目的”
満たすべき条件は? => “制約”
何かを “良く”したい
1. モデル化
2. 定式化
3. 求解
で解決/達成する方法。
例1. 企業のコストを減らしたい。
例2. 消防署をどこに立てたら良いだろう?
例3. スケジュールをもっと良くしたい。etc.
10
数理計画法: モデル化と定式化
何をどうしたいのか? => “目的”
満たすべき条件は? => “制約”
モデル化
目的は? (具体的に)
条件は? (具体的に)
何かを “良く”したい
1. モデル化
2. 定式化
3. 求解
で解決/達成する方法。
例1. 企業のコストを減らしたい。
例2. 消防署をどこに立てたら良いだろう?
例3. スケジュールをもっと良くしたい。etc.
定式化
objective: 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
11
この講義で学んで欲しいこと
将来現実に現れる問題を
「如何に “解ける問題” に持ち込めるか」
モデル化
・「精密にすればするほど良い」わけではない。
・現実とかけ離れても仕方がない
・解けるのか!?
講義の大半は、現在知られている「最適化計算法」の紹介
=> 様々な“数学”を駆使
この講義で扱うこと
〇最適化ソルバー(の中の)原理(の基礎)
×どの{ソフト, エンジン, ライブラリ,ソルバー}が良い!
“妥協” も大事!
=> センスの良い妥協を
標準的な数理計画法12
線形計画法
単体法
双対定理
楕円体法,内点法
多面体論
非線形計画法
最急降下法, ニュートン法
KKT条件/Lagrange関数
凸計画
SDP
ネットワーク計画法
最大フロー最小カット定理
最小費用流
最短路
整数計画法/組合せ最適化
動的計画法
この講義で扱ったこと13
線形計画法
単体法
双対定理
非線形計画法
最急降下法, ニュートン法
KKT条件/Lagrange関数
整数計画法
P vs NP
TDI/完全単模行列
ネットワーク計画法
最大フロー最小カット定理
1: 線形計画法(LP: Linear Programming)
15
主問題 -双対問題
主問題(primal)max. cTxs. t. Ax b
x 0
双対問題(dual)min. yTbs. t. yTA c
y 0
弱双対定理 (問題が許容解を持つならば)
x,y: 実行可能解, cTx yTb
強双対定理 (問題が最適解を持つならば)
x,y: 実行可能解, cTx = bTy解法
単体法
楕円体法
内点法
2: 非線形計画法(Nonlinear Programming)
解法
17
非線形最適化
min. f(x)
s.t. gi(x) 0 (i=1,...,m)
hi(x) 0 (i=1,...,l)
x Rn
制約なし
勾配ベクトル (gradient)
ヘッセ行列 (Hessian)
制約あり
KKT条件
最急降下法
Newton法
Lagrange未定乗数法
一次近似
二次近似
連立方程式に変換
18
KKT条件
Lagrange関数制約あり(不等式制約)の場合
min. f(x)
s.t. gi(x) 0 (i=1,...,m)
x Rn
KKT条件
最適化問題
連立方程式
19
扱いやすい非線形計画問題
SDP (半正定値計画)
SOCP (二次錐計画)
多項式計画
凸計画双対理論
内点法
cf. 線形計画
20
局所最適 vs大域的最適 凸性の理論
Kが凸集合
x,y K, (0 1),
x + (1-) y K
fが凸関数
x,y K, (0 1),
f( x + (1-) y) f(x) + (1-) f(y)
凸計画問題
min. f(x)
s.t. x K
Kが凸集合, fが凸関数
x*が局所的最適 (local opt) = x*が大域的最適 (global opt)
3: 整数計画法(Integer Programming)
22
整数計画問題
整数計画問題
max. cTx
s.t. Ax b
x Zn
ナップサック問題
max. cTx
s.t. Ax b
x {0,1}n
解が0-1整数の場合、
0-1整数計画
と言う。
NP困難
4: ネットワーク計画法(Network Programming)
24
最大流問題 --復習
強双対定理
最大流 = 最小カット
問題
s-t最大流を求めよ.
弱双対定理
フロー カット
解法
Ford-Fulkerson
Edmonds-Karp
Dinic
s t
3
2
5
43
1
12
33
3
3
3
現在の数理計画法
この講義で扱ったこと26
線形計画法
単体法
双対定理
非線形計画法
最急降下法, ニュートン法
KKT条件/Lagrange関数
整数計画法
P vs NP
TDI/完全単模行列
ネットワーク計画法
最大フロー最小カット定理
未解決多項式時間アルゴリズム?
汎用ソルバー CPLEX, glpk, SCIP SDPA, SeDuMiメタヒューリスティクス
発展的話題マトロイド理論劣モジュラ関数最小化
研究課題高速アルゴリズム近似アルゴリズム P vs NP, etc.
おわり
27