§E16.17マトロイドと貪欲法

最終更新

前の二つの記事で定めたマトロイドは、独立性という条件だけをもつ抽象的な構造である。本記事では、その構造が最適化のアルゴリズムと正確に対応することを示す。台集合の各元に非負の重みを与え、重みの大きい元から順に見て、独立性が保たれるかぎり採用するという単純な手続きを考える。この手続きは、与えられた集合族がマトロイドの独立集合族であれば、必ず重み最大の独立集合を出力する。

さらに逆が成り立つ。遺伝性だけをもつ有限な集合族に対して、すべての非負重みとすべての同順位の処理順で同じ手続きの出力が重み最大の独立集合であるならば、その集合族は増大公理を満たす。すなわち貪欲な手続きの正当性は、マトロイドであることと同値である。本記事ではこの二つの向きを証明する。

以下、マトロイドについては§E16.15 定義 1.1、基底については§E16.15 定義 2.1の定義を用いる。アルゴリズムの正当性は§D2.8 定義 1.1と§D2.8 定理 1.2、停止性は§D2.8 命題 1.4の枠組みで扱う。

1 独立集合系と重み

定義 1.1. 有限集合EEとI⊆2E\mathcal I\subseteq 2^{E}の組(E,I)(E,\mathcal I)が有限独立集合系 (finite independence system) であるとは、次の二条件を満たすことをいう。

  1. ∅∈I\emptyset\in\mathcal I。
  2. A∈IA\in\mathcal IかつB⊆AB\subseteq AならばB∈IB\in\mathcal I。

有限独立集合系においても、包含に関して極大なI\mathcal Iの元を基底 (basis) とよぶ。

有限独立集合系とは、§E16.15 定義 1.1の三条件のうち増大公理§E16.15 定義 1.1 条件 (I3)を要求しないものである。したがってマトロイドはつねに有限独立集合系である。一般の有限独立集合系では、基底の濃度は一つに定まらない。濃度が一つに定まることは§E16.15 命題 2.3により保証される性質である。その証明では、増大公理を用いている。

定義 1.2. 有限集合EE上の関数w:E→[0,∞)w:E\to[0,\infty)を非負重み (nonnegative weight) という。A⊆EA\subseteq Eに対しw(A)=∑x∈Aw(x)w(A)=\sum_{x\in A}w(x)をAAの重み (weight) という。空集合の重みは00と定める。

2 貪欲アルゴリズム

定義 2.1. 有限独立集合系(E,I)(E,\mathcal I)と非負重みw:E→[0,∞)w:E\to[0,\infty)を入力とする。n=∣E∣n=\lvert E\rvertと置き、EEの元の並べ方e1,e2,…,ene_1,e_2,\dots,e_nであってw(e1)≥w(e2)≥⋯≥w(en)w(e_1)\ge w(e_2)\ge\dots\ge w(e_n)を満たすものを一つ選ぶ。同じ重みをもつ元の間の順序は任意であり、この選び方を処理順 (processing order) という。次の手続きを貪欲アルゴリズム (greedy algorithm) という。

I0←∅;i←1;I_0\leftarrow\emptyset;\qquad i\leftarrow1;while i≤n do ( Ii←Ii−1∪{ei} (Ii−1∪{ei}∈I のとき),Ii←Ii−1 (それ以外);i←i+1 );\textbf{while }i\le n\textbf{ do }\Bigl(\ I_i\leftarrow I_{i-1}\cup\{e_i\}\ \text{(}I_{i-1}\cup\{e_i\}\in\mathcal I\text{ のとき)},\quad I_i\leftarrow I_{i-1}\ \text{(それ以外)};\quad i\leftarrow i+1\ \Bigr);return In.\textbf{return }I_n.

出力InI_nを、この処理順に対する貪欲解 (greedy solution) という。独立性の判定Ii−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iは一回の基本操作として数える。

命題 2.2.定義 2.1の貪欲アルゴリズムは、任意の有限独立集合系と任意の非負重みに対して有限回の反復で停止し、出力InI_nは(E,I)(E,\mathcal I)の基底である。

証明. 停止性. 変量V=n+1−iV=n+1-iを取る。i≤ni\le nのとき本体を実行するとiiが11増えるからVVは狭義に減少し、i≤ni\le nのあいだV≥1≥0V\ge1\ge0である。§D2.8 命題 1.4より手続きは有限回で停止し、停止時にはi=n+1i=n+1である。

不変条件. 述語PPを「Ii∈II_i\in\mathcal Iが成り立つ」と定める。初期化ではI0=∅I_0=\emptysetであり条件 (I1)よりPPが成り立つ。維持では、Ii=Ii−1∪{ei}I_i=I_{i-1}\cup\{e_i\}と更新する場合は条件Ii−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iが成り立つときに限られ、Ii=Ii−1I_i=I_{i-1}と更新する場合は帰納法の仮定からIi∈II_i\in\mathcal Iが従う。ゆえにPPは§D2.8 定義 1.1の意味でのループ不変条件であり、§D2.8 定理 1.2より停止時にIn∈II_n\in\mathcal Iが成り立つ。

極大性.InI_nが包含に関して極大でないと仮定する。x∈E∖Inx\in E\setminus I_nが存在してIn∪{x}∈II_n\cup\{x\}\in\mathcal Iとなる。x=eix=e_iと書く。手続きはI0⊆I1⊆⋯⊆InI_0\subseteq I_1\subseteq\dots\subseteq I_nを満たすからIi−1⊆InI_{i-1}\subseteq I_nであり、Ii−1∪{ei}⊆In∪{x}∈II_{i-1}\cup\{e_i\}\subseteq I_n\cup\{x\}\in\mathcal Iであるから条件 (I2)よりIi−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iである。ゆえに第ii反復でeie_iが採用されei∈Ii⊆Ine_i\in I_i\subseteq I_nとなるが、x=ei∉Inx=e_i\notin I_nに反する。ゆえにInI_nは極大であり、基底である。▨

