• Nem Talált Eredményt

Definit nyelvek

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 168-174)

II. NYELVEK ÉS AUTOMATÁK 88

9. Büchi automaták 132

12.2. Definit nyelvek

Azt mondjuk, hogy az X ábécé feletti L nyelv k definit, ha bármely legalább k hosszúságú p∈X szó akkor és csak akkor eleme L-nek, ha a k hosszúságú szuffixe is eleme L-nek. Egy L⊆X nyelvet definitnek nevezünk, ha k definit valamilyen k nemnegatív egész számra. Ha k > 0, akkor L-et k-adfokban definitnek nevezzük, ha k definit, de nem (k−1) definit. Ezt a k számot az L nyelv definitségi fokának nevezzük és rá a df(L) jelölést használjuk. Csak két X feletti 0-adfokban definit nyelv van, mégpedig ∅ és X. A definícióból adódik, hogy egy nyelv legfeljebb egy k∈N számra k-adfokban definit.

Mivel a véges nyelvek mindig tekinthetők véges ábécé felett, ezért minden L véges nyelv definit nyelv. Ha L6=∅, akkor

df(L) = 1 + max{|p|;p∈L}. (12.7) (Arról már beszéltünk, hogy df(∅) = 0.) Könnyen belátható a

12.11. Lemma. Egy L⊆X nyelv akkor és csak akkor k definit, ha bármely olyan p, q ∈ X szóra, amelyeknek megegyezik a k hosszúságú szuffixe, p ∈ L akkor és csak akkor, ha q∈L.

12.12. Következmény. Ha L ⊆X k definit, akkor minden k-nál nagyobb l pozitív egész számra l definit is.

12.13. Tétel. Minden X véges ábécé feletti L definit nyelv előállítható

L=L1+XL2 (12.8)

alakban, ahol L1 és L2 véges nyelvek és

max{|p|;p∈L1+L2} ≤df(L). (12.9) Megfordítva, minden (12.8) alakú nyelv definit és

df(L)≤1 + max{|p|;p∈L1+L2}. (12.10) Bizonyítás Legyen az L ⊆ X nyelv k-adfokban definit. Ha k = 0, akkor L = ∅ vagy L = X. Mindkét esetben L (12.8) alakú, mégpedig az első esetben L=∅+X∅, a második esetben pedigL=∅+Xe. Mindkét esetben (12.9) is igaz.

Legyen ezutánk >0. HaLvéges, akkorL=L+X∅és (12.7) miatt (12.9) is igaz.

Tegyük fel, hogy L végtelen és legyenek

L1 ={p∈L;|p|< k}, L2 ={p∈L;|p|=k}.

Mivel df(L) = k, ezért XL2 ⊆ L és így L1 +XL2 ⊆ L. A fordított irányú tartalmazás nyilvánvalóan fennáll, ezért L = L1+XL2, ahol L1 és L2 véges nyelvek. Emellett világos, hogy a kapott felbontásra (12.9) is teljesül.

Megfordítva, tegyük fel, hogy az L nyelvre és a véges L1, L2 nyelvekre ér-vényes a (12.8) felbontás. Ha Li 6=∅, akkor legyen

ki = max{|p|;p∈Li},

ha pedig Li =∅, akkor ki = 0 (i= 1,2). Legyen továbbá k= max{k1+ 1, k2}.

Megmutatjuk, hogyL k definit. Tekintsünk e célból egy legalábbk hosszúságú p ∈ X szót és legyen r ∈ X a p szó k hosszúságú szuffixe. Ha p ∈ L, akkor k1 < kmiattp /∈L1. Ígypelőállíthatóp=p1p2alakban, aholp1 ∈X,p2 ∈L2 és |p2| ≤ k. Ezért r =p0p2 (p0 ∈ X), azaz r ∈ XL2 ⊆ L. Tegyük most fel, hogy r∈L. Minthogy |r|=k > k1, ezért r∈XL2, s így előállíthatór =p0p2 (p0 ∈X) alakban. Következésképpen

p=qr =qp0p2 ∈XL2 ⊆L.

A fentiek éppen azt jelentik, hogy L k definit, azaz definíció szerint L definit.

