Transcript pptx

14.プライマルデュアル法
1
線形計画法の双対の概念を応用した近似アルゴリズム
がある。プライマルデュアル法(主双対法)という。
14.1 LP双対性入門
まず、次のような線形計画問題を考える。
問題A(主問題)
目的関数
min
f (x ) = 7x1 + x 2 + 5x 3
制約条件
x1 - x2 + 3x 3 ³ 10 L( 1 )
5x1 + 2x2 - x 3 ³ 6 L( 2 )
x1, x2, x3 ³ 0
2
問題Aのような形をLPの標準形という。
制約条件を満たす解を、実行可能解という。
例えば、
x = (2,1, 3)
は実行可能解。
実際、
1g2 - 1g1 + 3g3 = 10 ³ 10 L( 1 )
5g2 + 2g1 - 1g3 = 9 ³ 6 L( 1 )
このとき、目的関数値は、
f (x ) = 7g2 + 1g1 + 5g3 = 30
3
最適値は実行関数値以下であるので、この場合30以下になる。
このことは実行可能関数値は、最適値の上界を与えているとみ
なせる。
f (x )
最適値
実行可能解
ここで、下界について考える。
係数から、(1)式と(2)式の和をとると、目的関数値
の下界を導くことができる。
4
f (x ) = 7x1 + x 2 + 5x 3
³ 6x1 + x 2 + 2x 3
= (x1 - x 2 + 3x 3 ) + (5x 1 + 2x 2 - x 3 )
³ 10 + 6 = 16
\ f (x ) ³ 16
x3
このように、制約式に非負数を乗じて加えると、目的関数の
下界が得られる。この非負数に注目してもう一つのLP問題を
得ることができる。下解はできるだけ大きくするほうが良いこと
に注意うする。
5
問題B(双対問題)
目的関数
max
制約条件
*
f (y ) = 10y1 + 6y2
y1 + 5y2 £ 7 L( 1 )
*
- y1 + 2y2 £ 1 L( 2)
*
3y1 - y2 £ 5 L( 3)
y1, y2 ³ 0
*
制約式の不等号の向きが変化しないように、
非負の条件が必要である。
6
このようにして得られたLP問題を、元の問題に対する
双対問題(dual,デュアル)という。
双対問題に対して、元の問題を主問題(primal,プライマル)
という。
f (x )
0
双対可能解
最適値
実行可能解
7
双対関係
問題A(主問題)
目的関数
min
f (x ) =
問題B(双対問題)
目的関数
n
å
cj x j
max
f * (y ) =
j=1
制約条件
n
m
aij x j ³ bi
(i = 1, L , m )
j=1
å
bi yi
i= 1
制約条件
å
m
å
aij yi £ c j
( j = 1, L , n )
i= 1
xj ³ 0
( j = 1, L , n )
yj ³ 0
(i = 1, L , m )
双対問題の双対問題は、主問題になる。
8
弱双対定理
弱双対定理
x = (x1, L , xn )
と y = (y1, L , ym ) がそれぞれ、
主問題と双対問題の実行可能解のとき、次式が成り立つ。
f (x ) ³ f (y )
*
\
n
å
j=1
cj x j ³
m
å
bi yi
i= 1
9
双対定理
双対定理
x * = (x *1, L , x *n ) とy * = (y *1, L , y *m )
をそれぞ
れ、主問題と双対問題の最適解のとき、次式が成り立つ。
*
*
*
f (x ) = f (y )
n
\
å
m
cj x
*
j=1
j
=
å
bi y
*
i
i= 1
f (x )
0
双対可能解
最適値
実行可能解
10
相補条件
相補条件
x = (x1, L , xn )
と y = (y1, L , ym ) がそれぞれ、
主問題と双対問題の実行可能解のとき、次式が成り立つ。
このとき、 x と y が最適解であるための必要十分条件は、
以下の条件が成立することである。
(1)主相補条件:各
1£ j £ n
に対して、
m
xj = 0
あるいは
å
aij yi = cj
である。
i= 1
(2)双対相補条件:各
1£ i £ m
に対して、
n
yj = 0
あるいは
å
aij x j = bi
である。
j=1
11
14.2 プライマルデュアル法
相補条件を緩和することにより、近似アルゴリズムが得られる。
緩和相補条件
(1)主相補条件: a ³ 1 とする。
各 1 £ j £ n に対して、 x j = 0 あるいは
1
cj £
a
m
å
i= 1
(2)双対相補条件: b ³ 1 とする。
各 1 £ i £ m に対して、 y j = 0
bi £
n
å
である。
aij yi £ cj
あるいは
aij x j £ b gbi
である。
j=1
12
プライマルデュアル法の近似率
近似率
緩和した相補条件を共に満足するとき、
以下が成り立つ。
n
å
j=1
m
c j x j £ (a gb )å bi yi
i= 1
\ f (y ) £ f (x ) £ (a gb ) f (y )
*
よって、
*
a gb
近似アルゴリズムである。
13
14.3 集合カバー
ある集合 U = {e1, L , en } (台集合という)と、その部分集合からなる
= {S 1, S 2 , L , S m }, S i Í Uが与えられたとき、族の中のいくつかの
族 S=
集合を選んで、その和集合が台集合をふくむようにする。さらに、こ
の族の各要素には、コストが割り当てられている。このとき、次の式
を満たすような部分族 C=でコスト最小のものを求める。
C=
= {S p , L , Sq } Í S ,U Í
k
Sk Î C
U
S2
US
S1
1
5
4
2
3
3
S5
S3
1
4
5
6
C=は、台集
合 U をカバー
するという。
S4 2
14
集合カバーの難しさ
集合カバー問題は、NP完全である。
証明略
15
集合カバーの整数計画法による定式化
コスト関数を c : S=
® ¤ + とする。
目的関数
min
f (x ) =
c(S )xS
SÎ S
制約条件
å
å
xS ³ 1
(e Î U )
S :eÎ S
xS Î {0,1}
(S Î S )
線形緩和
16
集合カバーの緩和線形計画法
目的関数
min
f (x ) =
c(S )xS
SÎ S
制約条件
å
å
xS ³ 1
(e Î U )
標準形になっ
ている。
少数集合カ
バー
S :eÎ S
xS ³ 0
(S Î S )
双対問題
17
少数集合カバーの双対問題
目的関数
max
*
f (y ) =
å
ye
eÎ U
制約条件
å
ye £ c(S )
(S Î S )
eÎ U
ye ³ 0
(e Î U )
各要素eに対応する”物
質”を、集合Sに詰め込
むことをイメージすると
よい。直感的に、各集合
Sには、ある一定以上の
物質を詰め込むことが
できない。(この条件を、
破ることを、オーバー
パックということがあ
る。)
18
関数値の関係
少数最適値
0
整数最適値
OPT f OPT
f (x )
整数主実行可能解
少数双対可能解
少数主実行可能解
19
14.4 集合カバーへのプライマル
デュアル法の適用
(1)主相補条件:全てのS Î S に対して、
xS ¹ 0
Þ
å
ye = c(S )
e:eÎ S
主相補条件
は、
厳密解の条
件。
\ a=1
(2)双対相補条件:
S Î S に対して、要素 e Î U 頻度の最大値を
k
とする。このとき、
双対相補条件
全ての e Î U に対して、
が、緩和されて
いる。
ye ¹ 0
Þ
å
S :eÎ S
xS £ 1gk
\ b=k
20
相補条件の利用
集合Sは、
å
ye = c(S )
e:eÎ S
を満たすとき、タイトと呼ばれる。
主問題の変数は整数性を保ちながら更新する。
しかも、タイトな集合のみから集合を集合カバーに選ぶ。
双対変数の値が非零要素のみ、
でカバーされる。
k
個までの集合
21
アルゴリズム
集合カバー(近似率
1.(初期化)
k
)
x ¬ 0;y ¬ 0;
2.すべての要素がカバーされるまで以下を繰り返す。
2.1:カバーされていない要素を1つ選びe と
ye
eし、
を含むどれかの集合がタイトになるまで
の
値を増加する;
2.2:タイトな集合をすべてカバーに選んで、
x
を更新する;
2.3:これらの集合に含まれている要素は、カ
バーされているとする。
3.集合カバーとしてx を出力する。
22
x
=
(
S
,
S
,
S
,
S
,
S
)
1
2
3
4
5
アルゴリズムの動作例1 y = (e , e , e , e , e , e )
1 2 3 4 5 5
U
S2
S1
5
4
1
2
3
S5
x = (0, 0, 0, 0, 0)
S3
3
y = (0, 0, 0, 0, 0, 0)
1
4
U
5
6
S4 2
e1 選択
y1 の増加
1
5
S1 1
2
k=3
3
x = (0,1, 0, 0, 0)
S5
S3
y = (3, 0, 0, 0, 0, 0)
1
6
S4 2
23
U
1
S1
5
1
2
3
S 5 x = (0,1, 0, 0, 0)
y = (3, 0, 0, 0, 0, 0)
S3
1
6
U
2
S4 2
e2 選択
y2 の増加
4
S 5 x = (1,1, 0, 0, 0)
S3
y = (3,1, 0, 0, 0, 0)
1
6
S4 2
24
U
2
4
S 5 x = (1,1, 0, 0, 0)
S3
y = (3,1, 0, 0, 0, 0)
1
6
U
3
S4 2
e6 選択
y6 の増加
x = (1,1,1, 0, 0)
y = (3,1, 0, 0, 0,1)
25
解
U
S2
S1
1
4
2
3
3
x = (1,1,1, 0, 0)
S3
1
4
5
y = (3,1, 0, 0, 0,1)
6
f (x ) = 4 + 3 + 1 = 8
f * (y ) = 3g(3 + 1 + 1) = 15
26
アルゴリズムの動作例2
U
S1
S2
k=3
5
4
1
2
3
S5
x = (0, 0, 0, 0, 0)
S3
3
y = (0, 0, 0, 0, 0, 0)
1
5
4
U
6
S4 2
e5 選択
y5 の増加
1
S1
S2 1
3
4
2
1
3
x = (0, 0, 0,1, 0)
S5
y = (0, 0, 0, 0, 2, 0)
S3
1
4
27
U
1
3
S1 4
S2
1
2
1
3
S 5 x = (0, 0, 0,1, 0)
S3
y = (0, 0, 0, 0, 2, 0)
1
4
U
e3 選択
y3 の増加
2
S1
S2
1
2
3
2
S5
x = (0, 0,1,1, 0)
y = (0, 0,1, 0, 2, 0)
1
4
28
U
2
2
S1 3
S2
1
2
1
S5
x = (0, 0,1,1, 0)
y = (0, 0,1, 0, 2, 0)
4
U
e2 選択
y2 の増加
3
S1
S2
1
x = (0, 0,1,1,1)
1
y = (0, 2,1, 0, 2, 0)
1
4
29
U
3
S1 1
S2
x = (0, 0,1,1,1)
1
y = (0, 2,1, 0, 2, 0)
1
4
U
4
e4 選択
y4 の増加
x = (0,1,1,1,1)
y = (0, 2,1,1, 2, 0)
30
解
U
5
S2
1
2
3
S5
S3
3
1
4
5
6
x = (0,1,1,1,1)
y = (0, 2,1,1, 2, 0)
S4 2
f (x ) = 3 + 1 + 2 + 5 = 11
f * (y ) = 3g(2 + 1 + 1 + 2) = 18
31
近似率
相補条件より、直ちに以下のように求められる。
ìï a = 1
ï
í
ïï b = k(頻度)
ïî
n
å
j=1
m
c j x j £ (a gb )å bi yi
i= 1
\ f * (y ) £ f (x ) £ kf * (y )
よって、k-近似アルゴリズムである。
32
関数値の関係
少数最適値
少数双対可能解
少数主実行可能解
整数最適値
0
整数主実行可能解
f (x )
OPT f OPT
緩和少数双対可能解
k gOPT f
アルゴリズムでは、相補条件より
この範囲に含まれる整数解が得られる。33
アルゴリズムの正当性
アルゴリズムでは、
の更新は整数性を満たしている。
しかも、以下の2つを満足している。
○すべての要素がカバーされている。
○すべての集合が、オーバーパックされていない。
(タイトな集合を選んでいくので自動的に満足する。)
以上より、アルゴリズムは、集合カバーに対する
整数の実行可能解を出力する。
34
最悪の問題例
U
1
e1
1
e2
L
en
最適値
アルゴリズムの出力
(
を最初に選ぶ)
1
en- 1
1+ e
en + 1
1+ e
n+e
35