Sei sulla pagina 1di 12

LOS AUTÓMATAS DE PILA Y LAS MÁQUINAS DE TURING

ROBERTH ARRIETA CONTRERAS

DIEGO ALEXANDER MARTINEZ LOPEZ

ANDRES LOPEZ RIVERA

UNIVERSIDAD DE CARTAGENA – SEDE MONTECARLOS

INGENIERIA DE SOFWARE

TEORIA DE AUTOMATAS Y LENGUAJES FORMALES

03/07/2019

MAGANGUÉ - BOLÍVAR
AUTÓMATAS DE PILA

Antes de empezar hablar de los autómatas de pila debemos conocer primero qué es un

autómata de conteo, Autómata finito determinista con un contador de enteros o “bolsa”

en la que se colocan o extraen cuentas o “piedras” en respuesta a un símbolo de entrada.

En otras palabras, en cada transición el autómata no sólo selecciona un nuevo estado,

sino que también decide, independientemente del estado de la bolsa, si añade otra

cuenta a la bolsa o saca una cuenta de la bolsa o la deja igual. La bolsa inicia con una

cuenta y el autómata continúa operando mientras haya símbolos de entrada y la bolsa no

esté vacía. Si se consumen todos los símbolos de la palabra de entrada al mismo tiempo

que se vacía la bolsa, entonces se acepta la palabra.

Desafortunadamente los autómatas de conteo no son suficientemente poderosos para

reconocer todos los LLC. En ocasiones se requiere más de un tipo de cuenta o “roca” o

en lugar de una “bolsa”. Se utiliza un stack o pila LIFO (Last In First Out) en el cual el

orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo

por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de

piedra u objeto que se encuentra arriba en la pila. a b a b b a q0 q1 q2 q4 q3 qi qn Cinta

de entrada Cabeza lectora Control α β Pila.

Un autómata de pila (pushdown autómata) es una sexteta (K, Σ, Γ, δ, s0, F) donde: – K

es un conjunto no vacío de estados. Σ es el alfabeto de entrada, no vacío. Γ es el alfabeto

de la pila, no vacío. – s0 ∈ K es el estado inicial. – F ⊂ K es el conjunto de estados

finales. δ ⊂ (K × (Σ ∪ {λ}) × (Γ ∪ {λ})) × (K × Γ* ) es la relación de transición. (p, u, β)

× (q, γ) ∈ δ significa que el autómata está en el estado p, lee el símbolo u, saca β de la

pila, pasa al estado q e introduce γ a la pila. La operación “push” (sólo meter a la pila)
se logra tomando β como la palabra vacía. La operación “pop” (sólo sacar de la pila) se

logra tomando γ como la palabra vacía. Ya que δ es una relación y no necesariamente

una función, un autómata de pila es no determinista. • Una palabra es aceptada por un

AP si al “procesarla” completamente, se llega a un estado final y la pila queda vacía.

La representación gráfica de un autómata de pila ((p, u, β), (q, γ)), δ(p, u, β) = (q, γ), se

representa gráficamente por y significa que cuando estamos en el estado p, leemos de la

palabra de entrada el símbolo u y sacamos del stack el símbolo β, entonces pasamos al

estado q y ponemos en la pila la cadena γ. p q u, β / γ.

CARACTERÍSTICAS

Dentro de las características de un autómata de pila destacamos las siguientes.

 Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los

autómatas finitos.

 Un autómata de pila cuenta con una cinta de entrada y un mecanismo de

control que puede encontrarse en uno de entre un número finito de

estados.

 A diferencia de los autómatas finitos, los autómatas de pila cuentan con

una memoria auxiliar llamada pila.

 Las transiciones entre los estados que ejecutan los autómatas de pila

dependen de los símbolos de entrada y de los símbolos de la pila.


APLICACIONES

Dentro de las aplicaciones de los autómatas de pila tenemos que algunas de las

principales son las siguientes.

 Se pueden utilizar para analizar cadenas.

 Se puede construir analizadores LR para reconocer prácticamente todos los

lenguajes de programación para los que se pueden construir GIC.

 Es el método de análisis por desplazamiento y reducción sin retroceso más

general.

 Las clases de gramáticas que pueden analizarse es un súper conjunto de la

clase de gramáticas que se pueden analizar con analizadores sintácticos

predictivos.

 Puede detectar un error sintáctico tan pronto como sea posible hacerlo en un

examen de izquierda a derecha de la entrada.


MAQUINAS DE TURING

La máquina de Turing nos proporciona muchas de las características comúnmente

asociadas con una computadora moderna. De hecho, la máquina de Turing fue el

modelo utilizado para diseñar y construir la primera computadora de programa

almacenado. Esta máquina utiliza una secuencia de operaciones elementales para

acceder y alterar una posición de memoria. A diferencia de una computadora, una

máquina de Turing no tiene un límite de memoria o de tiempo para realizar un cálculo.

Por último, la máquina de Turing representa lo máximo dentro de los dispositivos de

computación abstractos.

Definición de Máquina de Turing.

Una máquina de Turing es una máquina de estado finito en donde en una transición se

escribe un símbolo en la cinta (tape). La cabeza de la cinta puede moverse en cualquier

dirección, permitiendo que la máquina lea y manipule la entrada tantas veces como se

desee.

Mas formalmente, una máquina de Turing es un quíntuple M = (Q, S, G, d, q0) donde Q

es un conjunto finito de estados, G es un conjunto finito llamado el alfabeto de la cinta y

contiene un símbolo especial B que representa un blanco, S es un subconjunto de S –

