Turingi masina simulaator
Vaata, kuidas Turingi masin loeb, kirjutab ja liigub mööda lõpmatut linti, järgides üleminekureegleid.
Lahenduvuse piirid ja formaalne automaatide teooria 🖖
Turingi masin on arvutuse formaalne matemaatiline mudel, mis koosneb lõpmatust lindist, lindipeast ja olekute üleminekute tabelist. See määratleb arvutatavuse piirid (Church-Turingi tees). Staatiliselt tõestab see peatumisprobleemi lahendamatust, näidates, et ükski üldine algoritm ei suuda prognoosida, kas programm töötab igavesti või peatub.
Kuidas mõni reegel juhib kõike 🖖
Turingi masinas pole peaaegu midagi: lint, pea, mis loeb üht lahtrit, ja lühike reeglitabel. Igal sammul vaatab ta ainult oma praegust olekut ja pea all olevat sümbolit, seejärel kirjutab sümboli, liigub ühe lahtri võrra vasakule või paremale ja vahetab olekut. Käivita kahendarvu inkrementimise eelseade ja jälgi, kuidas ta libiseb paremale lõpuni ning kannab +1 tagasi vasakule — täpselt nagu käsitsi liites.
Töökas kobras kestab kauem kui universum 🖖
Küsi kõige väiksem küsimus — kui kaua saab pisike masin töötada, enne kui ta peatub? — ja arvutus plahvatab. Masin, millel on 5 olekut ja 2 sümbolit, teeb enne peatumist täpselt 47,176,870 sammu; see väärtus tõestati alles 2024. Kuue oleku puhul ületab teadaolev rekord (busy beaver) juba 2↑↑↑5 — astmetorn, mille kõrval kahvatub iga aatom universumis. Seepärast piiravad sellised simulaatorid iga käivitust: käputäis olekuid võib kesta kauem kui igavik.
Näiteülesanded
- Bitiümberpööramine - Bitipööramine: vaheta 0-d ja 1-d
- Binaarne +1 - Binaarne inkrementeerimine: 1011→1100
- 1111 → 10000 - 1111 → 10000
- Unaarne m+n - Unaarne liitmine: 3+2=5
- 1+1 = 2 - 1+1 = 2
- Palindroom ✓ - Palindroomikontroll: 10101
- 1011 — tagasi lükatud - 1011 — tagasi lükatud