Está en la página 1de 5

Autómatas De Pila Deterministas.

La idea general es que una autómata de pila es determinista cuando en


ningún momento pueda darse la situación de tener varias transiciones posibles
ante una situación actual del autómata.

Desde luego lo primero que debe ocurrir es que para cada trio (q,a,Z), δ (q,a,Z)
sea vacío o unitario, es decir |δ(q,a,Z)|≤1. Pero no basta con esto porque si
tuviésemos δ(q,a,Z)=(r,Y) y δ(q,λ,Z)=(s,X) con (r,Y)≠(s,X) entonces si el
autómata se encuentra en estado q, leyendo en cinta a, y en la cima de la pila
se encuentra Z, podría pasar al estado r, procesar la a de la cinta y sustituir en
la cima de la pila la Z por la Y; o bien podría pasar al estado s, no procesar la a
de la entrada y sustituir en la cima de la pila la Z por la X. Es decir seguiría
habiendo no determinismo. De manera que para decir que el autómata sea
determinista debe cumplir además que para cada a∈Σ y para cada Z∈∆, como
máximo uno de los cuatro tríos (q,a,Z),(q,a,λ),(q,λ,Z),(q,λ,λ) tenga imagen no
vacía a través de δ.

Formalmente un AP decimos que es determinista si:

i)∀( ) {} q,a,Z ∈Q × ( ) Σ ∪ λ × (∆ ∪{λ}) se tiene δ(q,a,z ≤ 1)

ii) ∀a ∈ Σ,Z ∈ ∆ , como máximo uno de los cuatro tríos


( q,a,Z) ,(q,λ,Z ),(q,a,λ),(q,λ,λ)

tiene imagen no vacía a través de δ.

Ejemplos:

Es no determinista porque si se encuentra en estado q y en la cima de la pila se


encuentra el símbolo A tiene dos opciones extraerlo e insertar 'xAy' en la pila o
extraerlo e insertar 'xy', es decir δ ( ) q,λ, A = {(q, xAy),(q, x)}
Máquinas de Turing de 3 estados de movimiento
- Son máquinas de Turing programables que pueden simular a cualquier otra
máquina

de Turing.

• Programa: máquina de Turing simulada codificada + cinta de entrada (con un


1 al principio y un 1 al final).

- Constan de 3 cintas:

• 1ª cinta: programa + cadena de entrada.

* Contendrá la salida de la máquina.

• 2ª cinta: área de trabajo (manipulación de datos).

• 3ª cinta: estado actual de la máquina simulada.

- La máquina universal:

• Copia la cadena de entrada de la cinta 1 a la cinta 2.

• Graba el código del estado inicial en la cinta 3.

• Busca una transición aplicable en la máquina codificada de la cinta 1. Cuando


la encuentra:

* Realiza la transición en la cinta 2.

* Escribe el nuevo estado en la cinta 3.

• La máquina universal continúa con este proceso hasta que llega al estado de
parada de la máquina simulada. Entonces copia la cinta 2 en la cinta 1, coloca
la cabeza de la cinta 1 donde se encontraba la de la cinta 2 y se detiene.
Máquina Turing Multicintas

Una MT con más de una cinta consiste de un control finito


con k cabezales lectores/escritores yk cintas. Cada cinta es infinita en ambos
sentidos. La MT define su movimiento dependiendo del símbolo que está
leyendo cada uno de sus cabezales, da reglas de sustitución para cada uno de
los símbolos y dirección de movimiento para cada uno de los cabezales.
Inicialmente la MT empieza con la entrada en la primera cinta y el resto de las
cintas en blanco.

Diagrama de una máquina


de Turing multicinta, las
flechas indican los cabezales
de lectura/escritura.

Es como una máquina ordinaria con muchas cintas. Cada cinta tiene su propia
cabeza de la cinta. Inicialmente la cadena de entrada se encuentra en la cinta 1
y las otras cintas están en blanco. La función de transición se modifica para
permitir la lectura, escritura y movimiento de todas las cintas simultáneamente.
Formalmente, se define como:

δ: Q x Γk → Q x Γk x { L, R }k,

donde k es el número de cintas. La expresión

δ(qi, a1, …, ak) = (qj, b1, …, bk, L, R, …, L)

Significa que, si la máquina se encuentra en el estado qi y las cabezas 1 a la k


están leyendo los símbolos a1 hasta ak, la máquina va al estado qj, escribe los
símbolos b1 hasta bk y mueve cada cabeza a la izquierda o derecha según se
especifica.

Pareciera que las máquinas de Turing multicinta son más poderosas que las
máquinas de Turing ordinarias, pero podemos mostrar que son equivalentes.
Recordemos que dos máquinas son equivalentes si reconocen el mismo
lenguaje.

Teorema de equivalencia entre máquinas de Turing ordinarias y máquinas de


Turing multicinta

Cada máquina de Turing multicinta tiene una máquina de Turing ordinaria


equivalente.
Demostración

Mostramos como convertir una MT multicinta M a una MT S con una sola cinta.
La idea principal es mostrar como simular M con S.

Digamos que M tiene k cintas. Entonces S simula el efecto de k cintas


almacenando la información de las cintas en su cinta sencilla. S utiliza el
símbolo # para delimitar el contenido de las cintas. Además del contenido de
cada cinta, S debe almacenar la posición de las cabezas. Esto se hace
marcando el símbolo donde está colocada la cabeza en cada cinta. En la figura
se ilustra como puede usarse una cinta para representar tres cintas.

S = “Sobre la cadena de entrada w = w1 … wn

1. S coloca su cinta en el formato que representa las k cintas de M. La cinta


con el formato contiene
# w1 w2 … wn # Џ # Џ # … #

2. Para simular un movimiento, S barre su cinta desde el primero hasta el


último símbolo # para determinar los símbolos bajo las cabezas virtuales.
Después S hace un segundo barrido para actualizar las cintas de acuerdo a
como dicta la función de transición de M.

3. Si en algún punto S mueve una de las cabezas virtuales a la derecha sobre


un símbolo #, esta acción significa que M ha movido la cabeza correspondiente
sobre la porción de cinta aún no leida (con símbolos blancos). De tal forma que
S escribe un símbolo blanco en su cinta y recorre una posición todos los
símbolos desde ahí hasta el símbolo # más a la derecha. Después continua la
simulación como antes.”
Ejemplo

Sea una MT de dos cintas, que reconoce el lenguaje L={a^i b^i c^i:i≥0}

Se coloca la cadena de entrada en la primera cinta, la idea es copiar en la


segunda cinta una X por cada “a” y cuando encuentre la primera “b”, se detiene
en la primera cinta, luego se avanza a la derecha en la primera cinta y se
avanza a la izquierda en la segunda cinta, cuando encuentra la primera “c” las
dos cintas avanzan hacia la derecha.

La función de transición es la siguiente, sea T = {q3}.

δ(q0, (a,B)) = (q0, (a,X), (D,D))

δ(q0, (b,B)) = (q1, (b,B), (N,D))

δ(q1, (b,B)) = (q1, (b,X), (D, I))

δ(q1, (c,B)) = (q2, (c,B), (N,D))

δ(q2, (c,X)) = (q2, (c,X), (D,D))

δ(q2, (B,B)) = (q3, (B,B), (D,D))

Se muestra el funcionamiento de la MT multicinta, con la cadena de entrada w


= abc.

Se finaliza en el estado q3, definido como estado de aceptación.

También podría gustarte