Anda di halaman 1dari 14

Universidad Mariano Gálvez de Guatemala

Campus de Huehuetenango
Facultad de Ingeniería en Sistemas
Sección “!
Ing" #alter Galicia García

$ro%ecto “má&uina de 'uring!


'uring!

(amason lonso )*)+,-+,./)/


0os1
0os1 2uis
2uis 'omas
mas 2ópe
2ópezz )*)+
)*)+,-
,-+,
+,.)
.)).
).-
-
0uan $a3lo Martínez )*)+,-4,4-5/
6onald
naldo
o Mat
Mateo
eo Garcí
arcía
a )*)+,
*)+,-
-+,.)
+,.).
.++

Huehuetenango )78--8-/
INTRODUCCIÓN

9n las Unidades precedentes se han estudiado lo &ue se puede considerar las


má&uinas a3stractas &ue permiten solucionar ciertos tipos de algoritmos: los
algoritmos en los &ue no puede recordarse más &ue una cantidad ;i<a de
in;ormación % otros en los &ue la in;ormación desarrollada durante la e<ecución
del algoritmo puede recuperarse solo en concordancia con la regla “li;o! =ltimos
en entrar primeros en salir: en esta unidad se descri3e una ma&uina a3stracta:
llamada Má&uina de 'uring : &ue es aceptada de manera amplia como modelo
general de computación: aun&ue las operaciones 3ásicas de esta má&uina son
compara3les en su sencillez a las de las má&uinas estudiadas en las unidades
anteriores: las nuevas má&uinas pueden realizar una amplia variedad de
operaciones de cómputo"

2
INDICE

$ág"
-" In;orme so3re la má&uina de 'uring"""""""""""""""""""""""""""""""""""""""+"
." Código de la má&uina de 'uring """"""""""""""""""""""""""""""""""""5"
4" Conclusiones """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""-4"
+" Conclusiones """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""-+
/" 9gra;ia"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""-/

3
INFORME SOBRE LA MÁQUINA DE TURING

LA MAQUINA DE TURING (TM)


Manipula sím3olos so3re una tira de cinta
de acuerdo a una ta3la de reglas"  pesar 
de su simplicidad: una má&uina de 'uring
puede ser adaptada para simular la lógica
de cual&uier algoritmo de computador % es
particularmente =til en la e>plicación de las
;unciones de un C$U dentro de un
computador"

9l corazón de una má&uina de 'uring es una cinta in;initamente larga &ue se


divide en casillas en el &ue la in;ormación se puede escri3ir" 9n la práctica real:
por supuesto: no ha% ning=n dispositivo ;ísico puede tener un n=mero in;inito de
casillas" $ero en la teoría de una Má&uina de 'uring: la cinta es in;inita" 2a
in;ormación &ue se puede escri3ir en cada celda se limita a un solo sím3olo: tal
como un 0 o un 1" Sin em3argo: la in;ormación puede ser representada por los
valores com3inados de casillas sucesivas"

2a má&uina de 'uring contiene una ca3eza de lectura,escritura &ue siempre se


coloca so3re una ?% sólo una@ de las casillas de la cinta"

9sta ca3eza de lectura,escritura puede leer el sím3olo &ue está contenido en la


casilla" 'am3i1n puede 3orrar el sím3olo %: si se desea: escri3ir un nuevo
sím3olo en su lugar" 2a casilla so3re la &ue se coloca la ca3eza de lectura,
escritura se conoce como la celda actual o la casilla ca3eza"

FUNCIONAMIENTO
2a má&uina de 'uring modela matemáticamente a una má&uina &ue opera
so3re una cinta" 9n esta cinta ha% sím3olos &ue la má&uina puede leer %
escri3ir: uno a la vez" 2a operación está completamente determinada por un
con<unto ;inito de instrucciones elementales como: por e<emploA Ben el estado
+4: si el sím3olo visto es ): escri3e un - Si el sím3olo visto es -: cam3ia al
estado .D % mu1vete un espacio a la derecha en el estado .D: si el sím3olo
visto es ): escri3e un - % cam3ia al estado 5 etcB"

4
2a cinta está motorizado de manera &ue se puede mover hacia la iz&uierda o la
derecha de3a<o de la lectura % escritura ca3eza de una casilla a la vez"

2a má&uina dispone de un estado: &ue está representado por un sím3olo como


una letra del al;a3eto"

 l igual &ue cual&uier computadora: una má&uina de 'uring se puede


programar" Sin em3argo: un programa para una má&uina de 'uring no se
parece remotamente un programa 0ava"

9n su lugar: un programa de la má&uina de 'uring es simplemente un con<unto


de reglas &ue se eval=an para determinar &u1 acciones de3e tomar la
má&uina" Cada regla identi;ica una acción a ser tomada cuando la celda actual
contiene un sím3olo dado % el e&uipo está en un estado determinado" $or 
e<emplo: una regla podría dictar lo &ue de3e hacer si la celda actual contiene
un - % el estado de la má&uina es BaB"