3 貪欲アルゴリズムの最適性

3.1 証明方針

貪欲解GGの元を採用した順にg1,g2,…,grg_1,g_2,\dots,g_rと並べる。処理順が重みについて単調非増加であるから、この並びも重みについて単調非増加である。比較の相手となる独立集合AAの元も重みの降順にa1,…,asa_1,\dots,a_sと並べる。

示すべき中間目標は、各添字jjについてw(gj)≥w(aj)w(g_j)\ge w(a_j)が成り立つことである。中間目標が示されれば、s≤rs\le rと重みの非負性からw(A)≤w(G)w(A)\le w(G)が従う。

中間目標は背理法で示す。w(gj)<w(aj)w(g_j)<w(a_j)を満たすjjが存在したとする。貪欲解の最初のj−1j-1個からなる集合{g1,…,gj−1}\{g_1,\dots,g_{j-1}\}と、AAの最初のjj個からなる集合{a1,…,aj}\{a_1,\dots,a_j\}は、いずれも独立であり濃度がj−1j-1とjjである。ここで増大公理§E16.15 定義 1.1 条件 (I3)を適用すると、後者の元xxであって前者に加えても独立性が保たれるものが得られる。このxxの重みはw(aj)w(a_j)以上であるからw(gj)w(g_j)より真に大きく、したがってxxは処理順でgjg_jより前に現れる。xxを走査した時点での部分解は{g1,…,gj−1}\{g_1,\dots,g_{j-1}\}に含まれるので、遺伝性によりxxは採用されていたはずである。ところがxxは{g1,…,gj−1}\{g_1,\dots,g_{j-1}\}に属さないので矛盾する。増大公理を適用する位置と、重みの大小から処理順の前後を導く位置が、この証明の二つの要点である。

補題 3.1.M=(E,I)M=(E,\mathcal I)をマトロイド、w:E→[0,∞)w:E\to[0,\infty)を定義 1.2の意味の非負重みとし、処理順を一つ固定する。貪欲解GGの元を採用した順にg1,…,grg_1,\dots,g_rと書く。A∈IA\in\mathcal Iを任意に取り、その元を重みの降順にa1,…,asa_1,\dots,a_sと並べる。このときs≤rs\le rであり、1≤j≤s1\le j\le sを満たす任意のjjに対しw(gj)≥w(aj)w(g_j)\ge w(a_j)が成り立つ。

証明. まずw(g1)≥w(g2)≥⋯≥w(gr)w(g_1)\ge w(g_2)\ge\dots\ge w(g_r)が成り立つ。実際、gjg_jは処理順における添字がgj+1g_{j+1}より小さい位置で採用されるから、処理順の重みが単調非増加であることよりw(gj)≥w(gj+1)w(g_j)\ge w(g_{j+1})である。

s≤rs\le rを示す。命題 2.2よりGGは基底であり、§E16.15 系 2.4より任意の独立集合の濃度は基底の濃度以下であるからs=∣A∣≤∣G∣=rs=\lvert A\rvert\le\lvert G\rvert=rである。

w(gj)<w(aj)w(g_j)<w(a_j)を満たすj∈{1,…,s}j\in\{1,\dots,s\}が存在したとする。P={g1,…,gj−1}P=\{g_1,\dots,g_{j-1}\}、Q={a1,…,aj}Q=\{a_1,\dots,a_j\}と置く。P⊆G∈IP\subseteq G\in\mathcal IかつQ⊆A∈IQ\subseteq A\in\mathcal Iであるから、条件 (I2)よりP,Q∈IP,Q\in\mathcal Iであり、∣P∣=j−1<j=∣Q∣\lvert P\rvert=j-1<j=\lvert Q\rvertである。

§E16.15 定義 1.1 条件 (I3)よりx∈Q∖Px\in Q\setminus Pが存在してP∪{x}∈IP\cup\{x\}\in\mathcal Iとなる。x∈Qx\in Qでありa1,…,aja_1,\dots,a_jは重みの降順に並んでいるからw(x)≥w(aj)>w(gj)w(x)\ge w(a_j)>w(g_j)である。

処理順をe1,…,ene_1,\dots,e_nと書き、x=epx=e_p、gj=eqg_j=e_qとする。w(ep)>w(eq)w(e_p)>w(e_q)であり処理順の重みは単調非増加であるからp<qp<qである。第pp反復の直前の部分解をIp−1I_{p-1}と書くと、Ip−1I_{p-1}は第pp反復より前に採用された元だけからなり、p<qp<qであるから、それらはすべて第qq反復より前に採用された元である。貪欲解の元を採用順に並べた列がg1,…,grg_1,\dots,g_rでありgj=eqg_j=e_qであるから、第qq反復より前に採用された元はg1,…,gj−1g_1,\dots,g_{j-1}に限られる。ゆえにIp−1⊆PI_{p-1}\subseteq Pである。

したがってIp−1∪{x}⊆P∪{x}∈II_{p-1}\cup\{x\}\subseteq P\cup\{x\}\in\mathcal Iであり、条件 (I2)よりIp−1∪{x}∈II_{p-1}\cup\{x\}\in\mathcal Iである。ゆえに第pp反復でxxが採用され、p<qp<qであるからx∈{g1,…,gj−1}=Px\in\{g_1,\dots,g_{j-1}\}=Pとなる。これはx∈Q∖Px\in Q\setminus Pに反する。

ゆえにすべてのj∈{1,…,s}j\in\{1,\dots,s\}についてw(gj)≥w(aj)w(g_j)\ge w(a_j)が成り立つ。▨

命題 3.2.n=∣E∣n=\lvert E\rvertとする。定義 2.1の貪欲アルゴリズムのループはちょうどnn回反復し、独立性の判定をちょうどnn回行う。したがって独立性の判定を一回の基本操作として数えると、このアルゴリズムの時間計算量は§D2.8 定義 2.2の意味でO(n)O(n)である。

