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
Linia 66: | Linia 66: | ||
znajdują się litery <math>\displaystyle a</math>. | znajdują się litery <math>\displaystyle a</math>. | ||
Weźmy rozkład <math>\displaystyle w=u_1w_1uw_2u_2</math>. Zauważmy, że jeśli w <math>\displaystyle w_1</math> lub | Weźmy rozkład <math>\displaystyle w=u_1w_1uw_2u_2</math>. Zauważmy, że jeśli w <math>\displaystyle w_1</math> lub <math>\displaystyle w_2</math> występują co najmniej dwie różne litery, to <math>\displaystyle w \not \in L</math> (np. jeśli <math>\displaystyle w_1</math> składa się z liter <math>\displaystyle a</math> i <math>\displaystyle b</math> to w słowie <math>\displaystyle w_1^2</math> | ||
<math>\displaystyle w_2</math> występują co najmniej dwie różne litery, to <math>\displaystyle w \not \in L</math> | |||
(np. jeśli <math>\displaystyle w_1</math> składa się z liter <math>\displaystyle a</math> i <math>\displaystyle b</math> to w słowie <math>\displaystyle w_1^2</math> | |||
przynajmniej jedna litera <math>\displaystyle a</math> znajdzie się za jakąś literą <math>\displaystyle b</math>). | przynajmniej jedna litera <math>\displaystyle a</math> znajdzie się za jakąś literą <math>\displaystyle b</math>). | ||
Ponieważ zaznaczyliśmy pozycje liter <math>\displaystyle a</math>, to z założenia lematu musi | Ponieważ zaznaczyliśmy pozycje liter <math>\displaystyle a</math>, to z założenia lematu musi |
Wersja z 10:08, 27 sie 2006
Ćwiczenia 10
Ćwiczenie 1
Wykorzystując lemat o pompowaniu, udowodnij, że następujące języki nie są bezkontekstowe:
Lemat 1 (Ogden)
Dla dowolnego języka bezkontekstowego istnieje liczba naturalna taka, że każde słowo , w którym wyróżniono lub więcej pozycji, można przedstawić w formie , gdzie oraz
- zawiera przynajmniej jedną wyróżnioną pozycję,
- zawiera co najwyżej wyróżnionych pozycji,
- dla
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 nie jest bezkontekstowy.
Ćwiczenie 3
Udowodnij, że dla dowolnego języka nad alfabetem jednoelementowym
Ćwiczenie 4
Udowodnij, że język Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L=\left\{ a^{n}b^{n}:n \;} nie jest wielokrotnością liczby jest bezkontekstowy.
Ćwiczenie 5
jest jednoznaczna?
Ćwiczenie 6
Określ gramatyki generujące języki:
- ,
- .
Czy gramatyki te są jednoznaczne?
Ćwiczenie 7
Dana niech będzie gramatyka ( jest symbolem początkowym):
Używając algorytmu Cocke'a-Youngera-Kasamiego, sprawdź, czy poniższe słowa należą do języka generowanego przez tę gramatykę:
- ,
- ,
- .
Ćwiczenie 8
Wykorzystując lemat o pompowaniu, udowodnij, że następujące języki nie są bezkontekstowe:
Ćwiczenie 9
Stosując lemat Ogdena, pokaż, że język gdzie nie jest bezkontekstowy.
Ćwiczenie 10
Udowodnij, że język jest bezkontekstowy.
Ćwiczenie 11
Czy gramatyka poprawnych nawiasów
rozważana w przykładzie 1.2 jest jednoznaczna?
Ćwiczenie 12
Określ gramatyki generujące języki:
- ,
- .
Czy gramatyki te są jednoznaczne? Wykaż, że język jest jednoznaczny.
Ćwiczenie 13
Napisz algorytmy rozstrzygające, czy dany język bezkontekstowy jest:
- nieskończny,
- niepusty.
Ćwiczenie 14
Dana niech będzie gramatyka ( jest symbolem początkowym):
Używając algorytmu Cocke'a-Youngera-Kasamiego, sprawdź, czy poniższe słowa należą do języka generowanego przez tę gramatykę:
- ,
- ,
- .