✖

Snitt av regulære språk

La oss ha to regulære språk L1, L2. Vi skal bevise at snittet L = L1 ∩ L2 også er et regulært språk.

Ideen bak beviset

Vi har to regulære språk L1 og L2, og vi vil bevise at snittet L1 ∩ L2 igjen er et regulært språk. Siden L1 og L2 er regulære språk, finnes det endelige automater A1 og A2 som aksepterer språkene L1 og L2, altså gjelder L(A1) = L1 og L(A2) = L2. Vi konstruerer så en endelig automat A som aksepterer språket L1 ∩ L2, og dermed beviser vi at språket L1 ∩ L2 er regulært.

Et ord tilhører snittet av språkene hvis det tilhører språket L1 og samtidig L2. Altså må ordet aksepteres av automaten A1 og samtidig av automaten A2. Vi bruker nøyaktig den samme ideen som vi brukte for union av regulære språk, vi endrer bare mengden av sluttilstander.

Formalisering av framgangsmåten

Vi har to automater,

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

Vi konstruerer automaten A = ⟨Q, Σ, δ, q, F⟩ som aksepterer språket L(A1) ∩ L(A2). Det gjelder at

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

For overgangsfunksjonen δ vil denne sammenhengen gjelde:

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

Eksempel

La oss ha denne automaten A1, som aksepterer alle ord som inneholder et like antall enere:

og automaten A2, som aksepterer ord som inneholder et odde antall nuller:

Vi konstruerer en automat som skal akseptere snittet av disse språkene. Mengden av tilstander i denne automaten har formen Q = Q1 × Q2, starttilstanden er tilstanden ⟨q0, p0⟩, og sluttilstandene er F1 × F2:

Videre fyller vi ut overgangene slik at δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩:

I denne automaten går det for eksempel en overgang fra tilstanden ⟨q0, p0⟩ for symbolet 0 til tilstanden ⟨q0,p1⟩. Det betyr at automaten A1 har en overgang fra tilstanden q0 for symbolet 0 tilbake til tilstanden q0. Automaten A2 har på sin side en overgang for symbolet 0 fra tilstanden p0 til tilstanden p1.

Vi kan teste automaten. Den skal akseptere ord som 110 eller 00000 (de inneholder et like antall enere og samtidig et odde antall nuller), men den skal ikke akseptere ord som 11, 111, 1010.

Kilder

Kapitler: Lukkethet av regulære språk, Union av regulære språk, Snitt av regulære språk, Differanse av regulære språk, Komplementet til et regulært språk, Konkatenering av regulære språk, Kleene-stjernen til et regulært språk