Kleenestjärnan av ett reguljärt språk
Vi har ett reguljärt språk L. Vi bevisar att Kleenestjärnan av språket L också är ett reguljärt språk.
Vad är Kleenestjärnan av ett språk
Kleenestjärnan av språket L betecknas L∗. Den innehåller alla ord som kan sättas ihop genom att konkatenera ett ändligt antal ord från språket L. Vi kan definiera Kleenestjärnan som:
där ∘ betecknar konkatenering. Kleenestjärnan innehåller också det tomma ordet, dvs. ϵ.
Formell metod
Vi går till väga på ett sätt som påminner mycket om konkatenering av språk. Men i stället för att koppla ihop två olika automater kopplar vi ihop en enda automat – från automatens sluttillstånd drar vi epsilonövergångar till automatens starttillstånd. Kleenestjärnan måste dock också innehålla det tomma ordet. Hur ordnar vi det? Vi kan göra starttillståndet till ett sluttillstånd. Då skulle automaten acceptera det tomma ordet, men den skulle också kunna acceptera något annat ord. Därför skapar vi i stället ett nytt starttillstånd och drar en epsilonövergång från det nya starttillståndet till det ursprungliga starttillståndet.
Vi har ett reguljärt språk L1 och en automat som accepterar språket:
Vi konstruerar en icke-deterministisk automat A = ⟨Q, Σ, δ, qs, F⟩ för vilken det gäller att:
- Q = Q1 ∪ {qs}
- Σ= Σ1
- F = F1 ∪ {qs}
Övergångsfunktionen δ definierar vi så här:
Exempel
Låt oss ta den här automaten A1, som accepterar orden 00 eller 11:
Kleenestjärnan av språket L(A1) är alltså språket av alla ord som består av par 00 och 11, till exempel 0000, 110011, 11110000 osv. En automat som accepterar den här Kleenestjärnan konstruerar vi genom att skapa ett nytt starttillstånd qs med en epsilonövergång till det tidigare starttillståndet q0 och lägga till epsilonövergångar från tillstånden q3 och q4 till tillståndet q0:
Vi kan kontrollera att den här automaten verkligen accepterar orden 0000, 110011, 11110000, men till exempel inte ordet 1010.
Källor
Kapitel: Slutenhet hos reguljära språk, Union av reguljära språk, Snitt av reguljära språk, Differens av reguljära språk, Komplement till ett reguljärt språk, Konkatenering av reguljära språk, Kleenestjärnan av ett reguljärt språk