§E13.28近似アルゴリズム

最終更新

最小化問題の最適解を求めることが難しい場合でも、最適値からの隔たりが保証された解であれば手早く求めることができることがある。その隔たりを比で測る量が近似比である。近似比の保証は、最適値そのものを知らないまま示さなければならない。したがって、証明の骨格は「出力の費用の上界」と「最適値の下界」を別々に用意し、二つを突き合わせるという形になる。

本記事は、まず有限最小化問題と近似比を定義し、最小化では近似比が11以上の向きであることを確かめる。次に二つの問題を扱う。第一は最小頂点被覆問題である。包含に関して極大なマッチングをとり、その辺の端点をすべて出力すると、頂点被覆が得られ、その頂点数は最小頂点被覆の頂点数の22倍以下である。最適値の下界を与えるのは「どのマッチングの辺数も、どの頂点被覆の頂点数以下である」という不等式であり、これは極大なマッチングの辺が互いに端点を共有しないことから従う。第二は重み付き集合被覆問題である。貪欲に集合を選び、選んだ集合の費用をその集合が新しく覆う要素へ等しく課金すると、各要素への課金額が最適値をまだ覆われていない要素の個数で割った値以下になり、調和数による近似保証が得られる。

本記事は近似比の上界だけを扱い、近似不能性は扱わない。近似比の証明には計算量クラスに関する事実を一切用いない。

本記事を通じて、グラフG=(V,E)G=(V,E)は有限単純無向グラフとし(§D2.7 定義 1.1)、n=∣V∣n=\lvert V\rvert、m=∣E∣m=\lvert E\rvertと置く。辺{u,v}\{u,v\}をuvuvとも書く。

1 有限最小化問題と近似比

定義 1.1. 集合I\mathcal Iの要素をインスタンス (instance) という。各インスタンスI∈II\in\mathcal Iに対し、空でない有限集合F(I)F(I)と写像costI:F(I)→[0,∞)\mathrm{cost}_I:F(I)\to[0,\infty)が定まっているとする。F(I)F(I)の要素をIIの実行可能解 (feasible solution)、costI(y)\mathrm{cost}_I(y)を実行可能解yyの費用 (cost) という。この対応の全体を有限最小化問題 (finite minimization problem) という。

F(I)F(I)は空でない有限集合であるから

OPT(I)=min⁡y∈F(I)costI(y)\mathrm{OPT}(I)=\min_{y\in F(I)}\mathrm{cost}_I(y)

は存在する。これをIIの最適値 (optimal value) という。

定義 1.2. 有限最小化問題と、各インスタンスI∈II\in\mathcal Iに対し実行可能解A(I)∈F(I)\mathcal A(I)\in F(I)を返すアルゴリズムA\mathcal Aをとる。実数ρ\rhoに対し、A\mathcal Aが ρ\rho-近似アルゴリズム (rho-approximation algorithm) であるとは、すべてのインスタンスI∈II\in\mathcal Iについて

costI(A(I)) ≤ ρ OPT(I)\mathrm{cost}_I\bigl(\mathcal A(I)\bigr)\ \le\ \rho\,\mathrm{OPT}(I)

が成り立つことをいう。この不等式を満たすρ\rhoをA\mathcal Aの近似比 (approximation ratio) という。

命題 1.3. 有限最小化問題がOPT(I)>0\mathrm{OPT}(I)>0を満たすインスタンスIIをもつとする。このとき、ρ\rho-近似アルゴリズムの近似比ρ\rhoは11以上である。

証明.A\mathcal Aをρ\rho-近似アルゴリズムとし、OPT(I)>0\mathrm{OPT}(I)>0を満たすインスタンスIIをとる。A(I)∈F(I)\mathcal A(I)\in F(I)であるから、最適値が最小値であることによりOPT(I)≤costI(A(I))\mathrm{OPT}(I)\le\mathrm{cost}_I\bigl(\mathcal A(I)\bigr)である。近似比の定義とあわせて

OPT(I) ≤ costI(A(I)) ≤ ρ OPT(I)\mathrm{OPT}(I)\ \le\ \mathrm{cost}_I\bigl(\mathcal A(I)\bigr)\ \le\ \rho\,\mathrm{OPT}(I)

を得る。両端をOPT(I)>0\mathrm{OPT}(I)>0で割ると1≤ρ1\le\rhoである。▨

最大化問題では不等号の向きが逆になり、近似比は11以下の向きで測る。本記事は最小化問題だけを扱うので、以下のρ\rhoはつねに11以上である。

2 極大なマッチングによる頂点被覆

定義 2.1. 有限単純無向グラフG=(V,E)G=(V,E)について、頂点集合C⊆VC\subseteq Vが 頂点被覆 (vertex cover) であるとは、EEのすべての辺が少なくとも一方の端点をCCにもつことをいう。頂点数が最小である頂点被覆の頂点数をτ(G)\tau(G)と書く。ここでの最小は頂点数についての最小であり、包含に関する極小とは異なる。

GGをインスタンスとし、F(G)F(G)をGGの頂点被覆全体、costG(C)=∣C∣\mathrm{cost}_G(C)=\lvert C\rvertと定めると、これは定義 1.1の意味の有限最小化問題である。実際、VV自身は頂点被覆であるからF(G)F(G)は空でなく、VVの部分集合は有限個であるからF(G)F(G)は有限集合である。この問題を最小頂点被覆問題 (minimum vertex cover problem) といい、OPT(G)=τ(G)\mathrm{OPT}(G)=\tau(G)である。

二部グラフに限れば、この頂点被覆は§E13.13 定義 2.1の頂点被覆と同じものである。本記事は二部性を仮定しない。

定義 2.2. 有限単純無向グラフG=(V,E)G=(V,E)について、マッチングの定義は§D2.12 定義 1.1に従う。すなわち辺集合M⊆EM\subseteq Eがマッチング (matching) であるとは、MMの相異なる二辺が端点を共有しないことをいう。

