有向非巡回グラフ(directed acyclic graph)とは、有向閉路をもたない有向グラフであり、作業の前後関係や計算の依存関係、半順序の大小関係を表す。有向非巡回グラフであることは、頂点を 1 列に並べてすべての辺を前から後ろへ向けられること、隣接行列が冪零であること、深さ優先探索で後退辺が現れないことなどと同値である。各頂点で終わる最長の有向道の頂点数を高さとすると、頂点は辺のない層に分かれ、無向グラフの彩色数は非巡回な向き付けの最長の有向道の頂点数の最小値に等しい(Gallai–Roy の定理)。到達可能性を保つ辺の最も少ない部分グラフはただ 1 つに決まり、頂点に名前を付けた個数は包除原理による漸化式で数えられる。
有向非巡回グラフ(DAG)は、有向閉路をもたない有向グラフである。辺 $u\to v$ を「$u$ は $v$ より先」と読むと、有向閉路がないことは「先後の関係に矛盾がない」ことにあたる。作業の前後関係、計算の依存関係、半順序集合の大小関係、家系図など、向きの付いた依存関係はたいてい有向非巡回グラフで表される。
有向非巡回グラフであることは、さまざまな形で言い換えられる。頂点を 1 列に並べてすべての辺を前から後ろへ向けられること(位相的整列)、隣接行列が冪零であること、深さ優先探索で後退辺が現れないことなどである(thm-dag-char)。この記事では、これらの言い換えをまとめたうえで、有向非巡回グラフに固有の 3 つの話題を扱う。頂点を「層」に分ける高さの関数と、それによる無向グラフの彩色数の特徴づけ(thm-dag-gallai-roy)、到達可能性を変えずに辺を最も少なくした部分グラフがただ 1 つ存在すること(thm-dag-reduction)、頂点に名前を付けた有向非巡回グラフの個数の漸化式(thm-dag-count)である。
この記事の有向グラフ $D=(V,A)$ は 有向グラフ の記事の定義のとおりで、頂点の集合 $V$ は有限、有向辺の集合 $A\subset V\times V$ である。$(u,v)\in A$ を $u\to v$ と書く。有向歩道・有向道・有向閉路、到達可能性 $u\rightsquigarrow v$ は同記事の定義「有向歩道・有向道・有向閉路」「到達可能性と強連結性」に従う。有向道の長さは辺の本数である。
有向閉路をもたない有向グラフを 有向非巡回グラフ(directed acyclic graph、DAG)という。入次数が $0$ の頂点を 源点、出次数が $0$ の頂点を 沈点 という。
長さ $1$ の有向閉路はループ、長さ $2$ の有向閉路は向きの逆な 2 本の辺 $u\to v$、$v\to u$ なので、有向非巡回グラフはどちらももたない。有向非巡回グラフの部分グラフ(頂点や辺を除いたもの)も有向非巡回グラフであり、すべての辺の向きを逆にした逆有向グラフも有向非巡回グラフである(有向閉路を逆にたどれば有向閉路になるので)。逆有向グラフでは、源点と沈点が入れ替わる。
有向非巡回グラフでは、有向歩道はつねに有向道である。有向歩道 $v_0,\dots,v_\ell$ が同じ頂点を 2 度通れば、$v_i=v_j$($i< j$)となる組のうち $j-i$ が最小のものをとると、$v_{i+1},\dots,v_j$ は相異なり、$v_i,v_{i+1},\dots,v_j$ は有向閉路になるからである。この記事では、この事実を何度も使う。
有向非巡回グラフは「戻ってこられない」グラフである。どの頂点から出発して辺をたどっても、同じ頂点に戻ることはない。だから辺をたどる歩みは必ず有限回で止まり、止まった先は沈点である。逆向きにたどれば源点に行き着く。この性質のおかげで、源点から順に(あるいは沈点から逆に)頂点を処理していけば、ある頂点を処理するときに、その頂点が依存する頂点はすべて処理済みになっている。動的計画法で部分問題を解く順や、表計算のセルを再計算する順は、この考え方による(位相的整列 の記事の注意「使われ方と呼び名」)。
無向グラフの「閉路がない」グラフは森であり、辺が少ない。これに対して有向非巡回グラフは、基礎グラフに閉路があってもよく、辺はいくらでも多くなりうる。頂点 $1,\dots,n$ に対し $i< j$ のときに辺 $i\to j$ を置いたもの(推移的トーナメント)は、$\binom n2$ 本の辺をもつ有向非巡回グラフで、基礎グラフは完全グラフである。
4 頂点の閉路 $a,b,c,d$ の辺を $a\to b\to c\to d\to a$ と向けた有向グラフは、有向閉路をもつので有向非巡回グラフでない。源点も沈点もない。同じ閉路を $a\to b\to c\to d$、$a\to d$ と向ければ有向非巡回グラフになり、源点は $a$、沈点は $d$ である。
$n$ 頂点の有向グラフ $D=(V,A)$ について、次は同値である。
1 ⇒ 2:$D[U]$ は $D$ の部分グラフなので有向非巡回グラフであり、有向グラフ の記事の補題「入次数が 0 の頂点の存在」により源点をもつ。
2 ⇒ 1:有向閉路 $C$ があれば、その頂点の集合 $U$ について、$D[U]$ のどの頂点にも $C$ の辺が 1 本入るので、$D[U]$ は源点をもたない。
1 ⇔ 3:有向グラフ の記事の定理「非巡回性と位相的順序」である。
3 ⇔ 4:頂点を $v_1,\dots,v_n$ の順に番号付けると、隣接行列の $(i,j)$ 成分が $1$ であることは辺 $v_i\to v_j$ があることなので、「辺 $v_i\to v_j$ では $i< j$」と「$i\ge j$ なら $(i,j)$ 成分が $0$」は同じことである。
1 ⇔ 5:有向グラフ の記事の命題「隣接行列の冪と有向歩道の個数」の後の段落で示されている。
1 ⇔ 6:有向非巡回グラフはループをもたない。ループをもたない有向グラフについては、有向閉路をもつことと後退辺が現れることの同値が 深さ優先探索 の記事の定理「後退辺と有向閉路」の 2 である。$\square$
4 ⇒ 5 は、狭義上三角行列の $k$ 乗の $(i,j)$ 成分が $j-i< k$ なら $0$ になることからも直接分かる。2 の「源点」を「沈点」に替えても同値である(逆有向グラフを考えればよい)。
位相的整列 の求め方としては、源点を 1 つずつ取り除く手順(位相的整列 の記事の定理「源点を取り除く手順の性質」)と、深さ優先探索の終了時刻の大きい順に並べる方法(深さ優先探索 の記事の定理「後退辺と有向閉路」の 3)がある。どちらも頂点の個数と辺の本数の和に比例する手間で済み、同時に有向閉路の有無も判定できる。
有向道は頂点を高々 $n$ 個しか含まないので、各頂点で終わる最も長い有向道を考えることができる。有向非巡回グラフでは、これが辺に沿って真に増える量になる。
有向非巡回グラフ $D$ の頂点 $v$ について、$v$ で終わる有向道に含まれる頂点の個数の最大値を $v$ の 高さ といい、$h(v)$ と書く(長さ $0$ の有向道 $v$ があるので $h(v)\ge1$)。$D$ の有向道に含まれる頂点の個数の最大値を $\ell(D)$ と書く。$i=1,\dots,\ell(D)$ について $L_i:=\{v\mid h(v)=i\}$ を $D$ の第 $i$ 層 という。
有向非巡回グラフ $D$ について、次が成り立つ。
1:$u$ で終わる有向道で頂点が $h(u)$ 個のものに辺 $u\to v$ を付け加えると、$v$ で終わる有向歩道になり、有向非巡回グラフなので有向道である。よって $h(v)\ge h(u)+1$ である。$h(v)=1$ であることは $v$ に入る辺がないこと(入る辺 $u\to v$ があれば $h(v)\ge2$)と同じである。
2:$h$ の値は $1$ 以上 $\ell(D)$ 以下である。頂点が $\ell(D)$ 個の有向道 $w_1\to\dots\to w_{\ell(D)}$ をとると、$w_1,\dots,w_i$ は $w_i$ で終わる有向道なので $h(w_i)\ge i$ である。1 により $h(w_1)<\dots< h(w_{\ell(D)})\le\ell(D)$ でもあるので、$h(w_i)=i$ となり、各層は空でない。
3:1・2 により、層 $L_1,\dots,L_{\ell(D)}$ はそのような分け方なので、最小値は $\ell(D)$ 以下である。逆にそのような分け方 $U_1,\dots,U_r$ があれば、頂点が $\ell(D)$ 個の有向道に沿って組の添字は真に増える(同じ組の中に辺はない)ので、$r\ge\ell(D)$ である。$\square$
到達可能性で半順序集合とみなせば、3 の内容はDilworthの定理 の記事の定理「Mirskyの定理」(鎖の元の最大個数は、反鎖への分割の個数の最小値に等しい)の有向非巡回グラフ版である。位相的整列 の記事の命題「有向非巡回グラフの最長の道」の漸化式で各辺の重みを $1$ とすれば、すべての頂点の高さが頂点の個数と辺の本数の和に比例する手間で求まる。
無向グラフに向きを付けて有向非巡回グラフにすると、prop-dag-levels の層は頂点彩色の色類になる。このことから、無向グラフの彩色数を有向道の長さで特徴づけられる。
$G$ を有限の単純グラフとし、$\chi(G)$ をその彩色数とする。
1:$D$ の辺の部分集合のうち、それだけで有向非巡回グラフになるものの中で、包含について極大なもの $A'$ をとる(空集合はそのような部分集合なので存在する)。$D':=(V,A')$ とし、$D'$ での高さ $h$ を頂点の色とする。$G$ の辺 $uv$ は $D$ で $u\to v$ と向いているとしてよい。$u\to v$ が $A'$ に属すれば、prop-dag-levels の 1 により $h(u)< h(v)$ である。属さなければ、極大性により $A'$ に $u\to v$ を加えると有向閉路ができ、その閉路は $u\to v$ を通るので、$D'$ に $v$ から $u$ への有向道がある。その道に沿って prop-dag-levels の 1 を使えば $h(v)< h(u)$ である。どちらの場合も $u,v$ の色は異なるので、$h$ は $G$ の頂点彩色で、色は $1,\dots,\ell(D')$ である。よって $\chi(G)\le\ell(D')$ である。頂点が $\ell(D')$ 個の $D'$ の有向道は $D$ の有向道でもあるので、$D$ は頂点が $\chi(G)$ 個以上の有向道をもつ。
2:1 により、有向非巡回グラフであるどの向き付けでも $\ell(D)\ge\chi(G)$ である。逆に、$\chi(G)$ 色の頂点彩色 $c\colon V\to\{1,\dots,\chi(G)\}$ をとり、各辺 $uv$ を $c(u)< c(v)$ となる向きに $u\to v$ と向ける(隣り合う 2 頂点の色は異なるので向きが決まる)。有向道に沿って色は真に増えるので、有向閉路はなく、有向道の頂点の個数は $\chi(G)$ 以下である。よってこの向き付け $D$ は有向非巡回グラフで $\ell(D)\le\chi(G)$ である。$\square$
1 は Roy(1967)と Gallai(1968)による(BM76 Theorem 10.1、p. 174。同書は長さ $\chi-1$ の有向道として述べている)。完全グラフ $K_n$ の向き付けであるトーナメントに 1 を使うと、$\chi(K_n)=n$ なので、すべての頂点を通る有向道があることが分かる(トーナメント の記事の定理「Rédei の定理」)。
有向非巡回グラフ $D$ の到達可能性 $\rightsquigarrow$ は半順序である(位相的整列 の記事の命題「位相的整列と線形拡大」)。同じ到達可能性をもつ有向グラフは多数あるが、その中で辺の最も少ないものは 1 つに決まる。
有向非巡回グラフ $D=(V,A)$ の辺 $u\to v$ について、$u$ から $v$ への長さ $2$ 以上の有向道があるとき、この辺は 冗長 であるという。冗長な辺をすべて除いた有向グラフ $D^{\circ}:=(V,A^{\circ})$ を $D$ の 推移的簡約(transitive reduction)という。
$D=(V,A)$ を有向非巡回グラフとする。
1:$A^{\circ}\subset A$ なので、$D^{\circ}$ で到達可能なら $D$ でも到達可能である。逆を示すには、$D$ の各辺 $u\to v$ について $u\rightsquigarrow v$ が $D^{\circ}$ で成り立つことを示せばよい($D$ の有向歩道の各辺を $D^{\circ}$ の有向歩道に置き換えてつなげばよい)。$D$ の位相的整列 $\sigma\colon V\to\{1,\dots,n\}$ を 1 つとり(thm-dag-char の 3)、$\sigma(v)-\sigma(u)$ についての帰納法で示す。$u\to v$ が冗長でなければ $A^{\circ}$ に属する。冗長なら、$u$ から $v$ への長さ $2$ 以上の有向道 $u=x_0\to x_1\to\dots\to x_k=v$ があり、$\sigma(x_0)<\sigma(x_1)<\dots<\sigma(x_k)$ なので、各辺 $x_{i-1}\to x_i$ について $\sigma(x_i)-\sigma(x_{i-1})<\sigma(v)-\sigma(u)$ である。帰納法の仮定により各 $x_{i-1}\rightsquigarrow x_i$ が $D^{\circ}$ で成り立ち、つなげて $u\rightsquigarrow v$ を得る。
2:$u\to v$ を $A^{\circ}$ の辺とする。$u\ne v$ で、$E$ でも $v$ は $u$ から到達可能なので、$E$ に有向道 $u=y_0\to y_1\to\dots\to y_k=v$($k\ge1$)がある。$k\ge2$ と仮定する。$E$ の各辺 $y_{i-1}\to y_i$ について $y_{i-1}\rightsquigarrow y_i$ が $D$ で成り立つので、$D$ の有向歩道 $u\rightsquigarrow y_1$ と $y_1\rightsquigarrow v$ がある。$y_1$ は $u$ とも $v$ とも異なるので、どちらの有向歩道も長さ $1$ 以上で、つなげた $u$ から $v$ への有向歩道は長さ $2$ 以上である。$D$ は有向非巡回グラフなので、これは有向道である(def-dag-main の後の段落)。よって $u\to v$ は冗長となり、$A^{\circ}$ に属することに反する。したがって $k=1$ で、$u\to v\in B$ である。
最後の主張:1 により $D^{\circ}$ は同じ到達可能性をもち、2 によりそのような有向グラフはどれも $A^{\circ}$ を含むので、辺の本数は $|A^{\circ}|$ 以上で、等号は辺の集合が $A^{\circ}$ に等しいときに限る。$\square$
$u\to v$ が $D^{\circ}$ の辺であることは、到達可能性の半順序で $u$ が $v$ より小さく、その間に別の元がないことと同じである。すなわち $D^{\circ}$ は、到達可能性の半順序の Hasse図 である。たとえば約数の関係のグラフ(ex-dag-examples の 1)の推移的簡約は、$b/a$ が素数となる組 $a\to b$ だけを辺とするグラフである。
有向閉路があると一意性は成り立たない。3 頂点 $a,b,c$ の間に 6 本の辺をすべて置いた有向グラフと同じ到達可能性をもつ有向グラフのうち、辺が最も少ないものは $a\to b\to c\to a$ と $a\to c\to b\to a$ の 2 つある。
頂点の集合を $\{1,\dots,n\}$ とする有向非巡回グラフ(頂点に名前の付いた有向非巡回グラフ)の個数を $a_n$ とし、$a_0:=1$ とする。
$n\ge1$ について
$$
a_n=\sum_{k=1}^n(-1)^{k+1}\binom nk2^{k(n-k)}a_{n-k}
$$
が成り立つ。とくに $a_1=1$、$a_2=3$、$a_3=25$、$a_4=543$、$a_5=29281$ である。
$V=\{1,\dots,n\}$ 上の有向非巡回グラフ全体の集合を $\mathcal{D}$ とし、$v\in V$ について、$v$ が源点であるものの全体を $\mathcal{D}_v\subset\mathcal{D}$ とする。$n\ge1$ なら、どの有向非巡回グラフにも源点があるので(thm-dag-char の 2)、$\mathcal{D}=\bigcup_v\mathcal{D}_v$ である。包除原理 の記事の定理「包除原理の等式」により
$$
a_n=\sum_{\emptyset\ne S\subset V}(-1)^{|S|+1}\Bigl|\bigcap_{v\in S}\mathcal{D}_v\Bigr|
$$
である。$|S|=k$ のとき、$S$ のすべての頂点が源点である $V$ 上の有向非巡回グラフを数える。そのような有向グラフでは、$S$ の頂点に入る辺がないので、$S$ の中の辺も、$V\setminus S$ から $S$ への辺もない。逆に、
$n=2$ では、辺なし、$1\to2$、$2\to1$ の 3 個で、両向きの辺をもつものだけが除かれる。$\binom n2=\binom k2+\binom{n-k}2+k(n-k)$ を使うと、漸化式は母関数の等式
$$
\sum_{n\ge0}\frac{a_n}{n!\,2^{\binom n2}}x^n=\Bigl(\sum_{n\ge0}\frac{(-1)^n}{n!\,2^{\binom n2}}x^n\Bigr)^{-1}
$$
と同値である(漸化式を $2^{\binom n2}n!$ で割ると、右辺の 2 つの級数の積の $x^n$ の係数が $n\ge1$ で $0$ になることを表す)。この等式は Stanley が無向グラフの非巡回な向き付けの個数から導いた形である(Sta73 Proposition 2.1)。同論文は、単純グラフ $G$ の非巡回な向き付けの個数が、彩色多項式 $P_G$ を使って $(-1)^nP_G(-1)$ と表されることも示している(Sta73 Corollary 1.3。この記事では証明しない)。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 有向閉路がない(源点の存在) | 有向閉路 $a\to b\to c\to a$ | 源点も沈点もない |
| 有向閉路がない(thm-dag-reduction) | 3 頂点の間に 6 本の辺をすべて置いた有向グラフ | 同じ到達可能性で辺の最も少ないものが 2 つある |
| 内部に辺のない組(prop-dag-levels の 3) | 有向道 $a\to b\to c$ を 1 つの組とする | 組が $1$ 個になり $\ell(D)=3$ より少ない |
| 冗長な辺だけを除く(thm-dag-reduction の 1) | $a\to b\to c$、$a\to c$ から $a\to b$ を除く | $a$ から $b$ へ行けなくなり、到達可能性が変わる |
1 行目では、どの頂点にも辺が 1 本入り 1 本出る。3 行目で組の中に辺を許すと、すべての頂点を 1 つの組にでき、組の個数は $1$ になる。4 行目の $a\to b$ は冗長でない($a$ から $b$ への長さ $2$ 以上の有向道はない)。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する