Vous êtes sur la page 1sur 20

UNIVERSIDAD TECNOLOGICA BOLIVIANA

ESTRUCTURA DE LENGUAJES DE PROGRAMACION

UNIVERSIDAD TECNOLOGICA BOLIVIANA


INGENIERIA DE SISTEMAS

MAQUINA DE TURING

ESTRUCTURA DE LENGUAJES DE PROGRAMACIN


NOMBRE:
Dainor Manuel Heredia Trigo
DOCENTE:
ING. JAVIER HEREDIA
FECHA:
29-03-2014

LA PAZ BOLIVIA
1

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
Introduccin
El matemtico ingls Alan Turing fue uno de los pioneros ms importantes en la creacin
de lo que se convertira en La Teora de la Computacin. El misterio fue un comn
denominador a lo largo de la vida de Turing, entre otras cosas por su participacin en el
servicio britnico de inteligencia durante la Segunda Guerra Mundial. El repudio de la
sociedad britnica debido a su homosexualidad, y su trgico suicidio, siguen siendo
motivo de las ms enconadas controversias.
Biografa

ALAN M. TURING (1912-1954)

Uno de los lgicos ms destacados del siglo XX y precursor del computador.


Alan Mathison Turing naci el 23 de Junio de 1912, en Paddington, Londres. Su padre era
ingls, y su madre irlandesa, pero estuvo separado de ellos durante su infancia ya que
estuvieron exiliados en la India debido a una guerra en la que su padre combati. Con 12
aos ya expresaba su tremenda fascinacin sobre la naturaleza y la gran cantidad de
preguntas que no tenan respuesta para l, pensamientos que lo marginaron en la
Escuela Pblica en que se hallaba. Debido a esto estudi en Sherborne School cuyo
director tuvo unas palabras para con su madre: "Si es un cientfico de vocacin, pierde el
tiempo en la Escuela Pblica". Las notas privadas de Turing sobre la Teora de la
Relatividad denotan un alto nivel de inteligencia, pero a su vez es advertido para que no
tenga un fatal fracaso en la obtencin del Certificado Escolar.
Al ao de su entrada en Sherbone encuentra en Christopher Morcom la motivacin para
seguir con sus estudios, y entra en un vital periodo de riqueza intelectual, el cual finaliza
con la muerte sbita de Morcom en Febrero de 1930. La idea de que tendra que hacer lo
2

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
que Morcom no pudo, aparentemente lo sumi en una larga crisis. Durante tres aos al
menos ley las cartas de Morcom, que su madre habia recibido un tiempo atrs y su
atencin se centr en la pregunta de cmo la mente humana, y la de Christopher en
particular, se encarnaban y formaban parte de la materia, y el modo en que la mente se
separaba de la materia tras la muerte.
Esta pregunta le introdujo fuertemente en el rea de los fsicos del siglo XX, consultando
el libro de A. S. Eddington The Nature of the Physical World cuando la Teora de la
Mecnica Cuntica afect al tradicional problema de la mente y la materia. Como
estudiante del Kings College en Cambridge, entra en una fase de gran motivacin (1931).
Su lectura en 1932 del nuevo trabajo de Von Neumann sobre los fundamentos lgicos de
Mecnica Cuntica le ayud en la transicin de persona emocional a riguroso investigador
intelectual. Al mismo tiempo que su homosexualidad formaba parte definitivamente de su
identidad. El ambiente tan especial del Kings College hizo de este su primer y verdadero
hogar. En este periodo 1933-1935 form parte de diversos movimientos y asociaciones
estudiantiles generalmente englobados Kings College, y tambin se relacion con los
crculos literarios del College. El progreso de Turing parece seguro, su grado distinguido
en 1934 seguido del compaerismo del Kings College en 1935 y la participacin en el
trabajo de Smith Prize en 1936 sobre la Teoria de Probabilidades, le conducen hacia la
obtencin de su carrera como un excntrico Graduado en Matemticas Puras. La
peculiaridad de su mente, tambin le conduce en una direccin impredecible. En 1933 es
iniciado en los principios lgicos matemticos de la mano de Bertrand Russell que tena
unos conocimientos de lgica y fundamentos matemticos muy profundos. Pero una
pregunta acechaba a Turing, y era el hecho de que: debe existir al menos en principio
algn mtodo definido, o proceso mediante el cual toda cuestin matemtica pueda ser
demostrada? Esta pregunta, llamada entscheidugsproblem, fue formulada por David
Hilbert en el Congreso Internacional de Matemticos de 1900.
Para contestar a esta pregunta necesitaba una definicin del concepto mtodo, y para ello
analiz que era lo que haca una persona para transformar un proceso metdico, y buscar
una forma de hacer esto mecnicamente. Expres el analisis en trminos de una mquina
terica que sera capaz de transformar con precisin operaciones elementales
previamente definidas en smbolos en una cinta de papel. En Agosto de 1936 presenta el
concepto final de la Mquina de Turing en su artculo On Computable Numbers.

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
Casi el mismo da en que Turing anunciaba su resultado, lo haca tambin en Estados
Unidos Alonzo Church, aunque basndose en una notacin formal, que denomin clculo
lambda, para transformar todas las frmulas matemticas a una forma estndar. Los
trabajos de Church y, en especial, los de Turing, tuvieron profundas consecuencias para el
desarrollo de las Ciencias de la Computacin y la Inteligencia Artificial.
Con estos fundamentos, el ingeniero alemn Konrad Zuse dise el primer computador
electromecnico binario, el Z1.
En 1936, fue a estudiar a la universidad de Princeton, como un estudiante ya graduado.
All trabajo en su proyecto Ordinal Logic probablemente su ms difcil y profundo trabajo
matemtico; que le acerc al mundo de lo abstracto e incalculable; tambin lo utiliz para
su gran pregunta de la naturaleza de la mente, y de este trabajo obtuvo la idea de que la
intuicin humana corresponde a lo pasos no calculables de un argumento. Pero hasta
1938 no desarroll esta idea.
En Princeton y los aos 30, desarroll una mquina de cifrado, y estudi sobre este
campo debido a la utilidad de ello en la Guerra con Alemania. Trabajando secretamente
para el Colegio de Cifrado y Cdigo Gubernamental o tambin llamado Departamento de
Criptoanlisis.
Turing fue reclutado por Inglaterra, en Bletchley Park, para descifrar los mensajes que
compona la mquina alemana Enigma, y, como consecuencia, los aliados construyeron la
mquina Colosus. Y es en este periodo cuando toma contacto con la ms avanzada
tecnologa electrnica de la poca y planea la Mquina de Turing Universal en su forma
electrnica, de hecho haba inventado las computadoras digitales.
Una investigacin paralela americana llamada EDVAC, le hace temer que posiblemente
se adelanten a su proyecto y su idea. Por esta poca, Turing estuvo entrenndose, y a
punto estuvo de participar por Inglaterra en los Juegos Olmpicos del 1948 en atletismo de
larga distancia. En Mayo de 1948 es nombrado Director Adjunto del laboratorio de la
Universidad de Manchester. En 1950, Turing publica el artculo Computing Machinery and
Intelligence en la revista Mind, en el que introduca el clebre Test de Turing. Este artculo
estimul a los pensadores sobre la filosofa e investigacin en el campo de la Inteligencia
Artificial.

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
El 31 de Marzo de 1952 es detenido y juzgado por sus relaciones sexuales con Arnold
Murray, un joven de Manchester. El reconocimiento de su homosexualidad crea una
atmsfera de antipata hacia l de los ingenieros de Manchester. A cambio de no ir a
prisin, fue obligado a mantener un tratamiento mdico con estrgenos que le hizo
impotente y le produjo el crecimiento de pechos. Tambin es excluido de su trabajo en el
Departamento de Criptoanlisis por su homosexualidad. Fue encontrado por su asistenta
el 8 de Junio de 1954. Haba muerto el da anterior por ingestin de cianuro. Una
manzana mordisqueada estaba a su lado. Su madre defendi que la muerte fue por la
ingestin accidental de cianuro de sus dedos tras un experimento qumico, pero es ms
creible que l planease su muerte, amargado por su situacin. El dictamen del forense:
suicidio.
Era Alan Turing un filsofo?
Seguramente se habra reido de la idea de ser llamado un gran filsofo o de cualquier
clase de filsofo. De hecho, l a s mismo se llamaba matemtico. Pero su artculo en
1950 de Computing Machinery and Intelligence se ha convertido en uno de los ms
citados de la literatura filosfica moderna. Esto es principalmente porque Turing asoci el
nuevo y riguroso concepto matemtico de la computabilidad a problemas tradicionales
como la separacin de mente y cuerpo, el libre albedro y el determinismo.
Mquina de Turing
En 1934, Von Newman, un famoso matemtico hijo de una familia de banqueros
hngaros, estaba dando un curso como visitante en el Kings College de Cambridge. El
curso terminaba con la demostracin en la pizarra del teorema de Godel y sus depresivas
implicaciones. Quizs nunca se supiese si eran ciertos el tercer teorema de Fermat o la
conjetura de Goldbach. De hecho, era dudoso incluso que cierto o falso les pudiese ser
aplicado. Para ilustrar el tema y volviendo a la tercera pregunta de Hilbert, Von Newman
dijo que la cuestin era si exista una forma mecnica de demostrar su falsedad o
veracidad. Uno de los alumnos ms callados era Alan Mathison Turing, que durante dos
aos di vueltas a la frase mientras corra por las carreteras alrededor de Cambridge
practicando atletismo...
Aunque Von Newman, con toda probabilidad, dijo mecnico queriendo decir sistemtico
y que siga reglas conocidas, para Turing, que slo tena 22 aos y muchas inquietudes
5

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
espirituales, aquello era una cuestin metafsica, con una importancia de primer orden.
Es el cuerpo humano una mquina? es decir, son sus estados posibles finitos y
determinados o bien son infinitos y/o no deducibles de su estado inicial?
Estaba en su apogeo un debate intelectual sobre el determinismo, que Eddington y varios
ms protagonizaban desde que la mecnica cuntica y el principio de indeterminacin de
Heisenberg, haban puesto sobre el tapete otra vez el venerable problema planteado por
Laplace. Era la cuntica la solucin al problema de la voluntad humana versus la
determinacin (fuera sta divina, mero producto de la fsica laplaciana o de ambas a la
vez)?. Muchos crean que no y pensaban que eso slo era una trampilla de escape, que
utilizaba el desconocimiento de la manera de funcionar del nivel subatmico de la materia
para eludir el problema. Turing haba ledo mucho sobre cuntica y estaba sumido en un
mar de dudas.
Era un problema ciertamente difcil, el autntico nudo de la filosofa Occidental, que
implicaba problemas religiosos y ontolgicos que haban hecho parpadear con respeto al
mismsimo Inmanuel Kant. Turing busc la forma de atacar el problema examinando los
lmites intrnsecos del pensamiento mecnico. Acaso no era el manejo del lenguaje lo
que separaba al hombre de las mquinas? Poda una mquina de estados finitos y
determinados por las condiciones iniciales manejar smbolos como una persona?. Segn
contara el mismo, un da, descansando en un prado despus de correr diez millas,
decidi que la nica forma de solucionar el problema era describir esa mquina de forma
exacta o incluso mejor an construirla.
Tumbado en la hierba, record un problema que le desconcert en su primera infancia.
Cuando Turing era muy pequeo su padre se compr una mquina de escribir, y cuando
se lo dijo al pequeo Alan, ste qued boquiabierto. Cmo poda una mquina saber
escribir?. Ahora ese recuerdo le permiti abrirse paso en la selva conceptual del qu
somos, no con el enfoque emocional de la charla moralista, sino con la contundencia
abstracta de un hacha afilada por muchos aos de educacin en la ms pura tradicin
escepticista anglosajona.
Supongamos que tenemos a alguien escribiendo, con una mquina de escribir, teoremas
matemticos del tipo usado por Godel. Qu debera hacer la mquina para que no
hiciera falta la persona? Qu le falta a la mquina para poder hacerlo sin dejar de ser
una mquina?. No olvidemos que Godel haba demostrado que toda la lgica formal se
6

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
puede expresar en forma aritmtica. Turing introdujo algunas modificaciones a la mquina
de escribir que, aunque no hacan que dejase de ser una mquina, le permitan realizar
las tareas simblicas en lenguaje aritmtico de forma automtica.
En lugar de una hoja, imagin que usara una tira de papel que no tuviera fin, lo cual no
pareca un problema, puesto que era fcil pegar nuevos rollos cuando se agotara el
primero. Ms importante an, deba ser capaz no slo de escribir, sino tambin de leer y,
generalizando el concepto de escribir, se le permitira tambin borrar, aunque todo ello
en una sola casilla, como las mquinas de escribir convencionales. Finalmente, y en otra
diferencia menor, deba poder ir adelante y atrs.
Una vez planteada esta mquina, Turing dio el paso fundamental y defini sus estados
como configuraciones, que variaban segn lo que lea en la nica casilla activa que tena
a la vez. Es decir, que antes de ponerla en marcha, haba que suministrarle una lista finita
de estados y unas reglas para escoger entre stos. La mquina lea la casilla y despus,
siguindolas normas del estado en que se encontrara, cambiaba o no lo que haba
escrito (borrando o escribiendo), cambiaba o no a otro estado (es decir a otra forma de
reaccionar) y se mova o no una casilla en alguna direccin.
Segua siendo una mquina, puesto que sus estados eran finitos y dependan
completamente del estado inicial, pero era capaz de hacer cosas realmente sofisticadas.
Haca decenios que se aconsejaba el uso de la base 2 para realizar clculos, y Turing
haba imaginado una mquina que trabajaba con dos estados que podan ser asimilados
al 1 y al 0, las unidades del clculo binario. Sera posible que atacase problemas
mecnicos, como determinar si un nmero es primo?
Trabajando varios meses, consigui demostrar que su mquina, llamada ms tarde
Mquina Universal de Turing (o, de forma ms familiar, computador binario) era capaz de
realizar cualquier clculo, si se la dejaba trabajar un nmero suficiente de pasos y se
haban preparado de forma correcta sus estados, cada uno de los cuales inclua -como se
ha dicho- las normas para cambiar a otro en funcin de la ausencia o presencia de un
agujero en la posicin del papel que estaba leyendo en ese mismo momento.
Se tom muchas molestias para demostrarse a s mismo que una persona que realizase
los mismos clculos actuara de una forma anloga a la mquina, y tambin para
examinar las limitaciones de sta. Descubri que la mquina solamente poda tratar con lo
7

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
que llam nmeros satisfactorios, aunque despus les dio el nombre ms oficial de
nmeros computables, con el que han pasado a la historia (algunos autores los vierten
al castellano con el nombre de nmeros calculables). Y as lleg al meollo de la tercera
pregunta de Hilbert. Antes de poner la mquina en marcha, se poda determinar
mediante un algoritmo si llegara a un resultado satisfactorio?
Turing us como ejemplo la diagonalizacin de Cantor para hallar nmeros irracionales, y
demostr que no se poda garantizar que la mquina lo estuviese haciendo bien excepto
reproduciendo a mano su trabajo. La tercera respuesta era no y por tanto no haba
forma de esquivar los resultados de Godel. Las matemticas eran un montaje intelectual y
no tenan ms trascendencia metafsica que el ajedrez. Enpalabras de Barrows, la
matemtica es la nica religin que se ha entretenido en demostrarse falsa a s misma.
La tarea a la que haba pensado dedicar su vida haba terminado antes de empezar.
Turing escribi su tesis, que era un epitafio a la filosofa matemtica y la demostracin de
que la expresin fundamentos de la matemtica era una contradiccin en sus trminos
(a menos que se aceptase una total arbitrariedad en los axiomas, como la que
modernamente permite considerar p.e. que Tarsky resolvi el problema del continuo). Y,
por si no fuera suficientemente triste, descubri que un tal Alonso Church de Princeton,
en EEUU- se le haba adelantado por unas semanas, aunque con unos resultados mucho
menos generales y que no implicaban mquina alguna.
Despus de este episodio, Turing vagabundeo por diferentes aspectos de la matemtica
de la poca sin sentir gran inters. Su carcter asocial y depresivo le estaban convirtiendo
en un paria, y sus profesores lo enviaron a la universidad de Princeton para que trabajara
con Newman y Church. Esta universidad se estaba llenando de exiliados alemanes de la
antigua capital mundial de la matemtica, Gottingen, la ciudad de Hilbert.
Pas all dos aos en los que hasta cierto punto se acostumbr a la vida universitaria
americana. Bajo la gida de Von Newman acometi un ataque terico a su propia tesis:
Y si suministrramos un infinito numerable de instrucciones a la mquina? Y qu tal un
infinito numerable de listas, cada una de las cuales contuviese un infinito numerable de
instrucciones? Para cualquier orden de infinito del nmero de instrucciones que hay que
suministrar, los pasos a dar para la comprobacin son de un orden superior?. El tema le
empez a aburrir, mientras que en sus horas libres encontr un nuevo reto que le hizo

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
sentir emocin otra vez. Haba descrito una mquina universal que poda hacer cualquier
clculo Por qu no construirla?