マッチングMMが 極大 (maximal matching) であるとは、M⊊M′M\subsetneq M'を満たすマッチングM′M'が存在しないことをいう。マッチングMMが最大 (maximum matching) であるとは、辺数∣M∣\lvert M\rvertがGGのマッチングの中で最大であることをいい、その辺数をν(G)\nu(G)と書く。

注意 2.3 (最大と極大は別の概念である). 最大は辺数についての最大であり、極大は包含についての極大である。最大マッチングMMが極大であることは直ちに従う。M⊊M′M\subsetneq M'を満たすマッチングM′M'があれば∣M′∣>∣M∣\lvert M'\rvert>\lvert M\rvertとなり、最大性に反するからである。逆は成り立たない。頂点v1,v2,v3,v4v_1,v_2,v_3,v_4と辺v1v2v_1v_2、v2v3v_2v_3、v3v4v_3v_4からなるグラフでは、M={v2v3}M=\{v_2v_3\}は極大であるが、辺数22のマッチング{v1v2, v3v4}\{v_1v_2,\ v_3v_4\}が存在するので最大ではない。

本節が用いるのは極大なマッチングである。最大マッチングも極大であるから同じ議論を通すことができるが、最大性は必要でない。二部グラフについては増加道の探索を繰り返して最大マッチングを求めることができる(§E13.13 命題 1.6)が、極大なマッチングは次の命題の手続きによってもっと少ない手数で得られる。

命題 2.4. 有限単純無向グラフG=(V,E)G=(V,E)について、M=∅M=\emptysetから出発し、M∪{e}M\cup\{e\}がマッチングとなる辺e∈E∖Me\in E\setminus Mが存在するかぎり、そのようなeeを一つ選んでMMへ加える手続きを考える。この手続きは高々mm回の反復で停止し、停止時のMMはGGの極大なマッチングである。

証明. ループ不変条件(§D2.8 定義 1.1)として「MMはGGのマッチングでありM⊆EM\subseteq Eである」をとる。初期化ではM=∅M=\emptysetがマッチングであるから成り立つ。維持については、本体はM∪{e}M\cup\{e\}がマッチングである場合にだけeeを加えるので、実行後もMMはマッチングである。

停止性を示す。φ=m−∣M∣\varphi=m-\lvert M\rvertと置く。不変条件によりM⊆EM\subseteq Eであるから∣M∣≤m\lvert M\rvert\le mであり、φ\varphiは非負整数である。本体を一度実行すると∣M∣\lvert M\rvertが11増えるのでφ\varphiは狭義に減少する。§D2.8 命題 1.4により手続きは有限回で停止し、φ\varphiの初期値がmmであるから反復回数はmm以下である。

終了を確かめる。停止時にはループの継続条件が偽であり、M∪{e}M\cup\{e\}がマッチングとなる辺e∈E∖Me\in E\setminus Mは存在しない。ここでM⊊M′M\subsetneq M'を満たすマッチングM′M'が存在すると仮定し、e∈M′∖Me\in M'\setminus Mをとる。M∪{e}⊆M′M\cup\{e\}\subseteq M'であり、マッチングの部分集合はマッチングである(部分集合の相異なる二辺はもとの集合の相異なる二辺でもあるから端点を共有しない)ので、M∪{e}M\cup\{e\}はマッチングでありe∈E∖Me\in E\setminus Mである。これは継続条件が偽であることに反する。よって停止時のMMは極大なマッチングである。この形の議論が正当性を与えることは§D2.8 定理 1.2による。▨

最適値の下界を与えるのが次の補題である。この補題は極大性を仮定せず、どのマッチングについても成り立つ。

補題 2.5. 有限単純無向グラフGGのマッチングMMと頂点被覆CCに対し∣M∣≤∣C∣\lvert M\rvert\le\lvert C\rvertが成り立つ。とくに∣M∣≤τ(G)\lvert M\rvert\le\tau(G)である。

証明.CCは頂点被覆であるから、MMの各辺eeは少なくとも一方の端点をCCにもつ。MMは有限集合であるから、各e∈Me\in MについてCCに属する端点を一つ選び、それをψ(e)\psi(e)と書く。これにより写像ψ:M→C\psi:M\to Cが定まる。

ψ\psiが単射であることを示す。e,e′∈Me,e'\in Mがe≠e′e\ne e'かつψ(e)=ψ(e′)\psi(e)=\psi(e')を満たすと仮定する。ψ(e)\psi(e)はeeの端点であり、ψ(e′)\psi(e')はe′e'の端点であるから、eeとe′e'は頂点ψ(e)\psi(e)を共有する。これはMMがマッチングであることに反する。よってψ\psiは単射であり∣M∣≤∣C∣\lvert M\rvert\le\lvert C\rvertである。

CCを頂点数が最小の頂点被覆にとると∣C∣=τ(G)\lvert C\rvert=\tau(G)であるから∣M∣≤τ(G)\lvert M\rvert\le\tau(G)を得る。▨

補題 2.6.MMを有限単純無向グラフG=(V,E)G=(V,E)の極大なマッチングとし、MMの辺の端点全体を

C(M)={v∈V: v は M のある辺の端点である}C(M)=\{v\in V:\ v\ \text{は}\ M\ \text{のある辺の端点である}\}

と置く。このときC(M)C(M)はGGの頂点被覆であり、∣C(M)∣=2∣M∣\lvert C(M)\rvert=2\lvert M\rvertが成り立つ。

証明. 頂点被覆であること。辺e=uv∈Ee=uv\in Eをとり、u∉C(M)u\notin C(M)かつv∉C(M)v\notin C(M)であると仮定する。C(M)C(M)の定め方により、MMのどの辺もuuを端点にもたず、vvも端点にもたない。したがってeeはMMのどの辺とも端点を共有しない。とくにe∉Me\notin Mである(e∈Me\in Mならばu∈C(M)u\in C(M)となる)。

