• Nem Talált Eredményt

2. Nyelvek és nyelvtanok 6

2.2. Feladatok

2.2.1. Feladat. Legyen6={a,b},L1={a,b},L2={aa,b}. Határozza meg azL1L2,L1L2, L1L2,L2L1,L1L2,L1,L1L2,(L1L2),L1ésLR1 nyelveket1!

2.2.2. Feladat. Legyen6={a,b},L1={aba,b},L2={aab,ab,b}. Határozza meg azL1L2, L1L2,L1L2,L2L1,L1L2,L1ésLR1 nyelveket !

2.2.3. Feladat. Legyen6={a,b},L1={anbm:n,m≥0},L2={anbn:n≥0}. Határozza meg azL1L2,L1L2,L1L2,L2L1,L1L2,L1,L1L2,(L1L2),L1ésLR1 nyelveket !

2.2.4. Feladat. Legyen6={a,b},L1={w6:|w|a=|w|b},L2={anbm:n,m≥0}. Határozza meg azL1L2,L1L2,L1L2,L2L1,L1L2,L1,L1L2,(L1L2),L1ésLR1 nyelveket !

1Jelölés : haw=a1a2. . .an,ai6,i=1, . . . ,n, akkorwR=an. . .a2a1(tehátwRawszó „visszafelé olvasva”

ésLR={wR:wL}.

2.2. FELADATOK 9

2.2.5. Feladat. Legyen6={a,b}. Milyenx(,y)6esetében állnak fenn az alábbi egyen-lőségek ?

1. ax=xa;

2. ax=xb;

3. axb=abx;

4. xabb=abbx;

5. xy=yx.

2.2.6. Feladat. Legyenekx,y,u,v6szavak, melyekrexy=uvés|x| ≤ |u|. Mutassa meg, hogy valamilyenz6szórau=xzésy=zv!

2.2.7. Feladat. Legyenekx,y,z6szavak, melyekrexy=yz. Mutassa meg, hogy valamely u,v6-ra ésn≥0-rax=uv,y=(uv)nuész=vu!

2.2.8. Feladat. Legyenekx,y6szavak ésm,n>0 úgy, hogyxm=yn. Mutassa meg, hogy akkorx=zkésy=zvalamilyenz6-ra ésk, ℓ≥0-ra !

2.2.9. Feladat. Egyx6+szóprimitív, hax=yn-ből következik, hogyy=xésn=1. Mutassa meg, hogy mindenx6+szóra létezikpontosan egyprimitívyszó és egyk>0 szám, amire x=yk!

2.2.10. Feladat. Igazolja, hogy(6,·)mint grupoid…

1. … asszociatív !

2. … rendelkezik egységelemmel !

3. … kancellatív !

4. … nem rendelkezik zéruselemmel ! 2.2.11. Feladat. Igazolja, hogy a nyelvek közti konkatenáció monoton, vagyis haK1K2és L1L2, akkorK1L1K2L2!

2.2.12. Feladat. Igazolja, hogy a Kleene-iteráció monoton, vagyis haKL, akkorKL! 2.2.13. Feladat. Igazolja, hogy tetszőlegesLnyelvreLL=L!

2.2.14. Feladat. Mikor üres…

1. …L? 2. …L1L2? 3. …L1·L2?

2.2.15. Feladat. Mikor véges…

1. …L? 2. …L1L2? 3. …L1·L2?

2.2.16. Feladat. LegyenekL1, L2és L3azonos6 ábécé feletti nyelvek. Igazak-e az alábbi egyenlőségek ? Ha igen, igazolja, ha nem, adjon ellenpéldát !

1. (L1L2)L3=L1(L2L3);

2.2.18. Feladat. Igazolja, hogy(6,·, ε)a6által szabadon generált szabad monoid ! 2.2.19. Feladat. Legyen6={a,b}. Fejezze ki{ab}-ot a véges nyelvekből a metszet, unió, konkatenáció és komplementálás műveletekkel (vagyis : iteráció nélkül) !

2.2.20. Feladat. Mutassa meg, hogy mindenLnyelvreL=L+∪{ε}! Mikor igaz, hogyL+=

=L−{ε}?

2.2.21. Feladat. Mutassa meg, hogy a Kleene-iteráció lezárási operátor (vagyis : tetszőleges LnyelvreLL,(L)Lés haL1L2, akkorL1L2) !

2.2.22. Feladat. Mutassa meg, hogy a pozitív Kleene-iteráció lezárási operátor (vagyis : tet-szőlegesLnyelvreLL+,(L+)+L+és haL1L2, akkorL+1L+2) !

2Vagyis :(P(6),∪)kommutatív és idempotens monoid (tehát egységelemes félháló),(P(6),·)monoid, amiben(P(6),∪)egységeleme zéruselem, továbbá·disztributívfölött.

2.2. FELADATOK 11

2.2.24. Feladat. Igazolja, hogy a6ábécé fölötti 0-definit nyelvek6és∅!

2.2.25. Feladat. Igazolja, hogy ha egy nyelvk-definit valamilyenk-ra, akkork-definit minden k>k-ra.

2.2.26. Feladat. Igazolja, hogy minden véges nyelv definit !

2.2.27. Feladat. Igazolja, hogy egyL6nyelv pontosan akkor definit, haL=L16·L2 valamelyL1,L2végesnyelvekre !

2.2.28. Feladat. Legyen6egy ábécé. Definiáljuk a nyelvek közötti2relációt a következő-képpen :L12L2pontosan akkor, ha szimmetrikus differenciájuk,L11L2=(L1L2)∪(L2L1) véges. Mutassa meg, hogy2ekvivalenciareláció ! Kongruencia-e2?

2.2.29. Feladat. Igazolja, hogy haL1ésL2aperiodikus nyelvek, akkorL1L2,L1L2ésL1is aperiodikusak !

2.2.30. Feladat. Mutassa meg, hogy a következő nyelvek csillagmentesek :

1. 6; 2. {ab}.

2.2.31. Feladat. Mutassa meg, hogy minden csillagmentes nyelv aperiodikus !

2.2.32. Feladat. Adjunk példát olyanKésLvéges nyelvekre, melyekre|KL|<|K|·|L|! 2.2.33. Feladat. Mikor igaz egyL6 nyelvre, hogyL+=L?

2.2.34. Feladat. (Arden lemmája.)

Mutassuk meg, hogy haK,L,X6nyelvek,ε /KésX=KXL, akkorX=KL!

2.2.35. Feladat. Legyen L6 tetszőleges nyelv. Igazolja, hogyL a legszűkebb olyan X6 nyelv, melyreLX∪{ε} ⊆X, vagy amelyreLX∪{ε}=X!

2.2.36. Feladat. LegyenekL,L6tetszőleges nyelvek. Igazolja, hogyLLa legszűkebb olyanX6nyelv, melyreLXLX(ill.LXL=X) !

2.2.37. Feladat. LegyenekL,L6tetszőleges nyelvek. Igazolja, hogy haε̸∈L, akkor az X=LXLegyenlet egyetlen megoldásaLL!

2.2.38. Feladat. Igazolja, hogy az

X=aXbY∪{ε}

Y=bXaY

egyenletrendszernek pontosan egy megoldasa van az{a,b}feletti nyelvek közt ! Adja meg a megoldást.

2.2.39. Feladat. Igazolja, hogy az

X=aXaY∪{ε}

Y=bXbY

egyenletrendszernek pontosan egy megoldása van ! Adja meg a megoldást.

2.2.40. Feladat. Igazolja, hogy az

X=XXaXbbXa∪{ε}

egyenlet legszűkebb megoldása az{a,b}abc felett azL={w:|w|a=|w|b}nyelv ! 2.2.41. Feladat. Igazolja, hogy az

X=aXbXbXaX∪{ε}

egyenlet legszűkebb megoldása az{a,b}abc felett azL={w:|w|a=|w|b}nyelv ! Van-e más megoldás ?

2.2.42. Feladat. LegyenL,L⊆6,εL. Adja meg azX=LXLegyenlet összes megoldását a6felett !

Megoldások

2.2.1. Feladat.Ha6={a,b},L1={a,b},L2={aa,b}, akkor L1L2={a,aa,b}

L1L2={b} L1L2={a} L2L1={aa}

L1L2={aaa,ab,baa,bb}

L1=6(minden{a,b}fölötti szó) L1L2=6

(L1L2)=6

L1={u6:|u| ≥2 vagyu=ε}

LR1={a,b}(=L1).

2.2. MEGOLDÁSOK 13

2.2.2. Feladat.Ha6={a,b},L1={aba,b},L2={aab,ab,b}, akkor L1L2={aab,ab,aba,b}

L1L2={b} L1L2={aba} L2L1={aab,ab}

L1L2={abaaab,abaab,abab,baab,bab,bb} L1={ε,aba,b,abaaba,abab,baba,bb, . . .}

(azok a szavak, melyekben a páratlanadika-k utánbjön, majda) LR1 ={aba,b}(=L1).

2.2.5. Feladat.

1. ax=xax=anvalamilyenn≥0-ra (x∈ {a}) ;

2. ax=xbsosem teljesül (a bal oldalon aza-k száma mindenképp eggyel több) ; 3. axb=abxx=bnvalamilyenn≥0-ra ;

4. xabb=abbxx=(abb)nvalamilyenn≥0-ra ;

5. xy=yx ⇔ha valamilyenz6-ra ésn,k≥0 egészrex=znésy=zk.

2.2.14. Feladat.Lε, tehát sosem üres.L1L2pontosan akkor üres, haL1=L2=∅. Végül, L1·L2pontosan akkor üres, haL1=∅vagyL2=∅.

2.2.15. Feladat.Lpontosan akkor véges, haL=∅vagyL={ε}.L1L2pontosan akkor véges, haL1ésL2is véges. Végül,L1·L2pontosan akkor véges, haL1ésL2is véges, vagy haL1=∅, vagy haL2=∅.

2.2.16. Feladat.

1. Igaz. Tegyük fel, hogyu(L1L2)L3. Ekkorufelírhatóu=uu3alakban úgy, hogyu

L1L2ésu3L3. Emiattu felírhatóu=u1u2alakban úgy, hogyu1L1 ésu2L2. Ekkoru=u1u2u3, így választva azu′′=u2u3szót,u′′L2L3ésu=u1u′′,u1L1,u′′L2L3 miatt kapjuk, hogyuL1(L2L3). A másik irány hasonló.

2. Igaz. EgyrésztL1,L2L1L2 és a konkatenáció monotonitását alkalmazva kapjuk, hogy L1L3,L2L3(L1L2)L3, emiatt L1L3L2L3(L1L2)L3. A másik irányú tartalmazkodáshoz legyenu(L1L2)L3. Ekkoru=u1u3 úgy, hogyu1L1L2 és u3L3. Mivelu1L1L2, ezért vagyu1L1(ekkoruL1L3), vagyu1L2(ekkor uL2L3). Tehát mindkét esetbenuL1L3L2L3.

3. Igaz, az előzővel analóg módon bizonyítható.

4. Nem igaz. Ellenpélda :L1 ={a}, L2 ={aa}, L3 ={a,aa}. Ekkor (L1L2)L3 =∅, míg L1L3L2L3={aa,aaa}∩{aaa,aaaa}={aaa}.

5. Nem igaz. Ellenpélda :L1 ={a,aa}, L2 ={aa}, L3= {a}. Ekkor L1(L2L3)=∅, míg L1L2L1L3={aaa}.

6. Igaz.LLmiatt a monotonitást alkalmazvaLL∗∗, a másik irányú tartalmazkodás-hoz elég belátni, hogy tetszőlegesn-re(L)nL. Ezn=0-ra világos,{ε} ⊆L; tegyük fel, hogy igazn-re és belátjukn+1-re :(L)n+1=(L)nLLLL.

7. Nem igaz. Ellenpélda :L1={a},L2={b}. Ekkor(L1L2)={a,b}ab∈ {/ a}∪{b}=

=L1L2.

8. Nem igaz. Ellenpélda :L1={a},L2={aa}. Ekkor(L1L2)=({a}∩{aa})=∅={ε}

{aa}={a}∩{aa}=L1L2.

9. Nem igaz. Ellenpélda :L1=∅a6={a}ábécé fölött. Ekkor(L1)=(a)=a, miközben L1={ε}=a+.

10. Igaz. Egyrészt L1L1L1L2 (mert εL2), hasonlóképpen L2L1L2, így L1

L2L1L2, ezért (L1L2)(L1L2). A másik irányú tartalmazkodáshoz : mivel L1,L2L1L2, ígyL1,L2(L1L2), ezértL1L2((L1L2))2(L1L2), végül (L1L2)(L1L2)∗∗=(L1L2).

11. Igaz. Egyrészt mivelL1,L2L1L2, így L1(L1L2), ezért L1L2(Lamikre1

L2)L2(L1L2)(L1L2)(L1L2), emiatt(L1L2)(L1L2)∗∗=(L1L2), végül pedig(L1L2)L1(L1L2)L1(L1L2)(L1L2)(L1L2).

A másik irányú tartalmazkodáshoz : megmutatjuk, hogy tetszőlegesn≥0-ra(L1L2)n

(L1L2)L1. Ezn=0 esetén világos,{ε} ⊆(L1L2)L1, hiszenε(L1L2)ésεL1. Tegyük fel, hogy az állítás igazn-re és tekintsükn+1-et : mivel (L1L2)n+1=(L1

L2)nL1(L1L2)nL2, elég megmutatnunk, hogy mindkét nyelv részhalmaza a jobb oldalnak. Ez pedig teljesül, hiszen (L1L2)nL1(L1L2)L1L1 (indukciós fel-tevés és monotonitás szerint), ami pedig része(L1L2)L1-nak, továbbá(L1L2)nL2

(L1L2)L1L2(L1L2), ezzel az állítást beláttuk.

12. Igaz, mindkettőről láttuk már, hogy(L1L2)-gal esik egybe.

13. Igaz. Ehhez elég látnunk, hogyL=(L∪{ε})tetszőlegesLnyelvre. Ez pedig fennáll, hiszen(L∪{ε})=(L{ε})L=L∗∗L=LL=L.

14. Igaz :(6L)=(6L)6=6, mertε(6L).

15. Igaz. HaL1L2, akkor L1L2L2 és így (L1L2)L2 =L2, a másik irányú tartalmazkodás pedigL2L1L2-bólmonotonitását alkalmazva következik.

16. Nem igaz. Ellenpélda :L1={a},L2=∅esetén(L1L2)=({a}∅)=∅={ε}, mígL1L2=

={a}={a}{ε}={a}.

2.2. MEGOLDÁSOK 15

2.2.17. Feladat.(P(6),∪)kommutatív idempotens monoid, hiszen tetszőlegesK,L,M nyel-vekreKL=LK,KK=K,K(LM)=(KL)∪Més∅egységelem.

Továbbá,(P(6),·)monoid, mert(KL)M=K(LM)tetszőlegesK, L, Mnyelvekre, ebben a monoidban∅zéruselem és{ε}egységelem.

Továbbá az is igaz, hogyK(LM)=KLKMés(KL)M=KMLM, ezzel a teljes állítást beláttuk.

2.2.18. Feladat.LegyenM=(M,◦,1)tetszőleges monoid ésh:6Mleképezés. Azt kell csak belátnunk, hogy h azon h (egyértelmű) kiterjesztése 6-ra, melyre h(a1a2. . .an)=

=h(a1)h(a2)◦. . .h(an), egy monoidhomomorfizmus.

Valóban, hiszen tetszőlegesu=a1. . .an,v=b1. . .bm szavakrah(uv)=h(a1). . .h(an)

h(b1). . .◦h(bm)=h(u)h(v)ésh(ε)=1.

2.2.19. Feladat.{ab}=∅({aa,bb})∅∩{b}∅∩∅{a}, hiszen ebben a nyelvben pontosan azok a szavak vannak benne, amikben nem fordul elő részszóként semaa, sembb(emiattautánb, butánajön bennük), nem kezdődnekb-vel és nem végződneka-val.

2.2.24. Feladat. Az világos, hogy ∅ és6 mindketten 0-definit nyelvek. Tegyük fel, hogy L6 nemüres 0-definit nyelv és legyenuL. Akkoru=u·ε, |ε|=0 miattεL, és így tetszőlegesw6-ra mivelw=w·ε,|ε|=0 ésεL, kapjuk, hogywL, ekkor tehátL=6. 2.2.25. Feladat.Legyenk<késL6k-definit nyelv. Belátjuk, hogyLegybenk-definit is. Ehhez legyenu,v6,|v|=k. Meg kell mutassuk, hogyuvLvL. Mivelk>k, vfelírhatóv=v1v2,|v2|=kalakban. MivelL k-definit, kapjuk, hogy

uvLuv1v2L

v2L

v1v2L

vL, tehátLvalóbank-definit is egyben.

2.2.26. Feladat.LegyenL6 véges nyelv ésk=1+ max{|w|:wL}. AkkorL k-definit, hiszen tetszőlegesu,v6,|v|=kszavak eseténuv/Lésv/Lis fennáll.

2.2.27. Feladat.LegyenL6k-definit ak≥0 számra. AkkorL=L16L2, aholL1={w

L:|w|<k}ésL2={wL:|w|=k}. Nyilván mindL1, mindL2végesek, hiszenkfelső korlát a bennük levő szavak hosszára.

A másik irány igazolásához legyenL=L1∪6·L2azL1,L2véges,6fölötti nyelvekre. Legyen k=1+max{|w|:wL1L2}. EkkorL k-definit, hiszen tetszőlegesu,v6,|v|=kszó esetén

uvLuv6·L2(mert|uv| ≥kmiattuv/L1)

⇔ ∃v1,v2: v=v1v2,v2L2

vL, tehátLvalóbank-definit.

2.2.35. Feladat.Tudjuk, hogyL=LL∪{ε}. Most tegyük fel, hogyLX∪{ε} ⊆X. Belátjuk, hogyLnXmindenn-re.

Han=0, akkorLn={ε} ⊆X. Tegyük fel, hogy az állítás igazn-re. EkkorLn+1=LLnLXX.

2.2.37. Feladat.Azt már tudjuk, hogyLL megoldás. Tegyük fel, hogy azX6 nyelvre LXL=X. Ekkor mindenn≥0-ra

Ln+1XLnL. . .L=X.

Az Ln+1X nyelv minden szava legalábbn+1 hosszú. Tehát tetszőleges n-re X legfeljebb n hosszú szavainak halmaza megegyezikLLlegfeljebbnhosszú szavainak halmazával. Ezért X=LL.

2.2.38. Feladat.Tegyük fel, hogyX,Ymegoldást alkotnak. Ekkor a második egyenletbőlY=

=abX. Ezt az első egyenletbe helyettesítve kapjuk, hogy

X=aXbabX∪{ε}=(abab)X∪{ε}, ahonnan

X=(abab), Y=ab(abab).

TehátXa páros sokb-t,Y pedig a páratlan sokb-t tartalmazó nyelv. Könnyen látható, hogy ezek a nyelvek megoldást adnak.

2.2.40. Feladat.Azt is belátjuk, hogyLa legszűkebb olyanXnyelv, amelyreXXaXbbXa

∪{ε} ⊆X.

Hau,vL, akkoruv,aub,buaL. MivelεL, így azt kapjuk, hogyLLaLbbLa∪{ε}⊆L.

Most tegyük fel, hogy azX⊆ {a,b}nyelvreXXaXbbXa∪{ε} ⊆X. Belátjuk, hogyLX.

LegyenuL. Hau=ε, akkor világos, hogyuX. Teljes indukciót alkalmazva tegyük most fel, hogy|u|>0, és az állítást igazoltuk azL|u|-nál rövidebb szavaira. Hauazabetűvel kezdődik, akkor felírhatóaxbyalakban úgy, hogyx,yL. Az indukciós feltevés szerintx,yX, és így axb,axbyX. TehátuX.

Végül legyenL=LLaLbbLa∪{ε}. Belátjuk, hogyLL. Ehhez vegyük észre, hogyLL miattLLaLbbLa∪{ε} ⊆LLaLbbLa∪{ε} ⊆L, és így a fentiek szerintLL. 2.2.42. Feladat.A megoldások azL(LL′′)alakú nyelvek, aholL′′6tetszőleges nyelv.

3. fejezet

Reguláris nyelvek

3.1. Elméleti összefoglaló

AzM=(Q, 6, δ,q0,F)ötös egy (6ábécé feletti)(véges) automata, ahol 1. Qaz állapotok véges, nemüres halmaza ;

2. 6az input ábécé ;

3. δ:Q×6Qaz átmenetfüggvény ; 4. q0Qa kezdőállapot ;

5. FQa végállapotok halmaza.

Az Mautomata δ függvénye kiterjeszthető egy δ :Q×6Q függvénnyé a következő módon : tetszőlegesqQ-raδ(q, ε)=qés tetszőlegesu=av,a6,v6szóraδ(q,av)=

=δ(δ(q,a),v). Haδa szövegkörnyezetből egyértelmű,δ(q,u)helyettδ(q,u)-t,q·u-t vagy egyszerűenqu-t írunk. A fenti M automata egy konfigurációja egy(q,u)Q×6 pár. A konfigurációk közti⊢Mközvetlen rákövetkezési relációta következőképp definiáljuk : legyen (p,u)⊢M(q,v)akkor és csak akkor, ha valamelya∈6betűreδ(p,a)=qésu=av. Amennyiben Megyértelmű a szövegkörnyezetből, azMindexet elhagyjuk.

A fentiMautomataelfogadjaazuszót, haq0uF, különbenelvetiazt. (Ezzel ekvivalensen, ha(q0,u)(qf, ε)valamelyqfFállapotra.)

AzM által felismert nyelv L(M)={u6:q0uF}.

AzLnyelv(automatával) felismerhető, haL=L(M)valamelyMvéges automatára.

3.1.1. Állítás.Ha M =(Q, 6, δ,q0,F) az L6 nyelvet felismerő automata, akkor M =

=(Q, 6, δ,q0,Q\F)azLkomplementerét felismerő automata.

EgyM=(Q, 6, δ,q0,F)automatak-definitak≥0 egész számra, ha tetszőlegesu6,|u|≥k szóra ésp,qQállapotokrap·u=q·u. AzMautomatadefinit, hak-definit valamelyk-ra.

AzMautomataegyvégű, ha pontosan egy végállapota van.

HaM1=(Q1, 6, δ1,q10,F1)ésM2=(Q2, 6, δ2,q20,F2)véges automaták ugyanazon6ábécé felett, akkordirekt szorzatuk bármely olyanM=(Q, 6, δ,q0,F)automata, melyre

1. Q=Q1×Q2;

VagyisM1ésM2egy direkt szorzatának megadásához elegendő annakFQ1×Q2 végálla-pothalmazát megadni. halmazt állapotok halmazába képző függvény, ahol6ε =6∪{ε}.

A fenti N nemdeterminisztikus automata egy konfigurációja szintén egy (p,u)Q×6 -beli pár, arákövetkezési relációtpedig a következőképp definiáljuk : legyen (p,u)N(q,v) pontosan akkor, ha valamelya∈6εeseténq∈1(p,a)ésu=av. Nemdeterminisztikus automata esetén is használni fogjuk ap·uill.pujelöléseket, aholpQ,u6, melyet a következőképp definiálunk :pu={qQ:(p,u)(q, ε)}.

A fentiNautomataelfogadjaazuszót, ha(q0,u)⊢(qf, ε)valamelyqfFállapotra, különben elvetiazt.

AzN által felismert nyelv L(N)={u6:Nelfogadjau-t}.

AzLnyelvnemdeterminisztikus automatával felismerhető, ha L=L(N)valamelyN nemde-terminisztikus automatára.

Az M1 és M2 (determinisztikus vagy nemdeterminisztikus) automatákekvivalensek, jelben M1M2, haL(M1)=L(M2).

3.1.3. Állítás.Minden nemdeterminisztikus automatához létezik ekvivalens determinisztikus automata.

Az állítás bizonyítása konstruktív :

3.1.4. Algoritmus.N= (Q, 6, 1,q0,F) nemdeterminisztikus automatához ekvivalensM=

=(Q, 6, δ,q0,F)determinisztikus automata megadására.

3.1. ELMÉLETI ÖSSZEFOGLALÓ 19 M minden M részautomatájának részautomatája. Továbbá Q meghatározható a következő algoritmussal :

3.1.7. Következmény.TetszőlegesMautomata ekvivalens összefüggő részével.

Ah:QQleképezés azM=(Q, 6, δ,q0,F)automatából azM=(Q, 6, δ,q0,F) auto-matába menőhomomorfizmus, hah(q0)=q0és kompatibilisδ-val (vagyis tetszőlegesqQ, a6 eseténh(δ(q,a)) =δ(h(q),a)) és melyre h1(F)=F. Ha h szürjektív, akkorM az M-nekhomomorf képe; ha pedig bijektív, akkorMésMizomorfak.

3.1.8. Állítás.Ha vanM-bőlM-be menő homomorfizmus, akkorMésMekvivalensek.

Automaták homomorf képének ekvivalens definícióját megkaphatjuk kongruenciák értelme-zésével automatákon, ami a következő :

1. Q/2={p/2:pQ};

2. (δ/2)(p/2,a)=(δ(p,a))/2; 3. F/2={p/2:pF}.

Ha2kongruenciareláció, akkor a fentiM/2jóldefiniált.

3.1.9. Állítás.Tetszőleges M automata bármely homomorf képe izomorfMegy faktorauto-matájával.

TetszőlegesM=(Q, 6, δ,q0,F)automatához definiáljuk aϱMQ×Qrelációt a következő-képpen : legyenMqpontosan akkor, ha tetszőlegesu6szórapuFquF.

3.1.10. Állítás.TetszőlegesMautomata eseténϱMazMegy kongruenciája.

Továbbá,ϱM azMlegdurvább kongruenciája, vagyisMtetszőleges2 kongruenciájára2

ϱM.

AϱM reláció algoritmikusan kiszámítható :

3.1.11. Algoritmus.Tetszőleges M=(Q, 6, δ,q0,F)automataϱM kongruenciájának kiszá-mítására.

ϱMmeghatározható a következő iterációval : 0q(pFqF);

i+1q(pa)ϱi(qa)tetszőlegesa6ε esetén.

Az iteráció befejeződik, haϱi=ϱi+1, és ekkorϱM=ϱi.

EgyMautomataosztjaazMautomatát, haMazMegy részautomatájának homomorf képe.

3.1.12. Állítás.TetszőlegesLautomatával felismerhető nyelvhez izomorfizmus erejéig egyér-telműen létezik azL-et felismerőMLminimális automata, mely minden,L-et felismerő véges automatát oszt (ebből következően azL-et felismerő automaták közül minimális állapotszá-mú is). Létezik olyan algoritmus, mely tetszőlegesMautomatához megkonstruálja azML(M) automatát.

Az állítás második részében szereplő algoritmus a következő :

3.1.13. Algoritmus.M=(Q, 6, δ,q0,F)automatát minimalizáló algoritmus.

I. MeghatározzukMösszefüggő részét, legyen ezM=(Q, 6, δ,q0,F). II. Meghatározzuk aϱM kongruenciát.

AzL(M)-et felismerő minimális automata aMM automata.

AzML automata ésLszintaktikus jobbkongruenciája közt szoros összefüggés áll fenn : 3.1.14. Állítás.Tetszőleges L6 automatával felismerhető nyelvre ML izomorf az M =

=(6L, 6, δ, ε/νL,L/νL)automatával, aholδ(u/νL,a)=(ua)/νL. 3.1.15. Állítás.TetszőlegesL6-ra a következők ekvivalensek :

1. Lautomatával felismerhető nyelv ; 2. νL véges indexű ;

3.1. ELMÉLETI ÖSSZEFOGLALÓ 21

3. µL véges indexű.

Nemcsak nyelvekhez, de automatákhoz is rendelhetünk monoidokat a következőképpen. Ha Qegy halmaz, akkor aQfölöttif:QQfüggvények egyQQ-val jelölt monoidot alkotnak a kompozícióra mint műveletre nézve : vagyis haf,g:QQ, akkorf·gaz aQQfüggvény, melyre(f·g)(q)=g(f(q))tetszőlegesqQesetén. Ennek a monoidnak az identikusq7→q függvény az egységeleme.

EgyM=(Q, 6, δ,q0,F)véges automatához rendelhetjük a következőT(M)QQmonoidot, melyetM átmenetmonoidjának nevezünk :f:QQT(M)pontosan akkor, ha van olyan uf6, melyref(q)=quftetszőlegesqQ-ra. Könnyen látható, hogyT(M)valóban mono-id,QQ-nak egy részmonoidja. AzLnyelv szintaktikus kongruenciájával a következő szoros kapcsolatban áll :

3.1.16. Állítás.TetszőlegesLautomatával felismerhető nyelvre6LizomorfT(ML)-lel, az L-et felismerő minimális automata átmenetmonoidjával.

Nyelveket felismerthetünk monoidokkal is a következőképpen : azL6nyelvfelismerhető az M= (M,◦,1) monoidban, ha van olyan h : 6M monoidhomomorfizmus (vagyis olyanh:6Mleképezés, melyreh(uv)=h(u)h(v)és melyreh(ε)=1) ésFMhalmaz, melyre h−1(F)= L. A definícióból következően tetszőlegesL nyelv felismerhető a 6L

faktormonoidban. Ennél több is igaz :

3.1.17. Állítás.TetszőlegesL6nyelvre az alábbiak ekvivalensek : 1. Lautomatával felismerhető ;

2. Lfelismerhető egy véges monoidban ; 3. 6L véges.

Nyelvek megadására az előző fejezetben szereplő nyelvtanokon és az ebben a fejezetben megismert automatákon ill. monoidokon felül egyéb módszerek is léteznek, nyelvet példá-ul megadhatunkreguláris kifejezésselis. A 6ábécé fölötti reguláris kifejezések halmaza az a legszűkebb halmaz, melyre :

1. ∅reguláris kifejezés1;

2. tetszőlegesa6eseténareguláris kifejezés ;

3. haR1ésR2reguláris kifejezések, akkor(R1+R2)és(R1·R2)is reguláris kifejezés ; 4. haRreguláris kifejezés, akkor(R)is reguláris kifejezés.

AzRreguláris kifejezésáltal jelölt|R|nyelvet a következőképp definiáljuk : 1. |∅|=∅;

2. haa6, akkor|a|={a};

3. haR=(R1+R2), akkor|R|=|R1|∪|R2|;

1Implicit módon feltesszük, hogy/6.

4. haR=(R1·R2), akkor|R|=|R1|·|R2|; 5. haR=(R1), akkor|R|=|R1|.

AzL6nyelvreguláris, ha létezikL-et jelölő6fölötti reguláris kifejezés. Ha azR1ésR2 reguláris kifejezésekre|R1|=|R2|, akkor azt mondjuk, hogy a két kifejezésekvivalens, jelben R1R2.

A következő állítás a fenti definícióból közvetlenül adódik :

3.1.18. Állítás.A reguláris nyelvek osztálya a legszűkebb olyan nyelvosztály, mely tartal-mazza a véges nyelveket és zárt a reguláris műveletekre (vagyis az unióra, konkatenációra és Kleene-iterációra).

A könnyebb olvashatóság érdekében felállítjuk a műveleti jelek közt a következő preceden-ciát : a operátor köt a legerősebben, melyet a szorzás, majd végül az összeadás követ. Az így és az összeadás, szorzás asszociativitása miatt feleslegessé váló zárójeleket és a szorzás· jelét elhagyhatjuk. Továbbá bevezetjük aε=∅rövidítést, melyre|ε|={ε}.

3.1.19. Állítás.Minden felismerhető nyelv reguláris. Továbbá, tetszőlegesN nemdeterminisz-tikus automatához effektíven megadható egyL(N)-et jelölő reguláris kifejezés.

Az állításban szereplő algoritmus a következő :

3.1.20. Algoritmus.Kleene algoritmusa azN=(Q, 6, 1,q0,F)automata által felismert nyel-vet jelölő reguláris kifejezés előállítására.

Feltehetjük, hogyQ={1, . . . ,n}, aholn=|Q|. Definiáljuk tetszőleges 1≤i,jn-re és 0kn-re azRki,jreguláris kifejezést a következőképpen :

Rki,j= Az állítás a másik irányban is igaz :

3.1.21. Állítás.Minden reguláris nyelv felismerhető. Továbbá, tetszőlegesRreguláris kifeje-zéshez effektíven megadható egy|R|-et felismerő automata.

Egy algoritmus a következő :

3.1.22. Algoritmus.Rreguláris kifejezéshez olyanNRnemdeterminisztikus automata konst-ruálása, melyreL(NR)=|R|.

Az automatátRfelépítése szerinti indukcióval konstruáljuk meg.

1. HaR=∅, akkorNR=({q}, 6, 1,q,∅), ahol1(q,a)=∅mindena6ε esetén.

2. HaR=aaza6jelre, akkorNR=({q,qf}, 6, 1,q,{qf}), ahol1(q,a)={qf}és minden egyéb(p,b)párra1(p,b)=∅.

3. HaR=(R1+R2), akkor legyenNR1=(Q1, 6, 11,q1,F1)ésNR2=(Q2, 6, 12,q2,F2). Feltehetjük, hogyQ1ésQ2diszjunkt. Ekkor legyenNR=(Q1Q2∪{q0}, 6, 1,q0,F1

3.1. ELMÉLETI ÖSSZEFOGLALÓ 23

Emlékezzünk vissza, egyG= (V, 6,R,S)nyelvtant 3. típusúnak, jobblineárisnak vagy re-gulárisnak neveztünk, ha benne minden szabályAuBvagy Au alakú, aholA,BV nemterminálisok, u6 pedig terminális szó. Egy nyelvet pedig 3. típusúnak, ha van őt generáló 3. típusú nyelvtan.

3.1.23. Állítás.Tetszőleges 3. típusú nyelv felismerhető automatával. Továbbá, bármelyG=

=(V, 6,R,S)jobblineáris nyelvtanhoz effektíven megadható egy olyan (nemdeterminiszti-kus) automata, melyL(G)-t ismeri fel.

Az állításban szereplő algoritmus a következő :

3.1.24. Algoritmus.G=(V, 6,R,S)jobblineáris nyelvtanhoz ekvivalens automata megadá-sára. Az általánosság megszorítása nélkül feltehetjük, hogy mindenR-beli szabály AaB vagyAεalakú, aholA,BVnemterminálisok,a6pedig egy terminális betű.

Az állítás visszafele is igaz :

3.1.25. Állítás.Tetszőleges automatával felismerhető nyelv generálható 3. típusú nyelvtannal.

Továbbá, bármely N= (Q, 6, 1,q0,F) nemdeterminisztikus automatához megadható vele ekvivalens 3. típusú nyelvtan, melyL(N)-et generálja.

Az állításban szereplő algoritmus a következő :

3.1.26. Algoritmus.N=(Q, 6, 1,q0,F)nemdeterminisztikus automatához ekvivalens 3. tí-pusú nyelvtan megadására.

AG=(Q, 6,R,q0)3. típusú nyelvtan, ahol

R={paq:p,qQ,a6ε,q1(p,a)}∪{pε:pF}, azL(N)-t generáló jobblineáris nyelvtan.

Nyelvek megadásának egy újabb módja a nyelvbe tartozó szavakat karakterizáló tulajdonság leírása valamely logikai nyelven. Egy ilyen logika amonadikus másodrendű(MSO) logika, melynek szintaxisát és szemantikáját az alábbiakban definiáljuk.

LegyenX1={x1,x2, . . .}elsőrendű ésX2={X1,X2, . . .}másodrendű változók megszámlál-hatóan végtelen halmaza és6egy ábécé, ahol6,X1ésX2páronként diszjunktak. Ekkor a6 feletti MSO formulákhalmazát és azFformulában szabadon előforduló változókFree1(F)

X1ésFree2(F)X2halmazát a következőképpen definiáljuk :

1. Ha a6 és xX1, akkor pa(x) egy (atomi) MSO formula, Free1(pa(x)) = {x} és Free2(pa(x))=∅.

2. Hax,yX1, akkorx<yésx+1=yis (atomi) MSO formulák,Free1(x+1=y)=Free1(x<

<y)={x,y}ésFree2(x+1=y)= Free2(x<y)=∅.

3. Ha xX1 ésXX2, akkor xX egy (atomi) MSO formula, Free1(xX)={x}és Free2(xX)={X}.

4. HaFMSO formula, akkor(¬F)is MSO formula,Free1(¬F)= Free1(F),Free2(¬F)=

= Free2(F).

5. HaFésGMSO formulák, akkor(FG)is MSO formula,Free1(FG)= Free1(F)

∪Free1(G)ésFree2(FG)= Free2(F)∪Free2(G).

6. HaFMSO formula ésx∈X1elsőrendű változó, akkor(∃xF)MSO formula,Free1(∃xF)=

= Free1(F)−{x},Free2(∃xF)= Free2(F).

7. Ha F MSO formula és XX2 másodrendű változó, akkor (∃XF) MSO formula, Free1(∃XF)= Free1(F),Free2(∃XF)= Free2(F)−{X}.

8. Ezek és csak ezek az MSO formulák.

A szemantika definíciójához először bevezetjük astruktúrafogalmát : ha6egy ábécé ésV1

X1,V2X2változók véges halmazai, akkor egy6fölötti(V1,V2)-struktúraegy olyan u=(a1,V11,V12)(a2,V21,V22) . . . (an,Vn1,Vn2)∈(

6×P(V1)×P(V2))

3.1. ELMÉLETI ÖSSZEFOGLALÓ 25

AzFformulát kielégítő struktúrák nyelvétLFjelöli, vagyis LF={ Ha szintaktikus megszorításokat teszünk, az MSO alábbi töredékeit kapjuk :

1. azFformula MSO[+1]-formula, ha nincs bennex<yalakú részformula ; 2. azFformula MSO[<]-formula, ha nincs bennex+1=yalakú részformula ;

HaC a fenti logikák valamelyike, azt mondjuk, hogy azL6 definiálhatóC-ben, ha van olyanFC-formula, melyreLF=L.

3.1.27. Tétel.Az alábbiak ekvivalensek tetszőlegesL6nyelvre : 1. Lreguláris ;

2. Ldefiniálható∃MSO[+1]-ben ; 3. Ldefiniálható MSO[+1]-ben ; 4. Ldefiniálható MSO[<]-ben ; 5. Ldefiniálható MSO-ban.

3.1.28. Állítás.Van olyan reguláris nyelv, mely nem definiálható FO[<]-ben. Továbbá, van olyan nyelv, mely definiálható FO[<]-ben, de FO[+1]-ben nem.

Az eddigiek szerint tehát az alábbiak ekvivalensek tetszőlegesL6 nyelvre : 1. Lfelismerhető véges automatával ;

2. Lfelismerhető nemdeterminisztikus véges automatával ; 3. Lreguláris ;

4. Lgenerálható jobblineáris nyelvtannal ; 5. νL véges indexű ;

6. µL véges indexű ;

7. Lfelismerhető véges monoidban ; 8. Ldefiniálható∃MSO[+1]-ben ; 9. Ldefiniálható MSO[+1]-ben ; 10. Ldefiniálható MSO[<]-ben ; 11. Ldefiniálható MSO-ban.

Az számossági okokból is világos, hogy vannak nem reguláris nyelvek (pl. adott 6 ábécé fölött csak megszámlálhatóan sok reguláris kifejezés, viszont kontinuum sok nyelv van). A pumpáló lemmaegy szükséges feltételt fogalmaz meg egy nyelv regularitásához :

3.1.29. Lemma.Tetszőleges L6 reguláris nyelvhez létezik olyan N> 0 egész, melyre bármelywL,|w|≥Nszó felbonthatów=w1w2w3alakban úgy, hogy a következők teljesülnek :

1. |w1w2| ≤N; 2. w2 ε;

3.1. ELMÉLETI ÖSSZEFOGLALÓ 27

3. tetszőlegesi≥0-raw1wi2w3L.

A lemmának egy erősebb változata a következő :

3.1.30. Lemma.Tetszőleges L6 reguláris nyelvhez létezik olyan N> 0 egész, melyre bármelyw∈6,|w|≥Nszó felbonthatów=w1w2w3alakba úgy, hogy a következők teljesülnek :

1. |w1w2| ≤N; 2. w2 ε;

3. tetszőlegesu,v6szavakra ési≥0 számrauw1wi2w3vLuwvL.

Automatákat (avagy szekvenciális gépeket) nem csak nyelvek felismerésére, de szófüggvé-nyek kiszámítására is használhatunk, amennyiben kimenettel is ellátjuk azokat. Attól függően, hogy egy-egy output jel kiírását átmenethez vagy állapothoz kötjük, kapjuk aMealyill.Moore gép definícióját, melyeket formálisan a következőképp vezethetünk be :Mealy gépegy M=

Automatákat (avagy szekvenciális gépeket) nem csak nyelvek felismerésére, de szófüggvé-nyek kiszámítására is használhatunk, amennyiben kimenettel is ellátjuk azokat. Attól függően, hogy egy-egy output jel kiírását átmenethez vagy állapothoz kötjük, kapjuk aMealyill.Moore gép definícióját, melyeket formálisan a következőképp vezethetünk be :Mealy gépegy M=