Języki, automaty i obliczenia/Ćwiczenia 12: Języki kontekstowe i automat liniowo ograniczony. Maszyna Turinga: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rogoda (dyskusja | edycje)
Matiunreal (dyskusja | edycje)
Nie podano opisu zmian
Linia 1: Linia 1:
{Języki kontekstowe i automat liniowo ograniczony. Maszyna Turinga}
==1. ĆWICZENIA 12==


==ĆWICZENIA 12==
{{cwiczenie|1||
 
{{cwiczenie|||
Rozważmy maszynę Turinga <math>\displaystyle TM_2</math> z wykładu (Przykład 1.2) akceptującą
Rozważmy maszynę Turinga <math>\displaystyle TM_2</math> z wykładu (Przykład 1.2) akceptującą
język palindromów, czyli:
język palindromów, czyli:
Linia 129: Linia 127:
</div></div>
</div></div>


{{cwiczenie|||
{{cwiczenie|2||
Niech będzie dany alfabet <math>\displaystyle \Sigma_I =\left\{0,1,\clubsuit\right\}</math>. Zaprojektuj maszynę Turinga akceptująca język postaci:
Niech będzie dany alfabet <math>\displaystyle \Sigma_I =\left\{0,1,\clubsuit\right\}</math>. Zaprojektuj maszynę Turinga akceptująca język postaci:
<center><math>\displaystyle  
<center><math>\displaystyle  
Linia 222: Linia 220:
</div></div>
</div></div>


{{cwiczenie|||
{{cwiczenie|3||
W trakcie wykładu rozważaliśmy język
W trakcie wykładu rozważaliśmy język
<center><math>\displaystyle  
<center><math>\displaystyle  
Linia 262: Linia 260:
</div></div>
</div></div>


{{cwiczenie|||
{{cwiczenie|4||
Uzasadnij że funkcja <math>\displaystyle s(n)=3n</math> jest konstruowalna pamięciowo.
Uzasadnij że funkcja <math>\displaystyle s(n)=3n</math> jest konstruowalna pamięciowo.
}}
}}
Linia 288: Linia 286:
</div></div>
</div></div>


{{cwiczenie|||
{{cwiczenie|5||
Uzasadnij że funkcja <math>\displaystyle s(n)=3^n</math> jest konstruowalna pamięciowo.
Uzasadnij że funkcja <math>\displaystyle s(n)=3^n</math> jest konstruowalna pamięciowo.
}}
}}
Linia 316: Linia 314:
==Zadania domowe==
==Zadania domowe==


{{cwiczenie|||
{{cwiczenie|6||
Skonstruuj maszynę Turinga <math>\displaystyle \mathcal{MT}</math> akceptującą język:
Skonstruuj maszynę Turinga <math>\displaystyle \mathcal{MT}</math> akceptującą język:
<center><math>\displaystyle  
<center><math>\displaystyle  
Linia 324: Linia 322:
}}
}}


{{cwiczenie|||
{{cwiczenie|7||
Uzasadnij, że język
Uzasadnij, że język
<center><math>\displaystyle  
<center><math>\displaystyle  

Wersja z 10:15, 25 sie 2006

1. ĆWICZENIA 12

Ćwiczenie 1

Rozważmy maszynę Turinga TM2 z wykładu (Przykład 1.2) akceptującą język palindromów, czyli:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L=\left\{w \overleftarrow{w} \: : \: w\in \left\{0,1\right\}^*\right\} }

Sprawdź, że

  1. 101101L(TM2) oraz, że
  2. 1010101∉L(TM2).
Wskazówka
Rozwiązanie

Ćwiczenie 2

Niech będzie dany alfabet ΣI={0,1,}. Zaprojektuj maszynę Turinga akceptująca język postaci:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L=\left\{u\clubsuit w\: : \: u,w\in \left\{0,1\right\}^*\right\} }

Zaprojektuj maszynę Turinga =(ΣT,S,f,s0,SF) która akceptuje język L. Następnie:

  1. Wypisz elementy składowe maszyny , tzn. zbiory ΣT,S,SF oraz funkcję przejścia f

(zapewnij aby s0S).

  1. Wykonaj symulację maszyny na słowie w1=110011
  2. słowie w2=01
  3. oraz słowie w3=0000110.
Wskazówka
Rozwiązanie

Ćwiczenie 3

W trakcie wykładu rozważaliśmy język

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L=\left\{3^k\: : \: k=i\cdot j } dla pewnych Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle i,j> 1\right\} }

wykazując, że L NP .

Uzasadnij, że także
L P .
Wskazówka
Rozwiązanie

Ćwiczenie 4

Uzasadnij że funkcja s(n)=3n jest konstruowalna pamięciowo.

Wskazówka
Rozwiązanie

Ćwiczenie 5

Uzasadnij że funkcja s(n)=3n jest konstruowalna pamięciowo.

Wskazówka
Rozwiązanie

Zadania domowe

Ćwiczenie 6

Skonstruuj maszynę Turinga 𝒯 akceptującą język:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_1=\left\{www\: : \: w\in \left\{\circ,\bullet,\star\right\}^*\right\} }

Ćwiczenie 7

Uzasadnij, że język

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \displaystyle L_2=\left\{w_1 w_1 w_2 w_2 \dots w_n w_n \: : \: w_i \in \left\{\circ,\bullet\right\}^+, n>0 \right\} }

jest rozpoznawany przez pewną niedeterministyczna maszynę Turinga 𝒩𝒯.

Podpowiedź: wykorzystaj konstrukcję z wyrocznią. Dla słowa wejściowego w przeprowadź weryfikację w trzech etapach: konstrukcja słów w1,,wn gdzie n<|w| (wyrocznia), sklejanie, weryfikacja czy w=w1w1w2w2wnwn.