• Nie Znaleziono Wyników

1 Algebra X-języków 1.1 X-języki i działania na nich, języki regularne

N/A
N/A
Protected

Academic year: 2021

Share "1 Algebra X-języków 1.1 X-języki i działania na nich, języki regularne"

Copied!
19
0
0

Pełen tekst

(1)

1 Algebra X-języków

1.1 X-języki i działania na nich, języki regularne

Niech X będzie ustalonym, niepustym i skończonym zbiorem.

Definicja 1.1 X-językiem nazywamy dowolny zbiór L słów nad alfabetem X:

L ⊆ X?

Niech L1, L2, L będą dowolnymi X-językami.Kładziemy:

L1· L2 = {u ∈ X? ; ∃v∈L1w∈L2 u = vw}

L1∪ L2 = L1+ L2 = {u ∈ X? ; u ∈ L1∨ u ∈ L2} L1∩ L2 = {u ∈ X? ; u ∈ L1∧ u ∈ L2} Rozważmy ciąg

L0 = {} Ln+1 = Ln· L

Język L? =Sn∈N Ln zwany jest domknięciem Kleene języka L.

Zadanie Wykaż, że język L? jest najmniejszym podzbiorem X?, który za- wiera L, słowo puste i jest domknięty na konkatenację.

Aby uniknąć pisania nawiasów stosujemy priorytety w kolejności działań:

?, ·, + oraz oznaczenie L+=Sn>0Ln

Definicja 1.2 Zbiorem wyrażeń regularnych R(X) nad alfabetem X nazy- wamy najmniejszy język Z nad alfabetem X ∪ {(, ), ·, ?, +, , ∅} taki, że:

1. X ∪ {, ∅} ⊆ Z;

2. jeśli r, s ∈ Z, to (r)?, (r + s), (r · s) ∈ Z.

Równoważnie język wyrażeń regularnych definiowany jest rekurencyjnie.

Póżniej udowodnimy, że jest on bezkontekstowy, gdyż w notacji Backusa- Naura możemy podaną definicję zapisać następująco:

R : x||∅|R · R|R?|R + R gdzie x ∈ X jest dowolną literą alfabetu.

Definicja 1.3 System L(X) =< P(X?), ∅, {}, ?, ·, + > nazywamy algebrą X-języków.

(2)

Zadanie Niech A, B, Bi, i ∈ I, C będą X-językami. Udowodnij, że 1. jeśli  ∈ A, to B ⊆ A · B;

2. A · A? ⊆ A?;

3. A ⊆ B ⇒ ∀CA · C ⊆ B · C;

4. A ⊆ B ⇒ ∀CC · A ⊆ C · B;

5. A ·Si∈IBi =Si∈IA · Bi

Są to dosyć oczywiste własności działań na w algebrze X-języków. Można dla każdej z tych własności zdefiniować jej odpowiednik (tak jak 4. jest odpowied- nikiem 3.) dla mnożenia z prawej/z lewej. Ciekawsze są problemy typu: scha- rakteryzuj wszystkie X-języki, które są rozwiązaniami równania A · A? = A?. Ten akurat jest banalny (?) My zajmiemy się poważniejszym

Lemat 1.4 (Ardena) Niech X będzie dowolnym alfabetem, A,B X-językami takimi, że  6∈ A. Wtedy równanie

Y = A · Y + B

ma dokładnie jedno rozwiązanie Y = A?· B w algebrze L(X).

Dowód Korzystając z zadania łatwo pokazać, że A · A?B + B ⊆ A?· B. Jeśli x ∈ A?B, x = uv, u ∈ A?, v ∈ B i u = , to x ∈ B gdy u 6=  łatwo pokazać, że x ∈ A(A?B) + B.

Udowodniliśmy, że język A?B jest rozwiązaniem równania. Trzeba jeszcze pokazać, że jest jedynym!

Niech Y będzie rozwiązaniem równania. Wtedy B ⊆ A · Y + B = Y i A · B ⊆ A · Y ⊆ A · Y + B = Y . Przez prostą indukcję można wykazać, że An· B ⊆ Y , co wobec zadania 4. kończy dowód inkluzji A? · B ⊆ Y . Inkluzję przeciwną dowodzimy stosując indukcję ze względu na długość słowa w ∈ Y . Jeśli w = , ponieważ  6∈ A a Y = A · Y + B otrzymujemy, że w ∈ B ⊆ A?· B. W kroku indukcyjnym słowo w ∈ Y = A · Y + B długości n + 1 może

• należeć do B ⊆ A?· B;

• być postaci v1v2 dla v1 ∈ A, v2 ∈ Y .

(3)

W drugim wypadku v1 6=  i do v2 można zastosować założenie indukcyjne;

v2 ∈ A?· B. Wtedy w = v1v2 ∈ A · A?· B ⊆ A?· B.

Wyrażenia regularne opisują pewne X-języki.

Definicja 1.5 Język L(r) wyznaczony przez wyrażenie regularne r definiuje- my rekurencyjnie:

1. L(∅) = ∅;

2. L() = {};

3. L(x) = {x}, dla x ∈ X;

4. L(r · s) = L(r) · L(s);

5. L(r + s) = L(r) + L(s);

