Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
数理計画法 (Mathematical Programming)
Oct. 4, 2019
来嶋秀治 (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
講義の進め方
•スライド+板書
分からないところは質問する。
• webページを確認すること.
http://tcs.inf.kyushu-u.ac.jp/~kijima/
演習資料等もここに置く. ただし, スライドは(多分)置かない
(ので、ノートを取ること)
講義計画も参照すること.
特に「内容」と書かれていることは、
試験に出る可能性が高い(ので、着実に理解すること)
• Office hour: 火曜日 15:00—18:00 (W2号館 741)
上記時間以外はメールで要予約
Requirement (前提知識)5
微分
偏微分,極値,変曲点,鞍点
ヘッセ行列とラプラシアンの違い
線形代数学
基底
逆行列,転置
6
参考文献
副読本
加藤直樹, 数理計画法, コロナ社, 2007, 2800円+税
久保幹夫(監修), 並木誠(著), Pythonによる数理最適化入門, 朝倉書店, 2018, 3200円+税
参考書
福島雅夫, 新版数理計画入門, 朝倉書店, 2011, 3200円+税
田村明久, 村松正和, 最適化法, 共立出版, 2002, 3000円+税
数理計画法とは
Oct. 4, 2019
来嶋秀治
システム情報科学研究院情報学部門
今日の課題
•数理計画法 = 最適化の技法
•ルーチン: モデル化, 定式化, 解法
数理計画法(Mathematical Programming)
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 𝒙 ∈ 𝑆
数理計画法 (Mathematical programming)11
最小化問題 (minimization)
minimize 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」
数理計画法 (Mathematical programming)12
最大化問題 (maximization)
maximize 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく大きくせよ」
数理計画法 (Mathematical programming)13
最小化問題 (minimization)
minimize 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
目的関数
(objective function)
制約 (constraints)
「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」
例 1: ホームランを打ちたい.14
1. 初速度𝑣 𝑣 > 0 仰角 𝜃 0 < 𝜃 <𝜋
2で球を放つ.最高到達点は?
2. 初速度𝑣は固定とし,仰角𝜃 0 < 𝜃 <𝜋
2を変えたとき,最遠到達点は?
3. 距離𝑑の位置を高さℎ以上で通過させたい.どのくらいの初速が必要か?
絵: いらすとや (https://www.irasutoya.com/)
モデル化15
古典力学モデル
初速𝑣仰角𝜃で放球したとき
ℎ 𝑡 = −1
2𝑔𝑡2 + 𝑣𝑡 sin 𝜃
𝑑 𝑡 = 𝑣𝑡 cos 𝜃
地表は平面とみなせる.
空気抵抗や球の回転等の影響はないものとする.
定式化16
1. 初速度𝑣 𝑣 > 0 仰角 𝜃 0 < 𝜃 <𝜋
2で球を放つ.最高到達点は?
max. ℎ 𝑡 = −1
2𝑔𝑡2 + 𝑣𝑡 sin 𝜃
sub. to 𝑡 ≥ 0
2.初速度𝑣は固定とし,仰角𝜃 0 < 𝜃 <𝜋
2を変えたとき,最遠到達点は?
max. 𝑑 𝜃 = 𝑣𝑡 cos 𝜃
sub. to −1
2𝑔𝑡2 + 𝑣𝑡 sin 𝜃 = 0
0 ≤ 𝜃 ≤𝜋
2𝑡 > 0
3.距離𝑑の位置を高さℎ以上で通過させたい.どのくらいの初速が必要か?min. 𝑣
sub. to −1
2𝑔𝑡2 + 𝑣𝑡 sin 𝜃 ≥ ℎ
𝑣𝑡 cos 𝜃 = 𝑑
0 ≤ 𝜃 ≤𝜋
2𝑡 > 0
例2. 最尤推定17
例1
10,000製品あたりの不良品の個数
不良品の出現頻度は?
lot 1 2 3 4 5 6 7 8 9 10
#不良品 0 2 0 0 1 1 0 3 1 0
確率変数 𝑋は不良品の個数を表す.
この時 𝑋 ∼ Po(𝜆), i.e.,
Pr 𝑋 = 𝑥 =: 𝑓 𝑥 = e−𝜆𝜆𝑥
𝑥!
ただし 𝜆は未知パラメータ.
課題
𝜆を推定せよ.
例2b: 最尤推定18
例: Hardy Weinberg
因子 a, b, o の比率を推定したい.
血液型 A B AB O
標本 43 12 6 39
因子 aa, ao bb,bo ab oo
Hardy Weinberg 平衡
藤澤洋徳: 確率と統計より
Model𝑝𝐴 = 𝜃𝑎
2 + 2𝜃𝑎𝜃𝑜𝑝𝐵 = 𝜃𝑏
2 + 2𝜃𝑏𝜃𝑜𝑝𝐴𝐵 = 2𝜃𝑎𝜃𝑏𝑝𝑂 = 𝜃𝑜
2
where𝑝𝐴 + 𝑝𝐵 + 𝑝𝐴𝐵 + 𝑝𝑂 = 1𝜃𝑎 + 𝜃𝑏 + 𝜃𝑜 = 1
例3. 線形回帰19
年 1 2 3 4 5 6 7 8
𝑥: 広告費 8 11 13 10 15 19 17 20
𝑦: 売上 115 124 138 120 151 186 169 193
0
50
100
150
200
250
0 5 10 15 20 25
系列1
線形回帰(Linear regression)
仮定: 𝑦𝑖 = 𝛼 + 𝛽𝑥𝑖 + 𝑒𝑖とし, 𝑒𝑖 ∼ N(0, 𝜎2).
𝛼と 𝛽を推定:
min
𝑖=1
𝑛
𝑦𝑖 − 𝛼 + 𝛽𝑥𝑖2
数理計画法 (Mathematical programming)20
最小化問題 (minimization)
minimize 𝑓 𝒙
subject to 𝒙 ∈ 𝑆
「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」
21
この講義で学んで欲しいこと
将来現実に現れる問題を
「如何に “解ける問題” に持ち込めるか」
モデル化
・「精密にすればするほど良い」わけではない。
・現実とかけ離れても仕方がない
・解けるのか!?
講義の大半は、現在知られている「最適化計算法」の紹介
=> 様々な“数学”を駆使
この講義で扱うこと
〇最適化ソルバー(の中の)原理(の基礎)
×どの{ソフト, エンジン, ライブラリ,ソルバー}が良い!
“妥協” も大事!
=> センスの良い妥協を
2:さまざまな数理計画問題
数理計画問題
min. f(x)
subject to: x S
f(x)や制約の特徴で、
いろいろな名称がある。
•線形計画問題
•非線形計画問題
•ネットワーク計画問題
•整数計画問題
23
2. 定式化
max. 1000(10(x1a+x1b+...+x4c+x4d) – 2x1a - 3x1b - ... – 6x4d)
s.t. x1a+x1b+x1c+x1d 60,
x2a+x2b+x2c+x2d 40
x3a+x3b+x3c+x3d 80
x4a+x4b+x4c+x4d 30
x1a+x2a+x3a+x4a 70
....
x1a 0, x2a 0, ..., x4d 0
数理計画法(モデル化)
目的: 利益 (収益-コスト) 最大化
制約: 取水量, 工場の生産能力
熊本 福岡 岡山 松山 t
阿蘇 2 3 10 13 70
大山 5 4 3 6 50
四万十川 14 12 6 3 60
六甲 14 12 6 6 30
t 60 40 80 30
輸送コスト[千円/t]
1tあたり10千円の収益
非線形計画法の例: 線形回帰(最小二乗法)24
アイスクリーム屋の6日分のデータ
=> 売上予測
日 客数 気温
1日目 60 20
2日目 63 25
3日目 61 21
4日目 80 30
5日目 85 31
6日目 42 18
今日 ?? 32(予想)
線形回帰モデル: (客数) = a(気温) + b
※ a,b,はパラメータ
推定を良くしたい
モデル
目的: 誤差最小化
制約: 過去のデータ
定式化(最小二乗法)
min. i=16 (yi – axi -b)2
s.t. (x1,y1) = (20,60), ...
•線形計画法より記述力は高い
• “うまく” 定式化しないと “解けない”
ネットワーク計画法の例: 最大流問題25
地点sで取水し、図の水路を使って地点tまでなるべく多く送水したい。
各パイプには、1秒あたりの流量の上限が決まっている(図参照)。
どれくらいの水量(1秒あたり)が送れるか?
20
12
s t7
6
422
20
15ネットワーク計画法
max. 流量
s.t. 各枝の容量制約
各接点の流量保存則
制約がグラフ(ネットワーク)
で記述できる
•線形計画法より速く解ける。
•意外な問題が最大流問題として書ける
26
整数計画法の例: ナップサック問題
定式化
max. c1x1 + ... cnxn
s.t. a1x1 + ... + an xn b
xi {0,1} for i = 1,...,n
n個のアイテムがある。
アイテムi (i=1,...,n) の重さはai, 価値はciとする。
重量制約bのナップサックにアイテムを詰める。
なるべく総価値を大きくしたい。
目的関数は線形(のことが多い)
制約条件も線形(のことが多い)
但し、変数が整数
•線形計画法と良く似ている。簡単!?
標準的な数理計画法27
線形計画法
単体法
双対定理
楕円体法,内点法
多面体論
非線形計画法
最急降下法, ニュートン法
KKT条件/Lagrange関数
凸計画
SDP
ネットワーク計画法
最大フロー最小カット定理
最小費用流
最短路
整数計画法/組合せ最適化
動的計画法
講義計画28
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 期末試験?
ネットワーク計画 最大流
組合せ最適化 マトロイド,劣モジュラ
ゲーム理論 二人零和ゲーム
多面体論
中間試験の範囲
期末試験の範囲