✖

Reguláris nyelvek metszete

Legyen adott két reguláris nyelv, L1, L2. Bebizonyítjuk, hogy a metszetük, L = L1 ∩ L2 is reguláris nyelv.

A bizonyítás ötlete

Adott két reguláris nyelv, L1 és L2, és be akarjuk bizonyítani, hogy az L1 ∩ L2 metszet is reguláris nyelv. Mivel L1 és L2 reguláris nyelvek, léteznek olyan A1 és A2 véges automaták, amelyek elfogadják az L1, illetve az L2 nyelvet, vagyis L(A1) = L1 és L(A2) = L2. Ezután megszerkesztünk egy olyan A véges automatát, amely az L1 ∩ L2 nyelvet fogadja el, és ezzel bebizonyítjuk, hogy az L1 ∩ L2 nyelv reguláris.

Egy szó akkor tartozik a nyelvek metszetébe, ha az L1 és egyben az L2 nyelvnek is eleme. A szót tehát az A1 és egyben az A2 automatának is el kell fogadnia. Pontosan ugyanazt az ötletet használjuk, mint a reguláris nyelvek uniójánál, csak a végállapotok halmazát változtatjuk meg.

Az eljárás formalizálása

Adott két automata,

A1=⟨Q1,Σ1,δ1,q0,F1⟩A2=⟨Q2,Σ2,δ2,p0,F2⟩

Megszerkesztjük az A = ⟨Q, Σ, δ, q, F⟩ automatát, amely az L(A1) ∩ L(A2) nyelvet fogadja el. Teljesül, hogy

  • Q = Q1 × Q2
  • Σ= Σ1 ∩ Σ2
  • q = ⟨q0, p0⟩
  • F = F1 × F2

A δ átmeneti függvényre a következő összefüggés teljesül:

∀q∈Q1,p∈Q2:δ(⟨q,p⟩,a)=⟨δ1(q,a),δ2(p,a)⟩

Példa

Adott ez az A1 automata, amely elfogadja az összes olyan szót, amelyben páros számú 1 van:

és az A2 automata, amely a páratlan számú 0-t tartalmazó szavakat fogadja el:

Megszerkesztjük azt az automatát, amely e nyelvek metszetét fogadja el. Ennek az automatának az állapothalmaza Q = Q1 × Q2, a kezdőállapot a ⟨q0, p0⟩ állapot, a végállapotok pedig F1 × F2:

Ezután megrajzoljuk az átmeneteket úgy, hogy δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩:

Ebben az automatában például a ⟨q0, p0⟩ állapotból a 0 szimbólumra a ⟨q0,p1⟩ állapotba vezet átmenet. Ez azt jelenti, hogy az A1 automatában a q0 állapotból a 0 szimbólumra visszavezet átmenet a q0 állapotba. Az A2 automatában pedig a 0 szimbólumra a p0 állapotból a p1 állapotba vezet átmenet.

Az automatát ki is próbálhatjuk. El kell fogadnia az olyan szavakat, mint a 110 vagy a 00000 (páros számú 1-et és egyben páratlan számú 0-t tartalmaznak), de nem szabad elfogadnia az olyan szavakat, mint a 11, 111, 1010.

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