M∪{e}M\cup\{e\}がマッチングであることを確かめる。M∪{e}M\cup\{e\}の相異なる二辺f,f′f,f'をとる。ともにMMに属するならば、MMがマッチングであることから端点を共有しない。一方がeeで他方がMMの辺ならば、上に述べたとおり端点を共有しない。よってM∪{e}M\cup\{e\}はマッチングであり、e∉Me\notin MよりM⊊M∪{e}M\subsetneq M\cup\{e\}である。これはMMの極大性に反する。

したがってEEのすべての辺は少なくとも一方の端点をC(M)C(M)にもち、C(M)C(M)は頂点被覆である。

頂点数。各辺e∈Me\in Mに対し、その端点の集合をι(e)\iota(e)と書く。GGは単純でありループをもたないので∣ι(e)∣=2\lvert\iota(e)\rvert=2である。C(M)=⋃e∈Mι(e)C(M)=\bigcup_{e\in M}\iota(e)である。MMの相異なる二辺は端点を共有しないので、e≠e′e\ne e'ならばι(e)∩ι(e′)=∅\iota(e)\cap\iota(e')=\emptysetである。よってこの合併は互いに交わらない集合の合併であり、和の法則(§D2.2 定理 2.1)により

∣C(M)∣=∑e∈M∣ι(e)∣=∑e∈M2=2∣M∣\lvert C(M)\rvert=\sum_{e\in M}\lvert\iota(e)\rvert=\sum_{e\in M}2=2\lvert M\rvert

である。▨

2.1 証明方針

主定理は二つの主張の組み合わせである。第一は、極大なマッチングMMの端点集合C(M)C(M)が頂点被覆であることであり、これは補題 2.6が与える。証明の要点は、両端点がC(M)C(M)の外にある辺があれば、その辺をMMへ加えてもマッチングのままであり、極大性に反するという一手である。

第二は、∣C(M)∣\lvert C(M)\rvertがτ(G)\tau(G)の22倍以下であることである。∣C(M)∣=2∣M∣\lvert C(M)\rvert=2\lvert M\rvertであるから、示すべきことは∣M∣≤τ(G)\lvert M\rvert\le\tau(G)である。ここで用いるのが補題 2.5であり、その一手は「MMの辺は互いに端点を共有しないので、どの頂点被覆もそれらの辺の各々から少なくとも一つの頂点を含み、しかも相異なる辺には相異なる頂点が対応する」という単射の構成である。この一手を省くと、MMの辺数と頂点被覆の頂点数を比べる根拠が無くなる。

二つを合わせると、最適値そのものを知らないまま∣C(M)∣≤2τ(G)\lvert C(M)\rvert\le2\tau(G)が従う。

定理 2.7.G=(V,E)G=(V,E)を有限単純無向グラフとし、MMをGGの極大なマッチングとする。このときC(M)C(M)はGGの頂点被覆であり

∣C(M)∣=2∣M∣ ≤ 2τ(G)\lvert C(M)\rvert=2\lvert M\rvert\ \le\ 2\tau(G)

が成り立つ。

証明.補題 2.6によりC(M)C(M)は頂点被覆であり∣C(M)∣=2∣M∣\lvert C(M)\rvert=2\lvert M\rvertである。

MMはマッチングであるから、補題 2.5により∣M∣≤τ(G)\lvert M\rvert\le\tau(G)である。両辺を22倍して2∣M∣≤2τ(G)2\lvert M\rvert\le2\tau(G)を得る。二つを合わせて主張が従う。▨

系 2.8.命題 2.4の手続きにおいて、各反復でMMへ加える辺の選び方を一つ固定する。この選び方をどのように定めても、その手続きによって極大なマッチングMMを求め、C(M)C(M)を出力するアルゴリズムは、最小頂点被覆問題に対する22-近似アルゴリズムである。

証明.命題 2.4の停止性と極大性の証明は、加えることのできる辺が複数あるときにどれを選ぶかに依存しない。よって選び方をどのように固定しても手続きは停止し、出力されるMMは極大なマッチングである。定理 2.7によりC(M)C(M)は頂点被覆、すなわち定義 2.1の意味の実行可能解であり、

costG(C(M))=∣C(M)∣≤2τ(G)=2 OPT(G)\mathrm{cost}_G\bigl(C(M)\bigr)=\lvert C(M)\rvert\le2\tau(G)=2\,\mathrm{OPT}(G)

が成り立つ。これは定義 1.2の意味でρ=2\rho=2の場合の条件である。▨

例 2.9 (頂点被覆の 2 近似の手計算).V={v1,v2,v3,v4}V=\{v_1,v_2,v_3,v_4\}、E={v1v2, v2v3, v3v4}E=\{v_1v_2,\ v_2v_3,\ v_3v_4\}とする。n=4n=4、m=3m=3である。

最適値。C={v2,v3}C=\{v_2,v_3\}は頂点被覆である。実際、v1v2v_1v_2はv2v_2を、v2v3v_2v_3はv2v_2を、v3v4v_3v_4はv3v_3を含む。よってτ(G)≤2\tau(G)\le2である。頂点数11の頂点被覆は存在しない。v1v2v_1v_2とv3v4v_3v_4は端点を共有しないので、一つの頂点で両方を覆うことはできないからである。よってτ(G)=2\tau(G)=2である。

第一の極大なマッチング。M1={v2v3}M_1=\{v_2v_3\}をとる。v1v2v_1v_2はv2v_2を、v3v4v_3v_4はv3v_3をM1M_1の辺と共有するので、どちらを加えてもマッチングでなくなる。よってM1M_1は極大である。C(M1)={v2,v3}C(M_1)=\{v_2,v_3\}であり∣C(M1)∣=2=2∣M1∣\lvert C(M_1)\rvert=2=2\lvert M_1\rvertである。この頂点被覆は最小であり、費用の比は2/2=12/2=1である。

