Está en la página 1de 8

EBREL GONZALEZ ROSAS

MCIC
SEMESTRE B12

TEORIA DE AUTOMATAS

PROFESOR: PABLO MANRRIQUE

PROYECTO FINAL: MAQUINA DE TURING.

INTRODUCCIÓN

Empezaremos por decir que existen problemas que se pueden interpretar como un programa
hecho en algun lenguaje, dentro de estos programas se puede hacer la pregunta si son decidibles
o indecidibles, si se toman encuenta problemas que no solo se puedan llevar a algun lenguaje de
programacion, como lo son las frase, predicados, entonces se llega a otra clasificación como son
los problemas intratables, a lo largo de la historia de la computacion se ha intentado hacer un
modelo que describa estos problemas es aquí donde surge la maquina de Turing.

Un programa indecidible es aquel que no se puede predecir su salida en base a una determinada
entrada, por ejemplo en un programa que imprime hola mundo solo msi encuntra numeros que
satisfagan la ecuacion X2+y2=z2 , se necesita construir un programa que analice al programa en
cuestion, y de salida tenga si o no imprime la palabra hola mundo, sin embargo este programa no
podria saber si se imprime o no hola mundo con certeza por que ya que si si imprime la salida
debera ser si, pero si es si entonces no imprimiria hola mundo por que se habria cambiado el
codigo para poder hacer esto.

En resumen esto nos quiere decir que todos los programas son indecidibles puesto que se tienen
infinitas entradas para ser asignadas a elementos de procesamiento finitos, es decir no se podria
saber con certeza, recordar que la maquina tiene la limitante de la memoria, y por ende seria
imposible asignarle infinitos estados a infinitas entradas.
Los problemas que pudieran ser decidibles en un rango acotado (puesto que aunque los
programas son indecidibles, para entradas infinitas no tiene ningun caso analizar ese rango infinito
solo las entradas que nos importan) pero que son dificiles o tardan mucho tiempo en resolverse se
les llama intratables esto trajo como consecuencia que algunos precursores de la computacion
trataran de solucionar o dar un modelo para estos problemas.

HILBERT

A finales del siglo XX, el matemático D. Hilbert se pregunto si era posible encontrar un algoritmo
para determinar la verdad o falsedad de cualquier proposición matemática. En particular se
preguntó si exixtía una forma de determinar si cualquier fórmula de cálculo de predicadosde
primer orden, aplicada a enteros, era verdadera. Dado que el calculo de predicados de primer
orden sobre los enteros es suficientemente potente para expresar proposiciones como “esta
gramatica es ambigua ” o “este programa es indecidible”; si hilbert hubiera encontrado este
algoritmo, entonces sabriamos las computadoras tomarian otro rumbo.

Conrrespecto a hilbert se puede decir que propuso e intento resolver el cual se resume en el
anterior texto,en enunciado dice:

Dada una ecuación diofántica con cualquier número de incógnitas y con coeficientes numéricos
racionales enteros:

Idear un proceso de acuerdo con el cual pueda determinarse, en un número finito de operaciones,
si la ecuación es resoluble en números racionales enteros.

K. GODEL.

En 1931, K. Godel publicó su famoso teorema de la incompletitud. Construyo una formula para el
cálculo de predicados aplicada a los enteros, que afirmaba que la propia fórmula no podía ser ni
demostrada ni refutada dentro del cálculo de predicados.

Reconocido como uno de los más importantes lógicos de todos los tiempos, el trabajo de Gödel ha
tenido un impacto inmenso en el pensamiento científico y filosófico del siglo XX. Gödel, al igual
que otros pensadores como Bertrand Russell, A. N. Whitehead y David Hilbert intentó emplear la
lógica y la teoría de conjuntos para comprender los fundamentos de la matemática. A Gödel se le
conoce mejor por sus dos teoremas de la incompletitud, publicados en 1931 a los 25 años de
edad, un año después de finalizar su doctorado en la Universidad de Viena.
Como el cálculo de predicados no era solo la idea que tenian los matematicos de la computación,
tambien las funciones recursivas parciales. Asi en 1936 Alan Turing, propuso la máquina de Turing
como modelo de cualquier posible computación. La cual no es vista solo como un programa si no
como una computadora, aun antes de que se construyeran las primeras computadoras
electronicas o electromecanicas.

BIOGRAFIA Alan Turing (1912-1954)

Alan Mathison Turing nació en Londres, Reino Unido, en 1912. Su infancia la vivió lejos de sus
padres, destinados por el gobierno británico en la India. Se licenció en matemáticas en el King’s
College de Cambridge (1931), destacando por su extraordinaria capacidad intelectual y por su
creatividad, al tiempo que mostraba excelentes condiciones en las competiciones atléticas.
Prosiguió estudios en la norteamericana Universidad de Princeton, donde se doctoró con la tesis
‘Systems of Login Based on Ordinals’ (1938). Durante su estancia en Estados Unidos, trabajó como
becario de John von Neumann en el Institut for Advanced Studies.