Las mquinas de Turing (MT) son como los autmatas finitos de 2


sentidos, solo que a diferencia de estos, las MTs pueden no solo leer de
la cinta sino tambin escribir en ella, como los autmatas de stack
pueden almacenar datos pero en una memoria que no est organizada
en forma de pila sino que es una memoria de acceso secuencial.
Formalmente, Una Mquina de Turing es
M = (Q, , , , q0, B, F)
Dnde:
Q.- Denota al conjunto de estados de la MT

.-Denota al alfabeto de la cinta al inicio


.-Denota al alfabeto de la cinta en cualquier momento, obviamente

: (Q ) (Q {L, R})

.-Control finito

q0
.- Estado inicial
F.- Conjunto de estados finales
B.- Smbolo que representa al Blanco en la cinta
Por ejemplo, Diseemos una Mquina de Turing que reconozca el
siguiente lenguaje:
{0n1n0n | n 1}
Estrategia de solucin.
Por cada cero (0) en la cinta de entrada vamos a escribir una C,
y por cada uno (1) una U, de tal forma que, si finalmente todos los
ceros y todos los unos en la cinta han sido sustituidos por una C o una

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

U, respectivamente, la cadena en la cinta es aceptada. La forma de


sustituir estar dada de la siguiente manera:
(1) El primer cero de izquierda a derecha sustituirlo por C