第二の極大なマッチング。M2={v1v2, v3v4}M_2=\{v_1v_2,\ v_3v_4\}をとる。二辺は端点を共有しないのでマッチングであり、残る辺v2v3v_2v_3はv2v_2とv3v_3の双方を共有するので加えることができない。よってM2M_2は極大である。C(M2)={v1,v2,v3,v4}C(M_2)=\{v_1,v_2,v_3,v_4\}であり∣C(M2)∣=4=2∣M2∣\lvert C(M_2)\rvert=4=2\lvert M_2\rvertである。費用の比は4/2=24/2=2であり、定理 2.7の上界がちょうど達成される。

下界の照合。∣M1∣=1≤2=τ(G)\lvert M_1\rvert=1\le2=\tau(G)かつ∣M2∣=2≤2=τ(G)\lvert M_2\rvert=2\le2=\tau(G)であり、補題 2.5と整合する。またM2M_2は最大マッチングでありν(G)=2\nu(G)=2である。辺数33のマッチングは、相異なる66個の頂点を要するのでn=4n=4のこのグラフには存在しない。

三角形での照合。V′={u1,u2,u3}V'=\{u_1,u_2,u_3\}とし、u1u2u_1u_2、u1u3u_1u_3、u2u3u_2u_3の三辺をもつグラフを考える。M={u1u2}M=\{u_1u_2\}は極大である。u1u3u_1u_3はu1u_1を、u2u3u_2u_3はu2u_2を共有するからである。C(M)={u1,u2}C(M)=\{u_1,u_2\}であり∣C(M)∣=2\lvert C(M)\rvert=2である。一方τ=2\tau=2である。一つの頂点は三辺のうち二辺しか覆わないのでτ≥2\tau\ge2であり、{u1,u2}\{u_1,u_2\}が頂点被覆であるからτ≤2\tau\le2だからである。よってこの場合の費用の比は11である。

出力される頂点被覆は、選ぶ極大なマッチングによって変わる。上の第一と第二の例が示すとおり、辺数の小さい極大なマッチングのほうがよい頂点被覆を与えることがある。定理 2.7は、どの極大なマッチングを選んでも比が22を超えないことを保証する。

3 貪欲な集合被覆

定義 3.1. 正の整数kkに対し

Hk=∑i=1k1iH_k=\sum_{i=1}^{k}\frac1i

と定め、HkH_kを第kk調和数 (harmonic number) という。またH0=0H_0=0と定める。

定義 3.2. 空でない有限集合UU、有限添字集合JJ、UUの部分集合の族(Sj)j∈J(S_j)_{j\in J}、および正の実数の族(wj)j∈J(w_j)_{j\in J}が

⋃j∈JSj=U\bigcup_{j\in J}S_j=U

を満たすとする。UUを台集合 (universe)、UUの要素を要素 (element)、wjw_jをSjS_jの費用 (cost) という。

添字の部分集合C⊆J\mathcal C\subseteq Jが被覆 (cover) であるとは⋃j∈CSj=U\bigcup_{j\in\mathcal C}S_j=Uが成り立つことをいい、その費用をw(C)=∑j∈Cwjw(\mathcal C)=\sum_{j\in\mathcal C}w_jと定める。四つ組I=(U,J,(Sj),(wj))I=\bigl(U,J,(S_j),(w_j)\bigr)をインスタンスとし、F(I)F(I)を被覆全体、costI(C)=w(C)\mathrm{cost}_I(\mathcal C)=w(\mathcal C)と定めると、これは定義 1.1の意味の有限最小化問題である。実際、JJ自身は被覆であるからF(I)F(I)は空でなく、JJの部分集合は有限個であるからF(I)F(I)は有限集合である。この問題を重み付き集合被覆問題 (weighted set cover problem) という。

定義 3.3. 重み付き集合被覆問題のインスタンスI=(U,J,(Sj),(wj))I=\bigl(U,J,(S_j),(w_j)\bigr)に対し、次の手続きを考える。R←UR\leftarrow UおよびC←∅\mathcal C\leftarrow\emptysetとする。R≠∅R\ne\emptysetであるかぎり次を繰り返す。

Sj∩R≠∅S_j\cap R\ne\emptysetを満たすj∈Jj\in Jのうち、比

wj∣Sj∩R∣\frac{w_j}{\lvert S_j\cap R\rvert}

を最小にするものを一つ選び、それをj∗j^{*}とする。j∗j^{*}をC\mathcal Cへ加え、Sj∗∩RS_{j^{*}}\cap Rの各要素eeに対し課金額 (price) を

price(e)=wj∗∣Sj∗∩R∣\mathrm{price}(e)=\frac{w_{j^{*}}}{\lvert S_{j^{*}}\cap R\rvert}

と定める。その後R←R∖Sj∗R\leftarrow R\setminus S_{j^{*}}とする。R=∅R=\emptysetになったところでC\mathcal Cを出力する。

すなわち、選んだ集合の費用を、その集合が新しく覆う要素へ等しく分けて課金する。

命題 3.4.定義 3.3の手続きについて次が成り立つ。

  1. R≠∅R\ne\emptysetである各反復において、選ぶことのできる添字jjが存在する。
  2. 手続きは高々∣U∣\lvert U\rvert回の反復で停止する。
  3. 停止時のC\mathcal Cは被覆である。
  4. 各要素e∈Ue\in Uについて、price(e)\mathrm{price}(e)はちょうど一度だけ定まる。
  5. 停止時のC\mathcal Cについてw(C)=∑e∈Uprice(e)w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e)が成り立つ。

証明.(1)を示す。R≠∅R\ne\emptysetとしe∈Re\in Rをとる。R⊆U=⋃j∈JSjR\subseteq U=\bigcup_{j\in J}S_jであるからe∈Sje\in S_jを満たすj∈Jj\in Jが存在し、そのjjについてSj∩R≠∅S_j\cap R\ne\emptysetである。よって候補となる添字の集合は空でない。JJは有限集合であるから、その中で比を最小にする添字が存在する。