Emellett a (12.10) egyenlőtlenség is teljesül. 2

12.14. Következmény. Az X véges ábécé feletti definit nyelvek halmaza zárt a halmazelméleti egyesítés, metszet és komplementerképzés műveletekre és ilyen L és K nyelvekre

df(L+K)≤max{df(L), df(K)}, df(L∩K)≤max{df(L), df(K)},

df(L) = df(L).

Bizonyítás LegyenLazX véges ábécé felettik-adfokban definit nyelv. Meg-mutatjuk, hogy L is k-adfokban definit. Mivel ∅ ésX definit nyelvek egymás komplementerei és df(∅) =df(X) = 0, ezért a továbbiakban feltehetjük, hogy k > 0. HaLvéges, akkor legyenL1 =LésL2 =∅. Ha pedigLvégtelen, akkor legyen

L1 ={p∈L;|p|< k}, L2 ={p∈L;|p|=k}.

A 12.13 Tétel bizonyításában láttuk, hogy L = L1+XL2. Nem nehéz meg-győződni arról, hogy

L= (

k−1

X

n=0

Xn−L1) +X(Xk−L2),

azazLis definit. A definit nyelv definíciója szerint világos, hogydf(L) =df(L).

Ha L és K az X véges ábécék feletti definit nyelvek, akkor a 12.13 Tétel szerint vannak olyan X feletti L1, L2, K1, K2 véges nyelvek, amelyekre L = L1 +XL2 és K =K1+XK2. Így

L+K = (L1+XL2) + (K1+XK2) = (L1+K1) +X(L2+K2), azaz a 12.13 Tétel alapján L+K is definit és

df(L+K)≤max{df(L), df(K)}.

Mivel L∩K =L+K, ezértL∩K is definit és

df(L∩K)≤max{df(L), df(K)}. 2 Véges ábécét feltételezve, (12.8)-ból következik, hogy a definit nyelvek re-guláris nyelvek Boole algebrájának rész Boole algebrája. Kleene tétele szerint felismerhetők véges automatákban. A véges ábécé feletti definit nyelveket spe-ciális véges automaták ismerik fel. Most azt vizsgáljuk meg, hogy ezek az automaták milyen típusúak.

Az A = (A, X, δ) automatát k definitnek nevezzük, ha van olyan k ∈ N, hogy

∀(p∈Xk) (|Ap|= 1). (12.11)

Nem nehéz belátni, hogy ha A k definit, akkor (k+ 1) definit is. Az A auto-matát definitnek mondjuk, ha k definit valamilyenk ∈N számra. A legkisebb ilyen k számot A definitségi fokának nevezzük és df(A)-val jelöljük. Azt is mondjuk, hogy az Aautomatak-adfokban definit. EgyA automata tehát pon-tosan akkor k-adfokban definit, ha tetszőleges legalább k hosszúságú bemenő szó hatásáraA minden állapotból egy csak ettől a szótól függő állapotba megy át és van olyank−1hosszúságú bemenő szó, valamintA-nak legalább két olyan állapota, hogy e két állapotból e szó hatására egymástól különböző állapotokba megy át.

Szemléletesen azt mondhatjuk, hogy ha egy A = (A, X, δ) automata k-adfokban definit, akkor egy legalább k hosszúságú p∈X szó hatására eljutva az apállapotba, "nem emlékszik" a kiindulási a∈A állapotra. Ezért a definit automatákat véges memóriájú automatáknak is nevezzük.

12.15. Tétel. Ha az L nyelv felismerhető egy A = (A, a0, X, δ) véges definit automatában, akkor L definit nyelv és df(L) ≤ df(A). Megfordítva, ha egy L definit nyelv felismerhető egy A = (A, a0, X, δ) véges automatában, amelyre

|A|=s(L) teljesül, akkor A definit automata és df(A) = df(L).

Bizonyítás Tegyük fel, hogy az L nyelv felismerhető az A = (A, a0, X, δ) véges k-adfokban definit automatában az F(⊆A) halmazzal. Legyen |p| ≥ k, p = p0q és |q| = k (p0, q ∈ X). Mivel A k-adfokban definit, ezért a0p = (a0p0)q = a0q. Tehát a0p ∈ F akkor és csak akkor, ha a0q ∈ F, azaz p ∈ L akkor és csak akkor, ha q∈L. Ezzel megmutattuk, hogy L k definit. Amiből már következik, hogy df(L)≤df(A).

