• Nie Znaleziono Wyników

J ¾ ezyki kontekstowe

W dokumencie Automaty sko´nczone 19 3.1 (Stron 165-177)

W rozdziale tym poznamy jeszcze jedn ¾a klas ¾e j ¾ezyków formalnych - klas ¾e j ¾ezyków kontek-stowych. Jest to klasa po´srednia mi ¾edzy klasami j ¾ezyków bezkontekstowych i rekursywnych.

Istotn ¾a cech ¾a j ¾ezyków tej klasy jest to, ·ze s ¾a one akceptowane przez szczególny rodzaj maszyn Turinga. Maj ¾a one t ¾e w÷asno´s´c, ·ze liczba komórek ta´smy wykorzystywanych w trakcie dzi-a÷ania jest ograniczona do komórek „zaj ¾etych” przez s÷owo wej´sciowe.

12.1. Gramatyki i j ¾ezyki kontekstowe

Gramatyk¾e frazow ¾a G = (V; ; P; S) nazywamy kontekstow ¾a, gdy jej produkcje maj ¾a posta´c

! ;

gdzie ; 2 (V [ )+; (czyli ; s ¾a niepustymi s÷owami utworzonymi ze zmiennych i symboli ko´ncowych) oraz

(12.1) j j j j :

Zatem w stosunku do ogólnej de…nicji gramatyki frazowej zak÷adamy dodatkowo, ·ze d÷ugo´s´c s÷owa jest wi ¾eksza lub równa d÷ugo´sci s÷owa (np. produkcja XaY ! aY ZbSa spe÷nia ten warunek, a produkcje Xa ! Z; Y ! nie). Bedziemy o nich mówi´c, ·ze s ¾a typu kontekstowego.

Z de…nicji gramatyki kontekstowej wynika, ·ze nie generuje ona s÷owa pustego (bo nie ma ·zadnej -produkcji). Poniewa·z zaliczenie lub nie s÷owa pustego do danego j ¾ezyka nie zmienia go istotnie, wi ¾ec przyjmujemy nast ¾epuj ¾ac ¾a de…nicj ¾e.

J ¾ezyk formalny L nazywamy j ¾ezykiem kontekstowymgdy istnieje gramatyka kontek-stowa G taka, ·ze

L r f g = L(G):

Mówimy wtedy, ·ze G generuje j ¾ezyk L: Klas ¾e wszystkich j ¾ezyków kontekstowych oz-naczamy przez JK.

Przyk÷ad 12.1. J ¾ezyk L = fanbnan: n 2 Ng jest j ¾ezykiem kontekstowym (zob. Przyk÷ad 11.20), gdy·z jest generowany przez gramatyk ¾e o produkcjach.

1. S ! aSBA;

2. S ! abA;

3. AB ! BA;

4. bB ! bb;

5. bA ! ba;

6. aA ! aa:

Stwierdzenie 12.2. Klasa j ¾ezyków bezkontekstowych zawiera si ¾e istotnie w klasie j ¾ezyków kontekstowych tzn.

JBK JK:

Dowód. 1. JBK JK: Niech L b ¾edzie j ¾ezykiem bezkontekstowym. Wówczas istnieje gramatyka bezkontekstowa o normalnej postaci Chomsky’ego taka,·ze

L r f g = L(G):

159

Poniewa·z produkcje gramatyki o normalnej postaci Chomsky’ego maj ¾a posta´c X ! Y Z;

U ! a; gdzie X; Y; Z; U s ¾a zmiennymi, i a symbolem ko´ncowym, wi ¾ec spe÷niaj ¾a one warunek (12.1). Zatem L jest j ¾ezykiem kontekstowym.

2. JBK 6= JK: Na mocy powy·zszego przyk÷adu j ¾ezyk fanbnan : n 2 Ng jest j ¾ezykiem kontekstowym. Jednak nie jest on j ¾ezykiem bezkontekstowym (zob. Przyk÷ad 8.4).

Zadanie 12.3. Niech G = (V; ; P; S) = (fS; X; Y g; fa; bg; P; S); gdzie P sk÷ada si ¾e z produkcji: S ! SY Xja; Y X ! XY; aX ! aaY; Y ! b:

1. Poda´c wyprowadzenie s÷owa aabb:

2. Opisa´c j ¾ezyk generowany przez G:

3. Poda´c gramatyk ¾e bezkontekstow ¾a generuj ¾ac ¾a L(G):

Zadanie 12.4. Poda´c gramatyki kontekstowe generuj ¾ace j ¾ezyki:

1. fanbnanbn: n > 0g:

2. fanAbn: n 0; A 2 fa; bg ; jAj = ng:

3. fAAA : A 2 fa; bg g:

4. fAARA : A 2 fa; bg g:

Zadanie 12.5. Poda´c gramatyk ¾e kontekstow ¾a generuj ¾ac ¾a ten sam j ¾ezyk co i gramatyka frazowa o produkcjach: S ! XaY; X ! XZj ; Za ! aaZ; ZY ! Y; Y ! :

Zanim podamy dalsze w÷asno´sci j ¾ezyków kontekstowych wyja´snimy znaczenie s÷owa „kon-tekstowy” w nazwie klasy tych j ¾ezyków. U·zyjemy do tego nast ¾epuj ¾acego twierdzenia.

Twierdzenie 12.6. J ¾ezyk L jest kontekstowy wtedy i tylko wtedy, gdy j ¾ezyk L n f g jest generowany przez gramatyk ¾e frazow ¾a G = (V; ; P; S) o produkcjach postaci

(12.2) X ! ;

gdzie X 2 V , 2 (V [ )+ i ; 2 (V [ ) :

Dowód. 1. ( : Implikacja ta jest oczywista, gdy·z produkcje postaci (12.2) spe÷niaj ¾a warunki produkcji gramatyki kontekstowej, bo

j j = j j + j j + j j j j + 1 + j j = j j + jXj + j j = j X j :

2. ) : Niech L b ¾edzie j ¾ezykiem kontekstowym, generowanym przez gramatyk¾e kontek-stow ¾a G = (V; ; P; S): Mo·zemy za÷o·zy´c, ·ze 2 L: Zmody…kujemy gramatyk¾= e G do nowej, generuj ¾acej ten sam j ¾ezyk o produkcjach postaci (12.2). Przeprowadzimy to w 2 krokach:

1 krok. Produkcje w P zmieniamy tak, by symbole ko´ncowe wyst ¾epowa÷y tylko w produkcjach postaci X ! a; gdzie X 2 V i a 2 : Zilustrujemy t ¾e metod ¾e na przyk÷adzie, który poda nam ogóln ¾a zasad ¾e. Je´sli w P mamy np. produkcj ¾e

aXbbY ! ZadaXY;

gdzie X; Y; Z 2 V i a; b; d 2 ; to wprowadzamy nowe zmienne A; B; D (odpowiadajace symbolom ko´ncowym) i powy·zsz ¾a produkcj ¾e zamieniamy na produkcje

AXBBY ! ZADAXY;

A ! a;

B ! b;

D ! d:

Oczywiscie ta zmiana nie zmieni j ¾ezyka generowanego.

2 krok. W my´sl 1-szego kroku we wszystkich produkcjach oprócz tych o postaci X ! a wystepuj ¾a tylko zmienne. Zatem ka·zda taka produkcja ma posta´c

X1: : : Xm ! Y1: : : Yn; m n:

Je´sli m = 1 tzn. X1 ! Y1: : : Yn; n 1; to takie produkcje maj ¾a ju·z posta´c (12.2), bo mo·zemy je zapisa´c w postaci

X1 ! Y1: : : Yn

dla = = : Je´sli m 2 tzn.

(12.3) X1: : : Xm ! Y1: : : Yn; n m 2;

to t ¾e produkcj ¾e zamienimy na sko´nczony ci ¾ag 2m nowych produkcji, które b ¾ed ¾a spe÷nia´c warunek (12.2). Wprowadzamy nowe zmienneX1; : : : ;Xm i produkcj ¾e (12.3) zamieniamy na nast ¾epuj ¾ace:

1. X1: : : Xm ! X1X2: : : Xm (jest ona postaci X1 ! X1 dla = i = X2: : : Xm):

2. X1X2: : : Xm ! X1X2X3: : : Xm (jest ona postaci X2 ! X2 dla = X1 i = X3: : : Xm):

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

(m-1). X1: : :Xm 2Xm 1Xm ! X1: : :Xm 2Xm 1Xm (jest ona postaci Xm 1 ! Xm 1 dla =X1: : :Xm 2 i = Xm):

(m). X1: : :Xm 2Xm 1Xm ! X1: : :Xm 1XmYm+1: : : Yn (jest ona postaci Xm ! XmYm+1: : : Yn dla =X1: : :Xm 2 i = ):

(m+1). X1: : :Xm 1XmYm+1: : : Yn ! Y1X2: : :Xm 1XmYm+1: : : Yn (jest ona postaci X1 ! Y1 dla = i =X2: : :Xm 1XmYm+1: : : Yn):

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

(2m). Y1: : : Ym 1XmYm+1: : : Yn! Y1: : : Ym 1YmYm+1: : : Yn (jest ona postaci Xm ! Ym dla = Y1: : : Ym 1 i = Ym+1: : : Yn):

Po dokonaniu tej zamiany dla ka·zdej produkcji typu (12.3) otrzymamy gramatyk¾e, która generuje ten sam j ¾ezyk i której produkcje spe÷niaj ¾a warunek (12.2).

Uwaga 12.7. Powy·zsze twierdzenie wyja´snia sens s÷owa „kontekstowy” w nazwie klasy j ¾ezyków kontekstowych, gdy·z dla dowolnego j ¾ezyka kontekstowego zawsze mo·zemy znale´z´c generuj ¾ac ¾a go gramatyk ¾e o produkcjach w których zmienne mog ¾a by´c zast ¾epowane przez pewne s÷owo ; ale tylko w kontek´scie s÷ów i

X ! :

Jednocze´snie wyja´snia to u·zycie s÷owa „bezkontekstowy” w nazwie klasy j ¾ezyków bezkon-tekstowych (bo produkcje w gramatykach je generuj ¾acych te j ¾ezyki s ¾a „bez kontekstu” tzn. s ¾a postaci

X ! ; gdzie X jest zmienn ¾a a dowolnym s÷owem.

Uwaga 12.8. Cz ¾esto gramatyki opisane w twierdzeniu nazywane s ¾a gramatykami kon-tekstowymi. Wówczas gramatyki, ktore pos÷u·zy÷y nam do de…nicji j ¾ezyków kontekstowych nazywane s ¾a gramatykami monotonicznymi.

Przyk÷ad 12.9. Za÷ó·zmy, ze dana jet gramatyka kontekstowa G = (V; ; P; S); której jedn ¾a z produkcji jest np.

aXb ! XY cZ; X; Y; Z 2 V; a; b; c 2 :

Wówczas wed÷ug metody z dowodu powy·zszego twierdzenia zamieniamy j ¾a na sko´nczon ¾a ilo´s´c produkcji typu (12.2) w 2 krokach:

1. Wprowadzamy nowe zmienne A; B; C i zamieniamy rozwa·zan ¾a produkcj ¾e na produkcje

AXB ! XY CZ;

A ! a;

B ! b;

C ! c:

2. Pierwsz ¾a produkcj ¾e zamieniamy na ci ¾ag nowych produkcji wprowadzaj ¾ac nowe zmienne

Wszystkie te produkcje s ¾a typu (12.2).

Wyka·zemy teraz zale·zno´s´c mi ¾edzy klas ¾a j ¾ezyków kontekstowych a klas ¾a j ¾ezyków rekursy-wnych.

Twierdzenie 12.10. Klasa j ¾ezyków kontekstowych zawiera si ¾e istotnie w klasie j ¾ezyków rekursywnych tzn.

JK JRK:

Dowód. 1. JK JRK: Niech L b ¾edzie j ¾ezykiem kontekstowym generowanym przez gramatyk¾e kontekstow ¾a G = (V; ; P; S): Mo·zemy za÷o·zy´c, ·ze 2 L: Poniewa·= z G jest jed-nocze´snie gramatyk ¾a frazow ¾a, wi ¾ec na mocy konstrukcji podanej w dowodzie Twierdzenia 11.22, pkt 1 istnieje maszyna Turinga akceptuj ¾aca L: Zmody…kujemy podan ¾a tam kon-strukcj ¾e, by otrzyma´c w÷a´sciw ¾a maszyna Turinga akceptuj ¾ac ¾a L: W my´sl tej konstrukcji dla danego s÷owa A; jAj = n 1 maszyna ta dzia÷a nast ¾epuj ¾aco. Na ta´smie, na prawo od s÷owa wej´sciowego A umieszcza symbol i w nast ¾epnej komórce symbol stanu pocz ¾atkowego S: Nast ¾epnie cyklicznie:

1. niedeterministycznie wybiera niepuste pods÷owo w s÷owie na prawo od symbolu ; 2. niedeterministycznie wybiera jedn ¾a z produkcji G;

3. wybran ¾a produkcj ¾e stosuje do wybranego pods÷owa (o ile to mo·zliwe), 4. porównuje otrzymane nowe s÷owo (na prawo od symbolu ) ze s÷owem A;

5. gdy porównanie w kroku 4 wypadnie pozytywnie, to maszyna Turinga przechodzi w stan ko´ncowy; w przeciwnym przypadku wraca do kroku 1.

Zmody…kujemy t ¾e maszyn ¾e Turinga w nast ¾epuj ¾acy sposób. Krok 3 zamienimy na krok 3’:

3’. wynik zastosowania wybranej produkcji zapisuje na prawo od ostatniego otrzymanego s÷owa oddzielaj ¾ac je symbolem : Oznaczmy to s÷owo przez An: Zatem otrzymywane s÷owa s ¾a zapisywane kolejno na prawo od ostatniego.

Nast ¾epnie porównuje An z wcze´sniej otrzymanymi s÷owami A1; : : : ; An 1: Je´sli porównanie wypadnie pozytywnie maszyna Turinga przechodzi w stan nieko´ncowy, w którym nie ma ruchu (zapobiega to wchodzeniu maszyny Turinga w „p ¾etl ¾e”). Je´sli negatywnie to przechodzi do kroku 4’.

4’. porównuje ostatnie otrzymane s÷owo An ze s÷owem wej´sciowym A: Je´sli porównanie wypadnie pozytywnie, to maszyna Turinga przechodzi w stan ko´ncowy. Je´sli negatywnie, to w przypadku, gdy d÷ugo´s´c s÷owa An jest wi ¾eksza ni·z d÷ugo´s´c s÷owa A; to maszyna Turinga przechodzi w stan nieko´ncowy, w którym nie ma ruchu, je´sli za´s jAnj jAj ; to przechodzi do kroku 1’.

1’. niedeterministycznie wybiera niepuste pods÷owo w ostatnim s÷owie An i przechodzi do kroku 2’identycznego z krokiem 2.

Twierdzimy, ·ze tak skonstruowana maszyna Turinga M jest w÷a´sciwa i L = L(M ): M jest w÷a´sciwa, gdy·z jA1j jA2j : : : jAnj (na mocy w÷asno´sci produkcji gramatyki kontekstowej, gdy·z mog ¾a one tylko zwi ¾eksza´c d÷ugo´s´c kolejnych s÷ów w wyprowadzeniu) i

s÷owa A1; : : : ; An s ¾a ró·zne. Istotnie, po sko´nczonej ilo´sci zastosowa´n produkcji z P albo d÷ugo´s´c otrzymanego s÷owa An b ¾edzie > jAj albo An = A (bo istnieje tylko sko´nczona ilo´s´c ró·znych s÷ów o d÷ugo´sci jAj). W obu przypadkach maszyna Turinga M zatrzymuje si ¾e.

Równo´s´c L = L(M ) wykazujemy identycznie jak w dowodzie Twierdzenia 11.22, pkt 1.

2. JK 6= JRK: Musimy znale´z´c j ¾ezyk L 2 JRK taki, ·ze L =2 JK: Konstrukcja takiego L b ¾edzie przypomina÷a konstrukcje j ¾ezykówL i LUz rozdzia÷u poprzedniego. W tym przypadku zamiast kodów maszyn Turinga u·zyjemy kodów gramatyk kontekstowych. Ograniczymy si ¾e tylko do gramatyk kontekstowych o alfabecie = f0; 1g: Ka·zdej takiej gramatyce, z zadan ¾a kolejno´sci ¾a produkcji, przypiszemy dok÷adnie jeden kod. Przed opisem tych kodów uczynimy pewne dodatkowe ustalenia. Mo·zemy za÷o·zy´c, ·ze zmienne tych gramatyk s ¾a zmiennymi z pewnego ustalonego ci ¾agu zmiennych X1; X2; : : : ; Xn; : : : (oczywi´scie dla danej gramatyki bierzemy zawsze ich sko´nczon ¾a ilo´s´c np. pocz ¾atkowe X1; X2; : : : ; Xn) i ·ze zawsze zmienna X1 jest zmienn ¾a pocz ¾atkow ¾a. Dalej b ¾edziemy zak÷ada´c ·ze zmienne danej gramatyki wyst ¾epuj ¾a istotnie w jej produkcjach (wówczas same produkcje jednoznacznie wyznaczaj ¾a zmienne).

Symbolom ko´ncowym 0 i 1 i zmiennym przypisujemy kody 0 ! 0 = 01;

1 ! 00 = 02; X1 ! 000 = 03 X2 ! 0000 = 04;

::::::::::::::

Xn! 0 : : : 0 = 0n+2; ::::::::::::::

Wówczas dowolnemu niepustemu s÷owu z÷o·zonemu ze zmiennych i symboli ko´ncowych przyp-isujemy kod z÷o·zony z kodów poszczególnych symboli przedzielonych symbolem 1 np. s÷owu 0X211X10 przypisujemy kod

010000100100100010:

Dowolnej produkcji ! ; ; 6= przypisujemy kod z÷o·zony z kodów i przedzielonych symbolami 11 np. produkcji X101 ! 0X1X21 przypisujemy kod

00010100110100010000:

Wówczas danej gramatyce kontekstowej G o niepustym zbiorze produkcji i ustalonej ich kolejno´sci np. P1; : : : ; Pkprzypisujemy jej kod AGz÷o·zony z kodów poszczególnych produkcji przedzielonych symbolami 111 np. dla gramatyki G o produkcjach: X1 ! 0X11; X1 ! 01 generuj ¾acej j ¾ezyk L = f0n1n: n 2 Ng jej kodem jest

AG= 0001101000100111000110100:

Z przyj ¾etych za÷o·ze´n o gramatykach i powy·zszej konstrukcji wynika, ·ze kod jednoznacznie okre´sla gramatyk¾e (jej zmienne, produkcje i zmienn ¾a pocz ¾atkow ¾a). Je´sli przez G oznaczymy zbiór wszystkich gramatyk kontekstowych spe÷niaj ¾acych nasze ogólne za÷o·zenia o niepusto´sci zbiorów produkcji i ustalonej ich kolejno´sci, to zbiór ich kodów jest pewnym podzbiorem A f0; 1g : S÷owom nie b ¾ed ¾acym kodami gramatyk kontekstowych przyporz ¾adkujemy pewn ¾a

„sztuczn ¾a” gramatyk¾e kontekstow ¾a G; o pustym zbiorze produkcji G; := (V; ; P; S) = (fX1g; f0; 1g; ;; X1):

Oczywi´scie L(G;) = ;:

Zatem okre´slili´smy nastepuj ¾ace przyporz ¾adkowania:

1. G 7! AG – gramatyce kontekstowej G o niepustym zbiorze produkcji i zadanej kole-jno´sci tych produkcji przypisali´smy jednoznacznie kod AG;

2. A 7! GA–ka·zdemu slowu A 2 f0; 1g przypisali´smy gramatyk¾e kontekstow ¾a GA:

Te odpowiednio´sci s ¾a wzajemnie do siebie odwrotne w zbiorze gramatyk kontekstowych o niepustym zbiorze produkcji i zadanej kolejno´sci tych produkcji tzn.

AGA = A dla A 2 A;

GAG = G dla G 2 G:

Mo·zemy teraz okre´sli´c j ¾ezyk rekursywny, który nie jest kontekstowy. De…niujemy LRK := fA 2 f0; 1g : A =2 L(GA)g:

Jest to zbiór s÷ów binarnych A takich, ·ze gramatyka kontekstowa o kodzie A; czyli GA; nie generuje s÷owa A: Oczywi´scie LRK 6= ;; bo np. wszystkie s÷owa A nie b ¾ed ¾ace kodami gramatyk kontekstowych z G nale·z ¾a doLRK (bo wtedy GA= G;; a wi ¾ec L(GA) = ;).

Wyka·zemy, ·ze

1. LRK jest j ¾ezykiem rekursywnym, 2. LRK nie jest j ¾ezykiem kontekstowym.

Ad 1. Skonstruujemy w÷a´sciw ¾a maszyn ¾e TuringaM tak ¾a, ·ze LRK = L(M):

Dzia÷anie M na s÷owie A 2 f0; 1g jest nast ¾epuj ¾ace:

1. pierwsze ruchyM to sprawdzenie, czy A jest kodem pewnej gramatyki kontekstowej o niepustym zbiorze produkcji. Je´sli nie jest, to M przechodzi w stan ko´ncowy, czyli A 2 L(M):

Wtedy oczywi´scie równie·z A 2 LRK; bo GA= G;; a wi ¾ec A =2 L(GA) = L(G;) = ;: Je´sli A jest kodem pewnej gramatyki kontekstowej o niepustym zbiorze produkcji, to powtarzamy konstrukcj ¾e maszyny Turinga podan ¾a w pierwszej cz ¾e´sci dowodu. Otrzymamy w÷a´sciw ¾a maszyn ¾e Turinga tak ¾a, ·zeLRK = L(M):

Ad 2. Przypu´s´cmy, ·ze LRK jest j ¾ezykiem kontekstowym. Zatem LRK = L(G) dla pewnej gramatyki kontekstowejG: Poniewa·z LRK 6= ;; wi ¾ecG ma niepusty zbiór produkcji.

Rozwa·zmy jej kod A 2 f0; 1g : Zatem albo A 2 LRK albo A 2 L= RK Wyka·zemy, ·ze obie mo·zliwo´sci prowadz ¾a do sprzeczno´sci. Istotnie,

(i) gdyby A 2 LRK; to z przypuszczenia A 2 L(G): Lecz z de…nicji LRK mieliby´smy A 2 L(G= AG) = L(G): Otrzymali´smy sprzeczno´s´c, a wi ¾ec ten przypadek nie jest mo·zliwy.

(ii) gdyby A 2 L= RK; to z przypuszczenia A 2 L(G): Lecz z de…nicji L= RK mieliby´smy A 2 L(GAG) = L(G): Otrzymali´smy sprzeczno´s´c, a wi ¾ec ten przypadek równie·z nie jest mo·zliwy.

Zadanie 12.11. Wykaza´c, ·ze je´sli L1; L2 s ¾a j ¾ezykami kontekstowymi, to 1. L1+ L2;

2. L1 L2; 3. L1

s ¾a j ¾ezykami kontekstowymi.

12.2. Automaty liniowo ograniczone

W rozdziale tym poznamy automaty akceptuj ¾ace j ¾ezyki kontekstowe. B ¾edzie to szczególny rodzaj maszyn Turinga tzw. automaty liniowo ograniczone. Charakteryzuj ¾a si ¾e one tym, ·ze mog ¾a w trakcie dzialania wykorzystywa´c tylko te komórki na ta´smie w których zapisane jest s÷owo wej´sciowe. Zatem w alfabecie ta´smy takiej maszyna Turinga s ¾a dwa specjalne symbole h i i, które na pocz ¾atku dzia÷ania umie´sci na pocz ¾atku i ko´ncu s÷owa i poza które g÷owica nie mo·ze przesun ¾a´c si ¾e.

Formalnie, automatem liniowo ograniczonym nazywamy maszyn ¾e Turinga M = (Q; ; ; ; s0; ; F ) o w÷asno´sciach

1. w alfabecie ta´smy s ¾a dwa dodatkowe symbole "h" i "i";

2. pocz ¾atkowe ruchy M to umieszczenie symbolu "h" na pocz ¾atku s÷owa wej´sciowego i symbolu "i" na jego ko´ncu. Nast ¾epnie g÷owica przesuwa si ¾e na pocz ¾atek s÷owa wej´sciowego

Poniewa·z ruchy te s ¾a ÷atwe do napisania, wi ¾ec podanie ich pozostawiamy czytelnikowi.

3. M nie ma ruchów przesuwaj ¾acych g÷owic ¾e w lewo od symbolu "h" i w prawo od symbolu "i" tzn. nie ma ruchów postaci

(s; h) ! (s0; h; L);

(s; i) ! (s0; i; R):

4. symbole "h" i "i" nie mog ¾a zamienia´c innych symboli ani by´c zamienione na inne z wyj ¾atkiem samych siebie tzn. w M nie istniej ¾a ruchy postaci

(s; ) ! (s0; h; K); 2 n fhg; K 2 fL; Rg;

(s; ) ! (s0; i; K); 2 n fig; K 2 fL; Rg;

(s; h) ! (s0; ; K); 2 n fhg; K 2 fL; Rg;

(s; i) ! (s0; ; K); 2 n fig; K 2 fL; Rg:

J ¾ezyk formalny L nazywamy j ¾ezykiem ALO-kontekstowym, gdy istnieje automat lin-iowo ograniczony M taki, ·ze L = L(M ):

Zbiór wszystkich j ¾ezyków ALO-kontekstowych oznaczamy przez JALO.

Na ogó÷w opisie automatów liniowo ograniczonych pomijamy pierwsze formalne ruchy umieszczaj ¾ace symbole "h" i "i" na kra´ncach s÷owa. Podajemy tylko dalsze, istotne ruchy (oczywi´scie te ostatnie nie powinny przesuwa´c g÷owic ¾e poza lewy i prawy koniec s÷owa wej´s-ciowego z wyj ¾atkiem jednej pustej komórki w lewo i w prawo).

Przyk÷ad 12.12. Maszyna Turinga skonstruowana w Przyk÷adzie 10.4 akceptuj ¾aca j ¾ezyk L = fanbn: n 2 Ng jest oczywi´scie automatem liniowo ograniczonym. Zatem L jest j ¾ezykiem ALO-kontekstowym.

Uwaga 12.13. Poniewa·z wyka·zemy dalej, ·ze j ¾ezyki ALO-kontekstowe to dok÷adnie j ¾ezyki kontekstowe, wi ¾ec wszystkie dotychczas poznane j ¾ezyki kontekstowe s ¾a jednocze´snie ALO-kontekstowe.

Uwaga 12.14. Mo·zna wykaza´c, ·ze j ¾ezykami ALO-kontekstowymi s ¾a wszystkie te j ¾ezyki, które s ¾a akceptowane przez maszyny Turinga, które w trakcie dzia÷ania zajmuj ¾a liczb ¾e komórek liniowo zale·zn ¾a od liczby komórek zaj ¾etych przez s÷owo wej´sciowe. Oznacza to, ·ze dla takiej maszyny Turinga M istniej ¾a liczby m; n 2 N takie, ·ze dla dowolnego s÷owa A maszyna Turinga M zajmie co najwy·zej m jAj + n komórek. Ten fakt jest powodem nazwania tych maszyn Turinga automatami liniowo ograniczonymi.

Uwaga 12.15. Podobnie de…niujemy niedeterministyczne i wielota´smowe automaty lin-iowo ograniczone. Nietrudno wykaza´c, ·ze przej´scie od nich do deterministycznych maszyn Turinga prowadzi rownie·z do automatów liniowo ograniczonych (nale·zy skorzysta´c z poprzed-niej Uwagi).

Zadanie 12.16. Poda´c ruchy umieszczajace symbole h i i na kra´ncach danego s÷owa A w automacie liniowo ograniczonym.

Zadanie 12.17. Skonstruowa´c automat liniowo ograniczony akceptuj ¾acy j ¾ezyk M N O _ZEN IE = f0i10j10ij : i; j 2 Ng

(zob. Przyk÷ad 11.3).

Wyka·zemy teraz podstawowy zwi ¾azek mi ¾edzy j ¾ezykami kontekstowymi i j ¾ezykami ALO-kontekstowymi.

Twierdzenie 12.18. Zachodzi równo´s´c klas j ¾ezyków JK= JALO:

Dowód. 1. JK JALO: Niech L b ¾edzie j ¾ezykiem kontekstowym generowanym przez gramatyk¾e kontekstow ¾a G = (V; ; P; S): Mo·zemy za÷o·zy´c, ·ze 2 L: Poniewa·= z G jest jed-nocze´snie gramatyk ¾a frazow ¾a, wi ¾ec na mocy konstrukcji podanej w dowodzie Twierdzenia 11.22, pkt 1 istnieje zawsze maszyna Turinga akceptuj ¾aca L: Zmody…kujemy t ¾e konstrukcj ¾e, by otrzyma´c automat liniowo ograniczony akceptuj ¾acy L: W my´sl tamtej konstrukcji dla danego s÷owa A; jAj = n 1 maszyna ta dzia÷a nast ¾epuj ¾aco. Na ta´smie, na prawo od s÷owa wej´sciowego A umieszcza symbol i w nast ¾epnej komórce symbol stanu pocz ¾atkowego S:

Nast ¾epnie cyklicznie:

1. niedeterministycznie wybiera niepuste pods÷owo w s÷owie na prawo od symbolu ; 2. niedeterministycznie wybiera jedn ¾a z produkcji G;

3. wybran ¾a produkcj ¾e stosuje do wybranego pods÷owa (o ile to mo·zliwe), 4. porównuje otrzymane nowe s÷owo (na prawo od symbolu ) ze s÷owem A;

5. gdy porównanie w kroku 4 wypadnie pozytywnie, to maszyna Turinga przechodzi w stan ko´ncowy, w przeciwnym przypadku wraca do kroku 1.

Mody…kujemy t ¾e maszyn ¾e Turinga zamieniaj ¾ac krok 5 na:

5’. gdy porównanie w kroku 4 wypadnie pozytywnie, to maszyna Turinga przechodzi w stan ko´ncowy, w przeciwnym przypadku:

(i) je´sli d÷ugo´s´c otrzymanego s÷owa jest > jAj ; to M zatrzymuje si ¾e w stanie nieko´n-cowym,

(ii) je´sli d÷ugo´s´c otrzymanego s÷owa jest jAj ; to przechodzimy do kroku 1.

Tak zmieniona M zajmie co najwy·zej 2 jAj + m komórek (dla pewnego sta÷ego m np.

równego najwi ¾ekszej d÷ugo´sci s÷owa b ¾ed ¾acego praw ¾a stron ¾a produkcji z G). Je´sli skorzystamy z Uwagi 12.14, to otrzymamy natychmiast, ·ze L jest j ¾ezykiem ALO-kontekstowym. Formal-nie, z M tworzymy jednota´smow ¾a maszyn ¾e Turinga o 2 ´scie·zkach. Symbolami jej s ¾a pary ( 1; 2); 1; 22 (s÷owem wej´sciowym jest np. (a1; )(a2; ) : : : (an; ) dla A = a1: : : an).

Tak zmieniamy ruchy maszyny Turinga M by druga ´scie·zka odzwierciedla÷a ta´sm ¾e M po symbolu . Zatem pierwszy ruch to umieszczenie symbolu stanu pocz ¾atkowego S na drugiej

´scie·zce pod pierwszym symbolem s÷owa wej´sciowego.

Nast ¾epnie stosujemy cyklicznie kroki 1,2,3,4,5’.

Otrzymamy niedeterministyczn ¾a maszyn ¾e Turinga zajmuj ¾ac ¾a tyle komórek ile s÷owo we-j´sciowe i dok÷adnie akceptuj ¾ac ¾a s÷owa z L: Zatem L jest ALO-kontekstowy.

2. JALO JK: Niech L b ¾edzie j ¾ezykiem ALO-kontekstowym i M = (Q; M; ; ; s0; ; F ) automatem liniowo ograniczonym akceptuj ¾acym L; tzn. L = L(M ): Skonstruujemy gra-matyk¾e kontekstow ¾a G = (V; G; P; S) tak ¾a, ·ze

L(G) = L(M ):

Konstrukcja G b ¾edzie mody…kacj ¾a gramatyki frazowej opisanej w dowodzie Twierdzenia 11.22, pkt 2 odpowiadaj ¾acej danej maszynie Turinga. Produkcje tamtej gramatyki frazowej by÷y podzielone na 3 cz ¾e´sci:

1. Cz ¾e´s´c pierwsza P1produkcji generowa÷a dwie kopie dowolnego s÷owa A wraz z dowoln ¾a ilo´sci ¾a pustych komórek na lewo i prawo od tych kopii.

2. Cz ¾e´s´c druga P2 produkcji odzwierciedla÷a (symulowa÷a) ruchy maszyny Turinga na drugiej kopii s÷owa A:

3. Cz ¾e´s´c trzecia P3 produkcji usuwa÷a wszystkie zb ¾edne symbole (po osi ¾agni ¾eciu stanu ko´ncowego za pomoc ¾a produkcji z P2) z wyj ¾atkiem pierwszej kopii s÷owa A:

Niektóre z tych produkcji nie by÷y typu kontekstowego np. 5,7,12. Zatem musimy je zamieni´c na inne, korzystaj ¾ac z faktu ·ze M jest automatem liniowo ograniczonym. Uzyskamy to dodaj ¾ac nowe zmienne. Mody…kacja G jest nast ¾epuj ¾aca:

1. Z cz ¾e´sci P1 eliminujemy produkcje generuj ¾ace puste komórki na lewo i prawo od kopii s÷owa wej´sciowego (bo M jest automatem liniowo ograniczonym) i dodajemy produkcje generuj ¾ace symbole h i i na kra´ncach s÷owa. Z tego ostatniego powodu musimy zwi ¾ekszy´c ilo´s´c zmiennych. Przyjmujemy symbolami h i i na kra´ncach drugiej kopii

P10 : S ! [a; hs0a]X; S ! [a; hs0ai];

X ! [a; a]X; X ! [a; ai]; a 2 G:

Zauwa·zmy, ·ze produkcje te s ¾a typu kontekstowego. Na przyk÷ad dla s÷owa A = a1a2: : : an produkcje powy·zsze wygeneruj ¾a s÷owo

SV [a1; hs0a1][a2; a2] : : : [an; ani]:

S÷owo utworzone z pierwszych elementów ka·zdej pary jest dok÷adnie s÷owem A = a1a2: : : an, a z drugich jest s÷owem s0ha1a2: : : ani b ¾ed ¾acym pocz ¾atkowym opisem chwilowym M (po formalnych ruchach M umieszczaj ¾acych symbole h i i na kra´ncach s÷owa).

2. Cz ¾e´s´c P2zamieniamy na cz ¾e´s´c P20 która odzwierciedla ruchy automatu M: Poniewa·z s ¾a one podobne do produkcji z P2 (nale·zy tylko uwzgl ¾edni´c wi ¾eksz ¾a ilo´s´c zmiennych), wi ¾ec wyp-isanie ich pozostawiamy czytelnikowi jako ´cwiczenie. Oczywi´scie s ¾a one, tak jak w przypadku produkcji w P2; typu kontekstowego.

3. Cz ¾e´s´c P3 zamieniamy na cz ¾e´s´c P30; która usuwa wszystkie zb ¾edne symbole (po osi ¾ ag-ni ¾eciu pewnego stanu ko´ncowego s 2 F ) z wyj ¾atkiem pierwszej kopii s÷owa A

[a; ] ! a; [a; h ] ! a; [a; i] ! a; [a; h i] ! a; [a; s ] ! a;

P30 : [a; sh ] ! a; [a; hs ] ! a; [a; s i] ! a; [a; si] ! a; [a; sh i] ! a;

[a; hs i] ! a; [a; h si] ! a; a 2 G; 2 ; s 2 F:

Wszystkie te produkcje s ¾a typu kontekstowego.

Podobnie jak w dowodzie Twierdzenia 11.22, pkt 2 wykazujemy, ·ze dla gramatyki G po tych mody…kacjach mamy L(G) = L(M ): Zatem L = L(M ) jest j ¾ezykiem kontekstowym.

12.3. Hierarchia Chomsky’ego j ¾ezyków

Przedstawimy teraz pewn ¾a klasy…kacj ¾e j ¾ezyków formalnych ze wzgl ¾edu na gramatyki, które je generuj ¾a.

Poznali´smy podstawowe odpowiednio´sci w teorii j ¾ezyków formalnych i automatów mi ¾edzy gramatykami, j ¾ezykami i automatami (do tych ostatnich zaliczamy maszyny Turinga). Ze wzgl ¾edu na ró·zny czas powstawania tych wszystkich poj ¾e´c nie ma jednolitej regu÷y pow-stawania ich nazw. Chomsky w roku 1959 poda÷pewn ¾a klasy…kacj ¾e j ¾ezyków ze wzgl ¾edu na gramatyki, które generuj ¾a te j ¾ezyki. Klasy…kacja i zwi ¾azane z ni ¾a nazwy przyj ¾e÷y si ¾e i nosz ¾a nazw¾e hierarchii Chomsky’ego. Wszystkie gramatyki podzieli÷na 4 kategorie: gramatyki typu 0, 1, 2 i 3. Najogólniejsze to gramatyki typu 0, a najbardziej ograniczone to gramatyki typu 3. Wszystkie typy tych gramatyk poznali´smy ju·z w trakcie wyk÷adu. Gramatyki typu 0 to gramatyki frazowe, gramatyki typu 1 to gramatyki kontekstowe, gramatyki typu 2 to

gramatyki bezkontekstowe i gramatyki typu 3 to gramatyki regularne. Dla pe÷no´sci podamy teraz jeszcze raz de…nicje tych gramatyk w hierarchii Chomsky’ego.

Gramatyk¾e G = (V; ; P; S) nazywamy:

1. typu 0, gdy jej produkcje maj ¾a posta´c

! ; 2 (V [ ) n f g; 2 (V [ ) :

Zatem w produkcjach tego typu po lewej stronie mo·ze by´c dowolne niepuste s÷owo ut-worzone ze zmiennych i symboli ko´ncowych, a po prawej dowolne s÷owo utworzone ze zmiennych i symboli ko´ncowych (np. XaY ! aY ZbSa; XY ! Z; XbY a ! itp.). S ¾a to zatem gramatyki frazowe.

2. typu 1, gdy jej produkcje maj ¾a posta´c

! ; ; 2 (V [ ) n f g; i j j 6 j j :

Zatem w produkcjach tego typu po lewej stronie mo·ze by´c dowolne niepuste s÷owo utwor-zone ze zmiennych i symboli ko´ncowych, a po prawej dowolne s÷owo utworzone ze zmien-nych i symboli ko´ncowych, ale o d÷ugo´sci wi ¾ekszej ni·z d÷ugo´s´c s÷owa (np. XaY ! aY ZbSa;

X ! Y Z; itp.). Sa to zatem gramatyki kontekstowe.

3. typu 2, gdy jej produkcje maj ¾a posta´c

X ! ; X 2 V; 2 (V [ ) : Sa to zatem gramatyki bezkontekstowe.

4. typu 3, gdy jej produkcje maj ¾a posta´c

X ! aY; Z ! b; X; Y; Z 2 V; a 2 ; b 2 [ f g:

Sa to zatem gramatyki regularne.

Zatem mo·zemy utworzy´c tabel ¾e klasy…kacji Chomsky’ego j ¾ezyków, gramatyk i odpowiada-j ¾acych im automatów.

Gramatyka Inna nazwa J ¾ezyk Automat

typu 0 GF JRP MT

typu 1 GK JK ALO

typu 2 GBK JBK AZS

typu 3 GR JR DAS, NAS,

NAS-12.4. Podsumowanie

Gramatyka kontekstowa: Jest to gramatyka frazowa G = (V; ; P; S), na pro-dukcje której narzucamy jeden dodatkowy warunek: jej propro-dukcje

! ;

( i s ¾a niepustymi s÷owami utworzonymi ze zmiennych i symboli ko´ncowych) spe÷niaj ¾a warunek

( i s ¾a niepustymi s÷owami utworzonymi ze zmiennych i symboli ko´ncowych) spe÷niaj ¾a warunek

W dokumencie Automaty sko´nczone 19 3.1 (Stron 165-177)