(2)を示す。ループの状態に対して変量∣R∣\lvert R\rvertをとる。これは非負整数である。選んだj∗j^{*}についてSj∗∩R≠∅S_{j^{*}}\cap R\ne\emptysetであるから、R∖Sj∗R\setminus S_{j^{*}}はRRの真部分集合であり∣R∣\lvert R\rvertは狭義に減少する。§D2.8 命題 1.4により手続きは有限回で停止し、∣R∣\lvert R\rvertの初期値が∣U∣\lvert U\rvertであるから反復回数は∣U∣\lvert U\rvert以下である。

(3)を示す。ループ不変条件(§D2.8 定義 1.1)として「R⊆UR\subseteq UかつU∖R=⋃j∈CSjU\setminus R=\bigcup_{j\in\mathcal C}S_j」をとる。初期化ではR=UR=UかつC=∅\mathcal C=\emptysetであり、両辺とも空集合である。維持については、j∗j^{*}を加えた後のC′=C∪{j∗}\mathcal C'=\mathcal C\cup\{j^{*}\}とR′=R∖Sj∗R'=R\setminus S_{j^{*}}に対し、Sj∗⊆US_{j^{*}}\subseteq Uであることから

U∖R′=U∖(R∖Sj∗)=(U∖R)∪(U∩Sj∗)=(U∖R)∪Sj∗=(⋃j∈CSj)∪Sj∗=⋃j∈C′SjU\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

であり、不変条件が保たれる。停止時には継続条件が偽でありR=∅R=\emptysetであるから、不変条件よりU=⋃j∈CSjU=\bigcup_{j\in\mathcal C}S_j、すなわちC\mathcal Cは被覆である。この形の議論が正当性を与えることは§D2.8 定理 1.2による。

(4)を示す。ある反復で課金される要素はSj∗∩RS_{j^{*}}\cap Rの要素であり、その反復の終わりにRRから取り除かれる。RRは反復のたびに減るだけであるから、一度取り除かれた要素は以後の反復のRRに属さず、再び課金されることはない。また 3 の停止時の条件R=∅R=\emptysetと不変条件により、すべての要素はいずれかの反復でRRから取り除かれ、そのとき課金される。よって各要素はちょうど一度課金される。

(5)を示す。まず、各反復で選ばれる添字は互いに相異なる。ある反復でj∗j^{*}が選ばれると、その反復の終わりにRRからSj∗S_{j^{*}}が取り除かれてSj∗∩R=∅S_{j^{*}}\cap R=\emptysetとなり、RRは以後も減るだけであるから、j∗j^{*}が再び候補になることはないからである。したがって反復の回数は∣C∣\lvert\mathcal C\rvertに等しく、

w(C)=∑j∈Cwj=∑反復wj∗w(\mathcal C)=\sum_{j\in\mathcal C}w_j=\sum_{\text{反復}}w_{j^{*}}

である。各反復について、その反復で課金される要素の個数は∣Sj∗∩R∣\lvert S_{j^{*}}\cap R\rvertであり、各要素への課金額はwj∗/∣Sj∗∩R∣w_{j^{*}}/\lvert S_{j^{*}}\cap R\rvertであるから、その反復で課金された額の総和は

∣Sj∗∩R∣⋅wj∗∣Sj∗∩R∣=wj∗\lvert S_{j^{*}}\cap R\rvert\cdot\frac{w_{j^{*}}}{\lvert S_{j^{*}}\cap R\rvert}=w_{j^{*}}

である。反復について加え、4 により各要素がちょうど一度課金されることを用いるとw(C)=∑e∈Uprice(e)w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e)を得る。▨

3.1 証明方針

近似保証は、(5)によって総費用を要素への課金額の総和へ書き換え、各課金額を個別に評価することによって得られる。

要素を課金された順にe1,…,eke_1,\dots,e_k(k=∣U∣k=\lvert U\rvert)と並べる。ele_lが課金される反復の開始時に残っている集合をRlR_lと書くと、el,el+1,…,eke_l,e_{l+1},\dots,e_kはまだ課金されていないのでRlR_lに属し、∣Rl∣≥k−l+1\lvert R_l\rvert\ge k-l+1である。

次に、RlR_lをどう覆っても最適値以上の費用はかからない、という事実を用いる。最適な被覆O\mathcal Oをとると、O\mathcal OはRlR_lも覆うので、O\mathcal Oの集合の中に「費用を新しく覆う要素の個数で割った比」がOPT(I)/∣Rl∣\mathrm{OPT}(I)/\lvert R_l\rvert以下であるものが存在する。存在しないと仮定して費用を加えると、O\mathcal Oの総費用がOPT(I)\mathrm{OPT}(I)を超えるという矛盾が生じるからである。手続きはその比を最小にする添字を選ぶので、ele_lへの課金額はこの値以下である。

最後に∣Rl∣≥k−l+1\lvert R_l\rvert\ge k-l+1を代入して和をとると、係数が調和数になる。

補題 3.5. 重み付き集合被覆問題のインスタンスI=(U,J,(Sj),(wj))I=\bigl(U,J,(S_j),(w_j)\bigr)に対しk=∣U∣k=\lvert U\rvertと置く。定義 3.3の手続きで課金された順にUUの要素をe1,e2,…,eke_1,e_2,\dots,e_kと並べる(同じ反復で課金された要素どうしの順序は任意に定める)。このとき各1≤l≤k1\le l\le kについて

price(el) ≤ OPT(I)k−l+1\mathrm{price}(e_l)\ \le\ \frac{\mathrm{OPT}(I)}{k-l+1}

が成り立つ。

証明. はじめにOPT(I)>0\mathrm{OPT}(I)>0を確かめる。UUは空でないので、どの被覆C\mathcal Cも空でなく、wj>0w_j>0よりw(C)>0w(\mathcal C)>0である。よって最適値も正である。

1≤l≤k1\le l\le kを固定し、ele_lが課金された反復の開始時におけるRRの値をRlR_lと書く。