Megfordítva, tegyük fel, hogy azL k-adfokban definit nyelv felismerhető az A = (A, a0, X, δ) véges automatában az F(⊆A) halmazzal. Továbbá, tegyük fel, hogy |A| = s(L), azaz az A automata állapotainak száma megegyezik az L nyelv súlyával. Ez azt jelenti, hogy A a legkevesebb állapottal rendelkező olyan automata, amelyben L felismerhető az állapothalmaz egy alkalmas F részhalmazával. Legyenek a, b ∈ A tetszőleges állapotok. Mivel |A| = s(L) miatt A nyilván iniciálisan összefüggő, ezért vannak olyan p, q ∈ X bemenő szavak, amelyekre a0p = a és a0q = b. Legyenek tetszőleges r legalább k hosszúságú szóraa1 =ar ésb1 =br. MivelL k-adfokban definit, ezért bármely r0 ∈X szóraprr0 ∈Lakkor és csak akkor, haqrr0 ∈L, azaza0prr0 ∈F akkor és csak akkor, ha a0qrr0 ∈ F, vagyis minden r0 ∈ X szóra a1r0 ∈ F akkor és csak akkor, ha b1r0 ∈ F. De |A| = s(L) miatt az AF egyszerű, ezért ar =a1 =b1 =br. Ezzel megmutattuk, hogy azA automata k definit.

Megmutatjuk, hogyAk-adfokban definit. Hak= 0, akkor készen vagyunk.

Legyen a továbbiakban k >0. MivelLnem (k−1) definit, ezért vannak olyan p1, p2 ∈X ésq∈Xk−1 szavak, hogy p1q∈L, de p2q /∈L. Ez azt jelenti, hogy

a0p1q∈F ésa0p2q /∈F. Tehát aza0p1és aza0p2állapotokra(a0p1)q6= (a0p2)q.

Ezzel megmutattuk, hogy A nem (k−1) definit, vagyis df(A) = df(L). 2 12.16. Következmény. Egy véges X ábécé felettiLnyelv akkor és csak akkor definit, ha az őt felismerő AF egyszerű automata véges definit automata és df(L) =df(AF).

12.17. Tétel. Ha egyk-adfokban definit nyelv felismerhető azA= (A, a0, X, δ) véges automatában, akkor |A| ≥k+ 1.

Bizonyítás Tegyük fel, hogy az L k-adfokban definit nyelv felismerhető az A = (A, a0, X, δ) n állapotú véges automatában az F(⊆ A) halmazzal. Ha k = 0, akkor a tétel nyilván igaz.

Legyen ezért a továbbiakban k > 0, továbbá X(i) = {p ∈ X; |p| ≤ i}.

Tekintsük mindeni∈N számraA-n azt aρiekvivalenciát, amelyre tetszőleges a, b∈A állapotpár esetén

(a, b)∈ρi ⇐⇒ (∀p∈X(i))(ap∈F ⇐⇒ bp∈F).

Nyilvánvaló, hogy ρi+1⊆ρi (i∈N). Hami jelöli aρi-osztályok számát, akkor 1 ≤ mi ≤ mi+1 ≤ n. Megmutatjuk, hogy az i = 0,1, . . . , k −1 indexekre mi < mi+1.

Minthogy L nem (k −1) definit, ezért vannak olyan p1, p2 ∈ X szavak és olyan q = x1x2. . . xk−1 ∈ Xk−1 szó, hogy p1q ∈ L, de p2q /∈ L. Legyen i ∈ {0,1, . . . , k−1} tetszőleges és qi aq i hosszúságú prefixe, továbbá q=qir (r ∈X). Akkor

(a0p1qi)r =a0p1q ∈L, (a0p2qi)r=a0p2q /∈L adódik és így |r|=k−i−1 miatt

ρk−i−1[a0p1qi]6=ρk−i−1[a0p2qi].

