Języki, automaty i obliczenia/Ćwiczenia 12: Języki kontekstowe i automat liniowo ograniczony. Maszyna Turinga

Z Studia Informatyczne
Wersja z dnia 11:00, 5 wrz 2023 autorstwa Luki (dyskusja | edycje) (Zastępowanie tekstu – „ </math>” na „</math>”)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Ćwiczenia 12

Ćwiczenie 1

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

L={ww :: :w{0,1}*}.

Sprawdź, że:

  1. 101101L(TM2)

oraz że

  1. 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:

L={uw :: :u,w{0,1}*}.

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).
  2. Wykonaj symulację maszyny na słowie w1=110011,
  3. na słowie w2=01,
  4. oraz na słowie w3=0000110.
Wskazówka
Rozwiązanie

Ćwiczenie 3

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

L={3k :: :k=ij dla pewnych i,j>1},

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:

L1={www :: :w{,,}*}.

Ćwiczenie 7

Uzasadnij, że język

L2={w1w1w2w2wnwn :: :wi{,}+,n>0}

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.