∣Rl∣≥k−l+1\lvert R_l\rvert\ge k-l+1であること。l≤l′≤kl\le l'\le kをとる。命題 3.4 (4)により各要素はちょうど一度課金され、el′e_{l'}が課金されるのはele_lが課金される反復と同じか、それより後の反復である。同じ反復ならばel′∈Sj∗∩Rl⊆Rle_{l'}\in S_{j^{*}}\cap R_l\subseteq R_lである。より後の反復ならば、その反復の開始時のRRに属し、RRは反復のたびに減るだけであるからel′∈Rle_{l'}\in R_lである。el,el+1,…,eke_l,e_{l+1},\dots,e_kは相異なるk−l+1k-l+1個の要素であるから∣Rl∣≥k−l+1\lvert R_l\rvert\ge k-l+1である。

比の小さい集合が最適な被覆の中に存在すること。O⊆J\mathcal O\subseteq Jをw(O)=OPT(I)w(\mathcal O)=\mathrm{OPT}(I)を満たす被覆とし、

Ol={j∈O: Sj∩Rl≠∅}\mathcal O_l=\{j\in\mathcal O:\ S_j\cap R_l\ne\emptyset\}

と置く。O\mathcal OはUUを覆いRl⊆UR_l\subseteq Uであるから、RlR_lの各要素は少なくとも一つのj∈Oj\in\mathcal OについてSj∩RlS_j\cap R_lに属する。したがって

∑j∈O∣Sj∩Rl∣ ≥ ∣Rl∣\sum_{j\in\mathcal O}\lvert S_j\cap R_l\rvert\ \ge\ \lvert R_l\rvert

が成り立つ。左辺はRlR_lの各要素を少なくとも一度数えているからである。Rl≠∅R_l\ne\emptysetであるから、この不等式よりOl≠∅\mathcal O_l\ne\emptysetである。

すべてのj∈Olj\in\mathcal O_lについて

wj∣Sj∩Rl∣>OPT(I)∣Rl∣\frac{w_j}{\lvert S_j\cap R_l\rvert}>\frac{\mathrm{OPT}(I)}{\lvert R_l\rvert}

が成り立つと仮定する。両辺に∣Sj∩Rl∣>0\lvert S_j\cap R_l\rvert>0を掛けるとwj>OPT(I)∣Rl∣∣Sj∩Rl∣w_j>\dfrac{\mathrm{OPT}(I)}{\lvert R_l\rvert}\lvert S_j\cap R_l\rvertである。j∈Olj\in\mathcal O_lについて加え、j∈O∖Olj\in\mathcal O\setminus\mathcal O_lについては∣Sj∩Rl∣=0\lvert S_j\cap R_l\rvert=0かつwj>0w_j>0であることを用いると

OPT(I)=∑j∈Owj ≥ ∑j∈Olwj > OPT(I)∣Rl∣∑j∈Ol∣Sj∩Rl∣=OPT(I)∣Rl∣∑j∈O∣Sj∩Rl∣ ≥ OPT(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)>0\mathrm{OPT}(I)>0と上で示した∑j∈O∣Sj∩Rl∣≥∣Rl∣\sum_{j\in\mathcal O}\lvert S_j\cap R_l\rvert\ge\lvert R_l\rvertを用いた。両端を比べるとOPT(I)>OPT(I)\mathrm{OPT}(I)>\mathrm{OPT}(I)となり矛盾する。よってj0∈Olj_0\in\mathcal O_lが存在して

wj0∣Sj0∩Rl∣ ≤ OPT(I)∣Rl∣\frac{w_{j_0}}{\lvert S_{j_0}\cap R_l\rvert}\ \le\ \frac{\mathrm{OPT}(I)}{\lvert R_l\rvert}

が成り立つ。

結論。ele_lが課金された反復で選ばれた添字をj∗j^{*}とする。j0j_0はSj0∩Rl≠∅S_{j_0}\cap R_l\ne\emptysetを満たすので、その反復における候補である。手続きは候補の中で比を最小にする添字を選ぶので

price(el)=wj∗∣Sj∗∩Rl∣ ≤ wj0∣Sj0∩Rl∣ ≤ OPT(I)∣Rl∣ ≤ OPT(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}

である。最後の不等号は∣Rl∣≥k−l+1\lvert R_l\rvert\ge k-l+1とOPT(I)>0\mathrm{OPT}(I)>0による。▨

定理 3.6. 重み付き集合被覆問題のインスタンスI=(U,J,(Sj),(wj))I=\bigl(U,J,(S_j),(w_j)\bigr)に対しk=∣U∣k=\lvert U\rvertと置く。定義 3.3の手続きが出力する被覆C\mathcal Cについて

w(C) ≤ Hk⋅OPT(I)w(\mathcal C)\ \le\ H_k\cdot\mathrm{OPT}(I)

が成り立つ。

証明.命題 3.4 (3)によりC\mathcal Cは被覆であり、5 により

w(C)=∑e∈Uprice(e)=∑l=1kprice(el)w(\mathcal C)=\sum_{e\in U}\mathrm{price}(e)=\sum_{l=1}^{k}\mathrm{price}(e_l)

である。ここでe1,…,eke_1,\dots,e_kは補題 3.5のとおり課金された順に並べたUUの要素である。同補題を各項へ適用すると

w(C) ≤ ∑l=1kOPT(I)k−l+1=OPT(I)∑l=1k1k−l+1w(\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}

である。和の添字をi=k−l+1i=k-l+1と置き換えると、llが11からkkまで動くときiiはkkから11まで動くので

∑l=1k1k−l+1=∑i=1k1i=Hk\sum_{l=1}^{k}\frac{1}{k-l+1}=\sum_{i=1}^{k}\frac1i=H_k

である。よってw(C)≤Hk OPT(I)w(\mathcal C)\le H_k\,\mathrm{OPT}(I)を得る。▨