Sus primeras publicaciones científicas aparecen cuando aún no había cumplido los 25 años, y en
ellas se concibe ya un proyecto de máquina autómata, un constructo abstracto de una
computadora. En uno de sus trabajos, en el que trataba de resolver el problema formulado por
Hilbert a principios de siglo –el Entscheidungsproblem- sobre la existencia de un algoritmo de
respuesta universal, sienta las bases teóricas de la moderna computación.

En 1939, de regreso al Reino Unido, trabajó para el Gobierno de Londres en los más avanzados
proyectos de criptografía, destinados a descifrar los mensajes codificados por la máquina 'Enigma'
del ejército nazi, lo que le llevó a desarrollar la máquina descifradora 'Bombe' y varias
computadoras 'Colossus', que fueron de una gran utilidad para los aliados y le supusieron a Turing
la Orden del Imperio Británico (1946). Posteriormente, dirigió el proyecto Automatic Computing
Engine (ACE), que llegó a desarrollar la máquina de computación más avanzada del momento y le
permitió concebir la idea de 'red neuronal'. Fue profesor de la Universidad de Manchester (1948).

El pensamiento de Turing comprende un amplio campo de reflexión, ya que su concepción de las


máquinas inteligentes, expuesta en el trabajo ‘Computing Machinery & Intelligence’, aparecido en
la revista Mind (1950), supone una visión científica y filosófica que está en el origen de las grandes
transformaciones que darán lugar a la idea de una sociedad tecnológica de la información. Las
reservas y críticas a sus planteamientos no se hicieron esperar, pero su visión del futuro le llevaron
a proyectarse al año 2000, cuándo, según su previsión "el empleo de las palabras y la opinión
académica habrá variado y se podrá hablar de máquinas pensantes sin que se produzcan
descalificaciones".
Toda función computable por la naturaleza humana es computable, de acuerdo con la idea de
Turing, por lo que concibe como 'máquina universal'. No hay nada humano, incluido el
pensamiento, afirmaba Turing, que no pueda ser reproducido por una máquina, por una máquina
pensante (‘thinking machine’). El 'test de Turing' venía a dar respuesta acerca de la capacidad de
las máquinas. Desde una posición claramente conductista, los comportamientos aparecían
directamente guiados por estímulos concretos. Por consiguiente, las pautas de la conducta y de la
acción podrían ser codificadas, memorizadas y reproducidas a través respuestas sujetas a la lógica
causal. La complejidad, los lenguajes máquina, los conceptos de algoritmo y programa, las
funciones de memoria, la noción de inteligencia artificial, subyacen en la visión de Turing.

Se suicidó en 1954 en su casa de Wilmslow, Cheshire, a los 42 años, después de un tratamiento de


castración química con estrógenos, sustitutivo de la prisión, destinado a corregir su condición
homosexual, castigada en el Reino Unido como 'indecencia grave'. Turing ingirió una manzana con
cianuro para quitarse la vida y el símbolo de la marca de computadoras Apple -una manzana
mordida- le rinde homenaje.

DESCRIPCION DE LA MAQUINA DE TURING

La siguiente imagen resume un poco la teoria de automatas.

Una máquina de Turing es un dispositivo que manipula símbolos sobre una tira de cinta de
acuerdo a una tabla de reglas. A pesar de su simplicidad, una máquina de Turing puede ser
adaptada para simular la lógica de cualquier algoritmo de computador y es particularmente útil en
la explicación de las funciones de un CPU dentro de un computador

Descripción informal
La máquina de Turing modela matemáticamente a una máquina que opera mecánicamente sobre
una cinta. En esta cinta hay símbolos que la máquina puede leer y escribir, uno a la vez, usando un
cabezal lector/escritor de cinta. La operación está completamente determinada por un conjunto
finito de instrucciones elementales como "en el estado 42, si el símbolo visto es 0, escribe un 1; Si
el símbolo visto es 1, cambia al estado 17; en el estado 17, si el símbolo visto es 0, escribe un 1 y
cambia al estado 6; etc". En el artículo original ("Sobre números computables con una aplicación al
Entscheidungsproblem"), Turing no imagina un mecanismo, sino una persona a la que él llama la
"computadora", quien ejecuta servilmente estas reglas mecánicas deterministas (o como Turing
pone, "de una manera desganada").

Más precisamente, una máquina de Turing consta de:

Una cinta que se divide en celdas, una al lado de la otra. Cada celda contiene un símbolo de algún
alfabeto finito. El alfabeto contiene un símbolo especial llamado blanco (aquí escrito como 'B') y
uno o más símbolos adicionales. La cinta se supone que es arbitrariamente extensible hacia la
izquierda y hacia la derecha, es decir, la máquina de Turing siempre es suministrada con tanta
cinta como necesite para su computación. Las celdas que no se hayan escrito previamente se
asumen que están rellenas con el símbolo blanco. En algunos modelos la cinta tiene un extremo
izquierdo marcado con un símbolo especial; la cinta se extiende o es indefinidamente extensible
hacia la derecha.

Un cabezal que puede leer y escribir símbolos en la cinta y mover la cinta a la izquierda y a la
derecha una (y sólo una) celda a la vez. En algunos modelos el cabezal se mueve y la cinta es
estacionaria.