6. L(r?) = L(r)?

Definicja 1.6 Język L ⊆ X? nazywamy regularnym, jeśli jest postaci L(r) dla pewnego wyrażenia regularnego r.

Zadania Wykaż, że:

1. Każdy język skończony jest regularny.

2. Niech L będzie dowolnym językiem nad alfabetem jednoelementowym.

Wtedy język L? jest regularny.

Rozwiązania Oczywiście L(x1. . . xn) = {x1. . . xn}, więc wyrażenie w1 + . . . + wk odpowiada językowi {w1, . . . , wk}.

Aby udowodnić drugie twierdzenie należy przypomnieć, że monoid słów nad dowolnym alfabetem jednoelementowym jest izomorficzny z monoidem liczb naturalnych z dodawaniem, co razem z poprzednim zadaniem oznacza, że należy udowodnić, iż każdy zbiór liczb naturalnych domknięty na dodawanie jest generowany przez skończony zbiór liczb.

Twierdzenie 1.7 Zbiór L(R(X)) ⊆ P(X?) jest najmniejszym podzbiorem A ⊆ P(X?) takim, że:

(4)

1. {}, ∅ ∈ A;

2. {w} ∈ A, dla każdego w ∈ X?;

3. Jeśli L, M ∈ A, to L + M, L · M, L? ∈ A.

Inaczej zbiór L(R(X)) jest nośnikiem najmniejszej podalgebry algebry języ- ków zawierającej wszystkie języki jednoelementowe.

Zadanie Wykaż, że następujące języki nad alfabetem {0, 1} są regularne:

1. kończące się słowem 00: (0 + 1)?00:

2. wszystkich słów, w których po 1 nie występuje zero: 0?1?;

3. wszystkich słów, w których po 1 zawsze występuje zero: (0 + (10))?; 4. wszystkich słów zawierających 101: (0 + 1)?(101)(0 + 1)?;

5. wszystkich słów nie zawierających 101;

6. {03n12k; n, k ­ 0}: (000)?(11)?.

Zadanie 5. zrobimy póżniej, gdy udowodnimy :

Twierdzenie 1.8 Język L nad skończonym alfabetem X jest regularny wtw, gdy język X?\L jest regularny.

Choć możemy próbować ? Wyrażenia regularne są nam dobrze znane z Unixa, pamiętamy, że używa się więcej operatorów do ich konstruowania. Łatwo wykazać, że są one definiowane poprzez podane w definicji operatory np.

język opisany przez wyrażenie a{2, } jest też opisany przez (aa)a?. Tak więc wiele operatorów wprowadzono dla wygody użytkowników.

Pojawia się inny problem teoretyczny (praktyczny?): wykonanie polecenia grep klu /etc/passwd oznacza użycie narzędzia akceptująceg te wiersze pliku w których pojawiają się słowa języka L(kluX?) i odrzucającego pozostałe.

Możemy takie narzędzie nazwać akceptorem lub ogólniej automatem.

(5)

1.2 X-automaty i automaty Rabina-Scotta

Definicja 1.9 X-automatem nazywamy system

A =< X, Σ, Q, F, δ, q0, #l, #r >

gdzie X, Σ, Q są skończonymi i parami rozłącznymi zbiorami symboli, wej- ściowych, pomocniczych i stanów;

F ⊆ Q jest wyróżnionym zbiorem stanów końcowych;

q0 ∈ Q jest wyróżninym stanem początkowym;

#l, #r 6∈ X ∪ Σ ∪ Q są znacznikami lewego i prawego końca słowa, a δ jest skończonym zbiorem par (apb, xqy), gdzie p, q ∈ Q, a, b ∈ X ∪ Σ ∪ {#l, #r, }, x, y ∈ (X ∪ Σ ∪ {#l, #r, })?, zwanych instrukcjami.

