Máquina de Turing

Anuncio
Máquina de Turing
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.
La máquina de Turing fue descrita por Alan Turing como una «máquina automática» en
1936 en la revista Proceedings of the London Mathematical Society, La máquina de
Turing no está diseñada como una tecnología de computación práctica, sino como un
dispositivo hipotético que representa una máquina de computación. Las máquinas de
Turing ayudan a los científicos a entender los límites del cálculo mecánico.
Turing dio una definición sucinta del experimento en su ensayo de 1948, «Máquinas
inteligentes». Refiriéndose a su publicación de 1936, Turing escribió que la máquina de
Turing, aquí llamada una máquina de computación lógica, consistía en:
...una ilimitada capacidad de memoria obtenida en la forma de una cinta infinita
marcada con cuadrados, en cada uno de los cuales podría imprimirse un
símbolo. En cualquier momento hay un símbolo en la máquina; llamado el
símbolo leído. La máquina puede alterar el símbolo leído y su comportamiento
está en parte determinado por ese símbolo, pero los símbolos en otros lugares de
la cinta no afectan el comportamiento de la máquina. Sin embargo, la cinta se
puede mover hacia adelante y hacia atrás a través de la máquina, siendo esto una
de las operaciones elementales de la máquina. Por lo tanto cualquier símbolo en
la cinta puede tener finalmente una oportunidad.
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.
Funcionamiento
La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que
el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las
operaciones que se pueden realizar en esta máquina se limitan a:

Mover el cabezal lector/escritor hacia la derecha.
Visualización de una máquina de Turing, en la que se ve el cabezal y la cinta que se
lee.

Mover el cabezal lector/escritor hacia la izquierda.
El cómputo se determina a partir de una tabla de estados de la forma:
(Estado, valor) ------ (nuevo estado, nuevo valor, dirección)
Esta tabla toma como parámetros el estado actual de la máquina y el carácter leído
de la cinta, dando la dirección para mover el cabezal, el nuevo estado de la máquina
y el valor a escribir en la cinta.
La memoria es la cinta de la máquina que se divide en espacios de trabajo
denominados celdas, donde se pueden escribir y leer símbolos. Inicialmente todas
las celdas contienen un símbolo especial denominado "blanco". Las instrucciones
que determinan el funcionamiento de la máquina tienen la forma, "si estamos en el
estado x leyendo la posición y, donde hay escrito el símbolo z, entonces este
símbolo debe ser reemplazado por este otro símbolo, y pasar a leer la celda
siguiente, bien a la izquierda o bien a la derecha".
La máquina de Turing puede considerarse como un autómata capaz de
reconocer lenguajes formales. En ese sentido, es capaz de reconocer los lenguajes
recursivamente enumerables, de acuerdo a la jerarquía de Chomsky. Su potencia es,
por tanto, superior a otros tipos de autómatas, como el autómata finito, o
el autómata con pila, o igual a otros modelos con la misma potencia computacional.
Arquitectura Harvard
Arquitectura Harvard.
Originalmente, el término Arquitectura Harvard hacía referencia a las arquitecturas
de computadoras que utilizaban dispositivos de almacenamiento físicamente separados
para las instrucciones y para los datos (en oposición a la Arquitectura de Von
Neumann). El término proviene de la computadora Harvard Mark I, que almacenaba las
instrucciones en cintas perforadas y los datos en interruptores.
Todas las computadoras constan principalmente de dos partes, la CPU que procesa los
datos, y la memoria que guarda los datos. Cuando hablamos de memoria manejamos
dos parámetros, los datos en sí, y el lugar donde se encuentran almacenados (dirección).
Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen
a algo así como "coge los datos de ésta dirección y añádelos a los datos de ésta otra
dirección", sin saber en realidad qué es lo que contienen los datos.
Se puede fabricar memoria mucho más rápida, pero a costa de un precio muy alto. La
solución, por tanto, es proporcionar una pequeña cantidad de memoria muy rápida
conocida con el nombre de memoria caché. Mientras los datos que necesita el
procesador estén en la caché, el rendimiento será mucho mayor que si la caché tiene que
obtener primero los datos de la memoria principal. La optimización de la caché es un
tema muy importante de cara al diseño de computadoras.
La arquitectura Harvard ofrece una solución particular a este problema. Las
instrucciones y los datos se almacenan en cachés separadas para mejorar el rendimiento.
Por otro lado, tiene el inconveniente de tener que dividir la cantidad de caché entre los
dos, por lo que funciona mejor sólo cuando la frecuencia de lectura de instrucciones y
de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs,
o procesador de señal digital, usados habitualmente en productos para procesamiento de
audio y video.
Arquitectura Harvard
La arquitectura Harvard funciona de la siguiente manera
El microcontrolador PIC 16F84 posee arquitectura Harvard, con una memoria de datos
de 8 bits, y una memoria de programa de 14 bits.
Diagrama de bloques del microcontrolador PIC16F84
En la figura anterior vemos la arquitectura interna organizada en bloques
interconectados, en donde se incluye la memoria RAM, la memoria EEPROM, los
puertos de entrada y salida.
COMPARACIONES DE LA MAQUINA DE TURING Y LA
ARQUITECTURA DE HARVARD
Esta máquina de Turing está definida sobre el alfabeto \Sigma=\{a,b,c\}, posee el
conjunto de estados Q=\{q_o,q_1,q_2,q_3,q_4,q_5,q_6\}, con las transiciones que se
pueden ver. Su estado inicial es q_0 y el estado final es q_2, el lenguaje de salida
\Gamma=\{X,Y,Z,B\} siendo B el símbolo denominado "blanco". Esta máquina
reconoce la expresión regular de la forma a^n b^n c^n con n >= 0
Descargar