Cada regla pede e!pe"#$#"ar "al%#era de &re! a""#'e!

• Eorre la celda actual o escri3ir un nuevo valor a la celda"

• Mover la cinta una celda hacia la iz&uierda o una celda a la derecha"

• Cam3ie el estado de la má&uina a un nuevo estado"

$or e<emplo: una regla puede especi;icar &ue si la celda actual contiene un - %
el estado de la má&uina es Buna:B la Má&uina de 'uring de3e escri3ir un ) en la
celda actual: avanzar en la cinta una celda a la derecha: % cam3iar el estado de
la má&uina a B3B"

DEFINICIONES BÁSICAS
2a *e*'r#a e a M+%#a de Tr#g tiene las siguientes característicasA

 9s una "'le""#, de "elda! &ue se e>tiende in;initamente en am3as


direcciones: es una  "#&a #$##&a"

 Cada "elda es capaz de al*a"ear  -#"' !.*/'l'"

 o e>iste una celda primera: ni una =ltima % por lo tanto tiene capacidad
de almacenamiento in;inito"

 2os contenidos de las celdas pueden ser accedidos en cual&uier orden"

 9>iste una "a/ea de le"&rae!"r#&ra   &ue puede moverse so3re la


cinta % en cada movimiento leerá o escri3irá un sím3olo "

5
2ARIABLES QUE USAREMOS EN EL 3ROGRAMA

pu3lic static String cadena: cadena.:au>


pu3lic static Eu;;ered6eader reader
pu3lic static int longitud
pu3lic String complementoBB
pu3lic String arreglo
pu3lic int apuntador-

2a varia3le apuntador simulara nuestra ca3eza de lectura de la


má&uina de 'uring % la inicializaremos en -

pu3lic int apuntador-

2o primero &ue hace el programa es pedir el n=mero 3inario % lo


guardara dentro de la varia3le "adea4

pu3lic static void main?String args@J


S%stem"out"println?BIngrese numero 3inarioA B@
tr%J
reader  neK Eu;;ered6eader?neK InputStream6eader?S%stem"in@@
cadena  reader"read2ine?@
Lcatch?I9>ception e@J
e"getMessage?@
L

Complemento- o3<  neK Complemento-?@


L
L

Una vez &ue está guardado crea un o3<eto de a clase complemento


-"

6
9l constructor de dicho o3<eto nos mostrara la cadena % llamara al
m1todo decodi;icar mandándole como parámetro la cadena"

889l constructor del o3<eto te muestra la cadena ingresada


pu3lic Complemento-?@J
S%stem"out"println?BCadenaA BNcadena@
decodi;icar?cadena@
L

88M1todo decodi;icar se encarga de crear el arreglo &ue


contendráO la cadena

pu3lic void decodi;icar?String dec@J


cadena.BPBNcadenaNBPB
longitud  cadena."length?@   Cal"la*'! el &a*a5' de
la e6a "adea

arreglo  neK Stringlongitud  7 "rea*'! el arregl' del


 &a*a5' de la l'g#&d de
la e6a "adea

;or?int i)iQlongitudiNN@J
arregloiBBNcadena."chart?i@
L
e)?@
L

9ste m1todo se encargara de agregarle el sím3olo de ##"#' 8 $#


de nuestra cadena

Una vez &ue tenemos el arreglo le pasamos la nueva cadena %


llamamos al m1todo e04

7
9ste m1todo representa es estado 0 o el estado ##"#al de nuestra
má&uina de 'uring"

$or lo cual si el primer sím3olo &ue lee nuestra ma&uina es un 0


lo cam3iara por un 1 si se movera a la derecha % se cam3iara al
estado -"

889l metodo e) representa al estado ): el estado inicial


pu3lic void e)?@J
au> arregloapuntador
i; ?au>"e&uals?B)B@@J
arregloapuntadorB-B
mover(erecha?@
e-?@
L
else i; ?au>"e&uals?B-B@@J
arregloapuntadorB)B
mover(erecha?@
e-?@
L
else i; ?au>"e&uals?BPB@@J
arregloapuntadorBPB
moverIz&uierda?@
S%stem"out"println?BCadena vaciaB@
LelseJ
rechazar?au>@
L
L

9n el caso de &ue lea un - lo cam3iara por cero se mueve a la


derecha % cam3ia el estado -"

Si el primer sím3olo &ue lee es un P signi;icara &ue nuestra cadena


esta vacía por lo cual nos mostrara la le%enda cadena vacía % ahí
terminara nuestro programa"

8
889l metodo e- representa al estado -
pu3lic void e-?@J
au> arregloapuntador
i; ?au>"e&uals?B)B@@J
arregloapuntadorB-B
mover(erecha?@
e-?@
L
else i; ?au>"e&uals?B-B@@J
arregloapuntadorB)B
mover(erecha?@
e-?@
L
else i; ?au>"e&uals?BPB@@J
arregloapuntadorBPB
moverIz&uierda?@
e.?@
LelseJ
rechazar?au>@
L
L

9n el caso de &ue no reci3a un sím3olo di;erente a - ó ) ó P


signi;icara &ue hemos ingresado un carácter no valido para esta
má&uina de turing" R nos mandara el m1todo rechazar % le pasara
como parámetro en dicho sím3olo"

9l m1todo e- represa el estado - el cual se encargara de ir 


cam3iando los "er'! 8 '! por sus respectivos complementos %
se moverá a la derecha hasta llegar al ;inal de nuestra cadena" 9l
cual si encuentra un 0 lo cam3ia por un 1 se mueve a la derecha %
permanece en su mismo estado

Si reci3e un - lo cam3ia por ) se mueve a la derecha % se &ueda en


