定義
サフィックスオートマトン(\(\オートマトンサフィックス{テキスト} \) 、略称(\ \テキストSAM} {\) )。文字列の\(S \)に相当するAサフィックスオートマトン(最小決定性有限オートマトンであり、DFA {テキスト} \)\ \( )、およびのみ受け入れる受け入れ\(S \)サフィックス。
例えば、文字列\(S = \下線aabbabd} {\)サフィックスオートマトンであり、
前記\(\ textcolorは[RGB] { 1,0,0} { }赤色ステータス\)終了状態です。あなたは、のために見つけることができます\(S \)サフィックス、我々はできるから\(S \) (パスマークされた文字に沿って離れる\(\の、textColor [RGB] {0,0,1} {}青の実線\ ))、そして最後に終了状態への移行。
具体的には、のために(S \)\サブストリングが最終的に有効な状態に到達します。以外の場合(S \)\文字列の部分文字列ます最終的には「どこにも行くことに。」
(\ \テキスト{SAM} \ ) 本質的に\(\ DFA {テキスト} \)、\ (\ DFAテキストは} {\) 5タプルとすることができる。<文字セット、状態集合、伝達関数、出発します状態、終了状態セット>表現します。それらのための\(\ textcolorは[RGB] { 0,1,0} { }緑色点線\)ではないが、\(\テキスト{DFA} \ ) 部分が、それは、(\テキスト{SAM} \ \ ) 重要一部は、これらのリンクで\(\テキストは{SAM} \ ) さらに強力で、これらのJiangzaiは、後に詳細に入ります。
ここでは、与えられた文字列のために導入し(S \)\それに対応するかを決定するためにどのように状態の集合と遷移関数を。
状態のSAMセット(アメリカ)
まず、概念最初に導入されたサブストリングのコレクションの終了位置 \(endposの\)
以下のための\(S \)ストリングの\(S \)、\ (endposの(S)= S \)中(S \)\すべてのエンド位置が表示されますのコレクション。
文字列\(S = \下線{aabbabd } \) 例
状態 | サブストリング | \(endposの\) |
---|---|---|
\(S \) | \(\ \ varnothing) | (\ \ {0,1,2,3,4,5,6 \} \) |
\(1 \) | \(\) | (\ \ {{1,2,5} \} \) |
\(2 \) | \(AA \) | (\ \ {2 \} \) |
\(3 \) | \(RE \) | (\ \ {3 \} \) |
\(4 \) | \(AABB、イチジク、BB \) | (\ \ {4 \} \) |
\(5 \) | \(B \) | (\ \ {3,4,6- \} \) |
\(6 \) | \(Aabba、アバ、父、\) | (\ \ {5 \} \) |
\(7\) | \(Aabbab、abbab、章、章\) | (\ \ {6 \} \) |
\(8 \) | \(アブ\) | (\ \ {3,6 \} \) |
\(9 \) | \(Aabbabd、abbabd、bbabd、babd、ABD、BD、D \) | \(\{7\}\) |