証明.命題 2.2の停止性の議論のとおり、変数iiは11から始まり各反復で11ずつ増え、i=n+1i=n+1となった時点で停止する。ゆえに本体が実行される回数はnnである。各反復では独立性の判定Ii−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iをちょうど一回行うから、判定の総数はnnである。

判定の回数を基本操作の回数とすると、実行回数は定数c=1c=1とn0=0n_0=0についてn≤c⋅nn\le c\cdot nを満たすから、§D2.8 定義 2.2よりO(n)O(n)である。▨

処理順を得るためにはEEの元を重みについて単調非増加に並べる必要がある。この並べ替えの費用は、整列の費用である。整列の計算量は先行記事の主題であって本記事の主張には含まれない。命題 3.2は、処理順が与えられた後の反復だけを対象とする評価である。

4 貪欲アルゴリズムの正当性によるマトロイドの特徴づけ

逆向きの含意で仮定するのは、すべての非負重みと、同順位の任意の処理順に対して貪欲解が重み最大の独立集合であることである。二つの量化のいずれを落としても、主張は成り立たなくなる。

定理 4.1 (Rado–Edmonds の定理).(E,I)(E,\mathcal I)を定義 1.1の意味の有限独立集合系とする。次の二条件は同値である。

  1. (E,I)(E,\mathcal I)はマトロイドである。
  2. 任意の非負重みw:E→[0,∞)w:E\to[0,\infty)と、wwに対する任意の処理順について、貪欲解GGがw(A)≤w(G)w(A)\le w(G)をすべてのA∈IA\in\mathcal Iについて満たす。

(1)が成り立つとき、任意の非負重みと処理順について、貪欲解GGは基底であり、とくに重みが最大の基底である。

証明.(1)⇒\Rightarrow(2)を示す。非負重みw:E→[0,∞)w:E\to[0,\infty)とwwに対する処理順を任意に取り、その処理順に対する貪欲解をGGとする。GGが基底であることは命題 2.2による。

A∈IA\in\mathcal Iを取り、補題 3.1の記号を用いる。s≤rs\le rかつw(gj)≥w(aj)w(g_j)\ge w(a_j)(1≤j≤s1\le j\le s)であるからw(A)=∑j=1sw(aj)≤∑j=1sw(gj)≤∑j=1rw(gj)=w(G)w(A)=\sum_{j=1}^{s}w(a_j)\le\sum_{j=1}^{s}w(g_j)\le\sum_{j=1}^{r}w(g_j)=w(G)が成り立つ。二つ目の不等号では、j>sj>sに対する項w(gj)w(g_j)が非負であることを用いた。

基底も独立集合であるから、GGは重みが最大の基底である。

(2)⇒\Rightarrow(1)を示す。(E,I)(E,\mathcal I)は条件 (I1)と条件 (I2)を満たすから、§E16.15 定義 1.1 条件 (I3)を示せばよい。

§E16.15 定義 1.1 条件 (I3)が成り立たないと仮定する。A,B∈IA,B\in\mathcal I、∣A∣<∣B∣\lvert A\rvert<\lvert B\rvertであって、すべてのx∈B∖Ax\in B\setminus AについてA∪{x}∉IA\cup\{x\}\notin\mathcal Iを満たすものが存在する。a=∣A∣a=\lvert A\rvert、b=∣B∣b=\lvert B\rvert、k=∣A∩B∣k=\lvert A\cap B\rvertと置く。a<ba<bよりa+1≤ba+1\le bであり、A∩B⊆AA\cap B\subseteq Aよりk≤ak\le aである。

