Reguláris nyelv lezárása
Adott egy L reguláris nyelv. Bebizonyítjuk, hogy az L nyelv lezárása is reguláris nyelv.
Mi a nyelv lezárása
Az L nyelv lezárását L∗ jelöli. A lezárás tartalmazza mindazokat a szavakat, amelyek az L nyelv szavainak véges sok összefűzésével előállíthatók. A lezárást így definiálhatjuk:
ahol ∘ az összefűzés műveletét jelöli. A lezárás az üres szót is tartalmazza, azaz az ϵ-t.
Formális eljárás
Nagyon hasonlóan járunk el, mint a nyelvek összefűzésénél. Csak két különböző automata összekapcsolása helyett egyetlen automatát kapcsolunk össze önmagával – az automata végállapotaiból epszilon-átmeneteket vezetünk az automata kezdőállapotába. A lezárásnak azonban tartalmaznia kell az üres szót is. Hogyan érjük ezt el? A kezdőállapotot végállapottá tehetnénk. Akkor az ilyen automata elfogadná az üres szót, de elfogadhatna más szavakat is. Ezért inkább létrehozunk egy új kezdőállapotot, és ebből epszilon-átmenetet vezetünk az eredeti kezdőállapotba.
Adott egy L1 reguláris nyelv és egy automata, amely ezt a nyelvet elfogadja:
Megszerkesztjük az A = ⟨Q, Σ, δ, qs, F⟩ nemdeterminisztikus automatát, amelyre teljesül:
- Q = Q1 ∪ {qs}
- Σ= Σ1
- F = F1 ∪ {qs}
A δ átmeneti függvényt így definiáljuk:
Példa
Adott ez az A1 automata, amely a 00 vagy 11 szavakat fogadja el:
Az L(A1) nyelv lezárása így az a nyelv, amely mindazokat a szavakat tartalmazza, amelyek 00 és 11 párokból állnak, például 0000, 110011, 11110000 és így tovább. Azt az automatát, amely ezt a lezárást elfogadná, úgy szerkesztenénk meg, hogy létrehoznánk egy új qs kezdőállapotot, amelyből epszilon-átmenet vezet az egykori q0 kezdőállapotba, és epszilon-átmeneteket adnánk a q3 és q4 állapotból a q0 állapotba:
Ellenőrizhetjük, hogy ez az automata valóban elfogadja a 0000, 110011, 11110000 szavakat, de például az 1010 szót nem fogadja el.
Források
Fejezetek: A reguláris nyelvek zártsága, Reguláris nyelvek uniója, Reguláris nyelvek metszete, Reguláris nyelvek különbsége, Reguláris nyelv komplementere, Reguláris nyelvek összefűzése, Reguláris nyelv lezárása