✖

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:

L∗={a1∘a2∘⋯∘an|ai∈L,n∈N},

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:

A1=⟨Q1,Σ1,δ1,q0,F1⟩

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:

δ(q,a)={δ1(q,a)haq∈Q1∧q∉F1δ1(q,a)haq∈F1∧a≠ϵδ1(q,a)∪{q0}haq∈F1∧a=ϵ{q0}haq=qs∧a=ϵ∅haq=qs∧a≠ϵ

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