Języki, automaty i obliczenia/Ćwiczenia 13: Złożoność obliczeniowa.: Różnice pomiędzy wersjami

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


{{cwiczenie|1.1||
{{cwiczenie|1||
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 38: Linia 38:
</div></div>
</div></div>


{{cwiczenie|1.2||
{{cwiczenie|2||
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 62: Linia 62:
</div></div>
</div></div>


{{cwiczenie|1.3||
{{cwiczenie|3||
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 84: Linia 84:
</div></div>
</div></div>


{{cwiczenie|1.4||
{{cwiczenie|4||
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 110:
</div></div>
</div></div>


{{cwiczenie|1.5||
{{cwiczenie|5||
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 133:
</div></div>
</div></div>


{{cwiczenie|1.6||
{{cwiczenie|6||
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 156:
</div></div>
</div></div>


{{cwiczenie|1.7||
{{cwiczenie|7||
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 212:
</div></div>
</div></div>


{{cwiczenie|1.8||
{{cwiczenie|8||
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 261:
<center>ZADANIA DOMOWE</center>
<center>ZADANIA DOMOWE</center>


{{cwiczenie|2.1||
{{cwiczenie|9||
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 271:
}}
}}


{{cwiczenie|2.2||
{{cwiczenie|10||
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 287: Linia 287:
}}
}}


{{cwiczenie|2.3||
{{cwiczenie|11||
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 295: Linia 295:
}}
}}


{{cwiczenie|2.4||
{{cwiczenie|12||
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|2.5||
{{cwiczenie|13||
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
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?
akceptowała słowo <math>\displaystyle u</math> dokładnie w <math>\displaystyle 2^n</math> krokach?
}}
}}


{{cwiczenie|2.6||
{{cwiczenie|14||
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 313: Linia 313:
}}
}}


{{cwiczenie|2.7||
{{cwiczenie|15||
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 321: Linia 321:
}}
}}


{{cwiczenie|2.8||
{{cwiczenie|16||
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 337: Linia 337:
}}
}}


{{cwiczenie|2.9||
{{cwiczenie|17||
Udowodnij Twierdzenie&nbsp;2.1 z wykładu:
Udowodnij Twierdzenie&nbsp;2.1 z wykładu:



Wersja z 23:05, 26 sie 2006

Ćwiczenia 13

Ćwiczenie 1

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 i,j>1}

wykazując, że L NP .

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

Ćwiczenie 2

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

Wskazówka
Rozwiązanie

Ćwiczenie 3

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

Wskazówka
Rozwiązanie

Ćwiczenie 4

Skonstruuj maszynę Turinga rozpoznającą język zadany gramatyką:

SaTb|b,TTa|1
Wskazówka
Rozwiązanie

Ćwiczenie 5

Przedstaw ideę działania maszyny Turinga rozpoznającej język

L={anb2nc3n:n>1}
Wskazówka
Rozwiązanie

Ćwiczenie 6

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 TM1, TM2 istnieje maszyna o własności:

  1. L()=L(TM1)L(TM2)
  2. L()=L(TM1)L(TM2)
Wskazówka
Rozwiązanie

Ćwiczenie 7

Czy któraś z poniższych list słów ma własność Posta?

  1. (u1,v1)=[a2a2b],(u2,v2)=[b2ba],(u3,v3)=[ab2b]
  2. (u1,v1)=[ab2],(u2,v2)=[a2b]
  3. (u1,v1)=[baabab],(u2,v2)=[ba],(u3,v3)=[abab],(u4,v4)=[aaa]
Rozwiązanie

Ćwiczenie 8

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. 𝒜={1}) problem Posta jest problemem rozstrzygalnym.

Wskazówka
Rozwiązanie
ZADANIA DOMOWE

Ćwiczenie 9

Zadanie domowe 2.1 do wykładu 12 polegało na konstrukcji maszyny Turinga 𝒯 akceptującej 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\} }

Zmodyfikuj, ewentualnie, tę konstrukcję 𝒯 aby udowodnić L1 P .

Ćwiczenie 10

Zadanie domowe 2.2 do wykładu 12 polegało na konstrukcji niedeterministycznej maszyny Turinga 𝒩𝒯 akceptującej 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\} }

Zmodyfikuj, ewentualnie, tę konstrukcję 𝒩𝒯 aby udowodnić, że L2 NP .

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.

Ćwiczenie 11

Uzasadnij, że jeśli funkcja s(n) jest konstruowalna pamięciowo to obliczenie d1*d2 z definicji konstruowalności pamięciowej (tzn. d1=s01n, d2=s11s(n)w) następuję w conajwyżej c2s(n) krokach gdzie c jest pewną stałą niezależną od n.
Podpowiedź: przeanalizuj ilość możliwych konfiguracji.

Ćwiczenie 12

Uzasadnij że funkcja n3 jest konstruowalna pamięciowo.

Ćwiczenie 13

Skonstruuj maszynę Turinga akceptującą słowo u=1n w dokładnie n2 krokach. Jak zmodyfikować konstrukcję maszyny aby akceptowała słowo u dokładnie w 2n krokach?

Ćwiczenie 14

Wypisz dokładnie wszystkie elementy składowe maszyn Turinga rozpoznających języki zadane gramatykami:

  1. SAbC , AaAb|ε, CbCc|ε
  2. SABACA,AAa|a,Bbb|b,Cc|ε

Ćwiczenie 15

Wykaż (podając ideę kontrukcji) że dla maszyn Turinga TM1, TM2 istnieje maszyna Turinga rozpoznająca język:

L()={uv:uL(TM1),vL(TM2)}

Ćwiczenie 16

Czy któraś z poniższych list słów ma własność Posta?

  1. (u1,v1)=[aa2b],(u2,v2)=[ba2a2]
  2. (u1,v1)=[aba],(u2,v2)=[aba2]
  3. (u1,v1)=[aaaa],(u2,v2)=[bba],(u3,v3)=[bbb],(u4,v4)=[baab]

Ćwiczenie 17

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 a , jest postaci va .