根付き木

同義語:rooted tree順序付き根付き木ordered rooted tree

概要

根付き木(rooted tree)とは、木 $T$ とその頂点 $r$(根)の組 $(T,r)$ のことであり、各頂点から根へ向かうただ 1 つの道によって親・子・先祖・子孫・深さが定まる。根付き木は、どの頂点から親をたどっても根に着く親の写像と一対一に対応し、辺に根から外へ向かう向きを付けた有向グラフとも同じ情報をもつ。先祖の関係は根を最小元とし各頂点の先祖が鎖をなす半順序であり、逆にこの性質をもつ有限半順序集合は、被覆関係を辺とする根付き木からただ 1 通りに得られる。2 つの根付き木が同型かどうかは、子の括弧列を並べ替えてつないだ括弧列が一致するかで判定できる。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 木, 有向グラフ, 半順序集合, グラフの距離

根付き木 は、木 の頂点を 1 つ選んで根と呼び、根からの遠さによって頂点に上下の関係を入れたものである。家系図、ファイルの置き場所の階層、探索の手順が通った道筋など、「どこから来たか」をたどれる構造はこの形で表される。
根を決めると、根以外の各頂点に親がただ 1 つ定まる。逆に、どの頂点から親をたどっても根に着くような「親の写像」を与えれば、木と根が復元される(thm-rt-three)。また「先祖である」という関係は半順序になり、各頂点の先祖が一列に並ぶという性質によって、根付き木は半順序集合として特徴づけられる(thm-rt-order)。さらに、2 つの根付き木が同じ形かどうかは、各頂点に括弧の列を帰納的に割り当てて比べれば判定できる(thm-rt-iso)。
この記事では、木は有限の単純グラフで、頂点を 1 つ以上もつものとする(木 の記事の定義「木」と注意「空グラフを木に含めるか」)。

定義

木 $T$ の任意の 2 頂点はただ 1 つの道で結ばれる(木 の記事の命題「木の三つの基本性質」の 1)。根付き木の語彙は、この道を使って定める。

根付き木

木 $T=(V,E)$ と頂点 $r\in V$ の組 $(T,r)$ を 根付き木(rooted tree)といい、$r$ を 根(root)という。$v\in V$ について、$T$ の中で $v$ と $r$ を結ぶただ 1 つの道を $P_v$ と書く。

  1. $v\ne r$ のとき、$P_v$ の上で $v$ のすぐ次の頂点を $v$ の 親(parent)といい、$p(v)$ と書く。$p(v)=u$ のとき、$v$ を $u$ の 子(child)という。
  2. $u$ が $P_v$ の上にあるとき、$u$ を $v$ の 先祖(ancestor)、$v$ を $u$ の 子孫(descendant)という。$v$ 自身も $v$ の先祖かつ子孫であり、$v$ 以外の先祖・子孫を 真の先祖・真の子孫 という。
  3. $P_v$ の長さ $d_T(v,r)$ を $v$ の 深さ(depth)といい、$\operatorname{dep}(v)$ と書く。深さの最大値を $(T,r)$ の 高さ(height)という。
  4. 子をもたない頂点を $(T,r)$ の 葉(leaf)という。
  5. $v$ の子孫全体が誘導する部分グラフを $T_v$ と書き、$(T_v,v)$ を $v$ を根とする 部分木(subtree)という。

$T_v$ は木であり、$(T_v,v)$ は根付き木である。実際、$w$ を $v$ の子孫とすると、$P_w$ のうち $w$ から $v$ までの部分にある頂点 $x$ では $P_x$ が $P_w$ の後半になるので、$x$ も $v$ の子孫であり、この部分は $T_v$ の中の道である。よって $T_v$ は連結で、木 $T$ の部分グラフなので閉路をもたない。同じ理由で、$w\ne v$ の $T_v$ の中での親と子は $T$ の中でのものと同じであり、$T_v$ の中での $w$ の深さは $\operatorname{dep}(w)-\operatorname{dep}(v)$ である。
木 の記事の定義「葉」は次数 $1$ の頂点を葉と呼ぶ。根付き木の葉はこれと少し違う。頂点が 2 個以上あるとき、根以外の頂点については「子をもたない」と「次数が $1$」は同じだが、次数 $1$ の根は木の葉であっても根付き木の葉ではない。頂点が 1 個だけの根付き木では、根が葉である。

