28
数理計画法 (Mathematical Programming) Oct. 4, 2019 来嶋 秀治 (Shuji Kijima) システム情報科学研究院 情報学部門 Dept. Informatics, ISEE Todays topics what is mathematical programming? object + subject to 数理計画法 (Mathematical Programming) 電気情報工学科3

数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法 (Mathematical Programming)

Oct. 4, 2019

来嶋秀治 (Shuji Kijima)

システム情報科学研究院情報学部門

Dept. Informatics, ISEE

Todays topics

• what is mathematical programming?

• object + subject to

数理計画法 (Mathematical Programming)

電気情報工学科3年

Page 2: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

本題に入る前に

成績評価等

Page 3: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

3

成績評価

•レポート課題 =: z (全10回程度)

講義の最後に提出.

レポートは返却しない.

•中間試験: 12月, =:x (50点満点)

•期末試験: 1月末, =:y (50点満点)

•成績 = x+y + min{(100-(x+y))z, 10} (目安)

• 60点で合格. 追試は無い.

レポート提出は必須ではないが, 提出を強く推奨する.

Page 4: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

4

講義の進め方

•スライド+板書

分からないところは質問する。

• webページを確認すること.

http://tcs.inf.kyushu-u.ac.jp/~kijima/

演習資料等もここに置く. ただし, スライドは(多分)置かない

(ので、ノートを取ること)

講義計画も参照すること.

特に「内容」と書かれていることは、

試験に出る可能性が高い(ので、着実に理解すること)

• Office hour: 火曜日 15:00—18:00 (W2号館 741)

上記時間以外はメールで要予約

[email protected]

Page 5: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

Requirement (前提知識)5

微分

偏微分,極値,変曲点,鞍点

ヘッセ行列とラプラシアンの違い

線形代数学

基底

逆行列,転置

Page 6: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

6

参考文献

副読本

加藤直樹, 数理計画法, コロナ社, 2007, 2800円+税

久保幹夫(監修), 並木誠(著), Pythonによる数理最適化入門, 朝倉書店, 2018, 3200円+税

参考書

福島雅夫, 新版数理計画入門, 朝倉書店, 2011, 3200円+税

田村明久, 村松正和, 最適化法, 共立出版, 2002, 3000円+税

Page 7: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法とは

Oct. 4, 2019

来嶋秀治

システム情報科学研究院情報学部門

今日の課題

•数理計画法 = 最適化の技法

•ルーチン: モデル化, 定式化, 解法

数理計画法(Mathematical Programming)

Page 8: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

8

はじめに: 数理計画法(mathematical programming)とは

(今あるもので)何かを “良く”したい

1. モデル化

2. 定式化

3. 求解

で解決/達成する数学的方法論。

数理計画法 = 最適化 (optimization)の技法

例1. 企業のコストを減らしたい。

例2. 消防署をどこに立てたら良いだろう?

例3. スケジュールをもっと良くしたい。etc.

関連分野

アルゴリズム,プログラム

機械学習

物理,エネルギー

統計

制約論理

Page 9: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

9

数理計画法: モデル化と定式化

何をどうしたいのか? => “目的”

満たすべき条件は? => “制約”

何かを “良く”したい

1. モデル化

2. 定式化

3. 求解

で解決/達成する方法。

例1. 企業のコストを減らしたい。

例2. 消防署をどこに立てたら良いだろう?

例3. スケジュールをもっと良くしたい。etc.

Page 10: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

10

数理計画法: モデル化と定式化

何をどうしたいのか? => “目的”

満たすべき条件は? => “制約”

モデル化

目的は? (具体的に)

条件は? (具体的に)

何かを “良く”したい

1. モデル化

2. 定式化

3. 求解

で解決/達成する方法。

例1. 企業のコストを減らしたい。

例2. 消防署をどこに立てたら良いだろう?

例3. スケジュールをもっと良くしたい。etc.

定式化

objective: 𝑓 𝒙

subject to 𝒙 ∈ 𝑆

Page 11: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法 (Mathematical programming)11

最小化問題 (minimization)

minimize 𝑓 𝒙

subject to 𝒙 ∈ 𝑆

「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」

Page 12: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法 (Mathematical programming)12

最大化問題 (maximization)

maximize 𝑓 𝒙

subject to 𝒙 ∈ 𝑆

「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく大きくせよ」