C0 01 ....... 0n-1 0n 10 11 1n-1 1n 00 01 ....... 0n-1 0n

(2) Avanzar a la derecha hasta encontrar un uno y sustituirlo por U

C0 01 ....... 0n-1 0n U0 11 1n-1 1n 00 01 ....... 0n-1 0n


(3) Avanzar a la derecha hasta encontrar un cero y sustituirlo por C

C0 01 ....... 0n-1 0n U0 11 1n-1 1n C0 01 ....... 0n-1 0n


(4) Retroceder pasando por los unos y Us hasta encontrar una C
precedida por un cero

C0 01 ....... 0n-1 0n U0 11 1n-1 1n C0 01 ....... 0n-1 0n


Y Repetir (1) , hasta tener

C0 C1 ....... Cn-1 Cn U0 U1 Un-1 Un C0 C1 ....... Cn-1 Cn B


En caso de que no se puede cumplir: El primer cero de izquierda
a derecha , Avanzar a la derecha hasta encontrar un ,
Retroceder pasando por los unos y Us hasta encontrar , la cadena
no ser aceptada.
Formalizando.
Sea M = (Q, , , , q0, B, F)
La Mquina de Turing que reconoce el lenguaje
{0n1n0n | n 1}
Entonces:
10

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

Q = {q0, q1, q2, q3, q4, q5, q6, q7}


