Skip to content

Abecedy a slova

  • Abeceda (\(\Sigma\)) je konečná množina symbolů, což mohou být písmena, čísla nebo jiné znaky. Abeceda musí obsahovat alespoň jeden prvek.
  • Řetězec (slovo) je posloupnost symbolů z této abecedy.
  • Délka řetězce (kolik má symbolů) se značí \(|\alpha|\).
  • Prázdný řetězec neobsahuje žádné symboly a značí se \(\varepsilon\), jeho délka je 0.
  • Počet výskytů určitého znaku (například a) v řetězci α se značí jako #a(α).
  • Reverzní (opačné) slovo \(a^R\) je slovo, které vznikne, když zapíšeš symboly slova α v opačném pořadí. Říká se tomu také zrcadlový obraz.
    • Například, pokud \(\alpha = a_1...a_n\), pak \(\alpha^R = a_n...a_1\).
    • Když obrátíš reverzní slovo zpět, dostaneš původní slovo: \((\alpha^R)^R = \alpha\).
    • Pro prázdný řetězec ε platí, že jeho reverzní obraz je stále prázdný: \(\varepsilon^R = \varepsilon\).
  • Podslovo \(\beta\) je část slova \(\alpha\). To znamená, že \(\beta\) se nachází někde uvnitř slova \(\alpha\).
    • Předpona (prefix) je podslovo na začátku slova \(\alpha\).
    • Přípona (sufix) je podslovo na konci slova \(\alpha\).

Řetězení

Zřetězení (neboli spojení či konkatenace) dvou řetězců je proces, kdy vezmeš jeden řetězec a připojíš k němu druhý. Například pro řetězce α a β spojíš oba za sebe a získáš nový řetězec.

Příklad

spojíš-li slova \(\alpha = (abc)\) a \(\beta = (123)\), výsledkem zřetězení bude slovo \((abc123)\).

Vlastnosti zřetězení

  • Délka spojeného řetězce je součet délek obou původních řetězců.
    • \(|\alpha.\beta| = |\alpha| + |\beta|\)
  • Spojením slova s prázdným slovem vznikne původní slovo
    • \(\alpha.\varepsilon = \varepsilon.\alpha = \alpha\)
  • Jedno slovo můžeme \(n\) krát zopakovat za sebou. To nazýváme \(n\)-násobné zřetězení a označuje se jako \(\alpha^n\).
    • Například \((abc)^3\) = \((abc).(abc).(abc) = (abcabcabc)\).
    • Pro \(n = 0\) je výsledek prázdné slovo \(\alpha^0 = \varepsilon\)
  • Řetězení slova je asociativní, to znamená, že nezáleží, co zřetězíme první a co druhý, ve výsledku je to stejný.
    • \(\alpha . \beta . \gamma = (\alpha . \beta) . \gamma = \alpha . (\beta . \gamma)\)
  • Řetězení není komutativní. Jinak řečeno, záleží na pořadí spojovaných slov.
    • \(\alpha . \beta \not= \beta . \alpha\)

Uzávěr abecedy

  • Uzávěr abecedy (\(\Sigma^*\)) je množina všech možných slov, které lze vytvořit z abecedy \(\Sigma\) (to jsou všechny možné kombinace jejích symbolů, včetně prázdného slova).
  • Pozitivní uzávěr (\(\Sigma^+\)) je stejná věc jako "klasický" uzávěr, ale neobsahuje prázdné slovo.
  • Uzávěry jsou všechny možné způsoby, jak můžeš spojit symboly z abecedy libovolněkrát.
    • Tím vznikne spočetná množina.
    • Spočetná množina je taková, jejíž prvky můžeš spočítat, jako přirozená čísla (1, 2, 3…).
    • Spočetná množina může být i nekonečná.

Kleeneho operátor

Operátor \(*\) se nazývá Kleeneho operátor a používá se pro vytváření uzávěrů