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
m Zastępowanie tekstu – „ </math>” na „</math>” |
m Zastępowanie tekstu – „<math> ” na „<math>” |
||
Linia 14: | Linia 14: | ||
Punkt 1.<br> | Punkt 1.<br> | ||
Rozważmy słowo <math> a^{n}b^{n}c^n \in L</math>, dla <math>3n \geqslant N</math>, gdzie <math>N</math> jest stałą z lematu o pompowaniu. | Rozważmy słowo <math>a^{n}b^{n}c^n \in L</math>, dla <math>3n \geqslant N</math>, gdzie <math>N</math> jest stałą z lematu o pompowaniu. | ||
Podobnie jak w przykładzie [http://osilek.mimuw.edu.pl/index.php?title=J%C4%99zyki%2C_automaty_i_obliczenia/Wyk%C5%82ad_10:_Lemat_o_pompowaniu_dla_j%C4%99zyk%C3%B3w_bezkontekstowych._W%C5%82asno%C5%9Bci_j%C4%99zyk%C3%B3w_bezkontekstowych._Problemy_rozstrzygalne#prz.1 1.1] pokazujemy, że jedyną możliwością rozłożenia | Podobnie jak w przykładzie [http://osilek.mimuw.edu.pl/index.php?title=J%C4%99zyki%2C_automaty_i_obliczenia/Wyk%C5%82ad_10:_Lemat_o_pompowaniu_dla_j%C4%99zyk%C3%B3w_bezkontekstowych._W%C5%82asno%C5%9Bci_j%C4%99zyk%C3%B3w_bezkontekstowych._Problemy_rozstrzygalne#prz.1 1.1] pokazujemy, że jedyną możliwością rozłożenia | ||
słowa <math>a^{n}b^{n}c^n = u_1w_1uw_2u_2</math> zgodnym z lematem o pompowaniu jest przyjęcie jako <math>w_1</math> i <math>w_2</math> potęgi | słowa <math>a^{n}b^{n}c^n = u_1w_1uw_2u_2</math> zgodnym z lematem o pompowaniu jest przyjęcie jako <math>w_1</math> i <math>w_2</math> potęgi | ||
Linia 25: | Linia 25: | ||
Punkt 3.<br> | Punkt 3.<br> | ||
Dostatecznie długie słowo <math> w\overleftarrow{w}a^{|w|}\in L</math> możemy rozłożyć na katenację pięciu słów | Dostatecznie długie słowo <math>w\overleftarrow{w}a^{|w|}\in L</math> możemy rozłożyć na katenację pięciu słów | ||
tak, by był spełniony warunek pompowania z lematu. Jeśli <math>w=a_1...a_n</math>, to | tak, by był spełniony warunek pompowania z lematu. Jeśli <math>w=a_1...a_n</math>, to | ||
<center><math>w\overleftarrow{w}a^{|w|}=\underbrace {a_1...a_k}_{u_1} \underbrace{a_{k+1}...a_n a_n....a_{k+1}}_{w_1 } | <center><math>w\overleftarrow{w}a^{|w|}=\underbrace {a_1...a_k}_{u_1} \underbrace{a_{k+1}...a_n a_n....a_{k+1}}_{w_1 } | ||
Linia 86: | Linia 86: | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span><div class="mw-collapsible-content" style="display:none"> | <div class="mw-collapsible mw-made=collapsible mw-collapsed"><span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie</span><div class="mw-collapsible-content" style="display:none"> | ||
Wystarczy udowodnić, że każdy język bezkontekstowy jest regularny. Niech | Wystarczy udowodnić, że każdy język bezkontekstowy jest regularny. Niech | ||
<math> L \subset \{a\}^*</math> będzie językiem bezkontekstowym. Z lematu o pompowaniu wynika, że | <math>L \subset \{a\}^*</math> będzie językiem bezkontekstowym. Z lematu o pompowaniu wynika, że | ||
<math>\exists N,M \geqslant 1</math> takie, że każde słowo <math>w \in L</math> o długości <math>|w| > N</math> można | <math>\exists N,M \geqslant 1</math> takie, że każde słowo <math>w \in L</math> o długości <math>|w| > N</math> można | ||
przedstawić w formie <math>w=u_1w_1uw_2u_2</math>, gdzie <math>w_{1,}w_{2},v_{1},v_{2},u\in A^{*} </math> oraz | przedstawić w formie <math>w=u_1w_1uw_2u_2</math>, gdzie <math>w_{1,}w_{2},v_{1},v_{2},u\in A^{*} </math> oraz | ||
<math>|w_1uw_2 |\leqslant M</math>, <math>w_1w_2 \neq 1</math>, <math>u_1w_1^iuw_2^iu_2 \in L</math> dla <math>i=0,1,..</math>.<br> | <math>|w_1uw_2 |\leqslant M</math>, <math>w_1w_2 \neq 1</math>, <math>u_1w_1^iuw_2^iu_2 \in L</math> dla <math>i=0,1,..</math>.<br> | ||
Stąd, że <math> L \subset \{a\}^*</math> wynika, że <math>w=a^pa^k</math> dla pewnego <math>k\leqslant M</math> oraz <math>a^p(a^k)^i \in L</math> dla <math>i=0,1,..</math>..<br> | Stąd, że <math>L \subset \{a\}^*</math> wynika, że <math>w=a^pa^k</math> dla pewnego <math>k\leqslant M</math> oraz <math>a^p(a^k)^i \in L</math> dla <math>i=0,1,..</math>..<br> | ||
Przyjmijmy <math>n=M!</math>. Wówczas dla każdego słowa <math>w \in L</math> o długości <math>|w| > N</math> mamy | Przyjmijmy <math>n=M!</math>. Wówczas dla każdego słowa <math>w \in L</math> o długości <math>|w| > N</math> mamy | ||
<math>w(a^n)^*=w(a^k)^{\frac{n}{k}}\subset L \subset \{a\}^*</math>. <br> | <math>w(a^n)^*=w(a^k)^{\frac{n}{k}}\subset L \subset \{a\}^*</math>. <br> | ||
Linia 117: | Linia 117: | ||
{{cwiczenie|5|| | {{cwiczenie|5|| | ||
Czy gramatyka poprawnych nawiasów <center><math>(\{v_0\},\{(,)\},v_0, P ),</math> gdzie <math> P: v_0 \rightarrow v_0 v_0\;|\;(v_0)\;|\;1</math></center> | Czy gramatyka poprawnych nawiasów <center><math>(\{v_0\},\{(,)\},v_0, P ),</math> gdzie <math>P: v_0 \rightarrow v_0 v_0\;|\;(v_0)\;|\;1</math></center> | ||
jest jednoznaczna? | jest jednoznaczna? | ||
Linia 231: | Linia 231: | ||
{{cwiczenie|11||}} | {{cwiczenie|11||}} | ||
Czy gramatyka poprawnych nawiasów | Czy gramatyka poprawnych nawiasów | ||
<center><math>(\{v_0,v_1\},\{(,)\},v_0, P ),</math> gdzie <math> | <center><math>(\{v_0,v_1\},\{(,)\},v_0, P ),</math> gdzie <math> | ||
P: v_0 \rightarrow v_1 v_0\;|\;1, \;\; v_1 \rightarrow (v_0)</math></center> | P: v_0 \rightarrow v_1 v_0\;|\;1, \;\; v_1 \rightarrow (v_0)</math></center> | ||
Wersja z 10:35, 5 wrz 2023
Ć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 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ę:
- ,
- ,
- .