{B} llamado el alfabeto de entrada, d es una función parcial de Q x G a Q x G x {L,R}

llamado la función de transición y q0 (miembro de Q) es un estado distinguido llamado

estado inicial.
Funcionamiento de la máquina de Turing.

La cinta de una máquina de Turing se extiende indefinidamente en una dirección. Las

posiciones de la cinta están numeradas por los números naturales siendo la posición más

a la izquierda la número cero.

Una computación comienza con la máquina en estado 𝑞0 y la cabeza de la cinta leyendo

la posición más a la izquierda. La entrada, una cadena de ∑∗ se escribe en la cinta

comenzando en posición uno. Posición cero y el resto de la cinta es asumido que están

iniciadas con blancos.

El alfabeto de la cinta proporciona símbolos adicionales que pueden ser usados durante

la computación.

Una transición consiste de tres acciones: cambiar el estado, escribir un símbolo en el

cuadro leído por la cabeza de la cinta y mover la cabeza de la cinta. La dirección del

movimiento de la cabeza de la cinta puede ser a la izquierda (L) o a la derecha (R). La

configuración de la máquina
y transición d (𝑞𝑖 ,x) = [𝑞𝑗 ,y,L] se combinan para producir la nueva configuración

La transición cambió el estado de 𝑞𝑖 a 𝑞𝑗 , reemplazó el símbolo x con y y movió la

cabeza de la cinta un cuadro a la izquierda.

Una máquina de Turing halts (termina) cuando encuentra un estado (par de símbolos)

para los cuales no existe definida una transición. Esto es una terminación normal. Una

transición de la posición cero en la cinta puede especificar un movimiento a la izquierda

de los límites de la cinta. Cuando esto ocurre, la computación se dice termina

anormalmente.

Máquina de Turing Standard

Son diseñadas para ejecutar computaciones en cadenas del alfabeto de entrada. Una

computación comienza con la cabeza de la cinta leyendo el cuadro más a la izquierda y


la cadena de entrada posición uno. Todos los cuadros a la derecha de la cadena de

entrada es asumido están en blanco.

Ejemplo: La función de transición de una máquina de Turing standard con alfabeto de

entrad {a, b} es mostrada a continuación. La transición del estado 𝑞0 mueve la cabeza

de la cinta a posición uno para leer la entrada. Las transiciones en estado 𝑞1 leen la

cadena de entrada e intercambian los símbolos a y b. Las transiciones en 𝑞2 retornan la

máquina a la posición inicial.

Una máquina de Turing puede representarse gráficamente por un diagrama de estados.

Ejemplo (tabla anterior): Intercambia a’s y b’s en la cadena de entrada.

Ejemplo: La siguiente Máquina de Turing con alfabeto de entrada {a, b} produce una

copia de la cadena de entrada. Esto quiere decir que una computación que comienza con

la cinta teniendo la forma BuB termina con la cinta BuBuB.


APLICACIONES:

Según Jhon E. Hopcroft et all (2006), la Máquina de Turing puede ser aplicada de

Diferentes maneras, como por ejemplo:

Teoría de la Computación

Es una rama de las matemáticas y de las ciencias de la computación que centra su

interés en las limitaciones y capacidades fundamentales de las computadoras.

Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de

hacer un cómputo y la clasificación de problemas de acuerdo a su grado de

complejidad.

Alan Turing demostró con su Máquina que existen problemas imposibles de ser

resueltos algorítmicamente, siendo el Problema de la Parada el más importante. Para

estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no

importando la cantidad de tiempo o memoria se disponga en una computadora.

Asimismo, con la llegada de las computadoras modernas se constató que algunos


problemas resolubles en teoría eran imposibles en la práctica, puesto que dichas

soluciones necesitaban cantidades irrealistas de tiempo o memoria para poderse

encontrar.

Problema De La Parada

El problema de la parada o problema de la detención para máquinas de Turing consiste

en: dada una MT M y una palabra w, determinar si M terminará en un número finito de

pasos cuando se ejecuta usando w como entrada.

Alan Turing demostró que este problema es indecidible, ninguna máquina de Turing lo

puede resolver.

Maquinas Oráculo

La máquina con oráculo, es una Máquina de Turing equipada con un oráculo que es

capaz de contestar preguntas sobre la pertenencia a un conjunto específico de números

naturales.

Una máquina oráculo con el "conjunto parada" en su oráculo puede computar la función

del problema de la parada. Mientras este sería un ejemplo trivial del uso del conjunto

oráculo, muchas otras funciones de interés pueden ser computadas utilizando el oráculo

de la función de la parada. De hecho, esto permite que todas las funciones

recursivamente enumerables sean computables.

Máquinas de Turing como generadoras de Lenguajes

Si pueden reconocer lenguajes, también son capaces de generarlos


Hipótesis de Church-Turing

“Cualquier computación que pueda ser realizada por medios mecánicos puede ser

realizada por una Máquina de Turing.”

No es una afirmación que pueda ser probada, sino más bien una definición o explicación

del concepto de algoritmo. Parece ser una definición adecuada:

Otros formalismos propuestos de dicho concepto (funciones recursivas, sistemas de

Prost, sistemas de reescritura, etc.) no son más expresivos que las Maquinas de Turing.

Nadie ha sugerido ningún problema que pueda ser resuelto por lo que intuitivamente se

considera un algoritmo, y que no pueda ser implementado en una Máquina de Turing.


Bibliografía

http://www.revistasbolivianas.org.bo/pdf/riei/v8n1/v8n1_a04.pdf

https://slideplayer.es/slide/22498/

Potrebbero piacerti anche