✖

Kleene-stjernen til et regulært språk

Vi har et regulært språk L. Vi skal bevise at Kleene-stjernen til språket L igjen er et regulært språk.

Hva Kleene-stjernen til et språk er

Kleene-stjernen til språket L betegner vi L∗. Den inneholder alle ord som kan settes sammen ved å koble sammen et endelig antall ord fra språket L. Vi kan definere den som:

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

der ∘ betegner operasjonen konkatenering. Kleene-stjernen inneholder også det tomme ordet, altså ϵ.

Formell framgangsmåte

Vi går fram veldig likt som i tilfellet konkatenering av språk. Men i stedet for å koble sammen to ulike automater kobler vi sammen én automat — fra sluttilstandene i automaten lar vi altså epsilonoverganger gå til starttilstanden i automaten. Kleene-stjernen må imidlertid også inneholde det tomme ordet. Hvordan ordner vi det? Vi kan gjøre starttilstanden til en sluttilstand. Da ville en slik automat akseptere det tomme ordet, men den kunne også akseptert noen andre ord. Derfor lager vi i stedet en ny starttilstand og lar en epsilonovergang gå fra denne nye starttilstanden til den opprinnelige starttilstanden.

Vi har et regulært språk L1 og en automat som aksepterer dette språket:

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

Vi konstruerer en ikke-deterministisk automat A = ⟨Q, Σ, δ, qs, F⟩ som oppfyller:

  • Q = Q1 ∪ {qs}
  • Σ= Σ1
  • F = F1 ∪ {qs}

Overgangsfunksjonen δ definerer vi slik:

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

Eksempel

La oss ha denne automaten A1, som aksepterer ordene 00 eller 11:

Kleene-stjernen til språket L(A1) er altså språket av alle ord som består av parene 00 og 11, for eksempel 0000, 110011, 11110000 osv. Automaten som skulle akseptere denne Kleene-stjernen, ville vi konstruert ved å lage en ny starttilstand qs med en epsilonovergang til den tidligere starttilstanden q0 og legge til epsilonoverganger fra tilstandene q3 og q4 til tilstanden q0:

Vi kan kontrollere at denne automaten virkelig aksepterer ordene 0000, 110011, 11110000, men for eksempel ikke ordet 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