Języki, automaty i obliczenia/Ćwiczenia 13: Złożoność obliczeniowa.: Różnice pomiędzy wersjami
Linia 1: | Linia 1: | ||
==Ćwiczenia 13== | ==Ćwiczenia 13== | ||
{{cwiczenie|1|| | {{cwiczenie|1|| | ||
Skonstruuj maszynę Turinga rozpoznającą język zadany gramatyką: | Skonstruuj maszynę Turinga rozpoznającą język zadany gramatyką: | ||
<center><math>\displaystyle | <center><math>\displaystyle | ||
Linia 110: | Linia 28: | ||
</div></div> | </div></div> | ||
{{cwiczenie| | {{cwiczenie|2|| | ||
Przedstaw ideę działania maszyny Turinga rozpoznającej język | Przedstaw ideę działania maszyny Turinga rozpoznającej język | ||
<center><math>\displaystyle | <center><math>\displaystyle | ||
Linia 133: | Linia 51: | ||
</div></div> | </div></div> | ||
{{cwiczenie| | {{cwiczenie|3|| | ||
W trakcie wykładu rozważaliśmy zamkniętość klas języków w klasyfikacji Chomsky'ego ze względu na różne działania. Podaj uzasadnienie (ideę konstrukcji) następującego faktu: | W trakcie wykładu rozważaliśmy zamkniętość klas języków w klasyfikacji Chomsky'ego ze względu na różne działania. Podaj uzasadnienie (ideę konstrukcji) następującego faktu: | ||
Linia 156: | Linia 74: | ||
</div></div> | </div></div> | ||
{{cwiczenie| | {{cwiczenie|4|| | ||
Czy któraś z poniższych list słów ma własność Posta? | Czy któraś z poniższych list słów ma własność Posta? | ||
# <center><math>\displaystyle | # <center><math>\displaystyle | ||
Linia 212: | Linia 130: | ||
</div></div> | </div></div> | ||
{{cwiczenie| | {{cwiczenie|5|| | ||
W definicji problemu Posta zakłada się, że alfabet <math>\displaystyle \mathcal{A}</math> | W definicji problemu Posta zakłada się, że alfabet <math>\displaystyle \mathcal{A}</math> | ||
zawiera co najmniej dwa elementy. Wykaż, że gdy to założenie nie jest spełnione (tzn. <math>\displaystyle \mathcal{A}=\left\{1\right\}</math>) problem Posta jest problemem rozstrzygalnym. | zawiera co najmniej dwa elementy. Wykaż, że gdy to założenie nie jest spełnione (tzn. <math>\displaystyle \mathcal{A}=\left\{1\right\}</math>) problem Posta jest problemem rozstrzygalnym. | ||
Linia 261: | Linia 179: | ||
<center>ZADANIA DOMOWE</center> | <center>ZADANIA DOMOWE</center> | ||
{{cwiczenie| | {{cwiczenie|6|| | ||
Zadanie domowe 2.1 do wykładu 12 polegało na konstrukcji maszyny Turinga | Zadanie domowe 2.1 do wykładu 12 polegało na konstrukcji maszyny Turinga | ||
<math>\displaystyle \mathcal{MT}</math> akceptującej język: | <math>\displaystyle \mathcal{MT}</math> akceptującej język: | ||
Linia 271: | Linia 189: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|7|| | ||
Zadanie domowe 2.2 do wykładu 12 polegało na konstrukcji niedeterministycznej maszyny Turinga | Zadanie domowe 2.2 do wykładu 12 polegało na konstrukcji niedeterministycznej maszyny Turinga | ||
<math>\displaystyle \mathcal{NMT}</math> akceptującej język: | <math>\displaystyle \mathcal{NMT}</math> akceptującej język: | ||
Linia 286: | Linia 204: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|8|| | ||
Uzasadnij, że jeśli funkcja <math>\displaystyle s(n)</math> jest konstruowalna pamięciowo, to obliczenie <math>\displaystyle d_1 \mapsto^* d_2</math> z definicji | Uzasadnij, że jeśli funkcja <math>\displaystyle s(n)</math> jest konstruowalna pamięciowo, to obliczenie <math>\displaystyle d_1 \mapsto^* d_2</math> z definicji | ||
konstruowalności pamięciowej (tzn. <math>\displaystyle d_1=\sharp s_0 1^n \sharp</math>, | konstruowalności pamięciowej (tzn. <math>\displaystyle d_1=\sharp s_0 1^n \sharp</math>, | ||
Linia 294: | Linia 212: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|9|| | ||
Uzasadnij, że funkcja <math>\displaystyle n^3</math> jest konstruowalna pamięciowo. | Uzasadnij, że funkcja <math>\displaystyle n^3</math> jest konstruowalna pamięciowo. | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|10|| | ||
Skonstruuj maszynę Turinga akceptującą słowo <math>\displaystyle u=1^n</math> w dokładnie <math>\displaystyle n^2</math> krokach. Jak zmodyfikować konstrukcję maszyny, aby akceptowała słowo <math>\displaystyle u</math> dokładnie w <math>\displaystyle 2^n</math> krokach? | Skonstruuj maszynę Turinga akceptującą słowo <math>\displaystyle u=1^n</math> w dokładnie <math>\displaystyle n^2</math> krokach. Jak zmodyfikować konstrukcję maszyny, aby akceptowała słowo <math>\displaystyle u</math> dokładnie w <math>\displaystyle 2^n</math> krokach? | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|11|| | ||
Wypisz dokładnie wszystkie elementy składowe maszyn Turinga | Wypisz dokładnie wszystkie elementy składowe maszyn Turinga | ||
rozpoznających języki zadane gramatykami: | rozpoznających języki zadane gramatykami: | ||
Linia 311: | Linia 229: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|12|| | ||
Wykaż (podając ideę kontrukcji), że dla maszyn Turinga <math>\displaystyle TM_1</math>, <math>\displaystyle TM_2</math> | Wykaż (podając ideę kontrukcji), że dla maszyn Turinga <math>\displaystyle TM_1</math>, <math>\displaystyle TM_2</math> | ||
istnieje maszyna Turinga <math>\displaystyle \mathcal{M}</math> rozpoznająca język: | istnieje maszyna Turinga <math>\displaystyle \mathcal{M}</math> rozpoznająca język: | ||
Linia 320: | Linia 238: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|13|| | ||
Czy któraś z poniższych list słów ma własność Posta? | Czy któraś z poniższych list słów ma własność Posta? | ||
# <center><math>\displaystyle | # <center><math>\displaystyle | ||
Linia 336: | Linia 254: | ||
}} | }} | ||
{{cwiczenie| | {{cwiczenie|14|| | ||
Udowodnij Twierdzenie 2.1 z wykładu: | Udowodnij Twierdzenie 2.1 z wykładu: | ||
Wersja z 15:01, 3 wrz 2006
Ćwiczenia 13
Ćwiczenie 1
Skonstruuj maszynę Turinga rozpoznającą język zadany gramatyką:
Ćwiczenie 2
Przedstaw ideę działania maszyny Turinga rozpoznającej język
Ćwiczenie 3
W trakcie wykładu rozważaliśmy zamkniętość klas języków w klasyfikacji Chomsky'ego ze względu na różne działania. Podaj uzasadnienie (ideę konstrukcji) następującego faktu:
Dla dowolnych maszyn Turinga , istnieje maszyna o własności:
Ćwiczenie 4
Czy któraś z poniższych list słów ma własność Posta?
Ćwiczenie 5
W definicji problemu Posta zakłada się, że alfabet zawiera co najmniej dwa elementy. Wykaż, że gdy to założenie nie jest spełnione (tzn. ) problem Posta jest problemem rozstrzygalnym.
Ćwiczenie 6
Zadanie domowe 2.1 do wykładu 12 polegało na konstrukcji maszyny Turinga akceptującej język:
Zmodyfikuj, ewentualnie, tę konstrukcję , aby udowodnić P .
Ćwiczenie 7
Zadanie domowe 2.2 do wykładu 12 polegało na konstrukcji niedeterministycznej maszyny Turinga akceptującej język:
Zmodyfikuj, ewentualnie, tę konstrukcję aby udowodnić, że
NP .
Podpowiedź: wykorzystaj konstrukcję z wyrocznią. Dla słowa wejściowego przeprowadź weryfikację w trzech etapach: konstrukcja słów , gdzie (wyrocznia), sklejanie, weryfikacja, czy .
Ćwiczenie 8
Uzasadnij, że jeśli funkcja jest konstruowalna pamięciowo, to obliczenie z definicji
konstruowalności pamięciowej (tzn. ,
) następuje w co najwyżej krokach, gdzie jest pewną
stałą niezależną od .
Podpowiedź: przeanalizuj ilość możliwych konfiguracji.
Ćwiczenie 9
Uzasadnij, że funkcja jest konstruowalna pamięciowo.
Ćwiczenie 10
Skonstruuj maszynę Turinga akceptującą słowo w dokładnie krokach. Jak zmodyfikować konstrukcję maszyny, aby akceptowała słowo dokładnie w krokach?
Ćwiczenie 11
Wypisz dokładnie wszystkie elementy składowe maszyn Turinga rozpoznających języki zadane gramatykami:
- , ,
Ćwiczenie 12
Wykaż (podając ideę kontrukcji), że dla maszyn Turinga , istnieje maszyna Turinga rozpoznająca język:
Ćwiczenie 13
Czy któraś z poniższych list słów ma własność Posta?
Ćwiczenie 14
Udowodnij Twierdzenie 2.1 z wykładu:
Twierdzenie. Dla każdej gramatyki istnieje równoważna gramatyka tego samego typu taka, że każda produkcja, w której występuje symbol terminalny , jest postaci .