Języki, automaty i obliczenia/Ćwiczenia 10: Lemat o pompowaniu dla języków bezkontekstowych. Własności języków bezkontekstowych. Problemy rozstrzygalne: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Matiunreal (dyskusja | edycje)
Rogoda (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
==1. ĆWICZENIA 10==
==Ćwiczenia 10==


{{cwiczenie|1||
{{cwiczenie|1||
Linia 205: Linia 205:
</div></div>
</div></div>


==2. ZADANIA DOMOWE==
<center>ZADANIA DOMOWE</center>


{{cwiczenie|1||
{{cwiczenie|8||
Wykorzystując lemat o pompowaniu udowodnij, że następujące języki nie są bezkontekstowe:
Wykorzystując lemat o pompowaniu udowodnij, że następujące języki nie są bezkontekstowe:
#  <math>\displaystyle L=\left\{ a^{n}b^{m}c^{k}:k=min\{m,n\}\right\}  </math>  
#  <math>\displaystyle L=\left\{ a^{n}b^{m}c^{k}:k=min\{m,n\}\right\}  </math>  
Linia 215: Linia 215:
}}
}}


{{cwiczenie|2||
{{cwiczenie|9||
Stosując lemat Ogdena pokaż, że język <math>\displaystyle L=\{a^ib^jc^k: i,j,k>1,\ k  
Stosując lemat Ogdena pokaż, że język <math>\displaystyle L=\{a^ib^jc^k: i,j,k>1,\ k  
\not = ir,\ k \not = js, </math> gdzie <math>\displaystyle r,s \in \{2,3,...\}\}</math> nie jest  
\not = ir,\ k \not = js, </math> gdzie <math>\displaystyle r,s \in \{2,3,...\}\}</math> nie jest  
Linia 227: Linia 227:
</div></div>
</div></div>


{{cwiczenie|3||
{{cwiczenie|10||
Udowodnij, że język    <math>\displaystyle L=\left\{ w\overleftarrow{w } : w \in \{a,b\}^* \setminus \{ab^2a\} \right\}  </math>   
Udowodnij, że język    <math>\displaystyle L=\left\{ w\overleftarrow{w } : w \in \{a,b\}^* \setminus \{ab^2a\} \right\}  </math>   
jest bezkontekstowy.
jest bezkontekstowy.
}}
}}


{{cwiczenie|4||
{{cwiczenie|11||
Czy gramatyka poprawnych nawiasów   
Czy gramatyka poprawnych nawiasów   
<center><math>\displaystyle (\{v_0,v_1\},\{(,)\},v_0, P ),\; \text{ gdzie} \;  
<center><math>\displaystyle (\{v_0,v_1\},\{(,)\},v_0, P ),\; \text{ gdzie} \;  
Linia 240: Linia 240:
}}
}}


{{cwiczenie|5||
{{cwiczenie|12||
Określ gramatyki generujące języki
Określ gramatyki generujące języki
# <math>\displaystyle L_3 =\{a^n b^m c^nd^p : m,n,p \geqslant 0 \} \cup \{a^n b^m c^p d^m : m,n,p \geqslant 0 \} </math>,
# <math>\displaystyle L_3 =\{a^n b^m c^nd^p : m,n,p \geqslant 0 \} \cup \{a^n b^m c^p d^m : m,n,p \geqslant 0 \} </math>,
Linia 248: Linia 248:
}}
}}


{{cwiczenie|6||
{{cwiczenie|13||
Napisz algorytmy rozstrzygające, czy dany język bezkontekstowy jest
Napisz algorytmy rozstrzygające, czy dany język bezkontekstowy jest
# nieskończny,
# nieskończny,
Linia 255: Linia 255:
}}
}}


{{cwiczenie|7||
{{cwiczenie|14||
Dana niech będzie gramatyka (<math>\displaystyle v_0</math> jest symbolem początkowym):
Dana niech będzie gramatyka (<math>\displaystyle v_0</math> jest symbolem początkowym):



Wersja z 22:24, 25 sie 2006

Ćwiczenia 10

Ćwiczenie 1

Wykorzystując lemat o pompowaniu udowodnij, że następujące języki nie są bezkontekstowe:

  1. L={anbmck:k=max{n,m}}
  2. L={akbncm:k<n<m}
  3. L={wwa|w|:w{a,b}*}
Rozwiązanie

Lemat 1 (Ogden)

Dla dowolnego języka bezkontekstowego LA* istnieje liczba naturalna M1 taka, że każde słowo wL, w którym wyróżniono M lub więcej pozycji, można przedstawić w formie w=u1w1uw2u2, gdzie w1,w2,v1,v2,uA* oraz

  1. w1w2 zawiera przynajmniej jedną wyróżnioną pozycję,
  2. w1uw2 zawiera co najwyżej M wyróżnionych pozycji,
  3. u1w1iuw2iu2L dla i=0,1,...

Lemat o pompowaniu jest szczególnym przypadkiem lematu Ogdena. Lemat Ogdena można próbować stosować w tych przypadkach, w których lemat o pompowaniu nie działa.

Ćwiczenie 2

Stosując lemat Ogdena pokaż, że język L={aibjck:i=j,j=k,k=i} nie jest bezkontekstowy.

Rozwiązanie

Ćwiczenie 3

Udowodnij, że dla dowolnego języka L nad alfabetem jednoelementowym

L3L2
Rozwiązanie

Ćwiczenie 4

Udowodnij, że język L={anbn:nnie jest wielokrotnością liczby5} jest bezkontekstowy.

Rozwiązanie

Ćwiczenie 5

Czy gramatyka poprawnych nawiasów
({v0},{(,)},v0,P), gdzieP:v0v0v0|(v0)|1

jest jednoznaczna?

Rozwiązanie

Ćwiczenie 6

Określ gramatyki generujące języki

  1. L1={anbmcm:m,n0}{anbncm:m,n0},
  2. L2={anbnapbq:n,p,q1}{anbmapbp:n,m,p1}.

Czy gramatyki te są jednoznaczne?

Rozwiązanie

Ćwiczenie 7

Dana niech będzie gramatyka (v0 jest symbolem początkowym):

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned v_0 & \rightarrow & v_0v_1\ |\ v_3v_1 \\ v_1 & \rightarrow & v_1v_2\ |\ v_2v_3 \\ v_2 & \rightarrow & v_4v_1\ |\ v_3v_3\ |\ a \\ v_3 & \rightarrow & v_1v_2\ |\ v_4v_2\ |\ b \\ v_4 & \rightarrow & v_3v_4\ |\ v_0v_1\ |\ c. \endaligned}

Używając algorytmu Cocke'a-Youngera-Kasamiego sprawdź, czy poniższe słowa należą do języka generowanego przez tę gramatykę.

  1. w1=bac,
  2. w2=babcab,
  3. w3=bcaaca.
Rozwiązanie
ZADANIA DOMOWE

Ćwiczenie 8

Wykorzystując lemat o pompowaniu udowodnij, że następujące języki nie są bezkontekstowe:

  1. L={anbmck:k=min{m,n}}
  2. L={anbmck:k=mn}
  3. L={anbn2}

Ćwiczenie 9

Stosując lemat Ogdena pokaż, że język L={aibjck:i,j,k>1, k=ir, k=js, gdzie r,s{2,3,...}} nie jest bezkontekstowy.

Wskazówka

Ćwiczenie 10

Udowodnij, że język L={ww:w{a,b}*{ab2a}} jest bezkontekstowy.

Ćwiczenie 11

Czy gramatyka poprawnych nawiasów

({v0,v1},{(,)},v0,P), gdzieP:v0v1v0|1,v1(v0)

rozważana w przykładzie Uzupelnic lekcja9-w-ex1.2| jest jednoznaczna?

Ćwiczenie 12

Określ gramatyki generujące języki

  1. L3={anbmcndp:m,n,p0}{anbmcpdm:m,n,p0},
  2. L4={anb2n:n1}{anb3n:n1}.

Czy gramatyki te są jednoznaczne? Wykaż, że język L4 jest jednoznaczny.

Ćwiczenie 13

Napisz algorytmy rozstrzygające, czy dany język bezkontekstowy jest

  1. nieskończny,
  2. niepusty.

Ćwiczenie 14

Dana niech będzie gramatyka (v0 jest symbolem początkowym):

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned v_0 & \rightarrow & v_0v_1\ |\ v_3v_1 \\ v_1 & \rightarrow & v_2v_1\ |\ v_3v_2 \\ v_2 & \rightarrow & v_1v_4\ |\ v_3v_3\ |\ a \\ v_3 & \rightarrow & v_2v_2\ |\ v_4v_2\ |\ b \\ v_4 & \rightarrow & v_1v_4\ |\ v_0v_1\ |\ c. \endaligned}

Używając algorytmu Cocke'a-Youngera-Kasamiego sprawdź, czy poniższe słowa należą do języka generowanego przez tę gramatykę.

  1. w1=cabba,
  2. w2=baccab,
  3. w3=aabbcc.