系 3.7. 正の整数KKを固定し、台集合の要素数がKK以下であるインスタンスだけからなる族を考える。定義 3.3の手続きにおいて、各反復で比を最小にする添字の選び方を一つ固定する。この選び方をどのように定めても、その手続きは、この族の上での重み付き集合被覆問題に対するHKH_K-近似アルゴリズムである。とくに、すべての費用が11であるインスタンスに対しては、選ばれる集合の個数が最小の被覆の集合の個数のHKH_K倍以下である。

証明.命題 3.4と補題 3.5の証明は、比を最小にする添字が複数あるときにどれを選ぶかに依存しない。よって定理 3.6は、選び方をどのように固定した場合についても成り立つ。

この族に属するインスタンスIIをとり、その台集合の要素数をkkとするとk≤Kk\le Kである。定理 3.6によりw(C)≤Hk OPT(I)w(\mathcal C)\le H_{k}\,\mathrm{OPT}(I)である。調和数はk≤Kk\le KのときHk≤HKH_{k}\le H_Kを満たす。実際、HK−Hk=∑i=k+1K1/i≥0H_K-H_{k}=\sum_{i=k+1}^{K}1/i\ge0である。よってw(C)≤HK OPT(I)w(\mathcal C)\le H_K\,\mathrm{OPT}(I)であり、定義 1.2の意味でρ=HK\rho=H_Kの場合の条件が成り立つ。

すべての費用が11である場合はw(C)=∣C∣w(\mathcal C)=\lvert\mathcal C\rvertであり、被覆の費用はその集合の個数に等しいので、最後の主張が従う。▨

例 3.8 (貪欲な集合被覆の手計算).U={e1,e2,e3}U=\{e_1,e_2,e_3\}、J={1,2,3,4}J=\{1,2,3,4\}とし、

S1={e1},S2={e2},S3={e3},S4={e1,e2,e3},S_1=\{e_1\},\quad S_2=\{e_2\},\quad S_3=\{e_3\},\quad S_4=\{e_1,e_2,e_3\},w1=13,w2=12,w3=1,w4=32w_1=\tfrac13,\quad w_2=\tfrac12,\quad w_3=1,\quad w_4=\tfrac32

とする。k=∣U∣=3k=\lvert U\rvert=3である。

最適値。被覆はUUを覆う添字の部分集合である。e1e_1を含む集合はS1S_1とS4S_4、e2e_2を含む集合はS2S_2とS4S_4、e3e_3を含む集合はS3S_3とS4S_4である。したがって被覆は、44を含むか、または1,2,31,2,3をすべて含むかのいずれかである。44を含む被覆の費用は3/23/2以上であり、{4}\{4\}で3/23/2が達成される。1,2,31,2,3をすべて含み44を含まない被覆は{1,2,3}\{1,2,3\}だけであり、その費用は1/3+1/2+1=11/61/3+1/2+1=11/6である。3/2=9/6<11/63/2=9/6<11/6であるからOPT(I)=3/2\mathrm{OPT}(I)=3/2である。

第一の反復。R={e1,e2,e3}R=\{e_1,e_2,e_3\}である。比は

w1∣S1∩R∣=1/31=13,w2∣S2∩R∣=1/21=12,w3∣S3∩R∣=11=1,w4∣S4∩R∣=3/23=12\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

であり、最小は1/31/3でj∗=1j^{*}=1である。price(e1)=1/3\mathrm{price}(e_1)=1/3と定め、R={e2,e3}R=\{e_2,e_3\}となる。

第二の反復。比はw2/1=1/2w_2/1=1/2、w3/1=1w_3/1=1、w4/2=(3/2)/2=3/4w_4/2=(3/2)/2=3/4である。S1∩R=∅S_1\cap R=\emptysetであるから11は候補ではない。最小は1/21/2でj∗=2j^{*}=2である。price(e2)=1/2\mathrm{price}(e_2)=1/2と定め、R={e3}R=\{e_3\}となる。

第三の反復。比はw3/1=1w_3/1=1、w4/1=3/2w_4/1=3/2である。最小は11でj∗=3j^{*}=3である。price(e3)=1\mathrm{price}(e_3)=1と定め、R=∅R=\emptysetとなって手続きは停止する。

出力と検算。C={1,2,3}\mathcal C=\{1,2,3\}であり

w(C)=13+12+1=2+3+66=116w(\mathcal C)=\frac13+\frac12+1=\frac{2+3+6}{6}=\frac{11}{6}

である。課金額の総和も1/3+1/2+1=11/61/3+1/2+1=11/6であり、命題 3.4 (5)と一致する。反復回数は33であり、∣U∣=3\lvert U\rvert=3以下である。

近似保証との照合。H3=1+1/2+1/3=11/6H_3=1+1/2+1/3=11/6であるから、定理 3.6の上界はH3⋅OPT(I)=(11/6)(3/2)=11/4H_3\cdot\mathrm{OPT}(I)=(11/6)(3/2)=11/4である。実際の費用は11/611/6であり、11/6≤11/411/6\le11/4が成り立つ。費用の比は(11/6)/(3/2)=11/9(11/6)/(3/2)=11/9であり、11より大きいので、この手続きは最適解を返していない。

課金額の上界との照合。補題 3.5はprice(el)≤OPT(I)/(k−l+1)\mathrm{price}(e_l)\le\mathrm{OPT}(I)/(k-l+1)を主張する。l=1l=1では1/3≤(3/2)/3=1/21/3\le(3/2)/3=1/2、l=2l=2では1/2≤(3/2)/2=3/41/2\le(3/2)/2=3/4、l=3l=3では1≤(3/2)/1=3/21\le(3/2)/1=3/2であり、いずれも成り立つ。

注意 3.9 (近似比の証明は計算量の仮定を用いない).定理 2.7と定理 3.6の証明は、いずれも組合せ論的な不等式だけからなり、計算量クラスに関する事実を用いていない。

二つの手続きが速いことは別に述べることができる。以下では、実数の加法、減法、乗法、除法および比較をそれぞれ11回の基本操作と数える計算模型をとる。これは§E13.18 命題 2.2が実数の加法、比較および代入について置いた約束と同じ考え方によるもので、費用の比を計算するために減法、乗法および除法を加えて数える。いずれの模型も、実数の一回の演算に要する手数を入力の表し方から切り離して数えるという仮定を含む。

