Podsłowo

Ten artykuł dotyczy informatyki. Zobacz też: sufiks w językoznawstwie.

Podsłowo – spójny podciąg znaków danego łańcucha znaków.

Definicja formalna

Dla danego słowa t = x 1 x 2 x 3 x n {\displaystyle t=x_{1}x_{2}x_{3}\ldots x_{n}} podsłowem t {\displaystyle t} nazywamy słowo:

s = x i + 1 x i + 2 x i + m , {\displaystyle s=x_{i+1}x_{i+2}\ldots x_{i+m},}

dla pewnych liczb i {\displaystyle i} i m {\displaystyle m} takich, że 0 i i + m n . {\displaystyle 0\leqslant i\land i+m\leqslant n.}

Jeżeli dodatkowo m 0 {\displaystyle m\neq 0} (czyli s ε {\displaystyle s\neq \varepsilon } ) oraz m n {\displaystyle m\neq n} ( s t ) , {\displaystyle (s\neq t),} to takie podsłowo nazywamy właściwym.

Relacja bycia podsłowem (a zatem również relacje bycia prefiksem i bycia sufiksem) jest zwrotna, przechodnia i antysymetryczna, jest więc słabym porządkiem częściowym.

Przykład

Dla słowa banana, ana jest równe dwóm podsłowom rozpoczynającym się na dwóch różnych pozycjach:

b a n a ¯ _ n a ¯ {\displaystyle b{\underline {an{\overline {a}}}}{\overline {na}}}

Szczególne podsłowa

Prefiks

Zobacz hasło prefiks w Wikisłowniku

Słowo s {\displaystyle s} jest prefiksem słowa t {\displaystyle t} wtedy i tylko wtedy, kiedy istnieje słowo y {\displaystyle y} takie, że t = s y , {\displaystyle t=sy,} gdzie s y {\displaystyle sy} oznacza konkatenację słów s {\displaystyle s} i y . {\displaystyle y.} Taka relacja oznaczana jest poprzez s t {\displaystyle s\sqsubset t} [1].

Równoważna definicja zgodna z powyższą definicją podsłowa jest następująca: s t {\displaystyle s\sqsubset t} wtedy i tylko wtedy, gdy t = x 1 x 2 x 3 x n , {\displaystyle t=x_{1}x_{2}x_{3}\ldots x_{n},} a s = x 1 x 2 x 3 x j {\displaystyle s=x_{1}x_{2}x_{3}\ldots x_{j}} dla pewnego j { 0 , , n } . {\displaystyle j\in \{0,\dots ,n\}.}

Jeśli s {\displaystyle s} i y {\displaystyle y} są niepuste to s {\displaystyle s} jest nazywany prefiksem właściwym[2].

Przykładowo, b a n b a n _ a n a . {\displaystyle ban\sqsubset {\underline {ban}}ana.}

Sufiks

Zobacz hasło sufiks w Wikisłowniku

Słowo s {\displaystyle s} jest sufiksem słowa t {\displaystyle t} wtedy i tylko wtedy, kiedy istnieje słowo y {\displaystyle y} takie, że t = y s . {\displaystyle t=ys.} Relacja ta oznaczana jest wtedy poprzez s t {\displaystyle s\sqsupset t} [1].

Jeśli s {\displaystyle s} i y {\displaystyle y} są niepuste to s {\displaystyle s} jest nazywany sufiksem właściwym[2].

Przykładowo, n a b a n a n a _ . {\displaystyle na\sqsupset bana{\underline {na}}.}

Prefikso-sufiks

Właściwy prefiks danego słowa, który jest równy jego sufiksowi, nazywamy prefikso-sufiksem[3]. Znajdowanie prefikso-sufiksów tekstu jest kluczowe dla algorytmu Knutha-Morrisa-Pratta wyszukiwania wystąpień wzorca w tekście.

Zobacz też

Przypisy

  1. a b Diks, Krzysztof; Cormen, Thomas H: Wprowadzenie do algorytmów. Warszawa: Wydawnictwa Naukowo-Techniczne, 2007, s. 930. ISBN 978-83-204-3328-9.
  2. a b ŁukaszŁ. Grządko ŁukaszŁ., O rozkładzie słów na słowa Lyndona, „Delta”, styczeń 2015, s. 9 [dostęp 2018-06-27] .
  3. Diks, K, Malinowski, A, Rytter, W, Waleń, T: Algorytmy tekstowe I. [w:] Algorytmy i struktury danych [on-line]. [dostęp 2008-05-02].