根付き木の同型と順序付き根付き木
  1. 根付き木 $(T,r)$ と $(T',r')$ の 同型 とは、グラフ同型 $\varphi\colon V(T)\to V(T')$ であって $\varphi(r)=r'$ を満たすものをいう。同型があるとき $(T,r)\cong(T',r')$ と書く。
  2. 根付き木の各頂点の子の全体に全順序(左から右への並び)を 1 つずつ与えたものを 順序付き根付き木(ordered rooted tree)という。順序付き根付き木の同型とは、根付き木の同型であって、各頂点の子の並びを保つものをいう。

木として同型でも、根付き木としては同型でないことがある(ex-rt-path)。左右の 2 つの位置を区別する二分木は、順序付き根付き木ともまた別の対象である。子が 1 つしかないとき、それが左の子か右の子かを二分木は区別するからである。

直感

根付き木は「上下のある木」である。根を一番上に置き、親を子のすぐ上に描くと、深さが同じ頂点が同じ高さに並ぶ。木の辺には向きがないが、根を決めた瞬間に、各辺は「親の側」と「子の側」をもつ。どの頂点も上へ向かう道はただ 1 本しかないので、親をたどる操作は迷わずに根まで続く。この「上へ向かう道の一意性」が、親の写像による表し方、先祖の順序、部分木への分解という、根付き木の 3 つの見方をすべて支えている。

例

同じ木から作る異なる根付き木

3 頂点の道 $a-b-c$ を $P_3$ とする。根を $a$ にすると、$b$ は $a$ の子、$c$ は $b$ の子で、深さは $0,1,2$、高さは $2$、葉は $c$ だけである。根を $b$ にすると、$a,c$ はどちらも $b$ の子で、高さは $1$、葉は $a,c$ である。根付き木の同型は根を根に写し、グラフの同型は次数を保つので、根の次数が $1$ の $(P_3,a)$ と $2$ の $(P_3,b)$ は同型でない。一方 $a\leftrightarrow c$ の入れ替えは $(P_3,a)\cong(P_3,c)$ を与える。

探索で得られる根付き木

深さ優先探索 の記事の定義「深さ優先探索」は、根 $r$ から探索を始め、頂点 $v$ を初めて訪れたときに、そこへ来た頂点を親 $p(v)$ として記録する。$r$ から行ける頂点の全体の上で、記録された写像 $p$ をたどると必ず $r$ に戻るので、thm-rt-three によって $p$ から根付き木が 1 つ定まる。これが深さ優先探索木である。幅優先探索 でも同じように根付き木が得られ、その場合は各頂点の深さが元のグラフでの $r$ からの距離に等しい(幅優先探索 の記事の定理「幅優先探索の正しさ」)。

頂点の少ない根付き木

同型を除いた根付き木の個数は、頂点数 $n=1,2,3,4$ に対して $1,1,2,4$ である(thm-rt-iso により、括弧列をすべて書き出して数えればよい)。$n=3$ の 2 個は ex-rt-path の $(P_3,a)$ と $(P_3,b)$ である。$n=4$ の 4 個は、道の端を根にしたもの、道の内側の頂点を根にしたもの、星 $K_{1,3}$ の中心を根にしたもの、星の葉を根にしたものである(thm-rt-iso の括弧列による一覧を ex-rt-codes に示す)。
頂点に $1,\dots,n$ の名前を付けて区別する場合は、$\{1,\dots,n\}$ の上の木と根の組は $n^{n-1}$ 個ある(Cayleyの公式 の記事の系「完全グラフの全域木と根付き木」)。$n=3$ では、道が 3 本(真ん中の頂点の選び方)で、根の選び方が 3 通りなので $9=3^2$ 個である。

三つの表し方

根付き木は、根以外の頂点に親を対応させる写像だけで決まる。計算機の中で根付き木を「親の配列」として持てるのは、この事実による。

根付き木・親の写像・向き付け

$V$ を有限集合、$r\in V$ とする。写像 $p\colon V\setminus\{r\}\to V$ が 根 $r$ へ戻る とは、各 $v\in V\setminus\{r\}$ について、列 $v_0:=v$、$v_{j+1}:=p(v_j)$($v_j\ne r$ の間だけ続ける)が有限回で $r$ に達することをいう。次の 3 つの集合の間に、互いに逆な全単射がある。

  1. 頂点集合が $V$ の木 $T$ の全体。
  2. 根 $r$ へ戻る写像 $p\colon V\setminus\{r\}\to V$ の全体。
  3. 頂点集合が $V$ の有向グラフ $D$ であって、$r$ に入る辺はなく、$r$ 以外の各頂点に入る辺はちょうど 1 本で、どの頂点にも $r$ から有向道で行けるものの全体。
    1 から 2 へは $T$ に $(T,r)$ の親の写像 $p_T$ を対応させ、2 から 1 へは $p$ に $T_p:=\bigl(V,\{\{v,p(v)\}\mid v\ne r\}\bigr)$ を対応させる。2 と 3 の間では、$p$ に辺 $p(v)\to v$($v\ne r$)からなる有向グラフ $D_p$ を対応させる。

段 1(根 $r$ へ戻る写像の性質). $p$ を根 $r$ へ戻る写像とし、$v\ne r$ からの列を $v=v_0,v_1,\dots,v_k=r$ とする。この列の頂点は相異なる。実際、$i< j\le k$ で $v_i=v_j$ なら $v_i\ne r$ なので $v_{i+1}=v_{j+1}$ などが続き、列は $v_i,\dots,v_{j-1}$ を繰り返して $r$ に達しない。特に $p(v)\ne v$ である。また、相異なる $v,w\ne r$ について $\{v,p(v)\}\ne\{w,p(w)\}$ である。等しければ $w=p(v)$、$v=p(w)$ となり、$v$ からの列が $v,w,v,\dots$ と繰り返すからである。
段 2($T_p$ は木). 段 1 より $T_p$ はループのない単純グラフで、辺はちょうど $|V|-1$ 本ある。各頂点 $v$ は列 $v,p(v),\dots,r$ によって $r$ と結ばれるので、$T_p$ は連結である。辺が $|V|-1$ 本の連結グラフは木である(森 の記事の定理「森の同値条件」の 4 で連結成分が 1 個の場合)。
段 3(1 から 2 へ). 木 $T$ と $v\ne r$ について、$P_v$ から $v$ を除いた部分は $p_T(v)$ と $r$ を結ぶ道なので、道の一意性により $P_{p_T(v)}$ に等しい。よって $\operatorname{dep}(p_T(v))=\operatorname{dep}(v)-1$ であり、親をたどるたびに深さが $1$ ずつ減って、$\operatorname{dep}(v)$ 回で深さ $0$ の頂点 $r$ に達する。したがって $p_T$ は根 $r$ へ戻る。
段 4(互いに逆であること). $p$ を根 $r$ へ戻る写像とする。段 1 の列 $v,p(v),\dots,r$ は、頂点が相異なり隣どうしが $T_p$ の辺で結ばれるので $T_p$ の道であり、道の一意性によりこれが $T_p$ での $P_v$ である。そのすぐ次の頂点は $p(v)$ なので $p_{T_p}=p$ である。逆に木 $T$ について、$\{v,p_T(v)\}$ は $P_v$ の最初の辺なので $T$ の辺であり、段 3 と段 1 によりこれらは相異なる $|V|-1$ 本である。木 $T$ の辺もちょうど $|V|-1$ 本(木 の記事の命題「木の三つの基本性質」の 3)なので、$T_{p_T}=T$ である。
段 5(2 と 3). $D_p$ では、$r$ に入る辺はなく、$v\ne r$ に入る辺は $p(v)\to v$ の 1 本だけである。段 1 の列を逆にたどった $r=v_k\to v_{k-1}\to\dots\to v_0=v$ は有向道なので、どの頂点にも $r$ から行ける。逆に 3 の $D$ が与えられたら、$v\ne r$ に入るただ 1 本の辺の始点を $p_D(v)$ とする。$r$ から $v$ への有向道 $r=w_0\to w_1\to\dots\to w_k=v$ をとると、$w_j$ に入る辺は $w_{j-1}\to w_j$ だけなので $p_D(w_j)=w_{j-1}$ であり、$v$ から $p_D$ を $k$ 回たどると $r$ に達する。$p\mapsto D_p$ と $D\mapsto p_D$ が互いに逆であることは定義から直ちに分かる。$\square$

段 3 から、深さ $\operatorname{dep}(v)$ は $v$ から親を何回たどれば根に着くかの回数に等しい。また、根以外の頂点はちょうど 1 つの親をもつので、子の個数の総和は $|V|-1$ である。3 の有向グラフは、根から外へ向かう向きを辺に付けたもので、木 の記事の注意「根付き木の二つの表し方」の 2 つ目の表し方にあたる。向きを逆にして根へ向かう向きを付けても同じ情報を持つ。Stanley の教科書は、どの頂点からも根へ向かう有向道がただ 1 本ある有向グラフを、根付きの有向木(oriented tree with root)として扱っている(Sta13 Chapter 10)。

先祖の順序

「先祖である」という関係は、根付き木を半順序集合として見る見方を与える。

先祖の順序による特徴づけ
  1. $(T,r)$ を根付き木とし、$u\preceq v$ を「$u$ は $v$ の先祖」で定める。$\preceq$ は $V$ の半順序で、$r$ は最小元であり、各 $v$ について $\{u\mid u\preceq v\}$ は全順序部分集合(鎖)で、元の個数は $\operatorname{dep}(v)+1$ である。$v\ne r$ のとき、$p(v)$ は $\{u\mid u\prec v\}$ の最大元である。
  2. 逆に、有限な半順序集合 $(P,\le)$ が最小元 $r$ をもち、各 $v\in P$ について $\{u\mid u\le v\}$ が鎖であるとする。このとき、頂点集合が $P$ の根付き木 $(T,r)$ で、先祖の順序が $\le$ に一致するものがちょうど 1 つある。その辺は、$u< v$ であって $u< x< v$ となる $x$ がない組 $\{u,v\}$ の全体である。

1:thm-rt-three の証明の段 4 により、$P_v$ の頂点は $v,p(v),p^2(v),\dots,r$ である。よって $u\preceq v$ は「ある $k\ge0$ で $u=p^k(v)$」と同値である。$k=0$ から反射律、合成から推移律が従う。$u=p^k(v)$ かつ $v=p^l(u)$ なら、深さは $\operatorname{dep}(u)=\operatorname{dep}(v)-k$、$\operatorname{dep}(v)=\operatorname{dep}(u)-l$ なので $k=l=0$、すなわち $u=v$ であり、反対称律も成り立つ(深さの式は同じ証明の段 3 による)。$r$ はどの $P_v$ の上にもあるので最小元である。$v$ の先祖 $p^i(v)$ と $p^j(v)$($i\le j$)は $p^j(v)=p^{j-i}(p^i(v))\preceq p^i(v)$ を満たすので比較でき、先祖全体は鎖で、元の個数は $P_v$ の頂点の個数 $\operatorname{dep}(v)+1$ である。$v$ の真の先祖は $p^k(v)$($k\ge1$)で、どれも $p(v)$ の先祖なので、$p(v)$ が最大元である。
2:$v\ne r$ について、$\{u\mid u< v\}$ は $r$ を含む空でない有限の鎖なので最大元をもつ。それを $p(v)$ とする。$p(v)< v$ なので、$v$ から $p$ をたどる列は $\le$ について真に減少し、$P$ は有限なので止まる。止まるのは $r$ に達したときだけなので、$p$ は根 $r$ へ戻る写像であり、thm-rt-three により根付き木 $(T_p,r)$ が定まる。その親の写像は $p$ である。
$(T_p,r)$ の先祖の順序を $\preceq$ とする。$u\preceq v$ なら $u=p^k(v)$ なので $u\le v$ である。逆に $u\le v$ なら $u\preceq v$ であることを、$v$ の下にある元の個数 $|\{x\mid x< v\}|$ についての帰納法で示す。$u=v$ なら明らかである。$u< v$ なら、$u$ は鎖 $\{x\mid x< v\}$ の元でその最大元が $p(v)$ なので $u\le p(v)$ であり、$p(v)$ の下にある元は $v$ の下にある元より少ないので、帰納法の仮定から $u\preceq p(v)\preceq v$ である。
一意性:先祖の順序が $\le$ に一致する根付き木では、1 により親 $p(v)$ は $\{u\mid u< v\}$ の最大元に限られるので、親の写像は上の $p$ に一致し、thm-rt-three により木も一致する。辺について:$\{v,p(v)\}$ では $p(v)< v$ で、間に元 $x$ があれば $x\le p(v)$ となって矛盾する。逆に $u< v$ で間に元がなければ、$u\le p(v)< v$ から $u=p(v)$ である。よって辺の全体は「間に元のない組」の全体に等しい。$\square$

鎖の条件や最小元の条件を外すと、2 は成り立たない(下の反例の表)。根付き木の 2 頂点には、共通の先祖のうち最も深いものがある。

最も近い共通の先祖と距離

根付き木 $(T,r)$ の頂点 $u,v$ について、$u$ と $v$ の共通の先祖の全体は最大元 $\ell$ をもつ(最も近い共通の先祖)。さらに
$$d_T(u,v)=\operatorname{dep}(u)+\operatorname{dep}(v)-2\operatorname{dep}(\ell)$$
が成り立つ。

共通の先祖の全体は $r$ を含み、$v$ の先祖全体という鎖(thm-rt-order の 1)に含まれるので、空でない有限の鎖であり、最大元 $\ell$ をもつ。$u$ から親をたどって $\ell$ に着くまでの道を $Q_u$、$v$ から $\ell$ に着くまでの道を $Q_v$ とすると、長さはそれぞれ $\operatorname{dep}(u)-\operatorname{dep}(\ell)$、$\operatorname{dep}(v)-\operatorname{dep}(\ell)$ である。$Q_u$ と $Q_v$ に共通の頂点 $x$ があれば、$x$ は $u$ と $v$ の共通の先祖で、$\ell$ の子孫である。$\ell$ の最大性から $x=\ell$ である。よって $Q_u$ に $Q_v$ を逆にしてつないだものは $u$ と $v$ を結ぶ道であり、木の道の一意性によりこれが $u$ と $v$ を結ぶただ 1 つの道である。その長さが求める式である。$\square$

計算の上では、深さ優先探索で得た訪問区間を使うと、「$u$ は $v$ の先祖か」を区間の包含で判定できる(深さ優先探索 の記事の補題「訪問区間の入れ子」)。

部分木への分解と同型の判定

根付き木は、根と、根の子を根とする部分木の集まりに分かれる。この分解を繰り返すと、根付き木の形を括弧の列で書き表せる。

部分木への分解

$(T,r)$ を根付き木とし、$r$ の子を $w_1,\dots,w_k$ とする。

  1. $V(T)$ は $\{r\}$ と $V(T_{w_1}),\dots,V(T_{w_k})$ の交わらない和であり、$T$ の辺は、$k$ 本の辺 $\{r,w_i\}$ と、各 $T_{w_i}$ の辺からなる。
  2. 根付き木 $(T',r')$ について、$(T,r)\cong(T',r')$ であることと、$r$ の子全体から $r'$ の子全体への全単射 $\sigma$ で、各 $i$ について $(T_{w_i},w_i)\cong(T'_{\sigma(w_i)},\sigma(w_i))$ となるものが存在することは同値である。

