Mașina Turing
Alternativ, puteți să scrieți descrieri pentru un simulator de Mașină Turing ca să puteți vizualiza ce se întâmplă. De exemplu:
https://turingmachinesimulator.com/
(atenție la sintaxa particulară a fiecărui simulator).
1. Scrieți o Mașină Turing care primește ca input un șir binar arbitrar și îl mută mai la dreapta cu două poziții.
101110110100001##…
devine
##101110110100001##…
2. Scrieți o Mașină Turing care incrementează la nesfârșit un contor binar. Cel mai semnificativ bit este cel mai din stânga. Banda e inițializată cu un singur simbol 0
.
3. Scrieți o Mașină Turing care acceptă limbajul $ L = \{ w\_w \mid w \in \{0, 1\}^* \}$
4. Demonstrați că modelul predat la curs (bandă infinită doar la dreapta, într-o tranziție capul de citire se poate mișca doar cu o celulă la stânga sau la dreapta, o singură stare acceptoare și o singură stare rejectoare) este echivalent cu următoarele:
- O MT cu bandă infinită atât la stânga cât și la dreapta
- O MT pentru care, într-o tranziție, capul de citire se poate deplasa la stânga sau la dreapta cu o celulă sau poate sta pe loc
- O MT cu o mulțime de stări de accept și o mulțime de stări de reject.
5. Demonstrați că un Automat Finit echipat cu o coadă (adică un APD cu coadă, nu cu stivă) recunoaște aceeași clasă de limbaje ca o Mașină Turing.