17 情報工学講義第3 木5限 for 学生0410 - keio …...2017/04/17 · scienceandtechnology...
TRANSCRIPT
Science and Technology129
5回目
数理計画法入門
Science and Technology
数理計画法
数学的手法に基づいて、与えられた制約条件のもとで、目的関数を最大化(または最小化)する手法
数学的な厳密解が求まる
問題によっては膨大な時間が必要
NP困難、NP完全
通信ネットワークの設計・制御においては、問題を数理計画法が適用できる問題に定式化し、数理計画ソフトウェアを使用して問題を解く
130
Science and Technology
NP困難、NP完全
NP: Non-deterministic Polynomial 計算回数のオーダーが問題の規模に対して多項式オーダーよりも大きく増大する
NP ≦ NP完全(complete) ≦ NP困難(hard) NP完全は NPの中で最も難しい問題
NPですら、多項式時間では厳密解は求まらず、ヒューリスティック(heuristic)なアルゴリズムや、多項式時間で求められる近似解法アルゴリズムが必要となる
131
Science and Technology
数理計画法ソルバ
授業では、GLPK (GNU Linea Programming Kit) を使用
フリーソフトウェア
線形計画問題 (LP)や、混合整数計画問題 (MP) を解くことができる
132
Science and Technology
通信ネットワーク
通信ネットワークは、ノードとリンクから構成される。
リンクに方向がある場合 (有向グラフ) →の方向に通信できる
リンクに方向がない場合 (無向グラフ) 両方向に通信できる
リンクに付与されている数字は、距離を表す
133
1
2
3
46
5
発ノード
着ノード
35
69
14
10
4
4
6
Science and Technology
通信ネットワークにおける数理計画問題例
最短経路問題
Shortest Path 最大流問題
Maximum Flow 最小費用流問題
Minimum Cost Flow
134
Science and Technology
最短経路問題(最小距離和問題)
ノード1からノード6まで、トラヒックを流す場合の最短経路を求める
距離の和が最小になる経路
135
1
2
3
46
5
発ノード
着ノード
35
69
14
10
4
4
6
Science and Technology
例題の解
1→2→5→6 : 3+4+6 =13 1→2→3→6 : 3+4+10=17 1→3→6 : 5+10 =15 1→4→3→6 : 9+6+10=25 1→4→6 : 9+14 =23
136
1
2
3
46
5
発ノード
着ノード
35
69
14
10
4
4
6
Science and Technology
最大流問題
リンクに容量を与える
リンク上のトラヒック量は容量以下 ~ 制約条件
ノード1からノード6まで流すことが可能なトラヒック量vを最大化する経路と流量を求める
137
1
2
3
46
5
発ノード
着ノード
25100
6070
30
160
30
15
150
v
v
Science and Technology
例題の解
v1: 1→2→5→6 = 15 v2: 1→2→3→6 = 10 v3: 1→3→6 = 100 v4: 1→4→3→6 = 50 v5: 1→4→6 = 20 合計流量v=v1+v2+v3+v4+v5 = 195
138
1
2
3
46
5
発ノード
着ノード
25100
6070
30
160
30
15
150
v
v
Science and Technology
最小費用流問題
リンクに距離と容量を与える
リンク上のトラヒック量は容量以下 ~ 制約条件
ノード1からノード6までトラヒック量v=180が与えら
れたときに、最小の費用でトラヒックを流す経路と流量を求める
費用=距離×リンクを通過するトラヒック量
139
1
2
3
46
5
発ノード
着ノード
3, 255,100
6, 609,70
14, 30
10, 160
4,30
4,15
6, 150
V=180
V=180
距離, 容量
Science and Technology
例題の解 v1: 1→2→5→6 = 15 v2: 1→2→3→6 = 10 v3: 1→3→6 = 100 v4: 1→4→3→6 = 25 v5: 1→4→6 = 30 合計流量v=v1+v2+v3+v4+v5 = 180 費用
=3×(15+10)+5×100+9×(25+30)+4×15+4×10+10×(10+100+25)+6×25+14×30+6×15=3180
140
1
2
3
46
5
発ノード
着ノード
3, 255,100
6, 609,70
14, 30
10, 160
4,30
4,15
6, 150
v
v
Science and Technology
各問題に対するヒューリスティックな解法アルゴリズム
最短経路問題
Dijkstra Algorithm (1959) 最大流問題
Ford and Fulkerson Algorithm (1956) 最小費用流問題
Ford and Fulkerson Algorithm
141
1946年 ENIAC稼働1957年 人工衛星スプートニク1号打ち上げ1968年 ARPANET稼働 (インターネットの前身)
Science and Technology
数理計画法による、最適化問題の解法
最適化問題
与えられた制約条件の下で、実行可能な全ての解の中から、目的関数を最大化(又は最小化)する解を求める。
地点Aから地点Bへ移動する時に、最も移動時間の短い経路を求める
地点Aから地点Bへ移動する時に、最も乗り換えの少ない経路を求める
地点Aから地点Bへ移動する時に、最も運賃の安い経路を求める
倉庫にある材料を用いて、利益が最大となるように製品を生産する
142
Science and Technology
最適化問題の制約条件例
問題:地点Aから地点Bでの会議に出席する。移動手段として飛行機または新幹線を用いて、最も安く移動する
制約条件
【1】片道の運賃は15,000円未満
【2】地点Bに午前11:10までに到着する
【3】地点Aを午前8:00以降に出発する
143
Science and Technology
移動手段候補
選択肢 移動手段 出発時刻 到着時刻 運賃
1 飛行機 7:25 8:40 13,4702 飛行機 9:50 11:05 13,6703 飛行機 10:45 12:00 13,6704 新幹線 7:56 10:36 13,8505 新幹線 8:03 11:03 13,5506 新幹線 8:20 10:56 13,8507 新幹線 8:30 11:06 13,8508 新幹線 8:33 11:30 13,550
144
Science and Technology
制約条件の数学的記述
決定変数:制御可能な変数
目的関数:最大化(又は最小化)したい関数。決定変数の関数
制約条件:決定変数の取り得る範囲を与える条件
145
nxxx ,,, 21
nxxxnxxx
n
xxxforxxxfxxxf
nn
,,,min,,,max,,,
21,,,21,,,
21
2121
,0,,,,0,,,,0,,,
213
212211
n
nn
xxxSxxxSxxxS
Science and Technology
線形計画問題(Linear Programming Problem)
目的関数が線形関数
全ての制約条件が線形関数の等式または不等式
146
nnn xaxaxaaxxxf 2211021 ,,,
決定変数2個の場合決定変数3個の場合
Science and Technology
線形 (linearity)
147
xfaaxf
yfxfyxf
)(
Science and Technology
線形計画問題の目的関数、制約条件の例
目的関数
制約条件
148
00
215352max
2
1
21
21
21
xx
xxxx
xx
Science and Technology
線形計画問題の標準系(目的関数最大化)
目的関数
制約条件
149
0
00
max
2
1
2211
22222121
11212111
2211
n
mnmnmm
nn
nn
nn
x
xx
bxaxaxa
bxaxaxabxaxaxaxcxcxc
0
max
xbAx
xcT行列表現
Science and Technology
線形計画問題の標準系(目的関数最小化)
目的関数
制約条件
150
0
00
min
2
1
2211
22222121
11212111
2211
n
mnmnmm
nn
nn
nn
x
xx
bxaxaxa
bxaxaxabxaxaxaxcxcxc
0
min
xbAx
xcT行列表現
最小化は、(-1)倍して最大化することと等価。不等式に(-1)を掛けると大小関係が反転する。
Science and Technology
スラック(Slack)変数による統一化
制約条件の不等式を等式にしたい。
変数の数が増える。yもxの仲間にする。
元々、後述するシンプレックス法で、解を境界上に置くために使われたらしい
不等号な場合でも、解は境界上に存在することが証明されたため、Slack変数の導入は不要になった
151
1535 21 xx0
1535
1
121
yyxx
15までの余裕(Slack)を表す変数
Science and Technology
線形計画問題の標準系
目的関数
制約条件
152
0
00
minmax
2
1
2211
22222121
11212111
2211
n
mnmnmm
nn
nn
nn
x
xx
bxaxaxa
bxaxaxabxaxaxa
xcxcxcor
0
max
xbAx
xcT行列表現
Science and Technology
線形計画問題における用語の定義
153
x2
x10 境界
境界実行可能領域
端点
端点
端点
端点
Science and Technology
線形計画問題の例題
目的関数
制約条件
154
003
21535
max
2
1
2
21
21
21
xxx
xxxx
xx
zxxxxz
12
21
標準系に変換済
Science and Technology
実行可能領域
例題の解法(1)
155
x10
x2
1 2 3 4 5
1
2
3
4
5
6 7
1535 21 xx
32 x
221 xx
zxxxxz
12
21
0z
521
z
0,0 0,2
3,0
3,56
85,821
Science and Technology
実行可能領域
例題の解法(2)
156
x10
x2
1 2 3 4 5
1
2
3
4
5
6 7
1535 21 xx
32 x
221 xx
0,0 0,2
3,0
3,56
85,821
定理:最適解が存在し、実行可能領域で少なくとも一つの端点が存在するならば、実行可能領域の端点の中に最適解が存在する。
端点(x1,x2) x1+x2(0,0) 0(0,3) 3
(6/5,3) 21/5 = 4.2(21/8,5/8) 13/4 = 3.25
(2,0) 2
Science and Technology
変数の個数が3個以上の場合
2個ならば、平面に直線で制約条件を描画し、実行可能領域(2次元空間)を目視することが可能 目的関数は直線
決定変数が3個 実行可能領域は3次元
目的関数は平面
決定変数がn個 実行可能領域はn次元の多面集合
目的関数はn-1次元の超平面
端点における目的関数の値を調べて最大値(最小値)を与える端点を見つけて最適解を求めるのは同じ
157
Science and Technology
シンンプレックス法(Simplex Method)
ある端点からスタートして、目的関数の値を改善しながら実行可能領域の境界に沿った経路をたどっていく
もうこれ以上改善されない端点が最適解となる
158
実行可能領域
x10
x2
1 2 3 4 5
1
2
3
4
5
6 7
1535 21 xx
32 x
221 xx
0,0 0,2
3,0
3,56
85,821
端点(x1,x2) x1+x2(0,0) 0(0,3) 3
(6/5,3) 4.2(21/8,5/8) 3.25
増加
増加
減少
Science and Technology
(0,0)から反時計まわりでの移動
159
実行可能領域
x10
x2
1 2 3 4 5
1
2
3
4
5
6 7
1535 21 xx
32 x
221 xx
0,0 0,2
3,0
3,56
85,821
端点(x1,x2) x1+x2(0,0) 0(2,0) 2
(21/8,5/8) 3.25(6/5,3) 4.2(0,3) 3
増加
増加
減少
増加
Science and Technology
新しい例題
工場で、機械1台を使って、原料の小麦粉からパンと麺を製造する
パンと麺を製造するにあたって、1日当りの利益を最大にすることを目的として、パンと麺の製造に必要な小麦粉の量を決定する
原料の小麦粉1kgを使用した場合のパンと麺の利益は、それぞれ500円と300円
1日当り80kgの小麦粉が利用可能
機械は、パンか麺のどちらかしか製造できない
製造時間は1日当り20時間まで
パンと麺の製造時間は、1kg当たりそれぞれ30分、10分
160
Science and Technology
問題の定式化
決定変数 パン製造に必要な小麦粉の量 [kg] 麺製造に必要な小麦粉の量 [kg]
目的関数
制約条件
161
00
12006020103080
300500max
yx
yxkgyx
yx
分
円
yx
Science and Technology
実行可能領域
60
80
グラフの描画
162
x0
y
10 20 30 40 50
20
40
80
100
60 70
12001030 yx
0,80,80,080 yx
80 yx
120
0,40,120,01203
12001030
yx
yx60,20
801203
yxyxyx
Science and Technology
実行可能領域
60
80
シンプレックス法で最適解探索
163
x0
y
10 20 30 40 50
20
40
80
100
60 70
12001030 yx
80 yx
120
0,0
80,0
0,40
60,20
端点(x,y) 500x+300y(0,0) 0(0,80) 24,000
(20,60) 28,000(40,0) 20,000
Science and Technology
整数線形計画問題
Integer Linear Programming problem (ILP) 決定変数が(非負の)整数
端点は一般的に実数
線形計画問題よりも解くのが難しい
実行可能解は、実行可能領域内の格子点上に存在
決定変数が整数値と実数値を含む問題は、混合整数線形計画問題 (mixed ILP)
164
Science and Technology
整数線形計画問題の定式化例
目的関数
制約条件
165
整数値
整数値
,1,0,1,0
321535
max
yxy
yxyx
yx
Science and Technology
実行可能解
166
x0
y
1 2 3 4 5
1
2
3
4
5
6 7
1535 yx
3y
2 yx
zyx
(0,0), (0,1), (0,2), (0,3)(1,0), (1,1), (1,2), (1,3)(2,0), (2,1)
(0,3), (1,2), (1,3), (2,1)
0+3 = 31+2 = 31+3 = 42+1 = 3
Science and Technology
大規模な整数線形計画問題の例
目的関数
制約条件
167
整数値
整数値
,1,0,1,0
300200150035
max
yxy
yxyx
yx100倍
100倍
100倍
Science and Technology
100
実行可能解
168
x0
y
200 300 400 500
100
200
300
400
500
600 700
150035 yx
300y
200 yx
zyx
最適解は、(x=120, y=300)
Science and Technology169
演習6
線形計画問題目的関数制約条件