1 有限最小化問題と近似比
定義 1.1. 集合I \mathcal I I の要素をインスタンス (instance ) という。各インスタンスI ∈ I I\in\mathcal I I ∈ I に対し、空でない有限集合F ( I ) F(I) F ( I ) と写像c o s t I : F ( I ) → [ 0 , ∞ ) \mathrm{cost}_I:F(I)\to[0,\infty) cost I : F ( I ) → [ 0 , ∞ ) が定まっているとする。F ( I ) F(I) F ( I ) の要素をI I I の実行可能解 (feasible solution ) 、c o s t I ( y ) \mathrm{cost}_I(y) cost I ( y ) を実行可能解y y y の費用 (cost ) という。この対応の全体を有限最小化問題 (finite minimization problem ) という。
F ( I ) F(I) F ( I ) は空でない有限集合であるから
O P T ( I ) = min y ∈ F ( I ) c o s t I ( y ) \mathrm{OPT}(I)=\min_{y\in F(I)}\mathrm{cost}_I(y) OPT ( I ) = y ∈ F ( I ) min cost I ( y ) は存在する。これをI I I の最適値 (optimal value ) という。
定義 1.2. 有限最小化問題と、各インスタンスI ∈ I I\in\mathcal I I ∈ I に対し実行可能解A ( I ) ∈ F ( I ) \mathcal A(I)\in F(I) A ( I ) ∈ F ( I ) を返すアルゴリズムA \mathcal A A をとる。実数ρ \rho ρ に対し、A \mathcal A A が ρ \rho ρ -近似アルゴリズム (rho-approximation algorithm ) であるとは、すべてのインスタンスI ∈ I I\in\mathcal I I ∈ I について
c o s t I ( A ( I ) ) ≤ ρ O P T ( I ) \mathrm{cost}_I\bigl(\mathcal A(I)\bigr)\ \le\ \rho\,\mathrm{OPT}(I) cost I ( A ( I ) ) ≤ ρ OPT ( I ) が成り立つことをいう。この不等式を満たすρ \rho ρ をA \mathcal A A の近似比 (approximation ratio ) という。
命題 1.3. 有限最小化問題がO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 を満たすインスタンスI I I をもつとする。このとき、ρ \rho ρ -近似アルゴリズムの近似比ρ \rho ρ は1 1 1 以上である。
証明. A \mathcal A A をρ \rho ρ -近似アルゴリズムとし、O P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 を満たすインスタンスI I I をとる。A ( I ) ∈ F ( I ) \mathcal A(I)\in F(I) A ( I ) ∈ F ( I ) であるから、最適値が最小値であることによりO P T ( I ) ≤ c o s t I ( A ( I ) ) \mathrm{OPT}(I)\le\mathrm{cost}_I\bigl(\mathcal A(I)\bigr) OPT ( I ) ≤ cost I ( A ( I ) ) である。近似比の定義とあわせて
O P T ( I ) ≤ c o s t I ( A ( I ) ) ≤ ρ O P T ( I ) \mathrm{OPT}(I)\ \le\ \mathrm{cost}_I\bigl(\mathcal A(I)\bigr)\ \le\ \rho\,\mathrm{OPT}(I) OPT ( I ) ≤ cost I ( A ( I ) ) ≤ ρ OPT ( I ) を得る。両端をO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 で割ると1 ≤ ρ 1\le\rho 1 ≤ ρ である。▨
最大化問題では不等号の向きが逆になり、近似比は1 1 1 以下の向きで測る。本記事は最小化問題だけを扱うので、以下のρ \rho ρ はつねに1 1 1 以上である。
2 極大なマッチングによる頂点被覆
定義 2.1. 有限単純無向グラフG = ( V , E ) G=(V,E) G = ( V , E ) について、頂点集合C ⊆ V C\subseteq V C ⊆ V が 頂点被覆 (vertex cover ) であるとは、E E E のすべての辺が少なくとも一方の端点をC C C にもつことをいう。頂点数が最小である頂点被覆の頂点数をτ ( G ) \tau(G) τ ( G ) と書く。ここでの最小は頂点数についての最小であり、包含に関する極小とは異なる。
G G G をインスタンスとし、F ( G ) F(G) F ( G ) をG G G の頂点被覆全体、c o s t G ( C ) = ∣ C ∣ \mathrm{cost}_G(C)=\lvert C\rvert cost G ( C ) = ∣ C ∣ と定めると、これは定義 1.1 の意味の有限最小化問題である。実際、V V V 自身は頂点被覆であるからF ( G ) F(G) F ( G ) は空でなく、V V V の部分集合は有限個であるからF ( G ) F(G) F ( G ) は有限集合である。この問題を最小頂点被覆問題 (minimum vertex cover problem ) といい、O P T ( G ) = τ ( G ) \mathrm{OPT}(G)=\tau(G) OPT ( G ) = τ ( G ) である。
二部グラフに限れば、この頂点被覆は§E13.13 定義 2.1 の頂点被覆と同じものである。本記事は二部性を仮定しない。
定義 2.2. 有限単純無向グラフG = ( V , E ) G=(V,E) G = ( V , E ) について、マッチングの定義は§D2.12 定義 1.1 に従う。すなわち辺集合M ⊆ E M\subseteq E M ⊆ E がマッチング (matching ) であるとは、M M M の相異なる二辺が端点を共有しないことをいう。
マッチングM M M が 極大 (maximal matching ) であるとは、M ⊊ M ′ M\subsetneq M' M ⊊ M ′ を満たすマッチングM ′ M' M ′ が存在しないことをいう。マッチングM M M が最大 (maximum matching ) であるとは、辺数∣ M ∣ \lvert M\rvert ∣ M ∣ がG G G のマッチングの中で最大であることをいい、その辺数をν ( G ) \nu(G) ν ( G ) と書く。
命題 2.4. 有限単純無向グラフG = ( V , E ) G=(V,E) G = ( V , E ) について、M = ∅ M=\emptyset M = ∅ から出発し、M ∪ { e } M\cup\{e\} M ∪ { e } がマッチングとなる辺e ∈ E ∖ M e\in E\setminus M e ∈ E ∖ M が存在するかぎり、そのようなe e e を一つ選んでM M M へ加える手続きを考える。この手続きは高々m m m 回の反復で停止し、停止時のM M M はG G G の極大なマッチングである。
証明. ループ不変条件(§D2.8 定義 1.1 )として「M M M はG G G のマッチングでありM ⊆ E M\subseteq E M ⊆ E である」をとる。初期化ではM = ∅ M=\emptyset M = ∅ がマッチングであるから成り立つ。維持については、本体はM ∪ { e } M\cup\{e\} M ∪ { e } がマッチングである場合にだけe e e を加えるので、実行後もM M M はマッチングである。
停止性を示す。φ = m − ∣ M ∣ \varphi=m-\lvert M\rvert φ = m − ∣ M ∣ と置く。不変条件によりM ⊆ E M\subseteq E M ⊆ E であるから∣ M ∣ ≤ m \lvert M\rvert\le m ∣ M ∣ ≤ m であり、φ \varphi φ は非負整数である。本体を一度実行すると∣ M ∣ \lvert M\rvert ∣ M ∣ が1 1 1 増えるのでφ \varphi φ は狭義に減少する。§D2.8 命題 1.4 により手続きは有限回で停止し、φ \varphi φ の初期値がm m m であるから反復回数はm m m 以下である。
終了を確かめる。停止時にはループの継続条件が偽であり、M ∪ { e } M\cup\{e\} M ∪ { e } がマッチングとなる辺e ∈ E ∖ M e\in E\setminus M e ∈ E ∖ M は存在しない。ここでM ⊊ M ′ M\subsetneq M' M ⊊ M ′ を満たすマッチングM ′ M' M ′ が存在すると仮定し、e ∈ M ′ ∖ M e\in M'\setminus M e ∈ M ′ ∖ M をとる。M ∪ { e } ⊆ M ′ M\cup\{e\}\subseteq M' M ∪ { e } ⊆ M ′ であり、マッチングの部分集合はマッチングである(部分集合の相異なる二辺はもとの集合の相異なる二辺でもあるから端点を共有しない)ので、M ∪ { e } M\cup\{e\} M ∪ { e } はマッチングでありe ∈ E ∖ M e\in E\setminus M e ∈ E ∖ M である。これは継続条件が偽であることに反する。よって停止時のM M M は極大なマッチングである。この形の議論が正当性を与えることは§D2.8 定理 1.2 による。▨
最適値の下界を与えるのが次の補題である。この補題は極大性を仮定せず、どのマッチングについても成り立つ。
補題 2.5. 有限単純無向グラフG G G のマッチングM M M と頂点被覆C C C に対し∣ M ∣ ≤ ∣ C ∣ \lvert M\rvert\le\lvert C\rvert ∣ M ∣ ≤ ∣ C ∣ が成り立つ。とくに∣ M ∣ ≤ τ ( G ) \lvert M\rvert\le\tau(G) ∣ M ∣ ≤ τ ( G ) である。
証明. C C C は頂点被覆であるから、M M M の各辺e e e は少なくとも一方の端点をC C C にもつ。M M M は有限集合であるから、各e ∈ M e\in M e ∈ M についてC C C に属する端点を一つ選び、それをψ ( e ) \psi(e) ψ ( e ) と書く。これにより写像ψ : M → C \psi:M\to C ψ : M → C が定まる。
ψ \psi ψ が単射であることを示す。e , e ′ ∈ M e,e'\in M e , e ′ ∈ M がe ≠ e ′ e\ne e' e = e ′ かつψ ( e ) = ψ ( e ′ ) \psi(e)=\psi(e') ψ ( e ) = ψ ( e ′ ) を満たすと仮定する。ψ ( e ) \psi(e) ψ ( e ) はe e e の端点であり、ψ ( e ′ ) \psi(e') ψ ( e ′ ) はe ′ e' e ′ の端点であるから、e e e とe ′ e' e ′ は頂点ψ ( e ) \psi(e) ψ ( e ) を共有する。これはM M M がマッチングであることに反する。よってψ \psi ψ は単射であり∣ M ∣ ≤ ∣ C ∣ \lvert M\rvert\le\lvert C\rvert ∣ M ∣ ≤ ∣ C ∣ である。
C C C を頂点数が最小の頂点被覆にとると∣ C ∣ = τ ( G ) \lvert C\rvert=\tau(G) ∣ C ∣ = τ ( G ) であるから∣ M ∣ ≤ τ ( G ) \lvert M\rvert\le\tau(G) ∣ M ∣ ≤ τ ( G ) を得る。▨
補題 2.6. M M M を有限単純無向グラフG = ( V , E ) G=(V,E) G = ( V , E ) の極大なマッチングとし、M M M の辺の端点全体を
C ( M ) = { v ∈ V : v は M のある辺の端点である } C(M)=\{v\in V:\ v\ \text{は}\ M\ \text{のある辺の端点である}\} C ( M ) = { v ∈ V : v は M のある辺の端点である } と置く。このときC ( M ) C(M) C ( M ) はG G G の頂点被覆であり、∣ C ( M ) ∣ = 2 ∣ M ∣ \lvert C(M)\rvert=2\lvert M\rvert ∣ C ( M )∣ = 2 ∣ M ∣ が成り立つ。
証明. 頂点被覆であること 。辺e = u v ∈ E e=uv\in E e = uv ∈ E をとり、u ∉ C ( M ) u\notin C(M) u ∈ / C ( M ) かつv ∉ C ( M ) v\notin C(M) v ∈ / C ( M ) であると仮定する。C ( M ) C(M) C ( M ) の定め方により、M M M のどの辺もu u u を端点にもたず、v v v も端点にもたない。したがってe e e はM M M のどの辺とも端点を共有しない。とくにe ∉ M e\notin M e ∈ / M である(e ∈ M e\in M e ∈ M ならばu ∈ C ( M ) u\in C(M) u ∈ C ( M ) となる)。
M ∪ { e } M\cup\{e\} M ∪ { e } がマッチングであることを確かめる。M ∪ { e } M\cup\{e\} M ∪ { e } の相異なる二辺f , f ′ f,f' f , f ′ をとる。ともにM M M に属するならば、M M M がマッチングであることから端点を共有しない。一方がe e e で他方がM M M の辺ならば、上に述べたとおり端点を共有しない。よってM ∪ { e } M\cup\{e\} M ∪ { e } はマッチングであり、e ∉ M e\notin M e ∈ / M よりM ⊊ M ∪ { e } M\subsetneq M\cup\{e\} M ⊊ M ∪ { e } である。これはM M M の極大性に反する。
したがってE E E のすべての辺は少なくとも一方の端点をC ( M ) C(M) C ( M ) にもち、C ( M ) C(M) C ( M ) は頂点被覆である。
頂点数 。各辺e ∈ M e\in M e ∈ M に対し、その端点の集合をι ( e ) \iota(e) ι ( e ) と書く。G G G は単純でありループをもたないので∣ ι ( e ) ∣ = 2 \lvert\iota(e)\rvert=2 ∣ ι ( e )∣ = 2 である。C ( M ) = ⋃ e ∈ M ι ( e ) C(M)=\bigcup_{e\in M}\iota(e) C ( M ) = ⋃ e ∈ M ι ( e ) である。M M M の相異なる二辺は端点を共有しないので、e ≠ e ′ e\ne e' e = e ′ ならばι ( e ) ∩ ι ( e ′ ) = ∅ \iota(e)\cap\iota(e')=\emptyset ι ( e ) ∩ ι ( e ′ ) = ∅ である。よってこの合併は互いに交わらない集合の合併であり、和の法則(§D2.2 定理 2.1 )により
∣ C ( M ) ∣ = ∑ e ∈ M ∣ ι ( e ) ∣ = ∑ e ∈ M 2 = 2 ∣ M ∣ \lvert C(M)\rvert=\sum_{e\in M}\lvert\iota(e)\rvert=\sum_{e\in M}2=2\lvert M\rvert ∣ C ( M )∣ = e ∈ M ∑ ∣ ι ( e )∣ = e ∈ M ∑ 2 = 2 ∣ M ∣ である。▨
2.1 証明方針
主定理は二つの主張の組み合わせである。第一は、極大なマッチングM M M の端点集合C ( M ) C(M) C ( M ) が頂点被覆であることであり、これは補題 2.6 が与える。証明の要点は、両端点がC ( M ) C(M) C ( M ) の外にある辺があれば、その辺をM M M へ加えてもマッチングのままであり、極大性に反するという一手である。
第二は、∣ C ( M ) ∣ \lvert C(M)\rvert ∣ C ( M )∣ がτ ( G ) \tau(G) τ ( G ) の2 2 2 倍以下であることである。∣ C ( M ) ∣ = 2 ∣ M ∣ \lvert C(M)\rvert=2\lvert M\rvert ∣ C ( M )∣ = 2 ∣ M ∣ であるから、示すべきことは∣ M ∣ ≤ τ ( G ) \lvert M\rvert\le\tau(G) ∣ M ∣ ≤ τ ( G ) である。ここで用いるのが補題 2.5 であり、その一手は「M M M の辺は互いに端点を共有しないので、どの頂点被覆もそれらの辺の各々から少なくとも一つの頂点を含み、しかも相異なる辺には相異なる頂点が対応する」という単射の構成である。この一手を省くと、M M M の辺数と頂点被覆の頂点数を比べる根拠が無くなる。
二つを合わせると、最適値そのものを知らないまま∣ C ( M ) ∣ ≤ 2 τ ( G ) \lvert C(M)\rvert\le2\tau(G) ∣ C ( M )∣ ≤ 2 τ ( G ) が従う。
定理 2.7. G = ( V , E ) G=(V,E) G = ( V , E ) を有限単純無向グラフとし、M M M をG G G の極大なマッチングとする。このときC ( M ) C(M) C ( M ) はG G G の頂点被覆であり
∣ C ( M ) ∣ = 2 ∣ M ∣ ≤ 2 τ ( G ) \lvert C(M)\rvert=2\lvert M\rvert\ \le\ 2\tau(G) ∣ C ( M )∣ = 2 ∣ M ∣ ≤ 2 τ ( G ) が成り立つ。
証明. 補題 2.6 によりC ( M ) C(M) C ( M ) は頂点被覆であり∣ C ( M ) ∣ = 2 ∣ M ∣ \lvert C(M)\rvert=2\lvert M\rvert ∣ C ( M )∣ = 2 ∣ M ∣ である。
M M M はマッチングであるから、補題 2.5 により∣ M ∣ ≤ τ ( G ) \lvert M\rvert\le\tau(G) ∣ M ∣ ≤ τ ( G ) である。両辺を2 2 2 倍して2 ∣ M ∣ ≤ 2 τ ( G ) 2\lvert M\rvert\le2\tau(G) 2 ∣ M ∣ ≤ 2 τ ( G ) を得る。二つを合わせて主張が従う。▨
系 2.8. 命題 2.4 の手続きにおいて、各反復でM M M へ加える辺の選び方を一つ固定する。この選び方をどのように定めても、その手続きによって極大なマッチングM M M を求め、C ( M ) C(M) C ( M ) を出力するアルゴリズムは、最小頂点被覆問題に対する2 2 2 -近似アルゴリズムである。
証明. 命題 2.4 の停止性と極大性の証明は、加えることのできる辺が複数あるときにどれを選ぶかに依存しない。よって選び方をどのように固定しても手続きは停止し、出力されるM M M は極大なマッチングである。定理 2.7 によりC ( M ) C(M) C ( M ) は頂点被覆、すなわち定義 2.1 の意味の実行可能解であり、
c o s t G ( C ( M ) ) = ∣ C ( M ) ∣ ≤ 2 τ ( G ) = 2 O P T ( G ) \mathrm{cost}_G\bigl(C(M)\bigr)=\lvert C(M)\rvert\le2\tau(G)=2\,\mathrm{OPT}(G) cost G ( C ( M ) ) = ∣ C ( M )∣ ≤ 2 τ ( G ) = 2 OPT ( G ) が成り立つ。これは定義 1.2 の意味でρ = 2 \rho=2 ρ = 2 の場合の条件である。▨
例 2.9 (頂点被覆の 2 近似の手計算). V = { v 1 , v 2 , v 3 , v 4 } V=\{v_1,v_2,v_3,v_4\} V = { v 1 , v 2 , v 3 , v 4 } 、E = { v 1 v 2 , v 2 v 3 , v 3 v 4 } E=\{v_1v_2,\ v_2v_3,\ v_3v_4\} E = { v 1 v 2 , v 2 v 3 , v 3 v 4 } とする。n = 4 n=4 n = 4 、m = 3 m=3 m = 3 である。
最適値 。C = { v 2 , v 3 } C=\{v_2,v_3\} C = { v 2 , v 3 } は頂点被覆である。実際、v 1 v 2 v_1v_2 v 1 v 2 はv 2 v_2 v 2 を、v 2 v 3 v_2v_3 v 2 v 3 はv 2 v_2 v 2 を、v 3 v 4 v_3v_4 v 3 v 4 はv 3 v_3 v 3 を含む。よってτ ( G ) ≤ 2 \tau(G)\le2 τ ( G ) ≤ 2 である。頂点数1 1 1 の頂点被覆は存在しない。v 1 v 2 v_1v_2 v 1 v 2 とv 3 v 4 v_3v_4 v 3 v 4 は端点を共有しないので、一つの頂点で両方を覆うことはできないからである。よってτ ( G ) = 2 \tau(G)=2 τ ( G ) = 2 である。
第一の極大なマッチング 。M 1 = { v 2 v 3 } M_1=\{v_2v_3\} M 1 = { v 2 v 3 } をとる。v 1 v 2 v_1v_2 v 1 v 2 はv 2 v_2 v 2 を、v 3 v 4 v_3v_4 v 3 v 4 はv 3 v_3 v 3 をM 1 M_1 M 1 の辺と共有するので、どちらを加えてもマッチングでなくなる。よってM 1 M_1 M 1 は極大である。C ( M 1 ) = { v 2 , v 3 } C(M_1)=\{v_2,v_3\} C ( M 1 ) = { v 2 , v 3 } であり∣ C ( M 1 ) ∣ = 2 = 2 ∣ M 1 ∣ \lvert C(M_1)\rvert=2=2\lvert M_1\rvert ∣ C ( M 1 )∣ = 2 = 2 ∣ M 1 ∣ である。この頂点被覆は最小であり、費用の比は2 / 2 = 1 2/2=1 2/2 = 1 である。
第二の極大なマッチング 。M 2 = { v 1 v 2 , v 3 v 4 } M_2=\{v_1v_2,\ v_3v_4\} M 2 = { v 1 v 2 , v 3 v 4 } をとる。二辺は端点を共有しないのでマッチングであり、残る辺v 2 v 3 v_2v_3 v 2 v 3 はv 2 v_2 v 2 とv 3 v_3 v 3 の双方を共有するので加えることができない。よってM 2 M_2 M 2 は極大である。C ( M 2 ) = { v 1 , v 2 , v 3 , v 4 } C(M_2)=\{v_1,v_2,v_3,v_4\} C ( M 2 ) = { v 1 , v 2 , v 3 , v 4 } であり∣ C ( M 2 ) ∣ = 4 = 2 ∣ M 2 ∣ \lvert C(M_2)\rvert=4=2\lvert M_2\rvert ∣ C ( M 2 )∣ = 4 = 2 ∣ M 2 ∣ である。費用の比は4 / 2 = 2 4/2=2 4/2 = 2 であり、定理 2.7 の上界がちょうど達成される。
下界の照合 。∣ M 1 ∣ = 1 ≤ 2 = τ ( G ) \lvert M_1\rvert=1\le2=\tau(G) ∣ M 1 ∣ = 1 ≤ 2 = τ ( G ) かつ∣ M 2 ∣ = 2 ≤ 2 = τ ( G ) \lvert M_2\rvert=2\le2=\tau(G) ∣ M 2 ∣ = 2 ≤ 2 = τ ( G ) であり、補題 2.5 と整合する。またM 2 M_2 M 2 は最大マッチングでありν ( G ) = 2 \nu(G)=2 ν ( G ) = 2 である。辺数3 3 3 のマッチングは、相異なる6 6 6 個の頂点を要するのでn = 4 n=4 n = 4 のこのグラフには存在しない。
三角形での照合 。V ′ = { u 1 , u 2 , u 3 } V'=\{u_1,u_2,u_3\} V ′ = { u 1 , u 2 , u 3 } とし、u 1 u 2 u_1u_2 u 1 u 2 、u 1 u 3 u_1u_3 u 1 u 3 、u 2 u 3 u_2u_3 u 2 u 3 の三辺をもつグラフを考える。M = { u 1 u 2 } M=\{u_1u_2\} M = { u 1 u 2 } は極大である。u 1 u 3 u_1u_3 u 1 u 3 はu 1 u_1 u 1 を、u 2 u 3 u_2u_3 u 2 u 3 はu 2 u_2 u 2 を共有するからである。C ( M ) = { u 1 , u 2 } C(M)=\{u_1,u_2\} C ( M ) = { u 1 , u 2 } であり∣ C ( M ) ∣ = 2 \lvert C(M)\rvert=2 ∣ C ( M )∣ = 2 である。一方τ = 2 \tau=2 τ = 2 である。一つの頂点は三辺のうち二辺しか覆わないのでτ ≥ 2 \tau\ge2 τ ≥ 2 であり、{ u 1 , u 2 } \{u_1,u_2\} { u 1 , u 2 } が頂点被覆であるからτ ≤ 2 \tau\le2 τ ≤ 2 だからである。よってこの場合の費用の比は1 1 1 である。
出力される頂点被覆は、選ぶ極大なマッチングによって変わる。上の第一と第二の例が示すとおり、辺数の小さい極大なマッチングのほうがよい頂点被覆を与えることがある。定理 2.7 は、どの極大なマッチングを選んでも比が2 2 2 を超えないことを保証する。
3 貪欲な集合被覆
定義 3.1. 正の整数k k k に対し
H k = ∑ i = 1 k 1 i H_k=\sum_{i=1}^{k}\frac1i H k = i = 1 ∑ k i 1 と定め、H k H_k H k を第k k k 調和数 (harmonic number ) という。またH 0 = 0 H_0=0 H 0 = 0 と定める。
定義 3.2. 空でない有限集合U U U 、有限添字集合J J J 、U U U の部分集合の族( S j ) j ∈ J (S_j)_{j\in J} ( S j ) j ∈ J 、および正の実数の族( w j ) j ∈ J (w_j)_{j\in J} ( w j ) j ∈ J が
⋃ j ∈ J S j = U \bigcup_{j\in J}S_j=U j ∈ J ⋃ S j = U を満たすとする。U U U を台集合 (universe ) 、U U U の要素を要素 (element ) 、w j w_j w j をS j S_j S j の費用 (cost ) という。
添字の部分集合C ⊆ J \mathcal C\subseteq J C ⊆ J が被覆 (cover ) であるとは⋃ j ∈ C S j = U \bigcup_{j\in\mathcal C}S_j=U ⋃ j ∈ C S j = U が成り立つことをいい、その費用をw ( C ) = ∑ j ∈ C w j w(\mathcal C)=\sum_{j\in\mathcal C}w_j w ( C ) = ∑ j ∈ C w j と定める。四つ組I = ( U , J , ( S j ) , ( w j ) ) I=\bigl(U,J,(S_j),(w_j)\bigr) I = ( U , J , ( S j ) , ( w j ) ) をインスタンスとし、F ( I ) F(I) F ( I ) を被覆全体、c o s t I ( C ) = w ( C ) \mathrm{cost}_I(\mathcal C)=w(\mathcal C) cost I ( C ) = w ( C ) と定めると、これは定義 1.1 の意味の有限最小化問題である。実際、J J J 自身は被覆であるからF ( I ) F(I) F ( I ) は空でなく、J J J の部分集合は有限個であるからF ( I ) F(I) F ( I ) は有限集合である。この問題を重み付き集合被覆問題 (weighted set cover problem ) という。
定義 3.3. 重み付き集合被覆問題のインスタンスI = ( U , J , ( S j ) , ( w j ) ) I=\bigl(U,J,(S_j),(w_j)\bigr) I = ( U , J , ( S j ) , ( w j ) ) に対し、次の手続きを考える。R ← U R\leftarrow U R ← U およびC ← ∅ \mathcal C\leftarrow\emptyset C ← ∅ とする。R ≠ ∅ R\ne\emptyset R = ∅ であるかぎり次を繰り返す。
S j ∩ R ≠ ∅ S_j\cap R\ne\emptyset S j ∩ R = ∅ を満たすj ∈ J j\in J j ∈ J のうち、比
w j ∣ S j ∩ R ∣ \frac{w_j}{\lvert S_j\cap R\rvert} ∣ S j ∩ R ∣ w j を最小にするものを一つ選び、それをj ∗ j^{*} j ∗ とする。j ∗ j^{*} j ∗ をC \mathcal C C へ加え、S j ∗ ∩ R S_{j^{*}}\cap R S j ∗ ∩ R の各要素e e e に対し課金額 (price ) を
p r i c e ( e ) = w j ∗ ∣ S j ∗ ∩ R ∣ \mathrm{price}(e)=\frac{w_{j^{*}}}{\lvert S_{j^{*}}\cap R\rvert} price ( e ) = ∣ S j ∗ ∩ R ∣ w j ∗ と定める。その後R ← R ∖ S j ∗ R\leftarrow R\setminus S_{j^{*}} R ← R ∖ S j ∗ とする。R = ∅ R=\emptyset R = ∅ になったところでC \mathcal C C を出力する。
すなわち、選んだ集合の費用を、その集合が新しく覆う要素へ等しく分けて課金する。
命題 3.4. 定義 3.3 の手続きについて次が成り立つ。
R ≠ ∅ R\ne\emptyset R = ∅ である各反復において、選ぶことのできる添字j j j が存在する。
手続きは高々∣ U ∣ \lvert U\rvert ∣ U ∣ 回の反復で停止する。
停止時のC \mathcal C C は被覆である。
各要素e ∈ U e\in U e ∈ U について、p r i c e ( e ) \mathrm{price}(e) price ( e ) はちょうど一度だけ定まる。
停止時のC \mathcal C C についてw ( C ) = ∑ e ∈ U p r i c e ( e ) w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e) w ( C ) = ∑ e ∈ U price ( e ) が成り立つ。
証明. (1) を示す。R ≠ ∅ R\ne\emptyset R = ∅ としe ∈ R e\in R e ∈ R をとる。R ⊆ U = ⋃ j ∈ J S j R\subseteq U=\bigcup_{j\in J}S_j R ⊆ U = ⋃ j ∈ J S j であるからe ∈ S j e\in S_j e ∈ S j を満たすj ∈ J j\in J j ∈ J が存在し、そのj j j についてS j ∩ R ≠ ∅ S_j\cap R\ne\emptyset S j ∩ R = ∅ である。よって候補となる添字の集合は空でない。J J J は有限集合であるから、その中で比を最小にする添字が存在する。
(2) を示す。ループの状態に対して変量∣ R ∣ \lvert R\rvert ∣ R ∣ をとる。これは非負整数である。選んだj ∗ j^{*} j ∗ についてS j ∗ ∩ R ≠ ∅ S_{j^{*}}\cap R\ne\emptyset S j ∗ ∩ R = ∅ であるから、R ∖ S j ∗ R\setminus S_{j^{*}} R ∖ S j ∗ はR R R の真部分集合であり∣ R ∣ \lvert R\rvert ∣ R ∣ は狭義に減少する。§D2.8 命題 1.4 により手続きは有限回で停止し、∣ R ∣ \lvert R\rvert ∣ R ∣ の初期値が∣ U ∣ \lvert U\rvert ∣ U ∣ であるから反復回数は∣ U ∣ \lvert U\rvert ∣ U ∣ 以下である。
(3) を示す。ループ不変条件(§D2.8 定義 1.1 )として「R ⊆ U R\subseteq U R ⊆ U かつU ∖ R = ⋃ j ∈ C S j U\setminus R=\bigcup_{j\in\mathcal C}S_j U ∖ R = ⋃ j ∈ C S j 」をとる。初期化ではR = U R=U R = U かつC = ∅ \mathcal C=\emptyset C = ∅ であり、両辺とも空集合である。維持については、j ∗ j^{*} j ∗ を加えた後のC ′ = C ∪ { j ∗ } \mathcal C'=\mathcal C\cup\{j^{*}\} C ′ = C ∪ { j ∗ } とR ′ = R ∖ S j ∗ R'=R\setminus S_{j^{*}} R ′ = R ∖ S j ∗ に対し、S j ∗ ⊆ U S_{j^{*}}\subseteq U S j ∗ ⊆ U であることから
U ∖ R ′ = U ∖ ( R ∖ S j ∗ ) = ( U ∖ R ) ∪ ( U ∩ S j ∗ ) = ( U ∖ R ) ∪ S j ∗ = ( ⋃ j ∈ C S j ) ∪ S j ∗ = ⋃ j ∈ C ′ S j U\setminus R'=U\setminus(R\setminus S_{j^{*}})=(U\setminus R)\cup(U\cap S_{j^{*}})=(U\setminus R)\cup S_{j^{*}}
=\Bigl(\bigcup_{j\in\mathcal C}S_j\Bigr)\cup S_{j^{*}}=\bigcup_{j\in\mathcal C'}S_j U ∖ R ′ = U ∖ ( R ∖ S j ∗ ) = ( U ∖ R ) ∪ ( U ∩ S j ∗ ) = ( U ∖ R ) ∪ S j ∗ = ( j ∈ C ⋃ S j ) ∪ S j ∗ = j ∈ C ′ ⋃ S j であり、不変条件が保たれる。停止時には継続条件が偽でありR = ∅ R=\emptyset R = ∅ であるから、不変条件よりU = ⋃ j ∈ C S j U=\bigcup_{j\in\mathcal C}S_j U = ⋃ j ∈ C S j 、すなわちC \mathcal C C は被覆である。この形の議論が正当性を与えることは§D2.8 定理 1.2 による。
(4) を示す。ある反復で課金される要素はS j ∗ ∩ R S_{j^{*}}\cap R S j ∗ ∩ R の要素であり、その反復の終わりにR R R から取り除かれる。R R R は反復のたびに減るだけであるから、一度取り除かれた要素は以後の反復のR R R に属さず、再び課金されることはない。また 3 の停止時の条件R = ∅ R=\emptyset R = ∅ と不変条件により、すべての要素はいずれかの反復でR R R から取り除かれ、そのとき課金される。よって各要素はちょうど一度課金される。
(5) を示す。まず、各反復で選ばれる添字は互いに相異なる。ある反復でj ∗ j^{*} j ∗ が選ばれると、その反復の終わりにR R R からS j ∗ S_{j^{*}} S j ∗ が取り除かれてS j ∗ ∩ R = ∅ S_{j^{*}}\cap R=\emptyset S j ∗ ∩ R = ∅ となり、R R R は以後も減るだけであるから、j ∗ j^{*} j ∗ が再び候補になることはないからである。したがって反復の回数は∣ C ∣ \lvert\mathcal C\rvert ∣ C ∣ に等しく、
w ( C ) = ∑ j ∈ C w j = ∑ 反復 w j ∗ w(\mathcal C)=\sum_{j\in\mathcal C}w_j=\sum_{\text{反復}}w_{j^{*}} w ( C ) = j ∈ C ∑ w j = 反復 ∑ w j ∗ である。各反復について、その反復で課金される要素の個数は∣ S j ∗ ∩ R ∣ \lvert S_{j^{*}}\cap R\rvert ∣ S j ∗ ∩ R ∣ であり、各要素への課金額はw j ∗ / ∣ S j ∗ ∩ R ∣ w_{j^{*}}/\lvert S_{j^{*}}\cap R\rvert w j ∗ / ∣ S j ∗ ∩ R ∣ であるから、その反復で課金された額の総和は
∣ S j ∗ ∩ R ∣ ⋅ w j ∗ ∣ S j ∗ ∩ R ∣ = w j ∗ \lvert S_{j^{*}}\cap R\rvert\cdot\frac{w_{j^{*}}}{\lvert S_{j^{*}}\cap R\rvert}=w_{j^{*}} ∣ S j ∗ ∩ R ∣ ⋅ ∣ S j ∗ ∩ R ∣ w j ∗ = w j ∗ である。反復について加え、4 により各要素がちょうど一度課金されることを用いるとw ( C ) = ∑ e ∈ U p r i c e ( e ) w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e) w ( C ) = ∑ e ∈ U price ( e ) を得る。▨
3.1 証明方針
近似保証は、(5) によって総費用を要素への課金額の総和へ書き換え、各課金額を個別に評価することによって得られる。
要素を課金された順にe 1 , … , e k e_1,\dots,e_k e 1 , … , e k (k = ∣ U ∣ k=\lvert U\rvert k = ∣ U ∣ )と並べる。e l e_l e l が課金される反復の開始時に残っている集合をR l R_l R l と書くと、e l , e l + 1 , … , e k e_l,e_{l+1},\dots,e_k e l , e l + 1 , … , e k はまだ課金されていないのでR l R_l R l に属し、∣ R l ∣ ≥ k − l + 1 \lvert R_l\rvert\ge k-l+1 ∣ R l ∣ ≥ k − l + 1 である。
次に、R l R_l R l をどう覆っても最適値以上の費用はかからない、という事実を用いる。最適な被覆O \mathcal O O をとると、O \mathcal O O はR l R_l R l も覆うので、O \mathcal O O の集合の中に「費用を新しく覆う要素の個数で割った比」がO P T ( I ) / ∣ R l ∣ \mathrm{OPT}(I)/\lvert R_l\rvert OPT ( I ) / ∣ R l ∣ 以下であるものが存在する。存在しないと仮定して費用を加えると、O \mathcal O O の総費用がO P T ( I ) \mathrm{OPT}(I) OPT ( I ) を超えるという矛盾が生じるからである。手続きはその比を最小にする添字を選ぶので、e l e_l e l への課金額はこの値以下である。
最後に∣ R l ∣ ≥ k − l + 1 \lvert R_l\rvert\ge k-l+1 ∣ R l ∣ ≥ k − l + 1 を代入して和をとると、係数が調和数になる。
補題 3.5. 重み付き集合被覆問題のインスタンスI = ( U , J , ( S j ) , ( w j ) ) I=\bigl(U,J,(S_j),(w_j)\bigr) I = ( U , J , ( S j ) , ( w j ) ) に対しk = ∣ U ∣ k=\lvert U\rvert k = ∣ U ∣ と置く。定義 3.3 の手続きで課金された順にU U U の要素をe 1 , e 2 , … , e k e_1,e_2,\dots,e_k e 1 , e 2 , … , e k と並べる(同じ反復で課金された要素どうしの順序は任意に定める)。このとき各1 ≤ l ≤ k 1\le l\le k 1 ≤ l ≤ k について
p r i c e ( e l ) ≤ O P T ( I ) k − l + 1 \mathrm{price}(e_l)\ \le\ \frac{\mathrm{OPT}(I)}{k-l+1} price ( e l ) ≤ k − l + 1 OPT ( I ) が成り立つ。
証明. はじめにO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 を確かめる。U U U は空でないので、どの被覆C \mathcal C C も空でなく、w j > 0 w_j>0 w j > 0 よりw ( C ) > 0 w(\mathcal C)>0 w ( C ) > 0 である。よって最適値も正である。
1 ≤ l ≤ k 1\le l\le k 1 ≤ l ≤ k を固定し、e l e_l e l が課金された反復の開始時におけるR R R の値をR l R_l R l と書く。
∣ R l ∣ ≥ k − l + 1 \lvert R_l\rvert\ge k-l+1 ∣ R l ∣ ≥ k − l + 1 であること 。l ≤ l ′ ≤ k l\le l'\le k l ≤ l ′ ≤ k をとる。命題 3.4 (4) により各要素はちょうど一度課金され、e l ′ e_{l'} e l ′ が課金されるのはe l e_l e l が課金される反復と同じか、それより後の反復である。同じ反復ならばe l ′ ∈ S j ∗ ∩ R l ⊆ R l e_{l'}\in S_{j^{*}}\cap R_l\subseteq R_l e l ′ ∈ S j ∗ ∩ R l ⊆ R l である。より後の反復ならば、その反復の開始時のR R R に属し、R R R は反復のたびに減るだけであるからe l ′ ∈ R l e_{l'}\in R_l e l ′ ∈ R l である。e l , e l + 1 , … , e k e_l,e_{l+1},\dots,e_k e l , e l + 1 , … , e k は相異なるk − l + 1 k-l+1 k − l + 1 個の要素であるから∣ R l ∣ ≥ k − l + 1 \lvert R_l\rvert\ge k-l+1 ∣ R l ∣ ≥ k − l + 1 である。
比の小さい集合が最適な被覆の中に存在すること 。O ⊆ J \mathcal O\subseteq J O ⊆ J をw ( O ) = O P T ( I ) w(\mathcal O)=\mathrm{OPT}(I) w ( O ) = OPT ( I ) を満たす被覆とし、
O l = { j ∈ O : S j ∩ R l ≠ ∅ } \mathcal O_l=\{j\in\mathcal O:\ S_j\cap R_l\ne\emptyset\} O l = { j ∈ O : S j ∩ R l = ∅ } と置く。O \mathcal O O はU U U を覆いR l ⊆ U R_l\subseteq U R l ⊆ U であるから、R l R_l R l の各要素は少なくとも一つのj ∈ O j\in\mathcal O j ∈ O についてS j ∩ R l S_j\cap R_l S j ∩ R l に属する。したがって
∑ j ∈ O ∣ S j ∩ R l ∣ ≥ ∣ R l ∣ \sum_{j\in\mathcal O}\lvert S_j\cap R_l\rvert\ \ge\ \lvert R_l\rvert j ∈ O ∑ ∣ S j ∩ R l ∣ ≥ ∣ R l ∣ が成り立つ。左辺はR l R_l R l の各要素を少なくとも一度数えているからである。R l ≠ ∅ R_l\ne\emptyset R l = ∅ であるから、この不等式よりO l ≠ ∅ \mathcal O_l\ne\emptyset O l = ∅ である。
すべてのj ∈ O l j\in\mathcal O_l j ∈ O l について
w j ∣ S j ∩ R l ∣ > O P T ( I ) ∣ R l ∣ \frac{w_j}{\lvert S_j\cap R_l\rvert}>\frac{\mathrm{OPT}(I)}{\lvert R_l\rvert} ∣ S j ∩ R l ∣ w j > ∣ R l ∣ OPT ( I ) が成り立つと仮定する。両辺に∣ S j ∩ R l ∣ > 0 \lvert S_j\cap R_l\rvert>0 ∣ S j ∩ R l ∣ > 0 を掛けるとw j > O P T ( I ) ∣ R l ∣ ∣ S j ∩ R l ∣ w_j>\dfrac{\mathrm{OPT}(I)}{\lvert R_l\rvert}\lvert S_j\cap R_l\rvert w j > ∣ R l ∣ OPT ( I ) ∣ S j ∩ R l ∣ である。j ∈ O l j\in\mathcal O_l j ∈ O l について加え、j ∈ O ∖ O l j\in\mathcal O\setminus\mathcal O_l j ∈ O ∖ O l については∣ S j ∩ R l ∣ = 0 \lvert S_j\cap R_l\rvert=0 ∣ S j ∩ R l ∣ = 0 かつw j > 0 w_j>0 w j > 0 であることを用いると
O P T ( I ) = ∑ j ∈ O w j ≥ ∑ j ∈ O l w j > O P T ( I ) ∣ R l ∣ ∑ j ∈ O l ∣ S j ∩ R l ∣ = O P T ( I ) ∣ R l ∣ ∑ j ∈ O ∣ S j ∩ R l ∣ ≥ O P T ( I ) \mathrm{OPT}(I)=\sum_{j\in\mathcal O}w_j\ \ge\ \sum_{j\in\mathcal O_l}w_j
\ >\ \frac{\mathrm{OPT}(I)}{\lvert R_l\rvert}\sum_{j\in\mathcal O_l}\lvert S_j\cap R_l\rvert
=\frac{\mathrm{OPT}(I)}{\lvert R_l\rvert}\sum_{j\in\mathcal O}\lvert S_j\cap R_l\rvert
\ \ge\ \mathrm{OPT}(I) OPT ( I ) = j ∈ O ∑ w j ≥ j ∈ O l ∑ w j > ∣ R l ∣ OPT ( I ) j ∈ O l ∑ ∣ S j ∩ R l ∣ = ∣ R l ∣ OPT ( I ) j ∈ O ∑ ∣ S j ∩ R l ∣ ≥ OPT ( I ) となる。ここで最後の不等号にはO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 と上で示した∑ j ∈ O ∣ S j ∩ R l ∣ ≥ ∣ R l ∣ \sum_{j\in\mathcal O}\lvert S_j\cap R_l\rvert\ge\lvert R_l\rvert ∑ j ∈ O ∣ S j ∩ R l ∣ ≥ ∣ R l ∣ を用いた。両端を比べるとO P T ( I ) > O P T ( I ) \mathrm{OPT}(I)>\mathrm{OPT}(I) OPT ( I ) > OPT ( I ) となり矛盾する。よってj 0 ∈ O l j_0\in\mathcal O_l j 0 ∈ O l が存在して
w j 0 ∣ S j 0 ∩ R l ∣ ≤ O P T ( I ) ∣ R l ∣ \frac{w_{j_0}}{\lvert S_{j_0}\cap R_l\rvert}\ \le\ \frac{\mathrm{OPT}(I)}{\lvert R_l\rvert} ∣ S j 0 ∩ R l ∣ w j 0 ≤ ∣ R l ∣ OPT ( I ) が成り立つ。
結論 。e l e_l e l が課金された反復で選ばれた添字をj ∗ j^{*} j ∗ とする。j 0 j_0 j 0 はS j 0 ∩ R l ≠ ∅ S_{j_0}\cap R_l\ne\emptyset S j 0 ∩ R l = ∅ を満たすので、その反復における候補である。手続きは候補の中で比を最小にする添字を選ぶので
p r i c e ( e l ) = w j ∗ ∣ S j ∗ ∩ R l ∣ ≤ w j 0 ∣ S j 0 ∩ R l ∣ ≤ O P T ( I ) ∣ R l ∣ ≤ O P T ( I ) k − l + 1 \mathrm{price}(e_l)=\frac{w_{j^{*}}}{\lvert S_{j^{*}}\cap R_l\rvert}
\ \le\ \frac{w_{j_0}}{\lvert S_{j_0}\cap R_l\rvert}
\ \le\ \frac{\mathrm{OPT}(I)}{\lvert R_l\rvert}
\ \le\ \frac{\mathrm{OPT}(I)}{k-l+1} price ( e l ) = ∣ S j ∗ ∩ R l ∣ w j ∗ ≤ ∣ S j 0 ∩ R l ∣ w j 0 ≤ ∣ R l ∣ OPT ( I ) ≤ k − l + 1 OPT ( I ) である。最後の不等号は∣ R l ∣ ≥ k − l + 1 \lvert R_l\rvert\ge k-l+1 ∣ R l ∣ ≥ k − l + 1 とO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 による。▨
定理 3.6. 重み付き集合被覆問題のインスタンスI = ( U , J , ( S j ) , ( w j ) ) I=\bigl(U,J,(S_j),(w_j)\bigr) I = ( U , J , ( S j ) , ( w j ) ) に対しk = ∣ U ∣ k=\lvert U\rvert k = ∣ U ∣ と置く。定義 3.3 の手続きが出力する被覆C \mathcal C C について
w ( C ) ≤ H k ⋅ O P T ( I ) w(\mathcal C)\ \le\ H_k\cdot\mathrm{OPT}(I) w ( C ) ≤ H k ⋅ OPT ( I ) が成り立つ。
証明. 命題 3.4 (3) によりC \mathcal C C は被覆であり、5 により
w ( C ) = ∑ e ∈ U p r i c e ( e ) = ∑ l = 1 k p r i c e ( e l ) w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e)=\sum_{l=1}^{k}\mathrm{price}(e_l) w ( C ) = e ∈ U ∑ price ( e ) = l = 1 ∑ k price ( e l ) である。ここでe 1 , … , e k e_1,\dots,e_k e 1 , … , e k は補題 3.5 のとおり課金された順に並べたU U U の要素である。同補題を各項へ適用すると
w ( C ) ≤ ∑ l = 1 k O P T ( I ) k − l + 1 = O P T ( I ) ∑ l = 1 k 1 k − l + 1 w(\mathcal C)\ \le\ \sum_{l=1}^{k}\frac{\mathrm{OPT}(I)}{k-l+1}
=\mathrm{OPT}(I)\sum_{l=1}^{k}\frac{1}{k-l+1} w ( C ) ≤ l = 1 ∑ k k − l + 1 OPT ( I ) = OPT ( I ) l = 1 ∑ k k − l + 1 1 である。和の添字をi = k − l + 1 i=k-l+1 i = k − l + 1 と置き換えると、l l l が1 1 1 からk k k まで動くときi i i はk k k から1 1 1 まで動くので
∑ l = 1 k 1 k − l + 1 = ∑ i = 1 k 1 i = H k \sum_{l=1}^{k}\frac{1}{k-l+1}=\sum_{i=1}^{k}\frac1i=H_k l = 1 ∑ k k − l + 1 1 = i = 1 ∑ k i 1 = H k である。よってw ( C ) ≤ H k O P T ( I ) w(\mathcal C)\le H_k\,\mathrm{OPT}(I) w ( C ) ≤ H k OPT ( I ) を得る。▨
系 3.7. 正の整数K K K を固定し、台集合の要素数がK K K 以下であるインスタンスだけからなる族を考える。定義 3.3 の手続きにおいて、各反復で比を最小にする添字の選び方を一つ固定する。この選び方をどのように定めても、その手続きは、この族の上での重み付き集合被覆問題に対するH K H_K H K -近似アルゴリズムである。とくに、すべての費用が1 1 1 であるインスタンスに対しては、選ばれる集合の個数が最小の被覆の集合の個数のH K H_K H K 倍以下である。
証明. 命題 3.4 と補題 3.5 の証明は、比を最小にする添字が複数あるときにどれを選ぶかに依存しない。よって定理 3.6 は、選び方をどのように固定した場合についても成り立つ。
この族に属するインスタンスI I I をとり、その台集合の要素数をk k k とするとk ≤ K k\le K k ≤ K である。定理 3.6 によりw ( C ) ≤ H k O P T ( I ) w(\mathcal C)\le H_{k}\,\mathrm{OPT}(I) w ( C ) ≤ H k OPT ( I ) である。調和数はk ≤ K k\le K k ≤ K のときH k ≤ H K H_{k}\le H_K H k ≤ H K を満たす。実際、H K − H k = ∑ i = k + 1 K 1 / i ≥ 0 H_K-H_{k}=\sum_{i=k+1}^{K}1/i\ge0 H K − H k = ∑ i = k + 1 K 1/ i ≥ 0 である。よってw ( C ) ≤ H K O P T ( I ) w(\mathcal C)\le H_K\,\mathrm{OPT}(I) w ( C ) ≤ H K OPT ( I ) であり、定義 1.2 の意味でρ = H K \rho=H_K ρ = H K の場合の条件が成り立つ。
すべての費用が1 1 1 である場合はw ( C ) = ∣ C ∣ w(\mathcal C)=\lvert\mathcal C\rvert w ( C ) = ∣ C ∣ であり、被覆の費用はその集合の個数に等しいので、最後の主張が従う。▨
例 3.8 (貪欲な集合被覆の手計算). U = { e 1 , e 2 , e 3 } U=\{e_1,e_2,e_3\} U = { e 1 , e 2 , e 3 } 、J = { 1 , 2 , 3 , 4 } J=\{1,2,3,4\} J = { 1 , 2 , 3 , 4 } とし、
S 1 = { e 1 } , S 2 = { e 2 } , S 3 = { e 3 } , S 4 = { e 1 , e 2 , e 3 } , S_1=\{e_1\},\quad S_2=\{e_2\},\quad S_3=\{e_3\},\quad S_4=\{e_1,e_2,e_3\}, S 1 = { e 1 } , S 2 = { e 2 } , S 3 = { e 3 } , S 4 = { e 1 , e 2 , e 3 } , w 1 = 1 3 , w 2 = 1 2 , w 3 = 1 , w 4 = 3 2 w_1=\tfrac13,\quad w_2=\tfrac12,\quad w_3=1,\quad w_4=\tfrac32 w 1 = 3 1 , w 2 = 2 1 , w 3 = 1 , w 4 = 2 3 とする。k = ∣ U ∣ = 3 k=\lvert U\rvert=3 k = ∣ U ∣ = 3 である。
最適値 。被覆はU U U を覆う添字の部分集合である。e 1 e_1 e 1 を含む集合はS 1 S_1 S 1 とS 4 S_4 S 4 、e 2 e_2 e 2 を含む集合はS 2 S_2 S 2 とS 4 S_4 S 4 、e 3 e_3 e 3 を含む集合はS 3 S_3 S 3 とS 4 S_4 S 4 である。したがって被覆は、4 4 4 を含むか、または1 , 2 , 3 1,2,3 1 , 2 , 3 をすべて含むかのいずれかである。4 4 4 を含む被覆の費用は3 / 2 3/2 3/2 以上であり、{ 4 } \{4\} { 4 } で3 / 2 3/2 3/2 が達成される。1 , 2 , 3 1,2,3 1 , 2 , 3 をすべて含み4 4 4 を含まない被覆は{ 1 , 2 , 3 } \{1,2,3\} { 1 , 2 , 3 } だけであり、その費用は1 / 3 + 1 / 2 + 1 = 11 / 6 1/3+1/2+1=11/6 1/3 + 1/2 + 1 = 11/6 である。3 / 2 = 9 / 6 < 11 / 6 3/2=9/6<11/6 3/2 = 9/6 < 11/6 であるからO P T ( I ) = 3 / 2 \mathrm{OPT}(I)=3/2 OPT ( I ) = 3/2 である。
第一の反復 。R = { e 1 , e 2 , e 3 } R=\{e_1,e_2,e_3\} R = { e 1 , e 2 , e 3 } である。比は
w 1 ∣ S 1 ∩ R ∣ = 1 / 3 1 = 1 3 , w 2 ∣ S 2 ∩ R ∣ = 1 / 2 1 = 1 2 , w 3 ∣ S 3 ∩ R ∣ = 1 1 = 1 , w 4 ∣ S 4 ∩ R ∣ = 3 / 2 3 = 1 2 \frac{w_1}{\lvert S_1\cap R\rvert}=\frac{1/3}{1}=\frac13,\quad
\frac{w_2}{\lvert S_2\cap R\rvert}=\frac{1/2}{1}=\frac12,\quad
\frac{w_3}{\lvert S_3\cap R\rvert}=\frac{1}{1}=1,\quad
\frac{w_4}{\lvert S_4\cap R\rvert}=\frac{3/2}{3}=\frac12 ∣ S 1 ∩ R ∣ w 1 = 1 1/3 = 3 1 , ∣ S 2 ∩ R ∣ w 2 = 1 1/2 = 2 1 , ∣ S 3 ∩ R ∣ w 3 = 1 1 = 1 , ∣ S 4 ∩ R ∣ w 4 = 3 3/2 = 2 1 であり、最小は1 / 3 1/3 1/3 でj ∗ = 1 j^{*}=1 j ∗ = 1 である。p r i c e ( e 1 ) = 1 / 3 \mathrm{price}(e_1)=1/3 price ( e 1 ) = 1/3 と定め、R = { e 2 , e 3 } R=\{e_2,e_3\} R = { e 2 , e 3 } となる。
第二の反復 。比はw 2 / 1 = 1 / 2 w_2/1=1/2 w 2 /1 = 1/2 、w 3 / 1 = 1 w_3/1=1 w 3 /1 = 1 、w 4 / 2 = ( 3 / 2 ) / 2 = 3 / 4 w_4/2=(3/2)/2=3/4 w 4 /2 = ( 3/2 ) /2 = 3/4 である。S 1 ∩ R = ∅ S_1\cap R=\emptyset S 1 ∩ R = ∅ であるから1 1 1 は候補ではない。最小は1 / 2 1/2 1/2 でj ∗ = 2 j^{*}=2 j ∗ = 2 である。p r i c e ( e 2 ) = 1 / 2 \mathrm{price}(e_2)=1/2 price ( e 2 ) = 1/2 と定め、R = { e 3 } R=\{e_3\} R = { e 3 } となる。
第三の反復 。比はw 3 / 1 = 1 w_3/1=1 w 3 /1 = 1 、w 4 / 1 = 3 / 2 w_4/1=3/2 w 4 /1 = 3/2 である。最小は1 1 1 でj ∗ = 3 j^{*}=3 j ∗ = 3 である。p r i c e ( e 3 ) = 1 \mathrm{price}(e_3)=1 price ( e 3 ) = 1 と定め、R = ∅ R=\emptyset R = ∅ となって手続きは停止する。
出力と検算 。C = { 1 , 2 , 3 } \mathcal C=\{1,2,3\} C = { 1 , 2 , 3 } であり
w ( C ) = 1 3 + 1 2 + 1 = 2 + 3 + 6 6 = 11 6 w(\mathcal C)=\frac13+\frac12+1=\frac{2+3+6}{6}=\frac{11}{6} w ( C ) = 3 1 + 2 1 + 1 = 6 2 + 3 + 6 = 6 11 である。課金額の総和も1 / 3 + 1 / 2 + 1 = 11 / 6 1/3+1/2+1=11/6 1/3 + 1/2 + 1 = 11/6 であり、命題 3.4 (5) と一致する。反復回数は3 3 3 であり、∣ U ∣ = 3 \lvert U\rvert=3 ∣ U ∣ = 3 以下である。
近似保証との照合 。H 3 = 1 + 1 / 2 + 1 / 3 = 11 / 6 H_3=1+1/2+1/3=11/6 H 3 = 1 + 1/2 + 1/3 = 11/6 であるから、定理 3.6 の上界はH 3 ⋅ O P T ( I ) = ( 11 / 6 ) ( 3 / 2 ) = 11 / 4 H_3\cdot\mathrm{OPT}(I)=(11/6)(3/2)=11/4 H 3 ⋅ OPT ( I ) = ( 11/6 ) ( 3/2 ) = 11/4 である。実際の費用は11 / 6 11/6 11/6 であり、11 / 6 ≤ 11 / 4 11/6\le11/4 11/6 ≤ 11/4 が成り立つ。費用の比は( 11 / 6 ) / ( 3 / 2 ) = 11 / 9 (11/6)/(3/2)=11/9 ( 11/6 ) / ( 3/2 ) = 11/9 であり、1 1 1 より大きいので、この手続きは最適解を返していない。
課金額の上界との照合 。補題 3.5 はp r i c e ( e l ) ≤ O P T ( I ) / ( k − l + 1 ) \mathrm{price}(e_l)\le\mathrm{OPT}(I)/(k-l+1) price ( e l ) ≤ OPT ( I ) / ( k − l + 1 ) を主張する。l = 1 l=1 l = 1 では1 / 3 ≤ ( 3 / 2 ) / 3 = 1 / 2 1/3\le(3/2)/3=1/2 1/3 ≤ ( 3/2 ) /3 = 1/2 、l = 2 l=2 l = 2 では1 / 2 ≤ ( 3 / 2 ) / 2 = 3 / 4 1/2\le(3/2)/2=3/4 1/2 ≤ ( 3/2 ) /2 = 3/4 、l = 3 l=3 l = 3 では1 ≤ ( 3 / 2 ) / 1 = 3 / 2 1\le(3/2)/1=3/2 1 ≤ ( 3/2 ) /1 = 3/2 であり、いずれも成り立つ。
4 演習
問題 4.1.
補題 2.5 の証明では、M M M の各辺からC C C に属する端点を一つ選んで単射を作っている。この単射性の議論を省き、「どの頂点被覆もM M M の辺を覆うから∣ M ∣ ≤ ∣ C ∣ \lvert M\rvert\le\lvert C\rvert ∣ M ∣ ≤ ∣ C ∣ である」とだけ書いたとする。この記述が証明になっていない理由を述べ、単射性がどこでM M M がマッチングであるという仮定を使っているかを指摘せよ。
補題 2.6 の証明で、極大性を最大性に置き換えたとする。すなわちM M M が最大マッチングであるという仮定のもとで、同じ結論が得られるかどうかを判定し、得られる場合はその証明を書き、得られない場合は反例を与えよ。
定理 2.7 の上界2 τ ( G ) 2\tau(G) 2 τ ( G ) がちょうど達成されるグラフの無限族を一つ作り、その族の各要素について∣ C ( M ) ∣ = 2 τ ( G ) \lvert C(M)\rvert=2\tau(G) ∣ C ( M )∣ = 2 τ ( G ) を満たす極大なマッチングM M M が存在することを証明せよ。さらに、頂点数が2 r 2r 2 r (r ≥ 2 r\ge2 r ≥ 2 )の完全グラフではこの上界が達成されないことを、その最小頂点被覆の頂点数を求めることによって示せ。
補題 3.5 の証明の中心は、最適な被覆O \mathcal O O の中に比の小さい集合が存在するという背理法の段である。この段を、背理法を用いずに「重み付き平均の最小値は平均以下である」という形の直接の議論として書き直せ。
補題 3.5 は、費用w j w_j w j がすべて正であることを二箇所で用いている。その二箇所を特定し、w j = 0 w_j=0 w j = 0 である集合を許すと結論が成り立たなくなる例を作れ。
定義 3.3 の手続きにおいて、比を最小にする添字ではなく∣ S j ∩ R ∣ \lvert S_j\cap R\rvert ∣ S j ∩ R ∣ を最大にする添字を選ぶ規則に変えたとする。この規則のもとで定理 3.6 と同じ形の近似保証が成り立つかどうかを判定し、成り立たないならば、費用の比がH k H_k H k を超える重み付きインスタンスを構成せよ。
集合被覆の各集合の要素数が高々d d d であるインスタンスに限ると、補題 3.5 の議論はより強い保証を与える。H d H_d H d による近似保証を、本文の課金の議論をどのように書き換えれば得ることができるかを設計し、証明せよ。
5 つまずいたら
極大と最大を書き分ける。定理 2.7 が用いるのは包含に関して極大なマッチングである。最大マッチングを使っても結論は成り立つが、必要なのは極大性だけである(注意 2.3 )。
近似比の証明では最適値を計算しない。用いるのは最適値の下界(頂点被覆では補題 2.5 、集合被覆では最適な被覆の費用がO P T ( I ) \mathrm{OPT}(I) OPT ( I ) であること)だけである。
2 2 2 近似の証明は二つの主張に分かれる。被覆性(補題 2.6 )と2 τ ( G ) 2\tau(G) 2 τ ( G ) 以下であること(定理 2.7 )は別の議論であり、一方から他方は従わない。
集合被覆の近似比は定数ではない。定理 3.6 のH k H_k H k は台集合の要素数k k k に依存する。定数の近似比として述べるには、系 3.7 のように台集合の大きさを制限した族を固定する必要がある。
費用が零の集合を許さない。補題 3.5 の背理法はO P T ( I ) > 0 \mathrm{OPT}(I)>0 OPT ( I ) > 0 に依存しており、その正値性は各費用が正であることから従う。
6 扱った範囲と次の記事
本記事は、有限最小化問題、最適値および近似比を定義し、最小化では近似比が1 1 1 以上の向きであることを示した。最小頂点被覆問題については、極大なマッチングを貪欲に求める手続きの停止性と正当性を示し、その端点集合が頂点被覆であることと、頂点数が2 τ ( G ) 2\tau(G) 2 τ ( G ) 以下であることを別々に証明して、2 2 2 -近似アルゴリズムを得た。重み付き集合被覆問題については、貪欲な手続きの停止性と正当性、費用が要素への課金額の総和に等しいこと、および各課金額が最適値を残りの要素数で割った値以下であることを証明し、調和数H k H_k H k による近似保証を導いた。二つの例について、上界がちょうど達成される場合と達成されない場合をそれぞれ手計算で確かめた。
近似不能性、すなわち「ある比より良い近似アルゴリズムが存在しない」という形の主張は扱っていない。頂点に重みが付いた頂点被覆、線形計画の緩和と丸めによる近似、および近似スキームも扱っていない。
本記事は本単元の最後の記事である。