Professional Documents
Culture Documents
数理計画と最適化 2022-#2
数理計画と最適化 2022-#2
第2回
東京大学工学系研究科
システム創成学専攻
鈴木克幸
例題の標準形
min ( − x1 − 2 x2 )
subject to
x1 + 3x2 + x3 = 15
x1 + x2 + x4 = 7 スラック変数を用いて
不等号を等号に変換
2 x1 + x2 + x5 = 12
xi ≥ 0 (i = 1,…5)
基底解は、5つの設計変数のうち、
2つがゼロとなる点
角点も基底解に含まれる 39
最適解は基底解のいずれか
可能領域は凸多角形(凸多面体)
直線(平面)とぶつかるのは角
数学的にも証明可能だが、ここでは
省略
40
xf15342
列挙法
解の可能性のある基底解を総当たりする
x1 x2 x3 x4 x5 可能 f
① 0 0 15 7 12 ○ 0
② 0 5 0 2 7 ○ -10
③ 0 7 -6 0 5 × ×
④ 0 12 -21 -5 0 × ×
⑤ 15 0 0 -8 -18 × ×
⑥ 7 0 8 0 -2 × ×
⑦ 6 0 9 1 0 ○ -6
⑧ 3 4 0 0 1 ○ -11 最適解
⑨ 21/5 18/5 0 -4/5 0 × ×
⑩ 5 2 4 0 0 ○ -9
41
列挙法は万能か
解が得られることは保証される
検討する基底解の数は設計変数をn個、
制約条件をm個とすればnCm個
計算時間は指数関数的に増加
P問題とNP問題
P≠NP予想~未解決問題の1つ
42
P≠NP予想
計算複雑性理論(計算量理論)におけるクラスPとクラスNP
が等しくないという予想。2000年にクレイ数学研究所のミレ
ニアム懸賞問題の一つとして、この問題に対して100万ドル
の懸賞金がかけられた。
クラスP:多項式時間で判定可能な問題
クラスNP:判定に指数関数時間が必要(と考えられる)問題
f(x)=x^2+5x+6
g(x)=2^x 出典: フリー百科事典
『ウィキペディア(Wikipedia)』
43
余談:量子コンピュータ
0と1の両方を重ね合わせた状態をとる「量子ビット」
を使って計算を行う。
量子コンピューティングを用いれば、組み合わせ最
適化などのNP問題を高速に解ける?
44
シンプレックス法(単体法)
G.B.Danzig(1947)が考案
基底解から他の基底解に移動
どのように移動する?
最適解に達したら終了
最適解かどうかの判断は?
45
再び標準形
min cT x
設計変数n個
subject to
制約条件m個
Ax = b A: m×n行列
x ≥0 各成分が≥0
xB x B 基底ベクトル m個
min ( cB cN ) x=
T
x
N x N 非基底ベクトル(n-m)個
subject to
xB
[ B N ] = b
xN
xB ≥ 0 x N = 0 46
基底解が可能かどうか
min ( cB T x B + cN T x N )
subject to
Bx B + Nx N = b x B = B − 1 ( b − Nx N )
xB ≥ 0 xN = 0
x N = 0, x B = B −1 ( b − Nx N ) = B −1b
−1
が可能解であるためには、 B
x = B b ≡ b ≥ 0 が必要
基底解が、可能である条件 b ≥ 0
47
基底解が、最適かどうか
f = cBT x B + cNT x N
= cBT ( b − B −1 Nx N ) + cNT x N
= cBT b + ( cTN − cBT B −1 N ) x N
≡ cBT b + cNT x N
この基底解が最適解であるためには、 c N ≥ 0 が必要(十分でもある)
そうでないと、それに対応するxiを増やせば、fは減少する
基底解が、最適である条件 c N ≥ 0
48
シンプレックス法のアルゴリズム
可能基底解から始める(初期可能基底解
が判らない時は、後述)
基底変数と非基底変数を1つ入れ替え、新
たな可能基底解を求める。
その解が最適性を満足するか判断し、満
足しなければ繰り返す。
49
基底変数の入れ替え
cN の中の一番小さい成分(<0)に対応するxNを増やし、
基底変数にする( xi とする)
xB = b − B −1ni xi のどれかの成分がゼロになるまで xi
を増やし、ゼロになった成分を非基底変数にする。
x B = b − B −1ni xi ≡ b − ai xi
bj
θ = min
j ( aij > 0 ) a
ij
50
シンプレックス法(例題~1)
初期可能 x1 0
x 15
基底解 x2 0 N
b = B − 1b = 7 ≥ 0 可能
x3 = 15 12
x 7 xB
4
x5 12
−1 最適でない
c N = c N − N T B −1c B =
−2
cN cB x1
min {−1 −2 0 0 0} ⋮ 15 3
x
5 xB = 7 − 1 x2
x1 12 1
N B
x1 0 xN
1 3 1 0 0 x2 15 x 5
1 1 0 1 0 x = 7
3 θ = min {153 7 12
}=5 2
x3 = 0
1 1
2 1 0 0 1 x4 12
x2が基底に入る x2 =5 x 2
x5 4 xB
x3が基底から外れる x3 =0 x5 517
シンプレックス法(例題~2)
5
cN cB x1
b = B −1b = 2 ≥ 0 可能
min {−1 −2 0 0 0} ⋮
7
x
5
N B x1 −2
T −1
−
3
1 1 2 5
3 − 13
cN = c N − N B cB = − 0 = 2
3
1 3 1 0 0 x2 15
− − 1
1 1 0 1 0 x = 7 3
0 1 1
3 3 3
3 0
2 1 0 0 1 x4 12
最適でない
x5
5 13
xB = 2 − 2 3 x1
掃き出し操作
7 5
3
3 x
1 3 1 1 3 0 0 x1 5 5 2 7 4 B
2 0 − 1 1 0 ⋮ = 2 θ = min =3
3 3
13 2
3
5
3
x = 0 x
3 0 − 3 0 1 x5 7
N
5 1
x1が基底に入る x1 =3 0
x4が基底から外れる 52 2
シンプレックス法(例題~3)
4
可能
cB cN x1 b = B −1b = 3 ≥ 0
min {−1 −2 0 0 0} ⋮ 2
x
5 −2
B N
0 1/ 2 − 1/ 2 1/ 2
c N = c N − N T B − 1c B = − −1
1 3 1 1 3 0 0 x1 5
0 − 1/ 2 3 / 2 − 5 / 2
2 0 − 1 1 0 ⋮ = 2 0
3 3
1/ 2
3 0 − 3 0 1 x5 7
5
最適
1
= ≥0
1/ 2
掃き出し操作
3
0 1 1/ 2 −1/ 2 0 x1 4 4
1 0 −1/ 2 3/ 2 0 ⋮ = 3
最適解 x = 0
0 0 1/ 2 −5 / 2 1 x5 2 0
2
53
最適解への経路
54
シンプレックス表
掃き出し操作
x1 x2 x3 x4 x5 θ x1 x2 x3 x4 x5 θ
f
最適解
0 -1 -2 0 0 0 f 11 0 0 1/2 1/2 0
x3 15 1 3 1 0 0 5 x2 4 0 1 1/2 -1/2 0
x4 7 1 1 0 1 0 7 x1 3 1 0 -1/2 3/2 0
x5 12 2 1 0 0 1 12 x5 2 0 0 1/2 -5/2 1
掃き出し操作
x1 x2 x3 x4 x5 θ x2 4
x = 3, f = 11
f 10 -1/3 0 2/3 0 0 1
x 2
x2 5
5 1/3 1 1/3 0 0 15
x4 2 2/3 0 -1/3 1 0 3
x5 7 5/3 0 -1/3 0 1 21/5 55
2段階シンプレックス法
初期可能基底解が判らない時
min xai
問題Aを初期可能基底解
A Ax + x a = b x = 0, xa = b
x ≥ 0, x ≥ 0 で解く。
a
解が xa = 0 の時、xが問題Bの
min c T x
可能基底解、そうでない場合、
B Ax = b 問題Bには可能解が存在しない。
x ≥ 0
56
内点法
実行可能領域の周辺から最適解に行く代わりに、
実行可能領域の内部を通る。
大規模な問題に対して有効(と言われる)
様々な手法が提案されている
57
内点法騒動
カーマーカー特許とソフトウェア
―数学は特許になるか (中公新書)
今野 浩 (著)
線形計画法の内点法をめぐる特許騒動の
顛末記
ソフトウェア特許問題の発端
特許ビジネスはどこへ行くのか―IT社会の
落とし穴
今野 浩 (著)
58
宿題
下記の問題をシンプレックス法を使って解きなさい。
(シンプレックス表を使うと楽)
max f = 3 x1 + 5x2
3x1 + 2x2 ≤ 18
x2 ≤ 6
x1,x2 ≥ 0
59