share: true
aliases: ["Nedeterministický konečný automat", "NKA", "closure", "e-closure", "\varepsilon-Closure"]
Nedeterministický konečný automat (NKA)
- Každý NKA lze převést do nějakého DKA (ten ale často může mít více stavů)
- Pokud má NKA stavů, DKA může mít až stavů
- Často se využívá pro vytvoření návrhu algoritmů, protože vytvoření stavů je intuitivnější než u DKA
- Nedeterministický konečný automat
- - konečná množina vnitřních stavů
- - konečná vstupní abeceda
- - zobrazení z do množiny všech podmnožin (značíme )
- - počáteční stav
- - množina koncových stavů
Konečné automaty s -přechody
- Jsou vždy nedeterministické
- Význam -přechodu:
- Konečný automat vždy provede všechny -přechody před čtením dalšího symbolu
- K čemu je využít:
- Vyhledávání v textu s překlepy
-Closure
-
Tzv. uzávěr
-
Funkce pro konečný automat je definována takto:
-
-
Pro každý stav vytvoříme množinu stavů, do kterých se lze dostat přes přechody (tedy bez "ukrajování" vstupního řetězce)
-
Příklad:
Vztah mezi DKA a NKA
- Konečné automaty a nazýváme ekvivalentní, jestliže přijímají stejný jazyk, tj.
- Ke každému nedeterministickému konečnému automatu existuje ekvivalentní deterministický konečný automat
Převod NKA na DKA (determinizace)
- Vytvořím DKA takový, že každý jeho stav se sestává z množiny stavů NKA
- Počátečním stavem je množina obsahující počáteční stav NKA
- Stavy s přechodem pro stejný symbol sjednotím do 1 stavu
- Velikost výsledného DKA
- Pokud velikost , pak velikost může být až
- Pokud je homogenní NKA, pak počet stavů DKA získaného standardní determinizací (podmnožinovou konstrukcí) je omezen vztahem níže, tedy
Příklad 2:
NKA:
| Stav | a | b |
| ---- | ----- | ----- |
| -> 0 | {2,3} | {1,4} |
| <- 1 | {3} | {1} |
| <- 2 | {2} | {4} |
| 3 | {3} | {3} |
| 4 | {4} | {4} |
| | | |
DKA determinizovaný:
| Stav | a | b |
| -------- | ----- | ----- |
| -> {0} | {2,3} | {1,4} |
| <- {2,3} | {2,3} | {3,4} |
| <- {1,4} | {3,4} | {1,4} |
| {3,4} | {3,4} | {3,1} |
Úplně určený NKA
- nazveme úplně určený, když zobrazení
- Tedy každý přechod má v tabulce přechodů vyplněné políčko ve kterém není prázdná množina
Vytvořeno: 7. 8. 2024, 13:25
Poslední aktualizace: 7. 8. 2024, 13:25