= {0, 1}
= {0, 1, B, C, U}
q0 = q0
F = {q6}

=
q0
q1
q2
q3
q4
q5
q6
q7

0
(q1,C,R)
(q1,0,R)
(q3,C,L)
(q7,0,L)
(q7,0,L)

1
(q2,U,R)
(q2,1,R)
(q4,1,L)
(q4,1,L)

(q1,U,R)
(q2,C,R)
(q3,C,L)
(q5,C,R)
(q5,C,R)

(q4,U,L)
(q4,U,L)
(q5,U,R)

(q6,B,R)

(q0,C,R)

Cdigo para el simulador de la Mquina de Turing.


Disponemos en la Facultad de un simulador de Mquinas de Turing
hecho en LISP donde podemos probar nuestros diseos. Dadas las
caractersticas
del
simulador
se
asumen
los
siguientes
convencionalismos para la funcin de transicin:
1 Cuando en una transicin se cambia el smbolo ledo de la cinta, se
incluye un nuevo estado para poder indicar la escritura y el
movimiento, por ejemplo: (q0,0) ser ((Q0 0) (C Q_1) (C Q_1) (R
Q1)), donde Q_1 es el nuevo estado correspondiente a Q1. y as
para todo Q_X existe un QX.
2 Si en la transicin el smbolo ledo no cambia, entonces solo se
indica hacia donde se mueve el control finito y a que estado
cambia. Por ejemplo: (q1,0) ser igual a ((Q1 0) (R Q1)).
Finalmente el cdigo queda como sigue:

