Säännöllisen kielen Kleenen tähti
Meillä on säännöllinen kieli L. Todistamme, että kielen L Kleenen tähti on jälleen säännöllinen kieli.
Mikä kielen Kleenen tähti on
Kielen L Kleenen tähteä (kielen sulkeumaa) merkitään L∗. Se sisältää kaikki sanat, jotka voi koota liittämällä yhteen äärellisen määrän kielen L sanoja. Sen voi määritellä näin:
jossa ∘ tarkoittaa konkatenaatio-operaatiota. Kleenen tähti sisältää myös tyhjän sanan, eli ϵ.
Täsmällinen menetelmä
Etenemme hyvin samankaltaisesti kuin kielten konkatenaation tapauksessa. Sen sijaan, että yhdistäisimme kaksi eri automaattia, yhdistämme yhden automaatin itsensä kanssa — automaatin lopputiloista johdamme siis epsilon-siirtymät automaatin alkutilaan. Kleenen tähden täytyy kuitenkin sisältää myös tyhjä sana. Miten sen saa aikaan? Voimme tehdä alkutilasta lopputilan. Silloin tällainen automaatti hyväksyisi tyhjän sanan, mutta se saattaisi hyväksyä myös jonkin muun sanan. Siksi luomme sen sijaan uuden alkutilan ja johdamme tästä uudesta alkutilasta epsilon-siirtymän alkuperäiseen alkutilaan.
Meillä on säännöllinen kieli L1 ja automaatti, joka hyväksyy tämän kielen:
Rakennamme epädeterministisen automaatin A = (Q, Σ, δ, qs, F), jolle pätee:
- Q = Q1 ∪ {qs}
- Σ= Σ1
- F = F1 ∪ {qs}
Siirtymäfunktion δ määrittelemme näin:
Esimerkki
Olkoon meillä tämä automaatti A1, joka hyväksyy sanat 00 tai 11:
Kielen L(A1) Kleenen tähti on siis kieli, jonka muodostavat kaikki sanat, jotka koostuvat pareista 00 ja 11, esimerkiksi 0000, 110011, 11110000 jne. Tämän Kleenen tähden hyväksyvän automaatin rakentaisimme luomalla uuden alkutilan qs, josta on epsilon-siirtymä entiseen alkutilaan q0, ja lisäämällä epsilon-siirtymät tiloista q3 ja q4 tilaan q0:
Voimme tarkistaa, että tämä automaatti todella hyväksyy sanat 0000, 110011, 11110000, mutta ei hyväksy esimerkiksi sanaa 1010.
Lähteet
Luvut: Säännöllisten kielten sulkeumaominaisuudet, Säännöllisten kielten yhdiste, Säännöllisten kielten leikkaus, Säännöllisten kielten erotus, Säännöllisen kielen komplementti, Säännöllisten kielten konkatenaatio, Säännöllisen kielen Kleenen tähti