Sito Visitato 493986 volte Pagina Visitata 317 volte Sei in : Etantonio/IT/Universita/1anno/FondamentiInformatica/ModelliCalcolo/Turing/     

Macchina di Turing che inverte una sequenza binaria

Stato iniziale :       la testina di lettura e scrittura è posizionata a sinistra del bit più significativo

Stato finale    :      la testina di lettura e scrittura è posizionata sul blank che precedeil bit più significativo

Descrizione algoritmo :      

a) Si effettua una specchiatura del n° binario con asse di rotazione intorno al bit più significativo e sostituzione dei bit copiati con altrettanti *.

b) Si sostituisce la cifra che precede il 1° * con un altro * e la si va a trascrivere al posto della ultimo *

c) Si ritorna al 1° * , se è un n° si torna al passo b mentre se è un blank si cancellano tutti gli * a destra sin quando non si       raggiunge un bit e si termina.

Matrice funzionale

 

b

0

1

*

descrizione

qo

 

* q2 sx

* q1 sx

 

stato iniziale

q1

1 q3 dx

0 q1 sx

1 q1 sx

 

Sostituisco con 1 il 1° blank che incontro andando a sinistra

q2

0 q3 dx

0 q2 sx

1 q2 sx

 

Sostituisco con 0 il 1° blank che incontro andando a sinistra

q3

 

 0 q3 dx

1 q3 dx

* q4 dx

Cerco il primo * a destra

q4

b q5 dx

* q2 sx

* q1 sx

* q4 dx

Cerco l´ultimo * a destra

q5

b q10dx

* q8 dx

* q6 dx

* q5 sx

Sostituisco con * la 1ª cifra a sinistra degli * se essa è un blank allora esco dal ciclo

q6

b q7 sx

0 q7 sx

1 q7 sx

* q6 dx

Cerco l´ultimo * a destra per sostituirlo con 1

q7

     

1 q5 sx

Sostituisco con 1 l´ultimo * a destra

q8

b q9 sx

0 q9 sx

1 q9 sx

* q8 dx

Cerco l´ultimo * a destra per sostituirlo con 0

q9

     

0 q5 sx

Sostituisco con 0 l´ultimo * a destra

q10

 

0 q11 sx

1 q11 sx

b q10dx

Sostituisco tutti gli * con blank

q11

       

Fine

Esempio di computazione della stringa

b

b

b

b

b

1

0

0

b

                                                                                                                                                                           

b

b

b

b

q0

1

0

0

b

 

b

0

0

*

*

*

q7

*

b

b

b

b

q1

b

*

0

0

b

 

b

0

0

*

*

q5

*

1

b

b

b

b

1

q3

*

0

0

b

 

b

0

0

*

q5

*

*

1

b

b

b

b

1

*

q4

0

0

b

 

b

0

0

q5

*

*

*

1

b

b

b

b

1

q2

*

*

0

b

 

b

0

q5

0

*

*

*

1

b

b

b

b

q2

1

*

*

0

b

 

b

0

*

q8

*

*

*

1

b

b

b

q2

b

1

*

*

0

b

 

b

0

*

*

q8

*

*

1

b

b

b

0

q3

1

*

*

0

b

 

b

0

*

*

*

q8

*

1

b

b

b

0

1

q3

*

*

0

b

 

b

0

*

*

*

*

q8

1

b

b

b

0

1

*

q4

*

0

b

 

b

0

*

*

*

q9

*

1

b

b

b

0

1

*

*

q4

0

b

 

b

0

*

*

q5

*

0

1

b

b

b

0

1

*

q2

*

*

b

 

b

0

*

q5

*

*

0

1

b

b

b

0

1

q2

*

*

*

b

 

b

0

q5

*

*

*

0

1

b

b

b

0

q2

1

*

*

*

b

 

b

q5

0

*

*

*

0

1

b

b

b

q2

0

1

*

*

*

b

 

b

*

q8

*

*

*

0

1

b

b

q2

b

0

1

*

*

*

b

 

b

*

*

q8

*

*

0

1

b

b

0

q3

0

1

*

*

*

b

 

b

*

*

*

q8

*

0

1

b

b

0

0

q3

1

*

*

*

b

 

b

*

*

*

*

q8

0

1

b

b

0

0

1

q3

*

*

*

b

 

b

*

*

*

q9

*

0

1

b

b

0

0

1

*

q4

*

*

b

 

b

*

*

q5

*

0

0

1

b

b

0

0

1

*

*

q4

*

b

 

b

*

q5

*

*

0

0

1

b

b

0

0

1

*

*

*

q4

b

 

b

q5

*

*

*

0

0

1

b

b

0

0

1

*

*

q5

*

b

 

q5

b

*

*

*

0

0

1

b

b

0

0

1

*

q5

*

*

b

 

b

q10

*

*

*

0

0

1

b

b

0

0

1

q5

*

*

*

b

 

b

b

q10

*

*

0

0

1

b

b

0

0

q5

1

*

*

*

b

 

b

b

b

q10

*

0

0

1

b

b

0

0

*

q6

*

*

*

b

 

b

b

b

b

q10

0

0

1

b

b

0

0

*

*

q6

*

*

b

 

b

b

b

q11

b

0

0

1

b

b

0

0

*

*

*

q6

*

b

                   

b

0

0

*

*

*

*

q6

b