Legyen most p0 tetszőleges olyan bemenő szó, amelyre |p0| ≥ k −i fennáll.

Akkor, mivel L k-adfokban definit,

p1qip0 ∈L ⇐⇒ p2qip0 ∈L és így

(a0p1qi)p0 ∈F ⇐⇒ (a0p2qi)p0 ∈F, azaz

ρk−i[a0p1qi] =ρk−i[a0p2qi].

De itetszőleges 0 és k−1 közé eső egész szám volt, következésképpen 1≤m1 < m2 <· · ·< mk ≤n,

ahonnan már |A|=n≥k+ 1 adódik. 2

12.18. Tétel. Létezik olyan algoritmus, amely segítségével eldönthető, hogy egy véges ábécé feletti reguláris nyelv definit vagy nem definit.

Bizonyítás LegyenLreguláris nyelv az X véges ábécé felett. Feltehető, hogy L 6= ∅, X, mivel ∅ és X definit nyelvek X felett. Például a Kleene tétel bizonyításából kapható algoritmus alkalmazásával megszerkeszthető olyanA = (A, a0, X, δ) iniciálisan összefüggő véges automata, amelyben L felismerhető valamely ∅ ⊂ F ⊂A) halmazzal. Legyen |A|=n és tetszőleges i∈N számra κi az az ekvivalenciaA-n, amelyet tetszőlegesa, b∈A állapotpárra

(a, b)∈κi ⇐⇒ (∀p∈Xi)(ap∈F ⇐⇒ bp∈F) (12.12) által definiálunk. Eszerint a κ0-osztályok F és A−F. A definícióból világos, hogy

(a, b)∈κi+1 ⇐⇒ (∀x∈X)(δ(a, x), δ(b, x))∈κi), (12.13) ami A végessége miatt lehetővé teszi a κi-osztályok meghatározását. Nem nehéz belátni, hogy L akkor és csak akkor k definit, ha κk = ωA, azaz az univerzális reláció és

df(L) = min{k;κkA}.

Ha pedig κn−1 6= ωA, akkor a 12.17 Tétel alapján azt kapjuk, hogy L nem

definit. 2

12.19. Példa. Tekintsük X={x, y} ábécé feletti L=xyx+ (x+y)(x2+y)

negyedfokban definit nyelvet. Ha az L nyelvre a Kleene tétel bizonyításából kapható algoritmust alkalmazzuk, akkor az

A a0 a1 a2 a3 a4 a5 a6 x a1 a3 a5 a3 a6 a3 a3 y a2 a4 a2 a2 a2 a2 a2

átmenettáblázattal megadott automatához jutunk, amelyben L felismerhető az a0 kezdőállapotból az

F ={a2, a3, a4, a6}

halmazzal. (Ez könnyen belátható, ha például felrajzoljuk az automata átmenet gráfját.)

A 12.18 Tétel bizonyítása során megadott algoritmus felhasználásával meg-mutatjuk, hogy A= (A, a0, X, δ) definit automata. Adjuk meg a (12.12) felté-tellel definiált κi-osztályokat a (12.13) öszefüggést is felhasználva:

κ0−osztályok: {a0, a1, a5}, {a2, a3, a4, a6}, κ1−osztályok: {a0, a2}, {a1, a3, a4, a5, a6}, κ2−osztályok: {a0, a2, a3, a4, a5, a6}, {a1}, κ3−osztályok: {a0}, {a1, a2, a3, a4, a5, a6},

κ4−osztály: {a0, a1, a2, a3, a4, a5, a6}.

Ez azt jelenti, hogy az A automata negyedfokban definit.

Ha most az AF felismerő automatát minimalizáljuk az Aufenkamp–Hohn algoritmussal, akkor négy lépés után a

b0 ={a0}, b1 ={a1}, b2 ={a2}, b3 ={a5}, b4 ={a3, a4, a6} jelölések mellett a

B b0 b1 b2 b3 b4 x b1 b4 b3 b4 b4 y b2 b4 b2 b2 b2

egyszerű automatához jutunk, amely az Lnyelvet a b0 kezdőállapotból a{b2, b4} halmazzal állítja elő.

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 168-174)