Programmare una Macchina di Turing che, dato un nastro iniziale contenente una sequenza di A e B, termina la sua esecuzione lasciando sul nastro la sequenza che si ottiene da quella iniziale rimpiazzando due o più A consecutive con una sola A e due o più B consecutive con una sola B.
Esempi
Nastro iniziale
Nastro finale
1°
ABAABBBA
ABABA
2°
BBAABBBAB
ABAB
3°
AAA
A
4°
BB
B
Diagramma di stato
Riconosce una sequenza di A (B) terminata da una B (A)
Va a destra e scrive X (Y)
Ritorna a sinistra e ricomincia
Quando le A e le B sono finite trasforma le X in A e le Y in B.