命題 2.4の手続きは高々mm回の反復からなり、各反復で辺を一つずつ調べてMMへ加えることができるかどうかを判定するので、基本操作の回数はmmとnnの多項式で抑えられる。定義 3.3の手続きは高々∣U∣\lvert U\rvert回の反復からなり、各反復で高々∣J∣\lvert J\rvert個の比を計算して最小のものを選ぶので、基本操作の回数は∣U∣\lvert U\rvertと∣J∣\lvert J\rvertの多項式で抑えられる。

この評価を§D2.8 定義 4.1の多項式時間へ移すことができるかどうかは、二つの問題で事情が異なる。頂点被覆の側の入力はグラフだけであり、実数を含まない。グラフを頂点の一覧と辺の一覧で与えるならば、入力を表すのに要するビット数はn+mn+m以上である。以下、ビット1個の読み出し、書き込みおよび比較をそれぞれ 1 回のビット操作とよぶ。この手続きが実際に扱うのは頂点と辺の番号だけであり、上に数えた基本操作はいずれも、そのビット数の多項式回のビット操作で実行することができる。よってこの手続きは§D2.8 定義 4.1の意味で多項式時間である。集合被覆の側の入力は正の実数である費用wjw_jを含む。任意の実数を有限のビット列で表すことはできないので、§D2.8 定義 4.1の入力サイズをこの入力に対して定めることができず、上の評価から同定義の意味の多項式時間を結論することはできない。費用が有理数として与えられ、その表記のビット数を入力サイズに数える場合に、比の計算と比較を何回のビット操作で実行することができるかは、本記事では扱わない。

「多項式時間で動く」という語の定義は§D2.8 定義 4.1が与える。判定問題のクラスP\mathrm PとNP\mathrm{NP}の言語としての定義は§E15.11 定義 1.2が扱う。本記事の近似保証は、これらの定義とその周辺の未解決問題から独立に成り立つ。

4 演習

問題 4.1.

  1. 補題 2.5の証明では、MMの各辺からCCに属する端点を一つ選んで単射を作っている。この単射性の議論を省き、「どの頂点被覆もMMの辺を覆うから∣M∣≤∣C∣\lvert M\rvert\le\lvert C\rvertである」とだけ書いたとする。この記述が証明になっていない理由を述べ、単射性がどこでMMがマッチングであるという仮定を使っているかを指摘せよ。
  2. 補題 2.6の証明で、極大性を最大性に置き換えたとする。すなわちMMが最大マッチングであるという仮定のもとで、同じ結論が得られるかどうかを判定し、得られる場合はその証明を書き、得られない場合は反例を与えよ。
  3. 定理 2.7の上界2τ(G)2\tau(G)がちょうど達成されるグラフの無限族を一つ作り、その族の各要素について∣C(M)∣=2τ(G)\lvert C(M)\rvert=2\tau(G)を満たす極大なマッチングMMが存在することを証明せよ。さらに、頂点数が2r2r(r≥2r\ge2)の完全グラフではこの上界が達成されないことを、その最小頂点被覆の頂点数を求めることによって示せ。
  4. 補題 3.5の証明の中心は、最適な被覆O\mathcal Oの中に比の小さい集合が存在するという背理法の段である。この段を、背理法を用いずに「重み付き平均の最小値は平均以下である」という形の直接の議論として書き直せ。
  5. 補題 3.5は、費用wjw_jがすべて正であることを二箇所で用いている。その二箇所を特定し、wj=0w_j=0である集合を許すと結論が成り立たなくなる例を作れ。
  6. 定義 3.3の手続きにおいて、比を最小にする添字ではなく∣Sj∩R∣\lvert S_j\cap R\rvertを最大にする添字を選ぶ規則に変えたとする。この規則のもとで定理 3.6と同じ形の近似保証が成り立つかどうかを判定し、成り立たないならば、費用の比がHkH_kを超える重み付きインスタンスを構成せよ。
  7. 集合被覆の各集合の要素数が高々ddであるインスタンスに限ると、補題 3.5の議論はより強い保証を与える。HdH_dによる近似保証を、本文の課金の議論をどのように書き換えれば得ることができるかを設計し、証明せよ。

6 扱った範囲と次の記事

本記事は、有限最小化問題、最適値および近似比を定義し、最小化では近似比が11以上の向きであることを示した。最小頂点被覆問題については、極大なマッチングを貪欲に求める手続きの停止性と正当性を示し、その端点集合が頂点被覆であることと、頂点数が2τ(G)2\tau(G)以下であることを別々に証明して、22-近似アルゴリズムを得た。重み付き集合被覆問題については、貪欲な手続きの停止性と正当性、費用が要素への課金額の総和に等しいこと、および各課金額が最適値を残りの要素数で割った値以下であることを証明し、調和数HkH_kによる近似保証を導いた。二つの例について、上界がちょうど達成される場合と達成されない場合をそれぞれ手計算で確かめた。

近似不能性、すなわち「ある比より良い近似アルゴリズムが存在しない」という形の主張は扱っていない。頂点に重みが付いた頂点被覆、線形計画の緩和と丸めによる近似、および近似スキームも扱っていない。

本記事は本単元の最後の記事である。

参考文献

  1. Vijay V. Vazirani, Approximation Algorithms, Springer, Berlin, 2001.極大マッチングによる頂点被覆の 2 近似と、貪欲な集合被覆の要素への課金による調和数の解析を参考にした。
  2. David P. Williamson and David B. Shmoys, The Design of Approximation Algorithms, Cambridge University Press, 2011.近似比の定義、下界としての緩和の使い方、および貪欲な集合被覆の費用配分の議論を参考にした。
  3. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, Cambridge, Massachusetts, 2022.頂点被覆と集合被覆に対する近似アルゴリズムの定式化を参考にした。

前提記事