Niech Σ0 = Σ ∪ {#l, #r, }.

Definicja 1.10 Konfiguracją X-automatu A nazywamy każde słowo w nad alfabetem X ∪ Q ∪ Σ0 postaci #lxsy#r lub s#lx#r, gdzie s ∈ Q, x, y ∈ (X ∪ Σ)?.

Oczywiście instrukcje automatu służą do przetwarzania konfiguracji.

Definicja 1.11 Niech p,q będą konfiguracjami automatu A.

1. A przeprowadza bezpośrednio p na q (p ⇒ q), jeśli istnieje instrukcja (u, v) automatu A i słowa z1, z2 ∈ (X ∪ Σ0)? takie, że p = z1uz2, q = z1vz2.

2. A przeprowadza pośrednio p na q, jeśli para (p, q) należy do zwrotno- przechodniego domknięcia relacji ⇒: p ⇒? q.

3. Wtedy zbiór

L(A) = {x ∈ X? ; ∃s∈Fy∈(X∪Σ)?q0#lx#r ? #lys#r} nazywamy językiem akceptowanym przez automat A.

4. Jeśli każda instrukcja automatu A jest postaci (qa, r) dla q, r ∈ Q, a ∈ X∪{, #l, #r}, to A nazywamy automatem Rabina-Scotta (z -przejściami).

(6)

1.3 X-języki wyznaczone przez X-automaty Rabina- Scotta

RS-Automaty są bardzo prostymi urządzeniami. Głowica tylko czyta wejście i przesuwa się w prawo (po co #l?), a w konfiguracji końcowej całe wejście jest wyczyszczone (po co #r?). Mamy więc równoważną definicję:

RS-Automatem nazywamy piątkę < X, Q, F, δ, q0, >, gdzie X,Q,.. są od- powiednimi zbiorami, a δ ⊆ Q × (X ∪ {}) × Q.

Jeśli δ ⊆ Q × X × Q, to będziemy mówić, że A nie ma -przejść. Wtedy zależność qw ⇒? s zapisywać będziemy inaczej δ(q, w, s).

Lemat 1.12 Niech A =< X, Q, F, δ, q0, > będzie X-automatem Rabina-Scotta bez -przejść. Wtedy

L(A) = {x ∈ X? ; ∃s∈Fδ(q0, x, s)}

Symbolem AS(X) oznaczymy zbiór wszystkich X-języków akceptowanych przez RS-automaty.

Przykłady Automaty akceptujące te słowa nad alfabetem {0, 1}, które zawierają słowo 101:

(7)

n n n n - q0 q1 q2 qi3

0,1 0,1

1 0 1









- - -

n n n n

- q0 q1 i

1

q2 q3

0 0,1

1 0 1

0









- - -

 

6

Zauważmy, że drugi automat w odróżnieniu od pierwszego jest determini- styczny: w dowolnej konfiguracji może wykonać co najwyżej jedną instrukcję.

Definicja 1.13 (Klasyfikacja RS-automatów) Niech A =< X, Q, F, δ, q0, >

będzie RS-automatem. Mówimy, że

1. A ma -przejścia wtw, gdy ∃q,r∈Qδ(q, , r);

2. A bez -przejść jest detrministyczny wtw, gdy ∀q,r,s∈Qa∈Xδ(q, a, r) ∧ δ(q, a, s) ⇒ r = s;

3. A detreministyczny jest zupelny wtw, gdy ∀q∈Qa∈Xr∈Qδ(q, a, r).

W przykładnie skonstruowaliśmy dwa automaty: deterministyczny i niedeter- ministyczny dla tego samego języka. Nie jest to niczym wyjątkowym! Różne typy automatów nie wyznaczają właściwych podzbiorów AS(X).

Twierdzenie 1.14 Niech A =< X, Q, F, δ, q0, > będzie RS-automatem bez

-przejść. Istnieje deterministyczny RS-automat A0 =< X, Q0, F0, δ0, q00, > ta- ki, że L(A) = L(A0).

Dowód podobny jest do analogicznego twierdzenia dla maszyn Turinga!

Należy sobie uświadomoć, że wszystkie konfiguracje A w czasie przetwa- rzania słowa w ∈ X? w k-tym kroku są opisane tylko przez zbiór możliwych do osiągnięcia stanów! Stąd Q0 = P(Q), q00 = {q0}, F0 = {S ⊆ Q; S ∩ F 6= ∅}

i δ0(S, a) = {q ∈ Q; ∃s∈Sδ(s, a, q)}. Wobec definicji F0 należy wykazać, że

w∈X?δ0(q00, w) = S ⇔ ∀s∈Q(δ(q0, w, s) ⇔ s ∈ S)

Stwierdzenie to udowodnimy stosując indukcję ze względu na długość słowa w.

(Podstawa indukcji) Jeśli |w| = 0, to w =  i δ0(q00, w) = {q0}.

(8)

(Krok indukcyjny) Załóżmy, że stwierdzenie jest prawdziwe dla słów długości n. Niech w = vx ∈ X?, x ∈ X, v ∈ X? będzie dowolnym słowem długości n+1. Wtedy |v| = n i δ0(q00, w) = δ0(q00, vx) = δ00(q00, v), x). Niech S = δ0(q00, v), mamy

q ∈ δ0(q00, w) ⇔ q ∈ δ0(S, x) ⇔ ∃s∈Sδ(s, x, q) ⇔ ∃s∈Qδ(q0, v, s)∧δ(s, x, q) ⇔ δ(q0, w, q)

Zauważmy, że automat detrministyczny w poprzednim przykladzie jest zbu- dowany dużo oszczędniej (ma dużo mniej stanów niż 24). Niestety to się rzadko zdarza - konstrukcja automatu detrministycznego jest zadaniem o wykłaniczej złożoności obliczeniowej. Trzeba wskazać ciąg automatów Anta- ki, że ilośc stanów każdego deterministycznego automatu dla L(An) będzie w wykładniczej zależności od ilości stanów An. Zrobimy to później.

Obecnie zajmiemy się eliminacją -przejść.

Twierdzenie 1.15 Niech A =< X, Q, F, δ, q0, > będzie RS-automatem z - przejściami. Istnieje RS-automat A0 =< X, Q0, F0, δ0, q00, > bez -przejść taki, że L(A) = L(A0).

Dowód Dla dowolnego stanu p ∈ Q i zbioru P ⊆ Q definiujemy:

 − DOM K(p) = {q ∈ Q; p ⇒?Aq}

 − DOM K(P ) = [

p∈P

 − DOM K(p)

Niech δ(P, a) = {q ∈ Q; ∃p∈Pδ(p, a, q)}. Rozważmy pomocniczą relację γ ⊆ Q × X?× Q:

q∈Qγ(q, ) =  − DOM K(q) i ∀q∈Q,a∈Xw∈X?γ(q, wa) =  − DOM K(P ) gdzie P = {p ∈ Q; ∃r∈γ(q,w)δ(r, a, p)}. Wtedy A0 =< X, Q, F0, δ0 > definiuje- my następująco:

δ0(q, a) = γ(q, a) gdzie a ∈ X F0 =

( F ∪ {q0}  − DOM K(q0) ∩ F 6= ∅ F  − DOM K(q0) ∩ F = ∅ Należy pokazać, że

w∈X+δ0(qo, w) = γ(q0, w)

(9)

przez indukcję ze względu na długość słowa w.

Z powyższych twierdzeń mamy winiosek.

Wniosek 1.16 Dla niedeterministycznego RS-automatu A z -przejściami istnieje deterministyczny RS-automat B taki, że L(A) = L(B).

Definicja 1.17 RS-automaty A, B nad alfabetem X nazywamy równoważ- nymi, gdy L(A) = L(B).

Jako ćwiczenie pozostawiamy dowód twierdzenia

Wniosek 1.18 Dla dowolnego RS-automatu A istnieje deterministyczny i zupełny RS-automat B równoważny z A.

Ważnym wnioskiem z twierdzenia 1.14 jest

Twierdzenie 1.19 Dla dowolnego RS-automatu A istnieje automat C taki, że L(C) = X?\L(A).

Dowód Należy rozważyć automat deterministyczny i zupełny B =<

X, Q, F, δ, q0 > równoważny z A i położyć C =< X, Q, Q\F, δ, q0 >.

Znamy już jedno kryterium odrzucania języków nie należących do zbioru skończenie akceptowalnych. Innego kryterium dostarcza

Lemat 1.20 (O pompowaniu) Niech L będzie językiem skończenie akcep- towalnym. Wtedy

n∈Nz∈X?(z ∈ L∧|z| ­ n) ⇒ ∃u,v,w∈X?(z = uvw∧|uv| ¬ n∧|v| ­ 1∧∀i∈Nuviw ∈ L).

Dowód polega na zauważeniu, że w ciągu n-wyrazowym elementów zbio- ru mocy m < n pewne wyrazy muszą się powtórzyć! Jeśli więc automat A akceptujący L ma m stanów i słowo z ∈ L(A) jest przynajmniej długości n=m, a (q0, q1, . . . , qn) jest ciągiem stanów w jakie wchodzi A w czasie ak- ceptowania z, to słowa u, v, w są wyznaczone przez najmniejszy numer stanu, który się powtarza.

Zadanie Udowodnij Uogólniony lemat o pompowaniu:

(10)

Niech L będzie językiem skończenie akceptowalnym. Wtedy

n∈Na,z,b∈X?(azb ∈ L∧|z| ­ n) ⇒ ∃u,v,w∈X?(z = uvw∧|uv| ¬ n∧|v| ­ 1∧∀i∈Nauviwb ∈ L).

Przykład 1 Pokażemy, że język {0p; p liczba pierwsza } nie jest skończe- nie akceptowalny. Niech n ∈ N będzie dowolne; należy wskazać słowo z ∈ L długości nie mniejszej niż n, którego żaden rozkład nie daje podsłowa do ”na- pompowania”. Niech p ­ n będzie dowolną liczbą pierwszą niemniejszą niż n.

Niech 0p = 0u0v0w, v > 1, u + v ¬ n. Gdyby był to poszukiwany rozkład, to u+w musi być liczbą pierwsza, a wtedy liczba u+(u+w)v+w = (u+w)(v+1) jest złożona, więc słowo 0u(0v)u+w0w nie należy do L.

Przykład 2 Podobnie łatwo pokaząc, że język {akbk; k ∈ N } nie jest skończenie akceptowalny. Dla każdego n ∈ N rozpatrujemy słowo anbn, a każde napompowanie niepustego podsłowa słowa an daje słowo nienależące do języka.

Przykład 3 Lemat o pompowaniu nie daje narzedzia do rozstrzygania o skończonej akceptowalności. Rozpatrzmy język L = {aibjck; i = 0 ∨ j = k}.

Jeśli przyjmiemy, że n = 1, to dowolne napompowanie pierwszej litery da- je słowo z języka; język ten nie jest skończenie akceptowalny, bo przekrój L ∩ {abicj; i, j ∈ n} = {abkck; k ∈ N } nie jest językiem skończenie akcepto- walnym, a wkrótce udowodnimy, że przekrój języków L1∩L2, L1, L2 ∈ AS(X) należy do AS(X)

No to do dzieła!

2 Twierdzenie Kleene’go

Najpierw technika:

Lemat 2.1 Dla dowolnego RS-automatu A istnieje równoważny z nim auto- mat A0 taki, że

1. zbiór stanów końcowych F0 jest jednelementowy;

2. zbiór instrukcji stosowalnych w konfiguracjach f w, dla {f } = F0 jest pusty.

Dowód to proste ćwiczenie.

(11)

Lemat 2.2 Następujące języki są skończenie akceptowalne.

1. L = ∅;

2. L = {};

3. L = {w} dla każdego w ∈ X+.

Lemat 2.3 Załóżmy, że języki L1, L2 są skończenie akceptowalne. Wtedy ję- zyk L1∪ L2 jest skończenie akceptowalny.

Dowód Niech A1 =< X, Q1, F1, δ1, q10 >, A2 =< X, Q2, F2, δ2, q02 > będą automatami akceptującymi odpowiednio L1 i L2. Możemy założyć, że ma- ją rozłączne zbiory stanów i spełniają warunki lematu 2.1. Wtedy automat A =< X, Q1 ∪ Q2 ∪ {q0, f }, {f }, δ, q0 >, gdzie q0, f 6∈ Q1 ∪ Q2 są nowymi stanami, a relacja δ opisana jest wzorem

δ(q, a) =

{q10, q02} q = q0∧ a = 

δi(q, a) q ∈ Qi∧ i = 1, 2 ∧ a ∈ X ∪ {}

{f } a =  ∧ q ∈ F1∪ F2 jest automatem akceptującym L1∪ L2.

Lemat 2.4 Załóżmy, że języki L1, L2 są skończenie akceptowalne. Wtedy ję- zyk L1· L2 jest skończenie akceptowalny.

Dowód Niech A1 =< X, Q1, F1, δ1, q01 >, A2 =< X, Q2, F2, δ2, q02 > będą automatami akceptującymi odpowiednio L1 i L2. Możemy założyć, że ma- ją rozłączne zbiory stanów i spełniają warunki lematu 2.1. Wtedy automat A =< X, Q1 ∪ Q2, {f2}, δ, q01 >, gdzie F2 = {f2}, a relacja δ opisana jest wzorem

δ(q, a) =

δ1(q, a) q ∈ Q1\{f1} ∧ a ∈ X ∪ {}

δ2(q, a) q ∈ Q2∧ a ∈ X ∪ {}

{q02} q = f1∧ a =  jest automatem akceptującym L1· L2.

Lemat 2.5 Załóżmy, że język L jest skończenie akceptowalny. Wtedy język L? jest skończenie akceptowalny.

(12)

Dowód Niech A =< X, Q, {f }, δ, q0 > będzie automatem akceptującym L. Możemy założyć, że spełnia on warunki lematu 2.1. Wtedy automat A =<

X, Q ∪ {q10, f1}, {f1}, δ0, q10 >, gdzie q01, f1 są nowymi stanami a relacja δ opisana jest wzorem

δ0(q, a) =

δ(q, a) q ∈ Q\{f } ∧ a ∈ X ∪ {}

{q0, f1} q = f ∧ a =  {q0, f1} q = q10∧ a =  jest automatem akceptującym L?.

Lemat 2.6 Załóżmy, że języki L1, L2 są skończenie akceptowalne. Wtedy ję- zyk L1\L2 jest skończenie akceptowalny.

Dowód Prawo de Morgana rachunku zbiorów to równość A ∩ B = (A0∪ B0)0, gdzie A0 oznacza dopełnienie. Stąd przekrój języków skończenie akceptowal- nych jest skończenie akceptowalny, a różnicę można wyrazić za pomocą do- pełnienia i przekroju.

Ponieważ zbiór języków regularnych L(R(X)) jest najmniejszym zbio- rem X-języków zawierającym język pusty, jednoelementowe i domkniętym na działania algebry języków otrzymujemy następujący wniosek.

Wniosek 2.7 Dla dowolnego skończonego alfabetu X, L(R(X)) ⊆ AS(X).

Zadanie Prześledź dowody lematów i skonstruuj RS-automat dla języka opisanego wyrażeniem (00)?(11 + 0)?. Jaki wpływ ma długość wyrażenia na ilość stanów automatu?

Twierdzenie 2.8 (Kleene) Dla dowolnego skończonego alfabetu X, L(R(X)) = AS(X).

Dowód Należy dla dowolnego (deterministycznego) RS-automatu A =<

X, Q, F, δ, q0 > bez -przejść skonstruować wyrażenie regularne r ∈ R(X) takie, że L(A) = L(r). Dla każdego q ∈ Q połóżmy L(A, q) = {w ∈ X?; ∃p∈Fqw ⇒?Ap}. Idea polega na związaniu z A układu równań w algebrze X-języków o zmiennych {Xq, q ∈ Q}, którego jedynym rozwiązaniem jest ciąg {L(A, q), q ∈ Q}. Wykorzystamy w tym celu lemat Ardena. Dla q ∈ Q

(13)

zdefiniujmy zbiór δ(q) = {(q, a1, q1), . . . , (q, am, qm)} wszyskich instrukcji A stosowanych w stanie q. Niech

Empty(q) =

(  q ∈ F

∅ q 6∈ F Wtedy konstruujemy równanie

Xq= a1X1∪ . . . amXm∪ Empty(q).

Otrzymany układ równań można rozwiązać (jednoznacznie) stosując, jeśli trzeba, lemat Ardena. W kolejnym kroku algorytmu wybieramy jedną zmien- ną po lewej stronie jakiegoś równania. Jeśli nie występuje ona po jego prawej stronie eliminujemy ją z pozostałych równań, jeśli występuje stosujemy lemat Ardena po uprzednim przekształceniu równania do postaci Xq = AXq+ B, potem przystępujemy do eliminacji. Czynności te powtarza się dla każdego stanu automatu. Nie należy jednak sądzić iż otrzymany algorytm ma złożo- ność wielomianową, gdyż długość konstruowanego wyrażenia zależy wykład- niczo od ilości stanów A. Oczywiście L(A) = L(A, q0)!

Zadanie Wyznacz wyrażenie regularne dla języka tych słów nad alfabe- tem {0, 1}, które nie zawierają słowa 101.

3 Twierdzenie Nerode’a. Algorytmy decyzyj- ne dla języków regularnych

W rozdziale pierwszym wykazaliśmy, że jeśli język L jest skończenie akcep- towalny, to największa prawa kongruencja monoidu X? nasycająca L, czyli ρrL, ma skończenie wiele klas abstrakcji. Czas najwyższy wykazać, że jest też odwrotnie. Przypomnijmy definicję ρrL;

x,y∈X?rLy ⇔ ∀v∈X?(xv ∈ L ⇔ yv ∈ L)

Twierdzenie 3.1 (Nerode) Niech X będzie dowolnym skończonym alfabe- tem, a L dowolnymX-językiem. Następujące warunki są równoważne:

1. L ∈ AS(X);

(14)

2. istnieje prawa kongruencja Θ monoidu X?, która ma skończenie wiele klas abstrakcji i nasyca L;

3. prawa kongruencja ρrL ma skończenie wiele klas abstrakcji.

Dowód Przypomnijmy, że (1) pociąga (2), bo dla deterministycznego i zu- pełnego RS-automaty A relacja Θ = Kerδ(q0, ) jest prawą kongruencją o żądanych własnościach.

(2) pociąga (3), bo ρrL jest największą prawą kongruencją nasycającą L.

(3) pociąga (1), gdyż skonstruujemy RS-automat (zupełny i deterministycz- ny) akceptujący L. Połóżmy: Q = X?rL, q0 = [], F = {[w] ; w ∈ L} i δ([w], x) = [wx]. Jeśli definicja funkcji δ jest poprawna, to łatwo pokazać, że L(A) = L: v ∈ L(A) ⇔ ∃w∈LrLw ⇔ v ∈ L. Dowód poprawności defini- cji δ polega na wykazaniu, że nie zależy ona od wyboru reprezentanta klasy abstrakcji [w]. Ale vρrLw pociąga vxρrLwx, czyli [w] = [v] pociąga [wx] = [vx].

Przypomnijmy, że w rozdziale 1. była też mowa o największej kongruencji monoidu słów nasycającej dany język. Kongruencji tej dotyczy twierdzenie Myhill’a. Przypomnijmy definicję ρL;

x,y∈X?Ly ⇔ ∀u,v∈X?(uxv ∈ L ⇔ uyv ∈ L)

Twierdzenie 3.2 (Myhill) Niech X będzie dowolnym skończonym alfabe- tem, a L dowolnymX-językiem. Następujące warunki są równoważne:

1. L ∈ AS(X);

2. istnieje kongruencja Θ monoidu X?, która ma skończenie wiele klas abstrakcji i nasyca L;

3. kongruencja ρL ma skończenie wiele klas abstrakcji.

Dowód jest bardzo podobny do dowodu tw. Nerode’a: podpowiemy tylko, że za kongruencję w punkcie (2) należy wziąć relację:

\

q∈Q

Ker δ(q, )

Teraz wykorzystamy tw. Nerode’a i Myhill’a do wykazania, że zbiór języ- ków skończenie akceptowalnych domknięty jest na wiele innych operacji.

(15)

Twierdzenie 3.3 Niech L ∈ AS(X). Wtedy następujące języki są skończe- nie akceptowalne:

1. dla dowolnego X-języka L1 język

L2 = L/L1 = {x ∈ X? ; ∃y∈L1xy ∈ L};

2. P ocz(L) = {x ∈ X? ; ∃y∈X?xy ∈ L};

3.

L = {x ∈ X? ; xx ∈ L}.

Dowód dla

L: wykażemy, że ρL ⊆ ρrL. Jeśli więc ρL ma skończenie wiele klas abtrakcji, to ρrL również. Załóżmy, że xρLy. Wtedy dla dowolnego v ∈ X?, xvxvρLyvyv, co pociąga xv ∈

L ⇔ yv ∈

L, co wobec dowolności v kończy dowód.

Inną ważną konsekwencją twierdzenia Nerode’a jest

Twierdzenie 3.4 Niech A =< X, Q, F, δ, q0 > będzie zupełnym i determini- stycznym RS-automatem takim, że:

1. Każdy stan jest osiągalny:∀q∈Qw∈X?δ(q0, w) = q;

2. Każde dwa stany są odróżnialne:

p,q∈Q(p 6= q ⇒ ¬(∀w∈X?δ(p, w) ∈ F ⇔ δ(q, w) ∈ F ).

Wtedy Ker δ(q0, ) = ρrL i |Q| = |X?rL|.

Dowód Oczywiście Θ = Ker δ(q0, ) ⊆ ρrL. Przypuśćmy, że istnieje para (x, y) ∈ ρrL\Θ. Niech p, q ∈ Q będą takie, że δ(q0, x) = p i δ(q0, y) = q. Oczy- wiście p 6= q, ale xρrLy, więc ∀w∈X?xw ∈ L ⇔ yw ∈ L i ∀w∈X?δ(q0, xw) ∈ F ⇔ δ(q0, yw) ∈ F . Ponieważ δ(q0, xw) = δ(p, w) i δ(q0, yw) = δ(q, w) otrzy- mujemy, że stany p, q są nieodróżnialne, co daje sprzeczność.

Dowód twierdzenia 3.4 daje algorytm wyznaczania zupełnego i determi- nistycznego automatu o minimalnej liczbie stanów równoważnego z danym deterministycznym RS-automatem A, w którym wszystkie stany są osiągal- ne. W istocie wyznacza się pary stanów nierównoważnych bo mamy dwie proste obserwacje:

(16)

1. Każda para stanów z których jeden jest końcowy a drugi nie, nie jest równoważna (rozważ słowo puste);

2. para (p, q) nie jest równoważna wtw, gdy nie jest równoważna para (δ(p, a), δ(q, a)) dla pewnej litery a alfabetu X.

Algorytm Huffmana (1954) i Moore’a (1956) polega na umieszczaniu pary (p, q) na liście dla par (δ(p, a), δ(q, a)) w oczekiwaniu na ustalenie, czy któraś z nich nie jest równoważna. Ponieważ każdą parę umieszcza się na co najwy- żej k = |X| listach orzymujemy algorytm o złożoności rzędu O(kn2), gdzie n = |Q|.

begin

1. for p ∈ F i q ∈ Q\F do oznacz (p, q);

2. for każda para (p, q) różnych stanów z F × F lub Q\F × Q\F do

3. if dla pewnego symbolu wejściowego a oznaczona jest para (δ(p, a), δ(q, a)) then begin

4. oznacz (p, q);

5. oznacz rekurencyjnie wszystkie nieoznaczone pary na liście dla (p, q) i listach innych par, które właśnie oznaczyłeś; end else

6. for wszystkie symbole wejściowe a do

7. umieść (p, q) na liście dla (δ(p, a), δ(q, a)), o ile δ(p, a) 6= δ(q, a) end.

Przykład Automatu niedetrministycznego A takiego, że każdy automat de- terministyczny równoważny z A ma O(2|Q|) stanów.

Rozważmy język opisany wyrażeniem regularnym (0 + 1)?1(0 + 1)k, gdzie k ­ 0. Każdy potrafi skonstruować niedeterministyczny RS-automat o k+2 stanach dla tego języka. Pokażemy, że minimalny automat dla tego języka ma 2k+1stanów. Wystarczy udowodnić, że każde słowo w ∈ X?przystaje modulo ρrL do swego najdłuższego sufiksu zaczynającego się 1 i długości niewiększej niż k+1 lub do słowa pustego, a takie słowa nie są kongruentne modulo ρrL.

(17)

Inny algorytm zaproponował w 1971 roku Hopcroft. Zasadnicza różnica polega na tym, że wyznacza się w nim pary stanów równoważnych. Można to zrobić przez prostą iterację w O(n) krokach.

1. W pierwszym kroku definiuje się relację R0 = F × F ∪ (Q \ F ) × (Q \ F ).

2. W k+1-szym kroku definiujemy Rk+1 = {(p, q) ∈ Rk ; ∀a∈Xδ(p, a)Rkδ(q, a)};

3. Kończymy iterację, gdy Rk = Rk+1.

Przy implementacji jest problem z wyznaczaniem następnego zbioru Ri+1. Wykorzystując reprezentację relacji równoważności w postaci podziału moż- na uzyskać algorytm o złożoności O(n log n)

4 Zagadnienia rozstrzygalne dla języków re- gularnych

Na początek dla tych, co nie zauważyli, że języki regularne (skończenie ak- ceptowalne) są rekurencyjne

Lemat 4.1 Niech A =< X, Q, F, δ, q0 > będzie dowolnym RS-automatem.

Wtedy problem ”w ∈ L(A)” jest rozstrzygalny.

Dowód Dla Y ⊆ Q, a ∈ X definiujemy Kroka(Y ) = {q ∈ Q ; ∃p∈Y δ(p, a, q)}.

Wtedy algorytm

Wejście w = a1. . . an , A;

X := {q0};

Dla i = 1, . . . , n wykonuj X := Krokai(X);

Wynik: wartość logiczna relacji X ∩ F 6= ∅;

rozwiązuje problem w ∈ L(A).

Zadanie Zmodyfikuj powyższy algorytm tak aby rozwiązywał problem ”pre- fiks w należy do L(A).

Twierdzenie 4.2 Zbiór słów akceptowanych przez RS-automat A o n sta- nach jest

1. niepusty wtw, gdy A akceptuje słowo długości mniejszej od n;

(18)

2. nieskończony wtw, gdy A akceptuje słowo długości l dla pewnego n ¬ l < 2n.

Dowód (1) wystarczy wykazać, że jeśli L(A) jest niepustym zbiorem, to do L(A) należy słowo długości mniejszej od n. Wykorzystamy do tego lemat o pompowaniu, jeśli w ∈ L(A) jest słowem długości nie mniejszej od n, to usuwając jego pewne podsłowo niepuste otrzymamy słowo krótsze i akcepto- wane przez A. Zatem najkrótsze słowo z L(A) jest długości mniejszej od n.

(2)Jeśli w ∈ L(A) jest długości większej od n, to stosuje się do niego lemat o pompowaniu, więc język L(A) jest wtedy nieskończony. Odwrotnie, jeśli L(A) jest nieskończony, to zawiera słowo w długości nie mniejszej niż n. Przypuść- my, że w jest najkrótszym słowem o tej własności z L(A) i |w| ­ 2n. Stosując do niego lemat o pompowaniu usuwamy podsłowo długości mniejszej niż n.

Otrzymane słowo jest przynajmniej długości n, co daje sprzeczność z założe- niem o długości w. W ostatnim twierdzeniu zebrane są pokrewne problemy, które również są rozstrzygalne.

Twierdzenie 4.3 Następujące problemy są rozstrzygalne:

1. Dla RS-automatów A, B, czy L(A) = L(B);

2. Dla wyrażenia regularnego r i słowa w, czy w ∈ L(r);

Wiele narzędzi lingwistycznych dopuszcza rozszerzenie operatorów na wy- rażeniach regularnych o przekrój i dopełnianie. Znany nam algorytm dla pro- blemu 2. (oparty na deterministycznych automatach) w powyższym twierdze- niu jest wykładniczy. Okazuje się, że znane są algorytmy, których czas wy- konania zależy wielomianowo od długości słowa w i wyrażenia regularnego r (Aho, Hopcroft, Ullman str. 414).

4.1 Problem dopasowania wzorca

Sformułowanie: Dla słowa w = a1. . . an i wyrażenia regularnego r spraw- dzić, czy (i wyznaczyć) w ma podsłowo ai. . . aj, i < j należące do języka L(r).

Rozwiązanie: Zbudować RS-automat A dla s = X?r i wykorzystać zmody- fikowany algorytm 4.1.

Oto algorytm:

Wejście w = a1. . . an , A;

(19)

X := {q0};

i := 0;

Dopóki i < n lub X ∩ F = ∅ wykonuj X := Krokai(X);

Wynik: wartość logiczna relacji X ∩ F 6= ∅;

Ponieważ automat A na wejściu jest niedetrministyczny podany algorytm ma złożoność O(n|Q|). Jeśli r jest po prostu jednym słowem y (klasyczna wer- sja problemu) długości l otrzymany algorytm nie ma lepszej złożoności niż algorytm naiwny, o ile A ma O(l) stanów. Rozwiązaniem tego problemu jest zbudowanie automatu (minimalnego) deterministycznego i zupełnego!

Opis automatu Niech y = b1. . . bli niech My =< X, 0, 1, . . . , l, {l}, δ, 0 >

będzie automatem rozpoznającym tylko słowo y, czyli δ = {(i, bi+1, i + 1) ; i = 0, . . . , l −1}. Na jego podstawie zbudujemy automat A o tym samym zbiorze stanów dla wyrażenia X?yX?. Aby spełnić ten warunek instrukcje A określamy tak, aby

po przeczytaniu a1. . . am automat jest w stanie j < l wtw, gdy am−j+1. . . am = b1. . . bj i j jest maksymalną liczbą o tej własności.

Stąd dla dowolnego z ∈ X? i y definiujemy:

σ(z) = max {k ; y1. . . yk jest sufiksem z}

oraz A =< X, {0, . . . , l}, {l}, δ, 0 > gdzie

δ(q, a) = σ(y1. . . yq, a) dla q < l oraz δ(l, a) = l

Teraz najważniejszym czynnikiem wpływającym na złożoność algorytmu jest czas potrzebny na JEDNORAZOWE obliczenie funkcji δ. Już naiwny algo- rytm działa w czasie O(l3|X|), a można to zrobić w czasie O(l|X|). Tym niemniej najlepszy algorytm Knutha-Morrisa-Pratta działa w czasie Θ(l +n)!

Cytaty

Powiązane dokumenty

W bieżącym roku zakład sprzedał 400 polis z pierwszej grupy, 300 polis z drugiej i 200 polis z trzeciej grupy.. Dane umieszczono

Można też konstruować ciągi, których różnica zbiega do 0, ale dla których różnica wartości funkcji nie zbiega do zera, ale to jednak strasznie dużo

Uogólnić trzy poprzednie zadania na sumy nieskończone.... Wskazówka: Wyprowadzić wzór analogiczny do wzoru z

[r]

6 Poka», »e okr¡g bez punktu jest homeomorczny z prost¡ euklidesow¡.. Uogólnij ten wynik na

Semestr zimowy Kolokwium próbne. Javier

Podaj przykªad funkcji, która.. (a) jest injekcj a, ale nie jest

Podaj przykªad funkcji, która.. (a) jest injekcj a, ale nie jest