分枝限定法~整数計画問題 - 慶應義塾大学 理工学部管理工学科
Download
Report
Transcript 分枝限定法~整数計画問題 - 慶應義塾大学 理工学部管理工学科
慶應義塾大学 理工学部
管理工学科4年 曹研究室
60803571
遠藤 健司
分枝限定法についての理解
整数計画法を解く上での3つの基本的概念
(緩和、分割統治、測深)
分枝限定法のアルゴリズム
数値例
分枝限定法を効率よく解くための工夫
線形計画問題
シンプレックス法
双対シンプレックス法
「数理計画法の基礎」
坂和正敏 著
森北出版(株)(1999,初版)
「数理計画法」~最適化の手法
森哲夫 著
共立出版(株)(1994,初版)
分枝限定法
1960年にA.H.LandとA.G.Doigによって提案
され、R.Dakin、E.M.L.Bealsらによって改
良された、一般の混合整数計画問題を解くた
めの最も実用的な手法
整数計画問題
線形計画問題の一部の変数またはすべての変数に整数条件が付
加された問題
ベクトル行列形式(P0)で表わすと…
n
min z
c
j
min z cx
xj
j 1
s .t A1 x b 1
A2 x b 2
j 1
x 0
n
x1 Z
n
s .t . a
a
ij
ij
x j b i i 1,..., m 1
x j b i i m 1 1,..., m
j 1
x j 0 j 1,..., n
x j Z j 1,..., n1 n
n1
, x2
n n1
=P0とする
・n1=nのとき
:全整数計画問題
・n1<nのとき
:混合整数計画問題
1.
緩和法
整数計画問題の制約条件の一部を無視して得られるより易しい
問題を解くことで、もとの問題を解くという基本的概念
P0 : min{ cx | x X 0 }
( X 0 :実行可能領域)
P0 の緩和問題(P0 )
P0 : min{ cx | x X 0 }, X
0
X0
緩和法の原理
1.
2.
3.
緩和問題 P 0 が実行可能解をもたなければ、もとの問題 P0 も実行可能解
をもたない。
0
緩和問題 P 0 の最適解 x 0 がもとの問題 P0 の実行可能解であれば、x
はもとの問題 P0 の最適解である。
0
緩和問題 P 0 の最適解 x 0 と、もとの問題 P0 の最適解 x に対して、
0
0
c x cx なる関係が成立する。
2.
分割統治法
与えられた最適化問題の実行可能領域上での目的関数の最適化
は困難であっても、分割されたより小さな領域における一連の
最適化問題を解いて得られた結果を統合することで、間接的に
もとの問題を解くという基本的概念
P0 の部分問題( Pi )
:P0 の実行可能領域 X 0 をいくつかの部分領域 X 1 ,..., X k に分割し
て、分割された各部分領域 X i に対応する問題
k
min{ cx | x X i }, i 1,.., k X
i
X0
i 1
X0
の分割 { X 1 ,..., X k } に対する部分問題Pi の最適値を
z min{ cx | x X i }, i 1,..., k
i
とするとき、もとの問題P0 の最適
値 z は z 0 min z i で与えられる。
0
i 1 ,..., k
3.
測深
部分問題 Pi の最小値 z i の大きさを調べること。
測深済
:部分問題Pi が暫定解(既に得られているP0 の最良値:z )より
も良い実行可能解を含んでいないと判断された場合
終端
:部分問題 Pi の探索処理を終了すること。
以下3つの測深基準のいずれか1つが満たされた場合、部分問
題 Pi は測深済となる。
1.
2.
3.
実行不可能性
:緩和問題 Pi が実行不可能の場合
最適値の被優越性
i
i
: z z となる場合 ( z : 緩和問題 Pi の最適値)
最適性
:緩和問題 Pi の最適解がたまたま部分問題 Pi の実行可能解となる場合
混合整数計画問題( P0 )
Cx Dy b
x 0, x Z
y 0
0
min z cx dy
min z cx dy
s .t . 連続緩和問題( P )
n
s .t . Cx Dy b
x 0, y 0
の最適解 ( x , y ) が整数解にならない場合
→連続緩和問題を子問題( P1, P2)(部分問題)に分割
0
P0
0
0
0
x s : x の成分のうち、整数でない成分の一つ
P1 : min{ cx dy | C x D y b , x j 0 , j 1,..., n x s x s , x Z , y 0}
0
n
P2 : min{ cx dy | C x D y b , x j 0 , j 1,..., n x s
0
1 x
, x Z , y 0}
s
n
但し、x s 0 , x s Z
の最適値 z min( z , z ) (子問題を解く)
→部分問題を解くことにより、もとの問題 Pを解いたこと
0
になる。
→子問題 P,1 P2も同様に連続緩和問題 P1, Pを解く。
2
→ P,1 P2のいずれかの問題の最適解が整数解にならなけれ
ば、 P1 ,P2 を2つの子問題に分割し、その連続緩和問題
を解く…
0
P0
1
2
では、子問題 Pk の連続緩和問題 Pk を解く際の3つの場合
をまとめてみると…
k
k
( x , y ) : Pk の最適解(
P0 の実行可能解)
z c x d y : Pk の最適値
k
k
k
P0 の暫定解(但し、P0 の実行可能解が得られていない場合は
z とする。
z c x d y : P0 の暫定値
(x , y ) :
が実行可能解をもたない場合
1. Pk
Pk
も実行可能解をもたないので終端する。
2. ( x , y ) が整数解の場合
k
k
z z
k
k
k
であれば、( x , y ) は現在の暫定解よりもよいP0 の実行可
能解となるので、( x k , y k ) を新しい暫定解として終端する。
k
z z であれば、暫定解を更新せずに終端する。
a.
b.
3. ( x , y ) が整数解でない場合
k
a.
b.
k
z z
k
であれば、Pk は暫定解よりもよい解を含んでいる可能性
k
k
があるので、x の成分のうち整数条件をみたさない変数x s を適
当に選択してPk を二つの子問題に分割する。
k
z z であれば、暫定解を更新せずに終端する。
min z 4 x1 5 x 2
s .t . x1 4 x 2 5
3 x1 2 x 2 7
x1 0 , x 2 0 x1 , x 2 Z
分枝限定法のアルゴリズムを適用
すると次のような探索過程と樹状
図のようになる。
分枝変数に対応するペナルティを導入し、強力な下界値
を求めることで、余分な分枝探索を削除するための、よ
り強力な判断基準を与えることができる。
Pk : min { cx dy | C x D y b , x 0 , y 0} 緩和問題
J N : 最適基底解 ( x , y ) と最適値 z k に対応する非基底変数の添字の集合
w j , j J N : 非基底変数
x r a rj w j x rk , x r は基底変数
j J N
k
z
z
c j w j , c j 0, j J N
j J N
k
k
k
・・・(*)式
k
x i : ( x , y ) の x 成分のうち、整数条件を満たさない分枝変数
I : 最適基底解のうち、整数条件を満たさないものの添字の集合
xi , i I
k
二つの子問題を生成する。
Pi 1 : min { cx dy | C x D y b , x j 0 , j 1,..., n x i x i , x Z , y 0}
k
n
Pi 2 : min { cx dy | C x D y b , x j 0 , j 1,..., n x i 1
k
k
x i x Z , y 0} xi 0, xi Z
n
は整数条件を満たしていないため、整数部分と小数部分に分けられる。
xi
x i x i
k
k
f i , 0 f i 1, i I
k
k
親問題と子問題の連続緩和問題の最適値の関係(定理)
z
z
i 1
z min {
k
j J N
i 1
z min {
k
j J N
cj
| a ij 0} f i z Pi
k
a ij
( c j )
k
→下方ペナルティ
| a ij 0}( 1 f i ) z Pi
k
a ij
D
k
U
→上方ペナルティ
(*)式より、非基底変数 w が整数であるものに関して
は、非基底変数 w を0から増加させるには、少なくとも
+1増加させなければならないので、対応する目的関数 z
は、少なくとも c j 増加することになる。
j
j
Pi
D*
I
c j f i k a ij j JN
min
k
I
a ij 0
max{ c j , c j f i a ij } j J N
I
c j (1 f i k ) ( a ij ) j JN
min
k
I
a ij 0
max{ c j , c j (1 f i ) ( a ij )} j J N
Pi
U*
Pi
D*
Pi , Pi
I
非基底変数で整数変数を満たさない変数の添字集合
JN :
D
U*
Pi
U
1.
2.
分枝変数が一意的に決定されない場合、整数値をとらな
い分枝変数を選び出す方法は、以下二つの規則に基づく。
Max-Max則
生成される二つの子問題のうち、目的関数値の大きい方を最も
大きくするように分枝変数を選ぶ。
一般的に、もとの問題の少なくとも一つ実行可能解が得られる
まで適用する。
Max-min則
生成される二つの子問題のうち、目的関数値の小さい方を最も
大きくするように分枝変数を選ぶ。
実行可能解が一つでも得られた場合に適用する。
Max-max則適用時
max{ Ps
D (*)
U (*)
, Ps
} max max{ Pi
D (*)
i I
, Pi
U (*)
}
Max-min則適用時
min{ Ps
Ps
D (*)
U (*)
Ps
D (*)
U (*)
, Ps
} max min{ Pi
i I
D (*)
, Pi
U (*)
}
: 規則に従い決定された分枝変数 x s を選択したときの
(強力な)下方ペナルティ
: 規則に従い決定された分枝変数 x s を選択したときの
(強力な)上方ペナルティ
先ほどの定理 z i 1 z k Pi D , z i 1 z k PiU より、現在の暫
定値 z に対して z max P z , z max P z
であれば、子問題 Pi 1 , Pi 2を終端させることができる。
k
i I
D
k
U
i
i I
i
また、z i 1 z k Pi D , z i 1 z k PiU は、親問題 Pk の最適解 z k
に対して、z min{ z , z } z min{ P , P } とみなすことも
できるため、z z max min{ P , P } なる関係式が得られる。
よって、現在の暫定値 z に対して max min{ P , P } z z
ならば、親問題 Pk を終端させることができる。
( z k z ならば、整数解を更新せずに終端できるため)
i 1
k
i 2
k
D
i
k
k
D
i I
i
U
i
U
i
D (*)
i I
※
限定操作:Pk の最適値と現在の暫定値を比較すること
i
U (*)
i
k
k
事前型規則:あらかじめ選択する順番を決めておく
LIFO(Last-In-First-Out)則=深さ優先規則
バックトラック
幅優先規則
適応型規則:
最良推定値規則
最良下界規則
min z 9 x1 19 x 2 11 x 3
z 0 152 , s .t . 2 x1 5 x 2 3 x 3 37
x1
57
7
4 x1 3 x 2 2 x 3 45
0
4
1
7
, x2
29
4
7
1
7
上方ペナルティと下方ペナル
ティを計算すると次のようにな
る。
0 x1 , x 2 , x 3 Z
x ,x
この例題 P にスラック変数
を導入して対応する連続緩和
問題P
をシンプレックス法
で解けば、次のような最適基
底形式が得られる。
8
5
D*
P2
1 (1 2 )( 1 7 )
7 ( 7 2 )( 1 7 )
,
}, max{
,
}
2
(4 7)
2
(2 7)
min{max{
0
min{max{
U*
P2
P1
x 2
x1
4
7
1
14
x 3
x3
2
7
3
14
x 4
x4
1
7
5
14
x5
x5
D*
1 1
7 7
1
, }, max{
, }}
2 8
2 4
2
1 (1 2 )( 6 7 )
,
}} min{max{
2
(1 7 )
min{max{
min{max{
5
1
7
1
z x 3 x 4 x 5 152
2
2
2
x r a rj w j x rk , x r
j J N
k
z z c j w j , c j 0, j J N
j J N
1
2
57
U*
P1
min{max{
, 3}} 3
2
1 (1 2 )( 1 7 )
1 (1 2 )( 1 7 )
,
}, max{
,
}}
2
(1 14 )
2
( 5 14 )
min{max{
29
7
1
,1}, max{
1 1
1
, }}
2 5
2
7 ( 7 2 )( 6 7 )
,
}} min{max{
2
( 3 14 )
7
,14 }} 14
2
k
I
j JN
c j f i a ij D*
Pi min
k
I
a ij 0
max{ c j , c j f i a ij } j J N
k
I
j JN
U*
c j (1 f i ) ( a ij )
k
I
Pi amin
ij 0
max{ c j , c j (1 f i ) ( a ij )} j J N
min{ P2 , P2 }
D*
min{ Ps
D (*)
U*
U (*)
, Ps
1
2
, min{ P1
D*
, P1 }
} max min{ Pi
i I
U*
D (*)
, Pi
2
U (*)
となり、ペナルティは等し
x2
くなるので、ここでは
29
1
x
4
を分枝変数にとる。
7
7
から
x 2 4 ( x 2 s1 4 )
最良下界規則より、
Pを
P1
1
導入した子問題 の連続緩
和問題
を、双対シンプレックス法
で解く。
以上の作業を深さ優先規則
に従い、暫定値が見つかる
ところまで探索を繰りかえ
す。
2
1
}
ラグランジュ緩和についての理論を学ぶ。
ラグランジュ未定乗数法
最急降下法