計算量理論 6.4: TIGHTNING A CONSTRAINT 6.5: CONSTRAINT GENERATION FOR COMBINATORIAL-OPTIMIZTION PROBLEMS 岩間研M1 吉田 6.4 TIGHTENING A CONSTRAINT aij(1im, 1jn), bi(1im)を整数とし、次のような整数計画 問題IPを考える。 n max c j x j j 1 subject to : n a x ij j bi , for i 1,2,..., m j 0 x j 1, for i 1,2,..., n x j Z , for i 1,2,..., n この問題の最適解を変えずに、制約を強めるのがこの節の目 的。 ナップサック問題の利用 a x b ある制約 に注目する(複数の制約を同時に考 n j 1 kj j k えない) 。このとき、akj0と仮定してよい。そうでなけれ ば、akj<0なるxjを1-xj’で置き換える。 n a xj が取りうる最大値bk’を以下のナップサック問題 を用いて時、bkをbk’に置き換える。 j 1 kj n b : max akj x j ' k j 1 subject to : n a j 1 kj x j bk 0 x j 1, for i 1,2,..., n x j Z , for i 1,2,..., n 被覆不等式 akj bk 条件 を満たすW{1,2,...,n}を考える。 jW このとき任意のIPの実行可能解xに対して、 jW x j | W | 1が成立する。これを被覆不等式と呼ぶ。 (Wの要素をすべて選んではいけない) 被覆不等式は a bk , l W を満たすとき極小 jW l kj であると言う。 現在の(線形計画法により求められた)解をx*とする。 x* がIPの実行可能解で無い場合、満たさない被覆不 等式があるかもしれない。x*が全ての被覆不等式を満 たしているか、満たさないならば、その時のWは何かを 求めたい。 被覆不等式の例 7x1+2x2+x3+3x4+6x5+5x68 0x1,x2,x3,x4,5,x61 x1,x2,x3,x4,5,x6Z という制約を考える。 このときx2+x3+x52は極小な被覆不等式である。 定理 (FINDING VIOLATED COVER INEQUALITIES) 次の整数計画問題DPkを考える。 s ( x ) : min * n (1 x ) z * j j 1 n a j 1 kj j z j bk z j {0,1}, for j 1,2,..., n s(x*)1ならばx*は n j 1 akj x j bk に対する全ての被覆 不等式を満たしている。 逆にs(x**)<1の時、DPkの解をz*、W:=S(z*)とすると、 jW x | W | 1である(x*はこの被覆不等式を満たして いない)。 j s ( x ) : min * n * ( 1 x j )z j j 1 n a 証明 j 1 kj z j bk z j {0,1}, for j 1,2,..., n zがDPkの実行可能解であることの必要十分条件は、z が被覆不等式を構成する集合Wの特性ベクトルになっ ていることである。 もしs(x*)1であれば、DPkで実行可能な全ての解に対 n n * n * x z して j 1 (1 x j ) z j 1、すなわち j 1 j j j 1 z j 1 である。よって全ての被覆不等式が成立する。 もしs(x*)<1であれば、DPkのある実行可能解z*に対し て nj1 (1 x*j ) z * 1 、すなわちn x*j z * n z * 1 j 1 j 1 である。 j j j 問題 (COVER SEPARATION) n 整数計画問題DPk s ( x ) : min (1 x*j ) z j * j 1 n a j 1 kj z j bk z j {0,1}, for j 1,2,..., n はzjに1-zj’に置き換えると次の整数計画問題に帰着さ n れる。 max (1 x*j ) z j ' これはナップサック問題として j 1 n n 解くことができる。 a j 1 kj z j ' akj bk j 1 z j ' {0,1}, for j 1,2,..., n クリーク不等式 n 注目している制約: akj x j bk j 1 条件akj+akl>bk, j,kW, jkを満たすWを考える。 このときIPの任意の実行可能解xについて、 x j 1 が成立する。これをクリーク不等式と呼ぶ。 jW (Wの要素のうち選べるのは高々一つ。) クリーク不等式は任意のiWについて、あるjWが存在 しakj+akibkを満たすとき極大であると言う。 被覆不等式の時と同じように、現在の(線形計画法によ り求められた)解x*から、x*が全てのクリーク不等式を満 たすか、そうでないならばその時のWは何かを知りたい。 例 7x1+2x2+x3+3x4+6x5+5x68 0x1,x2,x3,x4,5,x61 x1,x2,x3,x4,5,x6Z という制約を考える。 このときx1+x4+x51は極大なクリーク不等式である。 x1 x2 x3 x6 x5 x4 V(G)={1,2,...,n}, E(G)={(j,l)|j,lV, akj+akl>bk)} 問題 (CLIQUE SEPARATION) 次の整数計画問題CSを考える n s ( x* ) : max x*j z j j 1 z j zl 1, j,l s.t. akj akl bk z j {0,1}, for j 1,2,..., n 被覆不等式の時と同様にs(x*)1か否かでx*が全てのク リーク不等式を成立させているかを判定できる。 無向グラフGを、V(G)={1,2,...,n}, E(G)={(j,l)|j,lV, akj+akl>bk)}で定める。頂点iにxi*の重みを持たせると、 CSを解くことはGの最大重みのクリークを求めることに 等しい。 例 7x1+2x2+x3+3x4+6x5+5x68 0x1,x2,x3,x4,5,x61 x1,x2,x3,x4,5,x6Z という制約を考える。 x1 x2 n s ( x ) : max x*j z j * x3 x6 j 1 z j zl 1, j,l s.t. akj akl bk z j {0,1}, for j 1,2,..., n x5 x4 リフティング IPの実行可能解xが満たす不等式 j 1a j x j を考える。ajは非負と仮定する。 添え字kを選び、次のリフティング問題LPを考える。 n k : max a j x j jk subject to : a j k ij x j bi aik , for i 1,2,..., m 0 x j 1, for j k x j Z , for j k LPの制約部分はIPでxk=1と仮定したときの形になって いる。 リフティング k : max a j x j jk subject to : a jk ij x j bi aik , for i 1,2,..., m 0 x j 1, for j k x j Z , for j k もしLPが実行可能解を持たなければxk=0である。 もしそうでなければ、任意のak’kに対して、 a 'k xk j k a j x j がIPの実行可能解において成立 する。 これを用いて制約式を強めることができる。 例 7x1+2x2+x3+3x4+6x5+5x68 0x1,x2,x3,x4,5,x61 x1,x2,x3,x4,5,x6Z という制約を考える。 このときx2+x4+x62は極小な被覆不等式で、これをx1に ついてリフティングする。 最初の制約でx1=1とすると、2x2+x3+3x4+6x5+5x61 これを満たすx2,x4,x6に対するx2+x4+x6の最大値は0。 よって2x1+x2+x3+x52が得られる。 6.5 CONSTRAINT GENERATION FOR COMBINATORIAL-OPTIMIZATION PROBLEMS 整数計画問題の中には、自然な変数の数に比べて大量 の制約式を必要とするものがある。Gを無向グラフとし、 P(G)をGのハミルトン閉路の特性ベクトルの凸包とする。 最小重みのハミルトン閉路を求める問題は次のように定 式化される。 min c (e) x e eE ( G ) subject to : x e e 2, v V (G ) (次数の制約 ) G (v) x e eE ( G [W ]) | W | 1, W V (G ),3 | W | V (G ) 3 (部分閉路除去不等式 ) 0 xe 1, e E (G ) xe Z , e E (G ) 全ての制約式(特に部分閉路除去不等式)を明示的に 列挙するのは非実用的である。 * E (G ) x R そこで が与えられた時に、x*が満たしていな い部分閉路除去不等式を生成する方法を考える。 x*は部分閉路除去不等式以外を満たすとする。ある * x SV(3|S| |V|-3)が e ( S ) e 2 であるとき、W:=Sまた はW:=V(G)\Sはx*が満たしていない部分閉路除去不等 式を構成する。 * x 逆に全てのSV(3|S| |V|-3)についてe ( S ) e 2 の時、 x*は全ての部分閉路除去不等式を満たす。 G G SEPARATION ALGORITHM FOR SUBTOUR-ELIMINATION INEQUALITIES x*は被覆不等式以外を満たすとする。 有向グラフG’を作る。V(G’):=V(G)とする。E(G’)は eE(G)それぞれを有向枝e’に置き換えることで得る(向 きはどちらでも良い)。 上界関数c: E(G’)→Rをc(e’):=xe*で、 下界関数l: E(G’)→Rをl(e’):=-xe*で定める。 一点vを選び、全てのwV(G’)-vに対してv-w最小容量 カットセットSwを求める。 SV(G)はvS,wSのときv-wカットセットと言う。 カットセットの容量C(S):= c(e) l (e) e G ( S ) e G ( S ) SをC(S):=min C(Sw)となるように選ぶ C(S)2であれば、 x*は全ての部分閉路除去不等式を満た す。 C(S)<2であれば、x*はW:=SかW:=V(G)\Sが構築する部分閉 路除去不等式を満たさない。 次数の制約は満たしているので、C(S)<2であれば、自 動的に3|S| |V|-3になる。 S S S 全ての部分閉路除去不等式を用いても、ハミルトン閉 路多面体P(G)が得られるわけではなく、P(G)外のベクト ルも実行可能解となっている。 櫛を用いて、有理数解をいくつか取り除くことができる。 Gの櫛は柄G[W](WV(G))と歯FE(G)からなり、以下の 性質を満たす。 1. 3|W||V(G)|-1 2. |F|3,|F|は奇数 3. FG(W) 4. Fはマッチングをなす 櫛の例 G[W] F 櫛は以下の2-factor不等式を定める。 | F | xe xe | W | 2 eE ( G[W ]) eF THEOREM (VALIDITY OF 2-FACTOR INEQUALITIES) SE(G)は任意のvV(G)に対してSG(v)=2を満たすと する。このときx(S)は2-factor不等式 xe xe | W | | F | 2 eE ( G[W ]) eF を満たす。 証明 SE(G[W])がWのハミルトン閉路になっているとき: SF=である。このときx(S)を2-factor不等式に代入す ると、左辺は|W|となるので、x(S)は2-factor不等式を満た す。 G[W] F THEOREM (VALIDITY OF 2-FACTOR INEQUALITIES) SE(G[W])がWのハミルトン閉路になっていないとき: SがW中でp個のパスを形成しているとする。 この時|SE(G[W])|=|W|-pである。 また|SF|2pである。 p=3 |SE(G[W])|=|W|-p=5 G[W] |SF|2p=6 F x(S)を2-factor不等式に代入すると、(左辺)|W|+pとなり 2p=|S F||F|から、不等式は成立する。 | F | xe xe | W | 2 eE ( G[W ]) eF EXERCISE (VIOLATED 2-FACTOR INEQUALITY) 以下のグラフは最大重みハミルトン閉路を求める整数 計画問題を線形計画問題として解いたときに得られる 有理数解である。この有理数解は全ての部分閉路除去 不等式を満たしているが、満たしていない2-factor不等 式がある。 1 1/2 1/2 1 1/2 1/2 1/2 1/2 1 EXERCISE (VIOLATED 2-FACTOR INEQUALITY) 以下のグラフは最大重みハミルトン閉路を求める整数 計画問題を線形計画問題として解いたときに得られる 有理数解である。この有理数解は全ての部分閉路除去 不等式を満たしているが、満たしていない2-factor不等 式がある。 W 1 1/2 1/2 1 1/2 x e eE ( G [W ]) 1/2 1/2 1/2 1 | W | 1, W V (G ),3 | W | V (G ) 3 EXERCISE (VIOLATED 2-FACTOR INEQUALITY) 以下のグラフは最大重みハミルトン閉路を求める整数 計画問題を線形計画問題として解いたときに得られる 有理数解である。この有理数解は全ての部分閉路除去 不等式を満たしているが、満たしていない2-factor不等 式がある。 W F 1 1/2 1/2 1 1/2 1/2 1/2 1/2 1 | F | x x | W | e e 2 eE ( G[W ]) eF 全ての2-factor不等式を用いても、ハミルトン閉路多面 体P(G)を表現できていない(P(G)外の点も実行可能解 となっている)。他にもP(G)を記述する不等式は数多く 知られているが、P(G)を線形不等式のみで記述するこ とはまだなされていないと思われる。 PROBLEM (PRIZE-COLLECTING TRAVELING SALESPERSON) Gを無向グラフとし、始点vV(G)を選ぶ。V(G)-v上の正 関数fとE(G)上の正関数cが与えられる。eE(G)を通る 際のコストはc(e)であり、頂点iに入るときに得られる利益 はf(i)である。 vを始点として、ほかの頂点を高々1回通り、 vに戻ってくることを考える。このときに得られる利益を最 大にしたい。 G v w PRIZE-COLLECTING TRAVELING SALESPERSONを整数計画問題として定式化 max f (i) y iV ( G ) v i c (e) x eE ( G ) e subject to : x e e 2 yi , i V (G ) G (i ) x e eE ( G [W ]) y , W V (G ) v, w W (部分閉路除去不等式) iW w i 0 x e 1, e E (G ) \ G (v) 0 xe 2, e G (v) wを通りvを通らない閉路を除去 0 yi 1, i V (G ) v G xe Z , e E (G ) yi Z , i V (G ) v yv 1 v w x e eE ( G [W ]) y , W V (G) v, w W のSEPARATION iW w i x* RE (G ) , y* RV (G ) , w V (G) を固定し、次の線形 計画問題TSPを考える。 s : max eE ( G ) \ xe* ze G (v) y u * i i iV ( G ) \{ v , w} subject to : ze ui , ze u j , {i, j} E (G ) \ G (v) 0 ze 1, e E (G ) \ G (v) 0 ui 1, i V (G ) \ {v, w} uw 1 s0ならばx*,y*,wがすべての部分閉路除去不等式を満 たし、s>0ならばある部分閉路除去不等式を満たさない ことを示す。 もし eE (G[W ]) xe iW w yi , W V (G ) v, w W なるW が存在すれば、 ze 1, e E (G[W ]) ui 1, i W w とすることで、s0。 s : max eE ( G ) \ xe* ze G (v) * y i ui iV ( G ) \{ v , w} subject to : ze ui , ze u j , {i, j} E (G ) \ G (v) 0 ze 1, e E (G ) \ G (v) 0 ui 1, i V (G ) \ {v, w} uw 1 逆にあるz*,u*でs0すなわち * * * * x z y eE (G[W ]) e e iW w i ui , W V (G) v, w W とする。z1,u1を次のように定める。 * 1 , z 1 e 0 ze 0, otherwise 1, ui* 0 u 0, otherwise 1 i ui* ui1 ze* ze1 uj* uj1 * 1 * 1 x z y ui , W V (G ) v, w W e e i eE ( G [W ]) iW w となり、これはすなわちx*,y*,wが満たさない部分閉路除 去不等式になっている。
© Copyright 2024 ExpyDoc