ε=1a+1\varepsilon=\dfrac{1}{a+1}と置き、非負重みwwをw(x)={1+ε(x∈A)1(x∈B∖A)0(x∈E∖(A∪B))w(x)=\begin{cases}1+\varepsilon&(x\in A)\\ 1&(x\in B\setminus A)\\ 0&(x\in E\setminus(A\cup B))\end{cases}と定める。ε>0\varepsilon>0であるからwwの値は非負であり、重みの大きさはAAの元、B∖AB\setminus Aの元、それ以外の元の順に並ぶ。

処理順として、AAの元をすべて先に並べ、次にB∖AB\setminus Aの元を並べ、最後にE∖(A∪B)E\setminus(A\cup B)の元を並べたものを取る。この並びは重みについて単調非増加であるから定義 2.1の処理順の条件を満たす。

この処理順に対する貪欲解GGを調べる。まずAAの元を走査する段では、走査した時点の部分解をIIと書くとI⊆AI\subseteq Aであり、次の元x∈Ax\in AについてI∪{x}⊆A∈II\cup\{x\}\subseteq A\in\mathcal Iであるから条件 (I2)よりI∪{x}∈II\cup\{x\}\in\mathcal Iであってxxは採用される。ゆえにAAの走査が終わった時点の部分解はAAである。

次にB∖AB\setminus Aの元xxを走査する。この段の部分解はつねにAAである。実際、仮定よりすべてのx∈B∖Ax\in B\setminus AについてA∪{x}∉IA\cup\{x\}\notin\mathcal Iであるから、どの元も採用されない。

最後にE∖(A∪B)E\setminus(A\cup B)の元が走査されるが、これらの重みは00である。したがってG⊇AG\supseteq AかつG∩(B∖A)=∅G\cap(B\setminus A)=\emptysetであり、w(G)=w(A)+0=a(1+ε)=a+aεw(G)=w(A)+0=a(1+\varepsilon)=a+a\varepsilonである。

一方B∈IB\in\mathcal Iであり、BBはA∩BA\cap Bの元をkk個、B∖AB\setminus Aの元をb−kb-k個含むからw(B)=k(1+ε)+(b−k)⋅1=b+kε≥b≥a+1w(B)=k(1+\varepsilon)+(b-k)\cdot1=b+k\varepsilon\ge b\ge a+1である。aε=aa+1<1a\varepsilon=\dfrac{a}{a+1}<1であるからw(G)=a+aε<a+1≤w(B)w(G)=a+a\varepsilon<a+1\le w(B)となり、w(B)>w(G)w(B)>w(G)である。これは(2)に反する。

ゆえに§E16.15 定義 1.1 条件 (I3)が成り立ち、(E,I)(E,\mathcal I)はマトロイドである。▨

注意 4.2.定理 4.1 (2)から「任意の非負重み」という量化を落とし、ある一つの非負重みに対してだけ貪欲アルゴリズムが正しいことを要求する形にすると、主張は成り立たなくなる。実際、w≡0w\equiv0を取れば、どの有限独立集合系についても任意の出力の重みは00であり、I\mathcal Iの元の重みもすべて00であるから、貪欲解はつねに重み最大である。増大公理を満たさない有限独立集合系がこの条件を満たすので、一つの重みだけでは増大公理を導くことができない。

処理順についての量化も、上の証明が実際に用いている。証明で構成した重みwwはAAの元すべてに同じ値1+ε1+\varepsilonを、B∖AB\setminus Aの元すべてに同じ値11を与えるので、同順位の元が多数存在する。証明は、AAの元を先に走査する処理順を選んでいる。定理 4.1 (2)で「任意の処理順」が要求されているからこそ、この選択が許される。

5 具体例

例 5.1. 一様マトロイド.U2,4U_{2,4}の台集合をE={1,2,3,4}E=\{1,2,3,4\}とし、w(1)=5w(1)=5、w(2)=5w(2)=5、w(3)=2w(3)=2、w(4)=0w(4)=0とする。処理順を1,2,3,41,2,3,4とすると、貪欲アルゴリズムは11を採用し、22を採用し({1,2}\{1,2\}は二元集合であるから独立)、33については{1,2,3}\{1,2,3\}が三元集合であるから採用せず、44についても同様に採用しない。出力は{1,2}\{1,2\}であり重みは1010である。U2,4U_{2,4}の基底は二元集合であり、二つの元の重みの和が最大になるのは重み55の二元を選ぶときであるから、1010が最大値である。処理順を2,1,3,42,1,3,4に取り替えても出力は{1,2}\{1,2\}である。

グラフ的マトロイド. 頂点1,2,3,41,2,3,4と六本の辺a={1,2},b={1,3},c={1,4},d={2,3},e={2,4},f={3,4}a=\{1,2\},\quad b=\{1,3\},\quad c=\{1,4\},\quad d=\{2,3\},\quad e=\{2,4\},\quad f=\{3,4\}からなる完全グラフK4K_4を取り、重みをw(a)=4w(a)=4、w(b)=2w(b)=2、w(c)=5w(c)=5、w(d)=3w(d)=3、w(e)=1w(e)=1、w(f)=6w(f)=6とする。処理順はf,c,a,d,b,ef,c,a,d,b,eである。

  • f={3,4}f=\{3,4\}を採用する。部分解は{f}\{f\}であり、(V,{f})(V,\{f\})は閉路をもたない。
  • c={1,4}c=\{1,4\}を採用する。{f,c}\{f,c\}は頂点列3,4,13,4,1の道であり閉路をもたない。
  • a={1,2}a=\{1,2\}を採用する。{f,c,a}\{f,c,a\}は頂点列3,4,1,23,4,1,2の道であり閉路をもたない。三辺であるから全域木である。
  • d={2,3}d=\{2,3\}は採用しない。{f,c,a,d}\{f,c,a,d\}は頂点列2,3,4,1,22,3,4,1,2の長さ44の閉路を含む。
  • b={1,3}b=\{1,3\}は採用しない。{f,c,b}\{f,c,b\}は頂点列1,3,4,11,3,4,1の三角形を含む。
  • e={2,4}e=\{2,4\}は採用しない。{c,a,e}\{c,a,e\}は頂点列2,4,1,22,4,1,2の三角形を含む。

出力は{f,c,a}\{f,c,a\}であり重みは6+5+4=156+5+4=15である。§E16.15 命題 6.3より基底は全域木の辺集合であって濃度は∣V∣−1=3\lvert V\rvert-1=3であるから、どの基底の重みも三つの辺の重みの和である。六本の辺の重みのうち大きい三つは6,5,46,5,4であるから、どの基底の重みも1515以下である。ゆえに1515が最大値であり、貪欲解は重み最大の基底である。

例 5.2.E={1,2,3}E=\{1,2,3\}としI={∅, {1}, {2}, {3}, {1,2}}\mathcal I=\bigl\{\emptyset,\ \{1\},\ \{2\},\ \{3\},\ \{1,2\}\bigr\}と置く。∅∈I\emptyset\in\mathcal Iであり、I\mathcal Iの元の部分集合はすべてI\mathcal Iに属するから、(E,I)(E,\mathcal I)は有限独立集合系である。A={3}A=\{3\}、B={1,2}B=\{1,2\}とすると∣A∣=1<2=∣B∣\lvert A\rvert=1<2=\lvert B\rvertであるが、{3,1}\{3,1\}も{3,2}\{3,2\}もI\mathcal Iに属さないので§E16.15 定義 1.1 条件 (I3)は成り立たない。

w(3)=2w(3)=2、w(1)=w(2)=32w(1)=w(2)=\tfrac32と定める。重みはすべて相異なるわけではないが、w(3)w(3)が単独で最大であるから、どの処理順でも最初に走査されるのは33である。貪欲アルゴリズムは33を採用し、続く11と22については{3,1}∉I\{3,1\}\notin\mathcal I、{3,2}∉I\{3,2\}\notin\mathcal Iであるから採用しない。出力は{3}\{3\}であり重みは22である。一方{1,2}∈I\{1,2\}\in\mathcal Iの重みは33であるから、貪欲解は重み最大ではない。

定理 4.1の証明が構成する重みを、この例について計算すると次のようになる。a=∣A∣=1a=\lvert A\rvert=1であるからε=12\varepsilon=\tfrac12であり、w(3)=32w(3)=\tfrac32、w(1)=w(2)=1w(1)=w(2)=1、k=∣A∩B∣=0k=\lvert A\cap B\rvert=0である。AAを先に走査する処理順に対する貪欲解は{3}\{3\}で重みは32\tfrac32であり、w(B)=2>32w(B)=2>\tfrac32である。

6 演習

問題 6.1.

  1. マトロイドM=(E,I)M=(E,\mathcal I)と、負の値も許す関数w:E→Rw:E\to\Rをとり、A⊆EA\subseteq Eに対してw(A)=∑x∈Aw(x)w(A)=\sum_{x\in A}w(x)と置く。w(e1)≥⋯≥w(en)w(e_1)\ge\dots\ge w(e_n)を満たすEEの元の並べ方e1,…,ene_1,\dots,e_nについて定義 2.1と同じ手続きを実行した出力GGは、基底のうちでw(G)w(G)が最大のものであることを示せ。また、w(e1)≤⋯≤w(en)w(e_1)\le\dots\le w(e_n)を満たす並べ方について同じ手続きを実行した出力は、基底のうちで重みが最小のものであることを示せ。
  2. マトロイドM=(E,I)M=(E,\mathcal I)の階数関数をrrとし、非負重みwwと処理順e1,…,ene_1,\dots,e_nを固定して、その貪欲解をGGとする。実数ttに対してEt={x∈E: w(x)≥t}E_t=\{x\in E:\ w(x)\ge t\}と置く。G∩EtG\cap E_tが{I∈I: I⊆Et}\{I\in\mathcal I:\ I\subseteq E_t\}の包含に関して極大な元であることを示し、∣G∩Et∣=r(Et)\lvert G\cap E_t\rvert=r(E_t)を導け。さらにr(E)≥1r(E)\ge1とするとき、任意の基底BBについてmin⁡x∈Bw(x)≤min⁡x∈Gw(x)\min_{x\in B}w(x)\le\min_{x\in G}w(x)が成り立つことを示せ。
  3. マトロイドM=(E,I)M=(E,\mathcal I)と非負重みwwをとる。重みが最大の基底BBの元を重みの降順にb1,…,brb_1,\dots,b_rと並べたとき、数の列(w(b1),…,w(br))(w(b_1),\dots,w(b_r))はBBの選び方によらないことを示せ。さらに、wwが単射ならば重みが最大の基底はただ一つであることを示し、wwが単射でないときに重みが最大の基底が二つ以上ある例を作れ。
  4. 定理 4.1 (1)⇒\Rightarrow(2)の証明の最後の評価で用いた重みの非負性を落とすと、貪欲解が重み最大の独立集合であるという結論が成り立たなくなる例を、U1,2U_{1,2}に負の重みを与えて構成せよ。
  5. 定理 4.1 (2)⇒\Rightarrow(1)の証明で構成した重みwwについて、ε\varepsilonを1a+1\dfrac{1}{a+1}ではなく11に取ると証明が破綻することを、w(G)w(G)とw(B)w(B)の比較によって確かめよ。破綻しないε\varepsilonの範囲を求めよ。
  6. 定理 4.1 (2)⇒\Rightarrow(1)の証明を、B∖AB\setminus Aの元の重みを11ではなく1−δ1-\delta(δ>0\delta>0)に取り替え、重みがすべて相異なるように設計し直せ。δ\deltaに課すべき条件を書き下せ。
  7. 例 5.1のグラフの例で、重みw(f)w(f)を66から11へ変更したときの貪欲解を、処理順を明示して求めよ。得られた解が重み最大の全域木であることを、三辺の重みの和の最大値と比較して確かめよ。
解答.

(1)を示す。手続きの各反復で行う判定はIi−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iだけであるから、出力は並べ方e1,…,ene_1,\dots,e_nとI\mathcal Iだけで定まり、重みの値によらない。E=∅E=\emptysetのときは基底が∅\emptysetだけであり、出力も∅\emptysetであるから、主張が成り立つ。以下E≠∅E\ne\emptysetとし、§E16.15 命題 2.3による基底の共通の濃度をbbと書く。

前半を示す。c=max⁡{0, −min⁡x∈Ew(x)}c=\max\{0,\ -\min_{x\in E}w(x)\}と置き、w′(x)=w(x)+cw'(x)=w(x)+cと定める。c≥0c\ge0かつすべてのx∈Ex\in Eについてc≥−w(x)c\ge-w(x)であるから、w′w'は非負重みである。w′(e1)≥⋯≥w′(en)w'(e_1)\ge\dots\ge w'(e_n)であるから、e1,…,ene_1,\dots,e_nはw′w'に対する処理順であり、出力GGはw′w'に対するこの処理順の貪欲解である。定理 4.1よりGGは基底であり、すべての基底BBについてw′(B)≤w′(G)w'(B)\le w'(G)を満たす。基底BBについてw′(B)=w(B)+bcw'(B)=w(B)+bcであるから、w(B)+bc≤w(G)+bcw(B)+bc\le w(G)+bc、すなわちw(B)≤w(G)w(B)\le w(G)である。

後半を示す。W=max⁡x∈Ew(x)W=\max_{x\in E}w(x)と置き、w′′(x)=W−w(x)w''(x)=W-w(x)と定める。w′′w''は非負重みであり、w(e1)≤⋯≤w(en)w(e_1)\le\dots\le w(e_n)からw′′(e1)≥⋯≥w′′(en)w''(e_1)\ge\dots\ge w''(e_n)が従うので、e1,…,ene_1,\dots,e_nはw′′w''に対する処理順である。前半と同じく、出力G′G'は基底であり、すべての基底BBについてw′′(B)≤w′′(G′)w''(B)\le w''(G')を満たす。基底BBについてw′′(B)=bW−w(B)w''(B)=bW-w(B)であるから、bW−w(B)≤bW−w(G′)bW-w(B)\le bW-w(G')、すなわちw(G′)≤w(B)w(G')\le w(B)である。この議論では基底の濃度が一定であることを用いたので、比較の相手を基底に限れば重みの符号に条件は要らない。比較の相手を独立集合全体に広げると非負性が要ることは、(4)で確かめる。