Un registro de estado que almacena el estado de la máquina de Turing, uno de los estados finitos.
Hay un especial estado inicial con que el registro de estado es iniciado. Turing escribe que estos
estados reemplazan el "estado de la mente" en que ordinariamente estaría una persona
realizando cálculos.

Una tabla finita de instrucciones (llamada ocasionalmente como tabla de acción o función de
transición). Las instrucciones son usualmente 5-tuplas: qiaj→qi1aj1dk, (a veces 4-tuplas), que,
dado el estado (qi) la máquina está actualmente en y el símbolo (aj) se está leyendo en la cinta (el
símbolo actualmente debajo del cabezal) le indica a la máquina hacer lo siguiente en secuencia
(para los modelos de 5-tupla):

Borra o escribe un símbolo (reemplazando aj con aj1), y entonces

Mueve el cabezal (que es descrito por dk y puede tener los valores: 'L' para un paso a la izquierda,
o 'R' para uno paso a la derecha, o 'N' para permanecer en el mismo lugar) y luego

Asume el mismo o un nuevo estado como prescrito (ve al estado qi1).


Definición formal

Una máquina de Turing es un modelo computacional que realiza una lectura/escritura de manera
automática sobre una entrada llamada cinta, generando una salida en esta misma.

Este modelo está formado por un alfabeto de entrada y uno de salida, un símbolo especial llamado
blanco (normalmente b, o 0), un conjunto de estados finitos y un conjunto de transiciones entre
dichos estados. Su funcionamiento se basa en una función de transición, que recibe un estado
inicial y una cadena de caracteres (la cinta, la cual puede ser infinita) pertenecientes al alfabeto de
entrada. La máquina va leyendo una celda de la cinta en cada paso, borrando el símbolo en el que
se encuentra posicionado su cabezal y escribiendo un nuevo símbolo perteneciente al alfabeto de
salida, para luego desplazar el cabezal a la izquierda o a la derecha (solo una celda a la vez). Esto se
repite según se indique en la función de transición, para finalmente detenerse en un estado final o
de aceptación, representando así la salida.

Una máquina de Turing con una sola cinta puede definirse como una 7-tupla

En la imagen se ve la cabeza de la cinta que lee o escribe un nuevo simbolo de cinta, manejada por
la unidad de control.

La cinta es infinita se puede mover a la derecha o a la izquerda, y puede contener simbolos de


entrada, espacio en blanco y simbolos de cinta.

donde:

  es un conjunto finito de estados de la unidad de control.

  es un conjunto finito de símbolos distinto del espacio en blanco, denominado alfabeto
de máquina o de entrada.

  es un conjunto finito de símbolos de cinta, denominado alfabeto de cinta ( ).


  es el estado inicial que inicialmente esta en la unidad de control.

  es un símbolo denominado blanco, y es el único símbolo que se puede repetir un


número infinito de veces, inicialmente es lo que contiene la cinta excepto aquelloas
casillas con los simbolos de entrada.

  es el conjunto de estados finales de aceptación.

  es una función parcial denominada función de


transición, donde   es un movimiento a la izquierda y   es el movimiento a la derecha
recibe un estado q y un simbolo de cinta X, su valor si esta definido es (p,Y,D).

Donde p es el siguiente estado de Q, Y es el simbolo que se escribe en la casilla que señale la


cabeza y que sustituye a cualquier simbolo que se encontrara en ella D puede ser R o L indica
la direccion en que la cabeza se mueve izquierda o derecha.

Ejemplo:

una TM que acepta: {0n1n|n ≥ 1}

Nos queda lo siguiente: M = ({q0, q1, q2, q3, q4}, {0, 1}, {0, 1, X, Y, B}, δ, q0, B, {q4})

Con la siguiente tabla de transicion:

Por ejemplo, si le damos la entrada 0011 sigue las siguientes transiciones:

q00011 ⊢ Xq1011 ⊢ X0q111 ⊢ Xq20Y 1 ⊢ q2X0Y 1 ⊢ Xq00Y 1 ⊢ XXq1Y 1 ⊢

XXY q11 ⊢ XXq2Y Y ⊢ Xq2XY Y ⊢ XXq0Y Y ⊢ XXY q3Y ⊢ XXY Y q3B ⊢

XXY Y Bq4B

Mientras que para la cadena 0010, tenemos lo siguiente:

q00010 ⊢ Xq1010 ⊢ X0q110 ⊢ Xq20Y 0 ⊢ q2X0Y 0 ⊢ Xq00Y 0 ⊢ XXq1Y 0 ⊢

XXY q10 ⊢ XXY 0q1B.


Ejemplo: Diseñar una TM que calcula la funcion llamada monus o substraccion propia, que se
define como: m•− n = max(m − n, 0).

La siguiente tabla y diagrama de transicion lo definen:

Diagrama de transici´on:

BIBLIOGRAFIA

Teoria de automatas, lenguajes y computación. John E. Hopcroft. Rajeev Motwani. Jeffrey D.


Ullman.

También podría gustarte