;********************** CUC.MT

***************************

;Se reconocen cadenas de la forma 0^n1^n0^n pj.: 001100, 010

11

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

;El estado final es Q6


(SETQ FUNCION_DE_TRANSICION '(
((Q0 0) (C Q_1))
((Q_1 C) (R Q1))
((Q1 0) (R Q1))
((Q1 U) (R Q1))
((Q1 1) (U Q_2))
((Q_2 U) (R Q2))
((Q2 1) (R Q2))
((Q2 C) (R Q2))
((Q2 0) (C Q_3))
((Q_3 C) (L Q3))
((Q3 C) (L Q3))
((Q3 1) (L Q4))
((Q3 U) (L Q4))
((Q4 1) (L Q4))
((Q4 U) (L Q4))
((Q4 0) (L Q7))
((Q4 C) (R Q5))
((Q5 U) (R Q5))
((Q5 C) (R Q5))
((Q5 B) (R Q6))
((Q7 0) (L Q7))
((Q7 C) (R Q0))
))
12

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

(SETQ ENTRADA '(0 0 1 1 0 0))


(SETQ ESTADO_INICIAL Q0)
(SETQ POSICION_INICIAL_CINTA 0)
(SETQ SIMBOLOS '(B 1 0 C U))
Las Mquinas de Turing pueden utilizarse para realizar cmputos de funciones
enteras y no solo para fines de reconocimiento de lenguajes, para ejemplificar este
hecho, Diseemos ahora una Mquina de Turing para calcular la siguiente funcin:

n2

Estrategia de solucin.
Se propone una Mquina de Turing que computa la funcin n2 en
unario, para esto la cinta de entrada contiene originalmente n en unario.
Ya que n2 es igual a n x n, la estrategia consiste precisamente en realizar
dicho producto en unario, para esto primero se debe duplicar la
secuencia de 0 en unario en la cinta, separando por un 1 la copia del
original, aplicar el producto sobre ambas cantidades, dicho producto se
realiza mediante la copia de n veces n. De forma general podramos ver
la operacin de n2 como una sucesin de pasos de la siguiente manera:
Contenido de la cinta:
01 02 0n-1 0n

B B

Despus se realizan los siguientes pasos:


(1) Duplicar el contenido de la cinta, separando la copia del original por
un uno
(1.a) Marcar como P el primer cero y poner un uno despus del
ltimo 0
P1 02 0n-1 0n

13

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

(1.b) Adems de la P, copiar uno a uno los ceros del lado izquierdo
del 1 al lado derecho del mismo, para esto marcar con un 2 el cero
a copiar, y recorrer hasta encontrar un blanco para ponerlo ah.
P1 02 0n-1 0n

01 B

Regresar hasta encontrar un 0 antecedido de un 2 y repetir el paso


anterior, hasta llegar a tener:
P1 22 2n-1 2n

01 02 0n-1 0n B

Finalmente restaurar, es decir, sustituir los 2 por 0 quedando:


P1 02 0n-1 0n

01 02 0n-1 0n B

(2) Realizar el producto de n x n


(2.a) Poner un uno en el primer blanco
P1 02 0n-1 0n

1er segmento de 0s

01 02 0n-1 0n

2 segmento de 0s

El primer segmento de ceros nos va a servir para saber las veces


que faltan de copiarse los ceros del segundo segmento a partir del
ultimo blanco, cada vez que se va a realizar una copia se sustituye
un elemento del primer segmento por un B, y se realiza la copia
del segundo segmento, de manera similar a como se hizo en (1.b)
con la diferencia de que en este segmento no hay una P. En otras
palabras el resultado se va almacenando despus del segundo
uno. Realizadas la n copias tendramos en la cinta lo siguiente:
B1 B2 Bn-1 Bn

01 02 0n-1 0n

011 01n 0n1 0nn B

14

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

(3) Finalmente solo resta poner un blanco sobre el 2 segmento de ceros


incluyendo los unos que lo delimitan y tendremos en la cinta tan solo n x
n = n2 en unario.
Definicin formal
Sea M = (Q, , , , q0, B, F)
La Mquina de Turing que computa
n2
Entonces:
Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17,
q18, q19, q20, q21,}
= {0}
= {0, 1, 2, P, B}
q0 = q0
F = {q20}

=
q0
q1
q2
q3
q4
q5
q6
q7
q8
q9
q10
Q11
q12
q13
q14
q15
q16
q17
q18
q19

0
(q1,P,R)

(q1,0,R)
(q2,0,L)
(q3,0,R)
(q4,0,L)
(q3,2,R)
(q6,0,L)
(q7,0,R)
(q8,0,L)
(q9,0,R)
(q11,2,R)
(q11,0,R)
(q12,0,L)

B
(q2,1,L)

(q3,P,R)
(q3,1,R)
(q4,1,L)
(q6,1,L)

(q4,0,L)
(q5,2,R)

(1)

(q5,P,R)
(q7,P,R)

(q7,1,R)
(q8,1,L)
(q10,1,R)
(q13,1,L)
(q11,1,R)
(q12,1,L)
(q14,1,R)

(q8,1,L)
(q9,B,R)
(q12,0,L)
(q10,2,R)
(q13,0,L)

(q15,0,L)
(q16,1,L)
(q17,0,L)
(q17,0,L)
(q19,B,R)

(2)
(q18,B,R)
(q21,B,R)

(q19,B,R)
(q20,B,R)
15

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
q20
q21
(q9,B,R)

Cdigo para el simulador de la Mquina de Turing


Dadas las caractersticas del simulador, se asumen los
convencionalismos dados para el ejercicio anterior. El cdigo para el
simulador es el siguiente:
;**********************
***************************

NXN.MT

;Se calcula n cuadrada, es decir n x n,en unario


;Pj. la entrada es: 000, la salida sera: 000000000
(SETQ FUNCION_DE_TRANSICION '(
((Q0 0) (P Q_1))
((Q_1 P) (R Q1))
((Q1 0) (R Q1))
((Q1 B) (1 Q_2))
((Q_2 1) (L Q2))
((Q2 0) (L Q2))
((Q2 P) (R Q3))
((Q3 0) (R Q3))
((Q3 1) (R Q3))
((Q3 B) (0 Q_4))
((Q_4 0) (L Q4))
((Q4 0) (L Q4))
((Q4 1) (L Q4))
((Q4 P) (R Q5))
((Q4 2) (R Q5))
((Q5 0) (2 Q_3))
16

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

((Q_3 2) (R Q3))
((Q5 1) (L Q6))
((Q6 2) (0 Q_6))
((Q_6 0) (L Q6))
((Q6 P) (R Q7))
((Q7 0) (R Q7))
((Q7 1) (R Q7))
((Q7 B) (1 Q_8))
((Q_8 1) (L Q8))
((Q8 0) (L Q8))
((Q8 1) (L Q8))
((Q8 P) (B Q_9))
((Q_9 B) (R Q9))
((Q9 0) (R Q9))
((Q9 1) (R Q10))
((Q10 0) (2 Q_11))
((Q_11 2) (R Q11))
((Q10 1) (L Q13))
((Q11 0) (R Q11))
((Q11 1) (R Q11))
((Q11 B) (0 Q_12))
((Q_12 0) (L Q12))
((Q12 0) (L Q12))
((Q12 1) (L Q12))
((Q12 2) (R Q10))
17

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION

((Q13 2) (0 Q_13))
((Q_13 0) (L Q13))
((Q13 1) (R Q14))
((Q14 0) (L Q15))
((Q15 1) (L Q16))
((Q16 0) (L Q17))
((Q16 B) (R Q18))
((Q17 0) (L Q17))
((Q17 B) (R Q21))
((Q18 1) (B Q_19))
((Q_19 B) (R Q19))
((Q19 0) (B Q_19))
((Q19 1) (B Q_20))
((Q_20 B) (R Q20))
((Q21 0) (B Q_9))
))
(SETQ ENTRADA '(0 0 0))
(SETQ ESTADO_INICIAL Q0)
(SETQ POSICION_INICIAL_CINTA 0)
(SETQ SIMBOLOS '(B 0 1 2 P))
La repercusin de Turing en la actualidad
Turing es uno de los principales pilares de lo que hoy en da llamamos la inteligencia
artificial. Gracias a l otros tantos cientficos han podido continuar una gran labor en lo
que es el sector de la computacin y la informtica. Por ello hay que hacer referencia a la
historia de la inteligencia artificial:
Historia de la inteligencia artificial
18

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
La historia de la Inteligencia Artificial ha pasado por diversas situaciones:
El trmino fue inventado en 1956, en un congreso en el que se hicieron previsiones
triunfalistas a diez aos que jams se cumplieron, lo que provoc el abandono casi total
de las investigaciones durante quince aos.
En 1980 la historia se repiti con el desafo japons de la quinta generacin, que dio
lugar al auge de los sistemas expertos, pero que no alcanz muchos de sus objetivos, por
lo que este campo ha sufrido una nueva detencin en los aos noventa.
En la actualidad estamos tan lejos de cumplir la famosa prueba de
Turing como cuando se formul: Existir Inteligencia Artificial cuando no seamos capaces
de distinguir entre un ser humano y un programa de computadora en una conversacin a
ciegas.
Como ancdota, muchos de los investigadores sobre IA sostienen que "la inteligencia es
un programa capaz de ser ejecutado independientemente de la mquina que lo ejecute,
computador o cerebro".
Los juegos matemticos antiguos, como el de la torres de hanoi (aprox 3000ac),
demuestran el inters por la bsqueda de un bucle resolutor, una IA capaz de ganar en los
mnimos movimientos posibles.
En 1903 Lee De Forest inventa el triodo (tambien llamados bulbo o vlvula de vaco).
Podria decirse que la primera gran maquina inteligente diseada por el hombre fue el
computador ENIAC, compuesto por 18.000 vlvulas de vaco, teniendo en cuenta que el
concepto de "inteligencia" es un trmino subjetivo que depende de la inteligencia y la
tecnologa que tengamos en esa poca. Un indgena el amazonas en el siglo 20 podra
calificar de inteligente un tocadiscos, cuando en verdad no lo es tanto.
En 1937, el matemtico ingls Alan Mathison Turing (1912-1953) public un artculo de
bastante repercusin sobre los "Nmeros Calculables", que puede considerarse el origen
oficial de la Informtica Terica.
En este artculo, introdujo la Mquina de Turing, una entidad matemtica abstracta que
formaliz el concepto de algoritmo y result ser la precursora de las computadoras
digitales. Con ayuda de su mquina, Turing pudo demostrar que existen problemas
19

UNIVERSIDAD TECNOLOGICA BOLIVIANA


ESTRUCTURA DE LENGUAJES DE PROGRAMACION
irresolubles, de los que ningn ordenador ser capaz de obtener su solucin, por lo que a
Alan Turing se le considera el padre de la teora de la computabilidad.
Tambin se le considera el padre de la Inteligencia Artificial, por su famosa Prueba de
Turing, que permitira comprobar si un programa de ordenador puede ser tan inteligente
como un ser humano.
CONCLUSIN:
Por lo que he estado leyendo acerca de Turing y su mquina ha sido inevitable recurrir a
hechos histricos de su vida y otras ramas como inteligencia artificial en las cuales tuvo
influencia, por lo que este trabajo vemos: Por un lado su vida y su forma de pensar, ya
que parece que tiene su propia filosofa de la vida, y por otro lado todo lo relacionado con
sus inventos y su vida cientfica.
Realmente me ha parecido una persona muy interesante, pero al mismo tiempo me he
sentido muy sorprendido por su marginacin en el sector del trabajo y social a pesar de
ser un verdadero genio.

BIBLIOGRAFA:
http://www-etsi2.ugr.es/alumnos/mlii/Alan%20Turing.htm
http://www.lania.mx/biblioteca/newsletters/1999-otonoinvierno/aturing.html
http://www.turing.org.uk/philosophy/index.html
http://www.kings.cam.ac.uk/library/archives/modern/mquina de Turing
http://www.kriptopolis.org/node/239contexto histrico
http://platea.cnice.mecd.es/~msanch2/tecnoweb/introduc.htm
Historia de la inteligencia artificial
http://es.wikipedia.org/wiki/Inteligencia_Artificial

LENGUAJES FORMALES Y AUTOMATAS: Dr. Jos Antonio Camarena


Ibarrola

20

Vous aimerez peut-être aussi