1:$v\ne r$ の先祖のうち深さ $1$ のものはちょうど 1 つあり(先祖は深さ $0,1,\dots,\operatorname{dep}(v)$ の頂点を 1 つずつ含む鎖である)、それは $r$ の子である。よって $v$ はちょうど 1 つの $T_{w_i}$ に属する。$T$ の辺は $\{v,p(v)\}$($v\ne r$)の形である(thm-rt-three)。$v=w_i$ なら $\{w_i,r\}$ であり、そうでなければ $v$ と $p(v)$ はともに $w_i$ の子孫なので $T_{w_i}$ の辺である。
2:$\varphi$ を同型とする。グラフの同型は道を道に写し、$\varphi(r)=r'$ なので、$\varphi(P_v)$ は $T'$ の中で $\varphi(v)$ と $r'$ を結ぶ道、すなわち $P'_{\varphi(v)}$ である。よって $\varphi$ は親・子・先祖・子孫の関係を保ち、$r$ の子を $r'$ の子へ全単射に写し、$T_{w_i}$ を $T'_{\varphi(w_i)}$ へ同型に写す。$\sigma$ として $\varphi$ の制限をとればよい。
逆に $\sigma$ と同型 $\varphi_i\colon(T_{w_i},w_i)\to(T'_{\sigma(w_i)},\sigma(w_i))$ があるとき、$\varphi(r):=r'$、$T_{w_i}$ の上では $\varphi:=\varphi_i$ と定める。1 により $\varphi$ は頂点の全単射である。$T$ の辺は、1 により $\{r,w_i\}$ なら辺 $\{r',\sigma(w_i)\}$ に、$T_{w_i}$ の辺なら $\varphi_i$ により $T'_{\sigma(w_i)}$ の辺に写る。よって $\varphi$ は辺を辺に単射に写し、両方の木の辺の本数はともに頂点数から $1$ を引いたものなので、辺全体の間の全単射を引き起こす。したがって $\varphi$ はグラフの同型で、根を根に写す。$\square$

各頂点 $v$ に、括弧 $($ と $)$ の列 $\kappa(v)$ を、葉の側から帰納的に次のように対応させる。$v$ の子を $w_1,\dots,w_k$ とし、列 $\kappa(w_1),\dots,\kappa(w_k)$ を辞書式順序(文字の大小は $($ が $)$ より小さいとする)で小さい順に並べ替えたものを $\beta_1,\dots,\beta_k$ として
$$ \kappa(v):=(\,\beta_1\beta_2\cdots\beta_k\,) $$
とおく。葉 $v$ では $\kappa(v)=()$ である。$\kappa(v)$ は部分木 $(T_v,v)$ だけで決まる。$\kappa(r)$ を $(T,r)$ の 括弧列 と呼ぶ。
括弧の列が 釣り合っている とは、$($ と $)$ の個数が等しく、どの先頭部分でも $($ の個数が $)$ の個数以上であることをいう。釣り合った空でない列で、空でも全体でもない先頭部分ではつねに $($ の方が多いものを 既約 と呼ぶ。

括弧列の分解の一意性
  1. 各頂点 $v$ について $\kappa(v)$ は既約である。
  2. 釣り合った列は、既約な列の連結としてただ 1 通りに書ける。

1:$T_v$ の頂点数についての帰納法による。$\kappa(v)=(\beta)$ で、$\beta$ は既約な列の連結なので釣り合っており、先頭部分の $($ の超過は $0$ 以上である。$\kappa(v)$ の空でも全体でもない先頭部分は「$($ と $\beta$ の先頭部分」なので超過は $1$ 以上であり、全体では $0$ である。
2:先頭部分の超過($($ の個数から $)$ の個数を引いたもの)が初めて $0$ に戻る位置で切ると、そこまでは既約で、残りは釣り合っている。既約な最初の因子は、超過が初めて $0$ に戻る位置より手前では終われず(終わる位置では超過が $0$)、その位置より先まで続くこともできない(その位置までの先頭部分の超過が $0$ になり、既約性に反する)。よって最初の因子は一意に決まり、残りの長さについての帰納法で全体の一意性が従う。$\square$

根付き木の同型と括弧列

根付き木 $(T,r)$ と $(T',r')$ について、$(T,r)\cong(T',r')$ であることと、括弧列が一致すること $\kappa(r)=\kappa'(r')$ は同値である。

頂点数 $|V(T)|$ についての帰納法で示す。$r$ の子を $w_1,\dots,w_k$、$r'$ の子を $w'_1,\dots,w'_l$ とする。各部分木の頂点数は $|V(T)|$ より小さい。
$(T,r)\cong(T',r')$ とする。lem-rt-decompose の 2 により $k=l$ で、全単射 $\sigma$ と同型 $(T_{w_i},w_i)\cong(T'_{\sigma(w_i)},\sigma(w_i))$ がある。帰納法の仮定から $\kappa(w_i)=\kappa'(\sigma(w_i))$ なので、子の括弧列を並べ替えた列は両者で同じであり、$\kappa(r)=\kappa'(r')$ である。
逆に $\kappa(r)=\kappa'(r')$ とする。外側の括弧を除いた列 $\beta_1\cdots\beta_k$ と $\beta'_1\cdots\beta'_l$ は等しい。lem-rt-parse の 1 により $\beta_i,\beta'_j$ は既約なので、同じ補題の 2 により $k=l$ かつ $\beta_i=\beta'_i$ がすべての $i$ について成り立つ。$\beta_i=\kappa(w_{\tau(i)})$、$\beta'_i=\kappa'(w'_{\tau'(i)})$ となる並べ替え $\tau,\tau'$ をとり、$\sigma(w_{\tau(i)}):=w'_{\tau'(i)}$ と定めると、$\sigma$ は子の間の全単射で $\kappa(w)=\kappa'(\sigma(w))$ を満たす。帰納法の仮定から $(T_w,w)\cong(T'_{\sigma(w)},\sigma(w))$ であり、lem-rt-decompose の 2 により $(T,r)\cong(T',r')$ である。$\square$

小さい根付き木の括弧列

$(P_3,a)$ の括弧列は $((()))$、$(P_3,b)$ の括弧列は $(()())$ で、異なる。4 頂点の根付き木の括弧列は次の 4 つで、thm-rt-iso によりこれらは互いに同型でない。

4 頂点の場合の計算を開く

道の端を根にしたもの:$(((())))$。星の葉を根にしたもの:根の子が 1 つで、その子が葉 2 つをもつので $((()()))$。道の内側の頂点を根にしたもの:根の子は葉と、子を 1 つもつ頂点で、子の括弧列 $()$ と $(())$ を小さい順($(())$ が先)に並べて $((())())$。星の中心を根にしたもの:$(()()())$。


並べ替えをしないと、同型な根付き木に異なる列が付きうる。根の子に葉と「子を 1 つもつ頂点」があるとき、子を並べる順によって $(()(()))$ と $((())())$ の 2 通りが出る。

子の並びを保つ順序付き根付き木では、並べ替えをせずに子の順に括弧列をつなげばよい。同じ議論により、順序付き根付き木の同型類は括弧列で区別され、頂点が $n+1$ 個の順序付き根付き木の括弧列から外側の括弧を除くと、長さ $2n$ の釣り合った列が得られる。lem-rt-parse の 2 で釣り合った列を既約な列に分け、各因子について同じことを繰り返せば逆の対応が作れるので、これは全単射である。釣り合った列は Catalan数 の記事の定義「Dyck 列と Catalan 数」の Dyck 列なので、頂点が $n+1$ 個の順序付き根付き木の同型類は Catalan 数 $C_n$ 個ある。

反例の表

外す条件反例成り立たなくなること
写像 $p$ が根へ戻る(thm-rt-three の 2)$V=\{r,a,b\}$、$p(a)=b$、$p(b)=a$$T_p$ の辺は $\{a,b\}$ の 1 本だけで、$r$ が孤立し、木にならない
同型が根を根に写す$(P_3,a)$ と $(P_3,b)$(ex-rt-path)木としては同型だが、根付き木としては同型でない
下の集合が鎖(thm-rt-order の 2)$0< a< c$、$0< b< c$ で $a,b$ が比較できない 4 元の半順序集合$c$ の親の候補が $a,b$ の 2 つあり、被覆関係の辺は閉路 $0,a,c,b$ をなす。先祖の順序が一致する根付き木はない
最小元がある(thm-rt-order の 2)比較できない 2 元 $a,b$ だけの半順序集合被覆関係の辺がなく、グラフが連結でない(根付き森にはなる)
子の括弧列を並べ替える(thm-rt-iso)ex-rt-codes の $(()(()))$ と $((())())$同型な根付き木に異なる列が付く

1 行目では、$a$ から $p$ をたどる列は $a,b,a,\dots$ と繰り返して $r$ に達しない。3 行目の半順序集合は、各元の下の集合が鎖という条件だけを破り、最小元 $0$ はもつ。$c$ の下の集合 $\{0,a,b,c\}$ は $a,b$ が比較できないので鎖でない。先祖の順序では各頂点の先祖が鎖になる(thm-rt-order の 1)ので、この順序を先祖の順序にもつ根付き木はない。

補足

  • 根付き森:森 の各連結成分に根を 1 つずつ選んだものを根付き森という(森 の記事の定義「橋と根付き森」)。根付き森は、新しい頂点を 1 つ加えて各根と結べば、その頂点を根とする根付き木になる。この対応で、$\{1,\dots,n\}$ の上の根付き森が $(n+1)^{n-1}$ 個あることが示される(森 の記事の命題「根付き森の個数」)。
  • アルゴリズムでの使い方:部分木 $(T_v,v)$ についての量を子の部分木の量から求める計算(動的計画法)は、根付き木の上で子から親の順に進めればよい。Erickson の教科書は、木の最大独立集合をこの方法で求める例で、根付き木・子孫・$v$ を根とする部分木を定義している(Eri19 §3.10、p. 121)。同書の第 3 章の演習 52(p. 155)は、二分木・順序付き根付き木・順序のない根付き木で同型の意味が違うことを述べている。
  • 向きの流儀:thm-rt-three の 3 では辺を根から外へ向けたが、根へ向けて扱う流儀もある(Sta13 Chapter 10)。どちらも親の写像と同じ情報をもつ。

関連項目

参考文献

[1]
Jeff Erickson, Algorithms, 1st paperback edition, Independently published, 2019, §3.10 Dynamic Programming on Trees (p. 121、根付き木・子孫・v を根とする部分木)、第 3 章の演習 52 (p. 155、二分木・順序付き・順序のない根付き木の同型)

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する