Ci manca un po 'di contesto, quindi non ho idea del punto che Knuth sta cercando di chiarire, ma ecco come interpretare una macchina di Turing in questo modo. Forse ti aiuterà a capire cosa sta succedendo. In generale, un buon modo per afferrare un concetto è giocarci. Nel caso dei paradigmi di programmazione, ciò significa scrivere un programma. In questo caso, mostrerò come scrivere qualsiasi programma.
Supponiamo che il nastro della macchina di Turing abbia dei simboli {0,1,ϵ} (dove ϵ sta per "vuoto") e aggiungi un altro simbolo che rappresenta la posizione della testa H. I tuoi stati saranno coppie della forma(q,α), dove q è uno stato della macchina di Turing e α∈{0,…,14}. Ci identifichiamo anche(F,0) con N per qualsiasi stato finale.
Ingresso (non vuoto) x, sarà il tuo punto di partenza (Hx,(s,0)), dove sè lo stato iniziale. La parte difficile è codificare gli stati. Supponiamo che allo statoq, dopo aver letto l'input x, lo sostituisci con a(q,x), muoviti in direzione D(q,x)∈{L,R}e passa allo stato σ(q,x). Per ilθs, abbiamo
θq,0θq,3θq,6θq,9θq,12=0H0,=1H0,=ϵH0=H0,=0H,θq,1θq,4θq,7θq,10θq,13=0H1,=1H1,=ϵH1,=H1,=1H,θq,2θq,5θq,8θq,11θq,14=0Hϵ,=1Hϵ,=ϵHϵ,=Hϵ,=ϵH.
Per il
as, abbiamo
aq,i=(q,i+1) per
i<14, e
aq,14=(q,14), anche se non dovremmo mai arrivare così lontano. Per il
bs, abbiamo
bq,0=bq,3=bq,6=bq,9=(σ(q,0),0),bq,1=bq,4=bq,7=bq,10=(σ(q,1),0),bq,2=bq,5=bq,8=bq,11=bq,12=bq,13=bq,14=(σ(q,ϵ),0).
Ora resta da determinare il
ψS. Permettere
a0=a(q,0). Se
D(q,0)=L poi
ψq,0=H0a0,ψq,3=H1a0,ψq,6=ψq,9=Hϵa0.
Se
D(q,0)=R poi
ψq,0=0a0H,ψq,3=1a0H,ψq,6=ϵa0H,ψq,9=a0Hϵ.
Quindi, lascia
a1=a(q,1). Se
D(q,1)=L poi
ψq,1=H0a1,ψq,4=H1a1,ψq,7=ψq,10=Hϵa1.
Se
D(q,1)=R poi
ψq,1=0a1H,ψq,4=1a1H,ψq,7=ϵa1H,ψq,10=a1Hϵ.
Infine, lascia
aϵ=a(q,ϵ). Se
D(q,ϵ)=L poi
ψq,2ψq,12=H0aϵ,=H0aϵ,ψq,5ψq,13=H1aϵ,=H1aϵ,ψq,8ψq,14=ψq,11=Hϵaϵ,=Hϵaϵ.
Se
D(q,ϵ)=R poi
ψq,2ψq,12=0aϵH,=0aϵH,ψq,5ψq,13=1aϵH,=1aϵH,ψq,8ψq,14=ϵaϵH,=ϵaϵH.ψq,11=aϵHϵ,
Ora applica fripetutamente fino a quando non rimani bloccato. Se segui la costruzione, vedrai che abbiamo simulato il funzionamento della macchina di Turing.