el mismo estado"

9n el caso de &ue encuentre el sím3olo P signi;icara &ue ha llegado


al ;inal de nuestra cadena por lo cual de<a el mismo sím3olo se
mueve a la iz&uierda % nos pasamos al estado ."

9
9ste segundo estado . se encargara de mover nuestra ca3eza de
lectura al inicio de nuestra cadena por lo cual solo se ira recorriendo
si encuentra un cero de<ara un cero % se moverá a la iz&uierda % se
&uedara en el mismo estado

si reci3e un - escri3irá un - se mueve a la iz&uierda % se &ueda en


el estado ."

889l metodo e. representa al estado .


pu3lic void e.?@J
au> arregloapuntador
i; ?au>"e&uals?B)B@@J
arregloapuntadorB)B
moverIz&uierda?@
e.?@
L
else i; ?au>"e&uals?B-B@@J
arregloapuntadorB-B
moverIz&uierda?@
e.?@
L
else i; ?au>"e&uals?BPB@@J
arregloapuntadorBPB
mover(erecha?@
e4?@
LelseJ
rechazar?au>@
L
L

9n el caso de &ue encuentre el sím3olo P &uerrá decir a llegado al


inicio de nuestra cadena por lo cual escri3irá el mismo P se moverá
a la derecha % nos mandará a nuestro estado 4"

10
e4 representa el estado 4 o al estado de aceptación de nuestra
má&uina de 'uring por lo cual cuando llegamos a&uí dentro de la
varia3le complemento vamos a pasarle el contenido de nuestro
arreglo una vez &ue est1 dentro del complemento mostramos el
resultado

889l metodo e4 representa al estado 4: el estado de aceptaciTn


pu3lic void e4?@J

;or?int i-iQlongitud,-iNN@J
complementocomplementoNarregloi
L
S%stem"out"println?B9l complemento a - deA BN cadena NB
esA BN complemento@
L

88Mueve el puntero de la M' a la derecha


pu3lic void mover(erecha?@J
apuntadorNN
L
88Mueve el puntero de la M' a la iz&uierda
pu3lic void moverIz&uierda?@J
apuntadorapuntador,-
L

88Si entra en este estado: signi;ica &ue se encontra un caracter 


no valido
pu3lic void rechazar?String noval@J
S%stem"out"println?BCaracter no validoA BNnoval@
L

 &uí están los m1todos de mover derecha el cual solo ira


incrementado nuestra apuntador"

mover iz&uierda &ue le ira decrementando

9l m1todo rechazar el cual es cuando encuentra un carácter no


valido % nos muestra dicho carácter"

11
 hora mostraremos el ;uncionamiento de nuestro programa
Una vez compilado lo e<ecutamos" 9n este primer e<emplo
ingresaremos -)))-)

os muestra la cadena &ue ingresamos" R como resultado nos


arro<ara la cadena % su complemento"

 hora ingresaremos un carácter no valido-))-h)-

uestro programa detecto &ue el carácter h es un carácter no


aceptado por nuestra má&uina de 'uring"

os muestra nuestra cadena % nos dice &ue el carácter no valido es


h por&ue solo acepta - % )"

 hora un e<emplo donde no ingresamos ninguna cadena por lo cual


nos muestra cadena vacía"

12
CONCLUSIONES

2as má&uinas de 'uring encierran todo el poder de los procesos


computacionales: pues son capaces de simular cual&uier proceso algorítmico"
'am3i1n encontramos &ue si una má&uina de 'uring no puede resolver un
pro3lema: entonces ninguna computadora podrá hacerlo simplemente por&ue
no e>iste un algoritmo para o3tener su solución" 9n otras pala,3ras: las
limitaciones &ue hemos detectado corresponden a los procesos
computacionales: no a la tecnología"

2as má&uinas de turing pueden ser simuladas por autómatas: los lengua<es
aceptados por estas má&uinas son los lengua<es estructurados por ;rases"

13
RECOMENDACIONES

 9s necesario conocer más so3re la má&uina de 'uring % su


simulación en 0"

 9l código % cada una de las 3i3liotecas usadas en la


simulación de la má&uina de 'uring de3en de ser analizadas
con más precisión"

14