(2)を示す。p=∣Et∣p=\lvert E_t\rvertと置く。Et={e1,…,ep}E_t=\{e_1,\dots,e_p\}であることを示す。ei∈Ete_i\in E_tかつi′<ii'<iならば、処理順の条件よりw(ei′)≥w(ei)≥tw(e_{i'})\ge w(e_i)\ge tであるからei′∈Ete_{i'}\in E_tである。ゆえにEtE_tの元の添字の集合は、ある番号以下の正の整数の全体であり、その個数はppであるから、Et={e1,…,ep}E_t=\{e_1,\dots,e_p\}である。

第ii反復で採用されうる元はeie_iだけであるから、IpI_pはGGの元のうちe1,…,epe_1,\dots,e_pのいずれかであるものの全体であり、G∩Et=IpG\cap E_t=I_pである。命題 2.2の証明の不変条件よりIp∈II_p\in\mathcal Iであり、Ip⊆EtI_p\subseteq E_tである。IpI_pの極大性を示す。x∈Et∖Ipx\in E_t\setminus I_pがIp∪{x}∈II_p\cup\{x\}\in\mathcal Iを満たすと仮定し、x=eix=e_i(1≤i≤p1\le i\le p)と書く。手続きはI0⊆I1⊆⋯⊆InI_0\subseteq I_1\subseteq\dots\subseteq I_nを満たすからIi−1⊆IpI_{i-1}\subseteq I_pであり、Ii−1∪{ei}⊆Ip∪{x}I_{i-1}\cup\{e_i\}\subseteq I_p\cup\{x\}である。条件 (I2)よりIi−1∪{ei}∈II_{i-1}\cup\{e_i\}\in\mathcal Iであるから、第ii反復でeie_iが採用され、ei∈Ii⊆Ipe_i\in I_i\subseteq I_pとなってx∉Ipx\notin I_pに反する。したがってG∩EtG\cap E_tは{I∈I: I⊆Et}\{I\in\mathcal I:\ I\subseteq E_t\}の極大な元であり、§E16.16 命題 4.2より∣G∩Et∣=r(Et)\lvert G\cap E_t\rvert=r(E_t)である。

後半を示す。BBを基底とする。§E16.15 系 2.4より∣B∣\lvert B\rvertは独立集合の濃度の最大値であるから∣B∣=r(E)≥1\lvert B\rvert=r(E)\ge1であり、B≠∅B\ne\emptysetである。t=min⁡x∈Bw(x)t=\min_{x\in B}w(x)と置く。B⊆EtB\subseteq E_tであり、BBはEtE_tに含まれる独立集合であるからr(Et)≥∣B∣r(E_t)\ge\lvert B\rvertである。命題 2.2よりGGは基底であり、§E16.15 命題 2.3より∣G∣=∣B∣\lvert G\rvert=\lvert B\rvertである。ゆえに∣G∩Et∣=r(Et)≥∣G∣\lvert G\cap E_t\rvert=r(E_t)\ge\lvert G\rvertであり、G∩Et⊆GG\cap E_t\subseteq Gと合わせてG∩Et=GG\cap E_t=G、すなわちG⊆EtG\subseteq E_tである。したがってGGのすべての元の重みはtt以上であり、min⁡x∈Gw(x)≥t=min⁡x∈Bw(x)\min_{x\in G}w(x)\ge t=\min_{x\in B}w(x)である。

(3)を示す。処理順を一つ選んでその貪欲解をGGとし、GGの元を採用した順にg1,…,grg_1,\dots,g_rと書く。定理 4.1より、GGは重みが最大の基底である。BBを重みが最大の基底とし、その元を重みの降順にb1,…,bsb_1,\dots,b_sと並べる。§E16.15 命題 2.3よりs=rs=rである。補題 3.1をA=BA=Bへ適用すると、1≤j≤r1\le j\le rを満たすすべてのjjについてw(gj)≥w(bj)w(g_j)\ge w(b_j)である。GGとBBはともに重みが最大の基底であるからw(G)=w(B)w(G)=w(B)であり、

∑j=1r(w(gj)−w(bj))=w(G)−w(B)=0\sum_{j=1}^{r}\bigl(w(g_j)-w(b_j)\bigr)=w(G)-w(B)=0

である。各項は非負であるから、すべてのjjについてw(bj)=w(gj)w(b_j)=w(g_j)である。ゆえに列(w(b1),…,w(br))(w(b_1),\dots,w(b_r))は(w(g1),…,w(gr))(w(g_1),\dots,w(g_r))に等しく、BBの選び方によらない。

wwが単射であるとする。等式w(bj)=w(gj)w(b_j)=w(g_j)と単射性より、1≤j≤r1\le j\le rを満たすすべてのjjについてbj=gjb_j=g_jであるから、B=GB=Gである。ゆえに重みが最大の基底はGGただ一つである。

例を作る。U1,2U_{1,2}の台集合をE={1,2}E=\{1,2\}とし、w(1)=w(2)=1w(1)=w(2)=1とする。§E16.15 命題 5.2より基底は{1}\{1\}と{2}\{2\}であり、どちらの重みも11であるから、重みが最大の基底は二つある。

(4)では、U1,2U_{1,2}の台集合をE={1,2}E=\{1,2\}とする。独立集合は∅\emptyset、{1}\{1\}、{2}\{2\}である。負の値を許した重みw(1)=−1w(1)=-1、w(2)=−2w(2)=-2を与え、定義 2.1の手続きをそのまま実行する。処理順はw(1)>w(2)w(1)>w(2)より1,21,2に定まる。{1}\{1\}は独立であるから11を採用し、{1,2}\{1,2\}は独立でないから22を採用しない。貪欲解はG={1}G=\{1\}であり、w(G)=−1w(G)=-1である。一方、∅\emptysetは独立集合でありw(∅)=0>−1w(\emptyset)=0>-1であるから、GGは重み最大の独立集合ではない。本文の評価にあてはめると、A=∅A=\emptysetではs=0s=0、r=1r=1であり、二つ目の不等号∑j=10w(gj)≤∑j=11w(gj)\sum_{j=1}^{0}w(g_j)\le\sum_{j=1}^{1}w(g_j)は0≤−10\le-1となって成り立たない。この不等号が、非負性を用いた箇所である。

(5)では、ε\varepsilonを一般の実数として、証明と同じ処理順に対する貪欲解を考える。AAの元をすべて先に走査する処理順が定義 2.1の条件を満たすには1+ε≥11+\varepsilon\ge1、すなわちε≥0\varepsilon\ge0が要る。ε≥0\varepsilon\ge0のとき、証明と同じ計算により

w(G)=a+aε,w(B)=b+kεw(G)=a+a\varepsilon,\qquad w(B)=b+k\varepsilon

である。

ε=1\varepsilon=1とするとw(G)=2aw(G)=2a、w(B)=b+kw(B)=b+kである。証明が用いることができるのはb≥a+1b\ge a+1と0≤k≤a0\le k\le aだけであり、b=a+1b=a+1、k=0k=0のときw(B)−w(G)=1−aw(B)-w(G)=1-aとなる。とくに例 5.2のA={3}A=\{3\}、B={1,2}B=\{1,2\}ではa=1a=1、b=2b=2、k=0k=0であり、ε=1\varepsilon=1の重みはw(3)=2w(3)=2、w(1)=w(2)=1w(1)=w(2)=1である。このときw(G)=w({3})=2w(G)=w(\{3\})=2、w(B)=2w(B)=2であり、w(B)>w(G)w(B)>w(G)が成り立たないので、矛盾は得られない。

破綻しない範囲を求める。仮定のもとでa≥1a\ge1である。実際、a=0a=0ならばA=∅A=\emptysetであり、b≥1b\ge1よりx∈Bx\in Bを取ると{x}⊆B∈I\{x\}\subseteq B\in\mathcal IからA∪{x}={x}∈IA\cup\{x\}=\{x\}\in\mathcal Iとなって仮定に反する。0≤ε<1/a0\le\varepsilon<1/aならば、b≥a+1b\ge a+1とkε≥0k\varepsilon\ge0より

w(G)=a+aε<a+1≤b≤b+kε=w(B)w(G)=a+a\varepsilon<a+1\le b\le b+k\varepsilon=w(B)

であり、証明は成立する。逆にε≥1/a\varepsilon\ge1/aのとき、証明が破綻する有限独立集合系がある。∣A∣=a\lvert A\rvert=a、∣B∣=a+1\lvert B\rvert=a+1、A∩B=∅A\cap B=\emptysetとし、E=A∪BE=A\cup B、I=2A∪2B\mathcal I=2^{A}\cup2^{B}と置く。(E,I)(E,\mathcal I)は有限独立集合系であり、x∈Bx\in Bに対してA∪{x}A\cup\{x\}はAAにもBBにも含まれないからI\mathcal Iに属さない。このときk=0k=0、b=a+1b=a+1であり、w(G)=a+aε≥a+1=w(B)w(G)=a+a\varepsilon\ge a+1=w(B)となって、w(B)>w(G)w(B)>w(G)は得られない。ε<0\varepsilon<0のときは、AAの元の重み1+ε1+\varepsilonがB∖AB\setminus Aの元の重み11より小さいので、AAの元を先に走査する処理順を取ることができない。ゆえに、どのA,BA,Bに対しても証明が成立するε\varepsilonの範囲は0≤ε<1/a0\le\varepsilon<1/aである。ε=1a+1\varepsilon=\dfrac{1}{a+1}はこの範囲に属し、ε=1\varepsilon=1はa≥1a\ge1より1≥1/a1\ge1/aを満たすので属さない。

(6)を示す。§E16.15 定義 1.1 条件 (I3)が成り立たないと仮定し、本文と同じくA,B∈IA,B\in\mathcal I、a=∣A∣<b=∣B∣a=\lvert A\rvert<b=\lvert B\rvert、k=∣A∩B∣k=\lvert A\cap B\rvertとする。n=∣E∣n=\lvert E\rvert、m=∣B∖A∣=b−km=\lvert B\setminus A\rvert=b-k、R=E∖(A∪B)R=E\setminus(A\cup B)、t=∣R∣t=\lvert R\rvertと置き、A={x1,…,xa}A=\{x_1,\dots,x_a\}、B∖A={y1,…,ym}B\setminus A=\{y_1,\dots,y_m\}、R={z1,…,zt}R=\{z_1,\dots,z_t\}と書く。a+m+t=na+m+t=nである。δ\deltaを

0<δ<1n20<\delta<\frac1{n^2}

を満たす実数とし、重みを

w(xi)=1+iδ(1≤i≤a),w(yj)=1−jδ(1≤j≤m),w(zl)=lδ(1≤l≤t)w(x_i)=1+i\delta\quad(1\le i\le a),\qquad w(y_j)=1-j\delta\quad(1\le j\le m),\qquad w(z_l)=l\delta\quad(1\le l\le t)

と定める。y1y_1の重みが1−δ1-\deltaである。

重みが非負で相異なり、AAの元、B∖AB\setminus Aの元、RRの元の順に真に小さくなることを確かめる。各集合の中では添字ごとに値が異なる。AAの元の重みは11より大きく、B∖AB\setminus Aの元の重みは11より小さい。m+t≤n≤n2m+t\le n\le n^2より(m+t)δ<1(m+t)\delta<1であるから、B∖AB\setminus Aの元の重みの最小値1−mδ1-m\deltaはRRの元の重みの最大値tδt\deltaより大きい。RRの元の重みは正である。ゆえに処理順はただ一つに定まり、AAの元、B∖AB\setminus Aの元、RRの元の順に走査する。

この処理順に対する貪欲解GGは、本文と同じ議論により、AAの走査を終えた時点でAAに等しく、B∖AB\setminus Aの元を一つも採用しない。RRの元のうち採用されたものの集合をSSと書くとG=A∪SG=A\cup Sであり、w(G)≤w(A)+w(R)w(G)\le w(A)+w(R)である。w(B)=w(A∩B)+w(B∖A)w(B)=w(A\cap B)+w(B\setminus A)とw(A)=w(A∩B)+w(A∖B)w(A)=w(A\cap B)+w(A\setminus B)より

w(B)−w(G)≥w(B∖A)−w(A∖B)−w(R)w(B)-w(G)\ge w(B\setminus A)-w(A\setminus B)-w(R)

である。AAの元の重みは1+aδ1+a\delta以下であり、∣A∖B∣=a−k\lvert A\setminus B\rvert=a-kであるからw(A∖B)≤(a−k)(1+aδ)w(A\setminus B)\le(a-k)(1+a\delta)である。また

w(B∖A)=m−m(m+1)2δ,w(R)=t(t+1)2δw(B\setminus A)=m-\frac{m(m+1)}2\delta,\qquad w(R)=\frac{t(t+1)}2\delta

である。m−(a−k)=b−a≥1m-(a-k)=b-a\ge1であるから

w(B)−w(G)≥1−Σδ,Σ=m(m+1)2+a(a−k)+t(t+1)2w(B)-w(G)\ge1-\Sigma\delta,\qquad\Sigma=\frac{m(m+1)}2+a(a-k)+\frac{t(t+1)}2

が成り立つ。Σ≤n2\Sigma\le n^2を示す。a(a−k)≤a2a(a-k)\le a^2であり、m+t=n−am+t=n-aより

m(m+1)2+t(t+1)2≤(m+t)(m+t+1)2=(n−a)(n−a+1)2≤(n−a)n\frac{m(m+1)}2+\frac{t(t+1)}2\le\frac{(m+t)(m+t+1)}2=\frac{(n-a)(n-a+1)}2\le(n-a)n

である。最後の不等号はn−a+1≤2nn-a+1\le2nによる。ゆえにΣ≤a2+(n−a)n=n2−a(n−a)≤n2\Sigma\le a^2+(n-a)n=n^2-a(n-a)\le n^2であり、Σδ<1\Sigma\delta<1である。したがってw(B)>w(G)w(B)>w(G)であり、定理 4.1 (2)に反する。

δ\deltaに課した条件は二つの不等式(m+t)δ<1(m+t)\delta<1とΣδ<1\Sigma\delta<1である。前者はB∖AB\setminus Aの元をRRの元より先に走査させるための条件であり、後者はw(B)>w(G)w(B)>w(G)を導くための条件である。0<δ<1/n20<\delta<1/n^2は両者を満たす。この設計では重みがすべて相異なるので処理順はただ一つであり、「任意の処理順」という量化を用いずに矛盾が得られる。

(7)では、重みはw(c)=5w(c)=5、w(a)=4w(a)=4、w(d)=3w(d)=3、w(b)=2w(b)=2、w(e)=w(f)=1w(e)=w(f)=1である。同順位のeeとffの順序をe,fe,fとして、処理順をc,a,d,b,e,fc,a,d,b,e,fとする。

  • c={1,4}c=\{1,4\}を採用する。部分解は{c}\{c\}である。
  • a={1,2}a=\{1,2\}を採用する。{c,a}\{c,a\}は頂点列4,1,24,1,2の道であり閉路をもたない。
  • d={2,3}d=\{2,3\}を採用する。{c,a,d}\{c,a,d\}は頂点列4,1,2,34,1,2,3の道であり閉路をもたない。三辺であるから全域木である。
  • b={1,3}b=\{1,3\}は採用しない。{a,d,b}\{a,d,b\}は頂点列1,2,3,11,2,3,1の三角形である。
  • e={2,4}e=\{2,4\}は採用しない。{c,a,e}\{c,a,e\}は頂点列1,2,4,11,2,4,1の三角形である。
  • f={3,4}f=\{3,4\}は採用しない。{c,a,d,f}\{c,a,d,f\}は頂点列1,2,3,4,11,2,3,4,1の長さ44の閉路である。

貪欲解は{c,a,d}\{c,a,d\}であり、重みは5+4+3=125+4+3=12である。処理順をc,a,d,b,f,ec,a,d,b,f,eとしても、{c,a,d}\{c,a,d\}は全域木であってどの辺を加えても閉路が生じるので、bb、ff、eeはいずれも採用されず、貪欲解は同じである。§E16.15 命題 6.3より基底は濃度33の全域木の辺集合であるから、どの基底の重みも三つの辺の重みの和である。六本の辺の重みのうち大きい三つは5,4,35,4,3であるから、どの基底の重みも1212以下である。ゆえに{c,a,d}\{c,a,d\}は重み最大の全域木である。▨

注意 6.2. 二つのマトロイドに共通の独立集合を求める問題、重み付きの共通独立集合、および劣モジュラ関数の最大化に対する近似保証は、本記事では扱っていない。

参考文献

  1. James Oxley, Matroid Theory, 2nd ed., Oxford University Press, 2011.貪欲アルゴリズムの定式化と、貪欲アルゴリズムの正当性によるマトロイドの特徴づけを参考にした。
  2. Bernhard Korte and Jens Vygen, Combinatorial Optimization: Theory and Algorithms, 6th ed., Algorithms and Combinatorics, Springer, 2018.有限独立集合系に対する貪欲アルゴリズムの解析と、最適性と交換公理の同値性の証明の構成を参考にした。

前提記事