Page 13: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法 (Mathematical programming)13

最小化問題 (minimization)

minimize 𝑓 𝒙

subject to 𝒙 ∈ 𝑆

目的関数

(objective function)

制約 (constraints)

「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」

Page 14: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

例 1: ホームランを打ちたい.14

1. 初速度𝑣 𝑣 > 0 仰角 𝜃 0 < 𝜃 <𝜋

2で球を放つ.最高到達点は?

2. 初速度𝑣は固定とし,仰角𝜃 0 < 𝜃 <𝜋

2を変えたとき,最遠到達点は?

3. 距離𝑑の位置を高さℎ以上で通過させたい.どのくらいの初速が必要か?

絵: いらすとや (https://www.irasutoya.com/)

Page 15: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

モデル化15

古典力学モデル

初速𝑣仰角𝜃で放球したとき

ℎ 𝑡 = −1

2𝑔𝑡2 + 𝑣𝑡 sin 𝜃

𝑑 𝑡 = 𝑣𝑡 cos 𝜃

地表は平面とみなせる.

空気抵抗や球の回転等の影響はないものとする.

Page 16: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

定式化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

Page 17: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

例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−𝜆𝜆𝑥

𝑥!

ただし 𝜆は未知パラメータ.

課題

𝜆を推定せよ.

Page 18: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

例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

Page 19: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

例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

Page 20: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

数理計画法 (Mathematical programming)20

最小化問題 (minimization)

minimize 𝑓 𝒙

subject to 𝒙 ∈ 𝑆

「条件𝒙 ∈ 𝑆の下で,𝑓 𝒙 をとにかく小さくせよ」

Page 21: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

21

この講義で学んで欲しいこと

将来現実に現れる問題を

「如何に “解ける問題” に持ち込めるか」

モデル化

・「精密にすればするほど良い」わけではない。

・現実とかけ離れても仕方がない

・解けるのか!?

講義の大半は、現在知られている「最適化計算法」の紹介

=> 様々な“数学”を駆使

この講義で扱うこと

〇最適化ソルバー(の中の)原理(の基礎)

×どの{ソフト, エンジン, ライブラリ,ソルバー}が良い!

“妥協” も大事!

=> センスの良い妥協を

Page 22: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

2:さまざまな数理計画問題

数理計画問題

min. f(x)

subject to: x S

f(x)や制約の特徴で、

いろいろな名称がある。

•線形計画問題

•非線形計画問題

•ネットワーク計画問題

•整数計画問題

Page 23: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

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千円の収益

Page 24: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

非線形計画法の例: 線形回帰(最小二乗法)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), ...

•線形計画法より記述力は高い

• “うまく” 定式化しないと “解けない”

Page 25: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

ネットワーク計画法の例: 最大流問題25

地点sで取水し、図の水路を使って地点tまでなるべく多く送水したい。

各パイプには、1秒あたりの流量の上限が決まっている(図参照)。

どれくらいの水量(1秒あたり)が送れるか?

20

12

s t7

6

422

20

15ネットワーク計画法

max. 流量

s.t. 各枝の容量制約

各接点の流量保存則

制約がグラフ(ネットワーク)

で記述できる

•線形計画法より速く解ける。

•意外な問題が最大流問題として書ける

Page 26: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

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のナップサックにアイテムを詰める。

なるべく総価値を大きくしたい。

目的関数は線形(のことが多い)

制約条件も線形(のことが多い)

但し、変数が整数

•線形計画法と良く似ている。簡単!?

Page 27: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

標準的な数理計画法27

線形計画法

単体法

双対定理

楕円体法,内点法

多面体論

非線形計画法

最急降下法, ニュートン法

KKT条件/Lagrange関数

凸計画

SDP

ネットワーク計画法

最大フロー最小カット定理

最小費用流

最短路

整数計画法/組合せ最適化

動的計画法

Page 28: 数理計画法 (Mathematical Programming)tcs.inf.kyushu-u.ac.jp/~kijima/MP19/MP19-01J.pdf · 1 10/4 導入 モデル化,定式化,解法 2 10/18 準備 変数最適化微分復習

講義計画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 期末試験?

ネットワーク計画 最大流

組合せ最適化 マトロイド,劣モジュラ

ゲーム理論 二人零和ゲーム

多面体論

中間試験の範囲

期末試験の範囲