Języki, automaty i obliczenia/Ćwiczenia 13: Złożoność obliczeniowa.: Różnice pomiędzy wersjami
Matiunreal (dyskusja | edycje) Nie podano opisu zmian |
|||
Linia 27: | Linia 27: | ||
# Taśma nr <math>\displaystyle 1</math> jest tylko do odczytu. Mamy na niej słowo <math>\displaystyle 3^k</math>. | # Taśma nr <math>\displaystyle 1</math> jest tylko do odczytu. Mamy na niej słowo <math>\displaystyle 3^k</math>. | ||
# Rozpocznij od zapisania słowa <math>\displaystyle 11</math> na taśmie nr <math>\displaystyle 2</math> i słowa <math>\displaystyle 22</math> na taśmie nr <math>\displaystyle 3</math> | # Rozpocznij od zapisania słowa <math>\displaystyle 11</math> na taśmie nr <math>\displaystyle 2</math> i słowa <math>\displaystyle 22</math> na taśmie nr <math>\displaystyle 3</math> | ||
# Przepisz słowa na taśmę nr <math>\displaystyle 4</math> według kolejności taśm <math>\displaystyle 2,3,1</math>. | # {{kotwica|prz.3|}}Przepisz słowa na taśmę nr <math>\displaystyle 4</math> według kolejności taśm <math>\displaystyle 2,3,1</math>. | ||
# Sprawdź na taśmie nr <math>\displaystyle 4</math> czy <math>\displaystyle k=i\cdot j</math>. Jeśli tak to akceptuj. Inaczej krok następny. | # Sprawdź na taśmie nr <math>\displaystyle 4</math> czy <math>\displaystyle k=i\cdot j</math>. Jeśli tak to akceptuj. Inaczej krok następny. | ||
# Dopisz symbol <math>\displaystyle 1</math> na taśmie nr <math>\displaystyle 2</math>. Gdy powstało słowo dłuższe niż <math>\displaystyle k</math> dopisz symbol <math>\displaystyle 2</math> na taśmie nr <math>\displaystyle 3</math> a słowo | # Dopisz symbol <math>\displaystyle 1</math> na taśmie nr <math>\displaystyle 2</math>. Gdy powstało słowo dłuższe niż <math>\displaystyle k</math> dopisz symbol <math>\displaystyle 2</math> na taśmie nr <math>\displaystyle 3</math> a słowo na taśmie nr <math>\displaystyle 2</math> usuń i zapisz na niej słowo <math>\displaystyle 11</math>. | ||
na taśmie nr <math>\displaystyle 2</math> usuń i zapisz na niej słowo <math>\displaystyle 11</math>. | # Jeśli słowo na taśmie nr <math>\displaystyle 3</math> jest dłuższe niż <math>\displaystyle k</math> to odrzuć. W przeciwnym przypadku przejdź do kroku [[#prz.3|3|]]. | ||
# Jeśli słowo na taśmie nr <math>\displaystyle 3</math> jest dłuższe niż <math>\displaystyle k</math> to odrzuć. W przeciwnym przypadku przejdź do kroku [[# | |||
Idea tej maszyny jest bardzo prosta. Wykorzystaj taśmy nr <math>\displaystyle 2</math> (licznik 1) i <math>\displaystyle 3</math> (licznik 2) jako liczniki a na taśmie <math>\displaystyle 4</math> wykonuj symulacje. | Idea tej maszyny jest bardzo prosta. Wykorzystaj taśmy nr <math>\displaystyle 2</math> (licznik 1) i <math>\displaystyle 3</math> (licznik 2) jako liczniki a na taśmie <math>\displaystyle 4</math> wykonuj symulacje. |
Wersja z 08:35, 24 sie 2006
{Złożoność obliczeniowa. Języki maszyn Turinga i typu (0). Rozstrzygalność.}
ĆWICZENIA 13
Ćwiczenie
W trakcie wykładu rozważaliśmy język
wykazując, że NP .
Uzasadnij, że takżeĆwiczenie
Uzasadnij że funkcja jest konstruowalna pamięciowo.
Ćwiczenie
Uzasadnij że funkcja jest konstruowalna pamięciowo.
Ćwiczenie
Skonstruuj maszynę Turinga rozpoznającą język zadany gramatyką:
Ćwiczenie
Przedstaw ideę działania maszyny Turinga rozpoznającej język
Ćwiczenie
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
Czy któraś z poniższych list słów ma własność Posta?
Ćwiczenie
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.
Zadania domowe
Ćwiczenie
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
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
Uzasadnij, że jeśli funkcja jest konstruowalna pamięciowo to obliczenie z definicji
konstruowalności pamięciowej (tzn. ,
) następuję w conajwyżej krokach gdzie jest pewną
stałą niezależną od .
Podpowiedź: przeanalizuj ilość możliwych konfiguracji.
Ćwiczenie
Uzasadnij że funkcja jest konstruowalna pamięciowo.
Ćwiczenie
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
Wypisz dokładnie wszystkie elementy składowe maszyn Turinga rozpoznających języki zadane gramatykami:
- , ,
Ćwiczenie
Wykaż (podając ideę kontrukcji) że dla maszyn Turinga , istnieje maszyna Turinga rozpoznająca język:
Ćwiczenie
Czy któraś z poniższych list słów ma własność Posta?
Ćwiczenie
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 .