# DAWG初出論文のメモ - [The Smallest Automaton Recognizing The Subwords of a Text](https://www.sciencedirect.com/science/article/pii/0304397585901574) ## 内容 ### 右同値類とDAWGの定義 - end-set(出現位置の右端の集合) に対して end-equivalentみたいな概念を作る - 右同値類に対する補題 - 右同値類が一致しているなら片方が片方のsuffixになる - 出現位置が一定数ズレて一致している - 右同値類の代表元(最長要素)は以下の2つのどちらか - prefixになっている - $aX$, $bX$ のように, 先行する文字が2種類以上存在する - DAWG: 右同値類に対するオートマトン - substringを受理するオートマトンとしては最小にならない - Fig2(a)のend-setが $\{3, 5\}$ であるノードはまとめられる - suffixを受理するオートマトンとして見ると最小 - Myhill-Nerode theoremというのがあり, これより明らからしい - あるオートマトンが受容する文字列集合 $L$ に対して, 文字列同士の二項関係 ${\equiv}_L$ を $x\ {\equiv}_L\ y \Leftrightarrow$ $xz$ と $yz$ のうち片方のみが $L$ に含まれるような文字列 $z$ が存在しない と定義する - この時, 最小のオートマトンの状態数は ${\equiv}_L$ の同値類の数と一致する ### サイズ関連の証明 - end-setには包含関係があるので, それを辺として書く (Fig3(a)) - これは代表元が $X$ のノードから代表元が $YX$ のノードに辺を生やしている事になり, このグラフはSuffix Link Treeを表している - $n > 2$ の場合, $v \leq 2n - 1$ となる - $S$ の文字が1種類である場合, $v = n+1$ - 根がnon-branching nodeである事を仮定するための場合分け - 代表元 $X$ に対して $aX$, $bX$ が存在する: branching node - 代表元がprefixである場合: non-branching node - この個数は $n$ 個以下となる - 木の縮約を考えると, branching nodeの個数は $n-1$ 個以下 - 上界は $S={\rm ab}^k$ で達成できる - これ以外の文字列では, $aX, bX$ が存在するような $X$ が $n-1$ 個存在しない - $n \geq 2$ の場合, $e \leq v + n - 2$ になる - DAWGの根付き全域木を考える - これには $v - 1$ 個の辺が存在する - 全域木の辺を使ってsourceから移動→全域木にない辺を1つ通る→適当なパスでsinkに移動 のようなパスを考える - source-sink間のパスなため, suffixを表す - パスが異なるため, 文字列も異なる - 全域木中にすでにsource-sinkのパスが1つ存在する - suffixは $n$ 個のため, 全域木にないパスの辺数は $n-1$ 個以下 - $n > 2$ の場合, $e$ は $3n-3$ でなく $3n-4$ で抑えられる - ${\rm ab}^n$ が頂点数の上界を達成できる唯一の例 - この時の辺数が $2n-1$ になるため, 辺数の上界が抑えられた