Tc2 Yamid Final

29
MOMENTO 2 FABER YAMID ORTIZ CAICEDO CODIGO: 1125183043 GRUPO: 301405 _20 TUTOR: CARLOS ALBERTO AMAYA TARAZONA

description

trabajo momento 2 automatas y lenguajes formales

Transcript of Tc2 Yamid Final

Page 1: Tc2 Yamid Final

MOMENTO 2

FABER YAMID ORTIZ CAICEDO CODIGO: 1125183043

GRUPO: 301405 _20

TUTOR: CARLOS ALBERTO AMAYA TARAZONA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA, UNADCURSO AUTÓMATAS Y LENGUAJES FORMALES

INGENIERIA DE SISTEMASABRIL DE 2015

Page 2: Tc2 Yamid Final

PROBLEMAS A DESARROLLAR

Parte 1: Calcular el autómata mínimo correspondiente al siguiente autómata finito.

1. Enuncie el autómata en notación matemática

M=¿

K={q0 , q1 , q2, q3 , q4 ,q5}

Σ={0,1,2}

F={q0 , q1 , q4 , q5 }

S={q0}

δ= función de transición

Donde la función δ : {q0 , q1 , q2 , q3 , q4 , q5 } x {0,1,2 }→ q0 , → {q0 , q1 , q2 , q3 , q4 , q5 }Viene dada por: δ=( q0 , 0 )=q2 δ=(q0 ,1 )=q2 δ=(q0 ,2 )=ϕ δ=(q0 , )=q1 δ=( q1 ,0 )=q3 δ=(q1 ,1 )=q2 δ=(q1 , 2 )=ϕ δ=( q2 , 0 )=ϕδ=( q2 ,1 )=q2δ=( q2 ,2 )=q5 δ=( q3 , 0 )=ϕδ=( q3 , 1 )=ϕδ=(q3 ,2 )=ϕ δ=(q3, )=q2 δ=( q4 , 0 )=ϕ δ=(q4 ,1 )=q2 δ=( q4 ,2 )=q5

Page 3: Tc2 Yamid Final

δ=( q5 , 0 )=ϕδ=( q5 , 1 )=q3 δ=( q5 , 0 )=q5 En las transiciones δ=( q0 , )=q1 y δ=( q3 , )=q2 es equivalente escribir la letra lambda δ=( q0 , λ )=q1, δ=( q3 , λ )=q2 ; no altera las transiciones.

2. Identifique los componentes del autómata (que tipo de tupla es)

Una máquina de estados finitos M es un quíntuplo (K , Σ, δ , s , F), donde:

K=¿ Identifica el conjunto de estados {q0 , q1 , q2 , q3 , q4 , q5 }Σ=¿ Es el alfabeto de entrada {0,1,2} S∈Q=¿ Estado inicial {q0 } (también es estado final) F⊆Q=¿ Es el conjunto de estados finales {q0 , q1 , q4 , q5 }

δ=:Qx Σ →Q Es la función de transición, que a partir de un estado y un símbolo del alfabeto obtiene un nuevo estado.

Donde la función δ : {q0 , q1 , q2 , q3 , q4 , q5 } x {0,1,2 }→ q0 , → {q0 , q1 , q2 , q3 , q4 , q5 }

En este caso, el estado inicial es q0 y se presentan cuatro (4) estados finales estados finales {q0 , q1 , q4 , q5 }.

3. Identifique la tabla de transición correspondiente

Tabla de transición

Tabla 1. Tabla de transición

δ 0 1 2 λ

→# q0 q2 q2 ϕ q1

# q1 q3 q2 ϕ ϕ

q2 ϕ q2 q5 ϕ

q3 ϕ ϕ q4 q2

# q4 ϕ q2 q5 ϕ

# q5 ϕ q3 q5 ϕ

Page 4: Tc2 Yamid Final

4. Identifique el lenguaje que reconoce y enuncie cinco posibles cadenas válidas que terminen en el estado “halt” y cinco cadenas no válidas

L={w∈ {0,1,2, λ }¿¿El conjunto de las posibles cadenas que puedan empezar por 0 o por 1 y terminen en 2.

Las cadenas que inician en 1 o 0 deben seguir un 1 o 1`s, seguidos de un 2 y terminar en un estado final con un 2 o 2´s. Aunque se puede seguir un 1 y luego terminar en otro estado final con 2.Es decir que la cadena en el orden de 1 o 1`s seguidos de 2 o 2`s serán cadenas válidas.

cinco posibles cadenas válidas

01121112022202121222

5. Encuentre la expresión regular válida.

Los lenguajes aceptados por los autómatas finitos se pueden describir fácilmente por expresiones simples llamadas expresiones regulares.

((1+0+1)1*2+01*2+02(2+11*2))(2+11*2+12(2+11*2))*

6. Encuentre su gramática que sea válida para la función de transición (describa sus componentes y como se escriben matemáticamente). Justifíquela si la convierte a la Izquierda o a la derecha (eso significa que debe hacerla por ambos lados y verificar cual es válida sustentando el por qué). Plásmela en el simulador y recréela. (Debe quedar documentado en el texto el paso a paso que realizan en el simulador).

Definimos o caracterizamos una gramática regular como: Un cuádruplo (V, Σ, R, S) en donde: V = Es el alfabeto de variables (C, E,S,D, B, A) Σ = Es el alfabeto de constantes (0, 1, 2)R = Es el conjunto de reglas, es un subconjunto finito de V x (ΣV U Σ) (C →2 D ) ( E →1C ) ( E → λ ) ( S → λ ) ( D → λ )(C →B ) ( B→ 2 E ) ( S →OB ) ( S →1B ) ( D →1 B )( B→1 B ) ( A →1 B ) ( E →2E ) ( D →2 E ) ( A → λ )( S→ A ) ( A → 0C ) S= Es el símbolo inicial y es un elemento de V (C)

Page 5: Tc2 Yamid Final

Esta gramática, tiene las producciones por la derecha, es decir que es: Lineal por la derecha.- Cuando todas las producciones tienen la forma A → aB o bien A → a

7. Realice el árbol de Derivación de esa gramática

Las GLC tienen la propiedad de que las derivaciones pueden ser representadas en forma arborescente. Las producciones son originadas por la derecha.

8. Identifique si ese árbol o gramática es ambigua o no y plasme las razones de su afirmación.

La gramática para este ejercicio no es ambigua, puesto que cada forma sentencial puede contener únicamente un solo símbolo no terminal, y una gramática regular es ambigua solamente si alguna cadena tiene arboles de derivación con etiquetas distintas en sus nodos interiores.

Sea G una gramática tal que toda producción es de la forma A→aB o bien A→ε, donde A, B son variables y a es terminal. Entonces diremos que G es una gramática regular. El lenguaje generado por un una gramática regular será llamado lenguaje regular.

Page 6: Tc2 Yamid Final

Observemos primero que podemos considerar permitidas, en las gramáticas regulares, las producciones del tipo A→a pues se pueden obtener por composición de las permitidas en la definición. Una observación importante es que cualquier cadena con símbolos terminales y no terminales que se obtiene por derivación a partir del símbolo inicial, tiene a lo sumo una variable y ésta se ubican en el extremo derecho de la cadena. Esto implica que cuando se dice que se usa ciertas producciones para realizar una derivación, no haya ambigüedad en la forma en que hay que aplicarla.

9. Si el árbol de transición es demasiado grande, a su criterio seleccione una regla en la que se detenga por cualquier rama (izquierda o derecha) y plásmelo hasta ahí. (es decir seleccione una cadena válida para este ítem).

El árbol o gramática es generado por la derecha.

Regla seleccionada: ( S →1B ) ( B→ 1B ) ( B→ 2 E ) ( E →1 C ) (C → 2 D ) ( D → λ )

Cadena valida usada: 11212

Page 7: Tc2 Yamid Final

ACTIVIDADES PARA EL EJERCICIO A MINIMIZAR O YA MINIMIZADO

1. Explicar el proceso de Minimización (que estados se suprimen y porque). Realice la tabla de estados distinguibles.

Se llama minimización a la obtención de un autómata con el menor número posible de estados. Una de las mejores cualidades de los AFD es que existen métodos mecánicos para simplificarlos, hasta poder llegar al AFD más sencillo posible para un lenguaje dado. En el caso de los AFD, vamos a entender por simplificación la reducción en el número de estados, pero aceptando el mismo lenguaje que antes de la simplificación. (Tomado del Módulo-Autómatas)

Dos estados son equivalentes, q4 ≈ q5 si al intercambiar uno por otro en cualquier configuración no altera la aceptación o rechazo de toda palabra.

Este automáta tiene dos estados que no son finales, lo que nos induce que puden ser analizados. Y efectivamente así es, los estados q2 y q3 son excluyentes, (ya que ambos cumplen la misma función) y al eliminar uno u otro no altera la aceptación o no de una cadena. Analizamos los estados:

Del estado q2 sale el símbolo 1 y llega al mismo estado q2 Del estado q3 sale el símbolo 1 y llega al estado q2 (esto lo facilita el estado lambda)

Page 8: Tc2 Yamid Final

Del estado q2 sale el símbolo 2 y llega al estado q5 Del estado q3 sale el símbolo 2 y llega al estado q4

Se puede decir, que si q2 ≈ q3, al cambiar q2 por q3 en la configuración, la palabra va a ser aceptada (se acaba en el estado final) si y sólo si de todos modos iba a ser aceptada sin cambiar q2 por q3 (se acaba en el estado final).

Lo mismo se hace con los estados q4 ≈ q5, y los estados q0 ≈ q1.

Si es eliminado el estado inicial, su equivalente pasará a ser un nuevo estado inicial.

Los estados que se suprimen son: q3, q1, y q4; dado que tienen sus respectivos equivalentes (q2, q0 y q5)

En resumen:

Estados distinguibles: q0, q1, q4, q5Estados no distinguibles: q2, q3Estados equivalentes: q0 ≈ q1, q2 ≈ q3, q4 ≈ q5Estados suprimidos: q0, q3, q4

Tabla de estados disntinguibles

q1 (q1,q0)q2 x Xq3 x X (q3,q2)q4 x X x x xq5 x X x x (q4,q5) X

q0 q1 q2 q3 q4 q5

X Estados distinguiblesTabla 2. Tabla de estados disntinguibles

Estados distinguibles, quiere decir que si dos estados son distinguibles, ya no pueden ser equivalentes. La definición es inductiva: Los estados q0 y q2 son distinguibles si son incompatibles (es decir, uno es final y el otro no final). Esta es la base de la inducción.

2. Que transiciones se reemplazan o resultan equivalentes.

Las transiciones que se reemplazan son: δ=(q¿¿2 , 1)=q2 δ=(q¿¿2 ,2)=q5 ¿¿δ=(q¿¿3 , 1)=q2δ=(q¿¿3 ,2)=q5¿¿

Page 9: Tc2 Yamid Final

δ=(q¿¿4 ,1)=q2δ=(q¿¿ 4 ,2)=q5 ¿¿δ=(q¿¿5 , 1)=q2δ=(q¿¿5 , 2)=q5¿¿

δ=( q1 ,0 )=q0 δ=(q1 ,1 )=q3

δ=(q¿¿0 ,0)=q0 δ=(q¿¿0 ,1)=q3¿¿

Al suprimir los estados q0, q3, y q4; en el autómata están presente los estados q1, q2 y q5 respectivamente.

3. Escribir la función de transición del nuevo autómata.

M=(Σ , K , δ ,q0 ,F)Donde;Σ={0,1,2}K={q1 , q2 , q5 }δ= función de transiciónF={q1 ,q5 }S={q1}

δ=( q1 ,0 )=q2 δ=(q1 ,1 )=q2 δ= (q1 , 2 )=Øδ=(q¿¿2 , 0)=Ø δ=(q¿¿2 ,1)=q2 δ=(q2 , 2 )=q5 ¿¿δ=(q¿¿5 , 0)=Ø δ=(q¿¿5 ,1)=q2 δ=(q5 ,2 )=q5 ¿¿

4. Identificar la expresión regular (explicarla en la lectura matemática que se le debe hacer).

ER: (1+0)1*2(2+11*2)*

Notamos que hay dos ciclos, lo que indica que habrán muchos ciclos representados con (*) estrellas de kleene.

De q1 sale un 1 o un 0 a q2, y se presenta un ciclo con 1De q1 a q2 se obtendría (1+0)1*

Hacemos esta segunda parte, desde el estado q2Se inicia un ciclo con 1(una estrella de kleene)De q2 sale un 2 y llega al estado q5 donde hay un ciclo con 2 (22*)Luego de q5 pasa a q2 con 1

Page 10: Tc2 Yamid Final

Pero todo este proceso se repite, se incluye una estrella de kleene mas (*)

Ahora se continúa del estado q2 para llegar a q5. (Proceso igual)1*22*

Así, la ER final es: (1+0)1*(1*22*1)*1*22*5. Compruebe una cadena válida para esa expresión regular.

Cadena válida: 01222

Comprobación Cadena Válida

Tabla3. Comprobación Cadena Válida

Así, la ER es: (1+0)1*(1*22*1)*1*22*

El orden de prioridad de los operadores, de mayor a menor: Estrella de kleene: *Concatenación (.)Unión (+)

Esto puede alterarse mediante paréntesis, de forma análoga a como se hace con las expresiones aritméticas.

La jerarquía de operadores nos induce a iniciar por ya sea por un 1 o por un 0; y finalizar en un 2.

6. Identificar el lenguaje que reconoce y cinco posibles cadenas válidas.

Reconoce el mismo lenguaje que el encontrado en el punto 4 antes de minimizar el autómata.

L={w∈ {0,1,2 }¿¿El conjunto de las posibles cadenas que puedan empezar por 0 o por 1 y terminen en 2.

Las cadenas que inician en 1 o 0 deben seguir un 1 o 1´s, seguidos de un dos, y terminar en un 2 o 2´s.

Cadena Válida

(1+ 0) 1*

(1* 22* 1*) 1* 2 2*

0 1 2 22 OK

Page 11: Tc2 Yamid Final

De este estado final pasa al estado anterior (se regresa) con 1 y hay un ciclo con 1, seguidos de un dos, y terminar en un 2 o 2´s.

cinco posibles cadenas válidas

01221222111212121122

7. Identificar su gramática. Demuéstrela para una cadena válida del autómata.

Gramática generada con la cadena válida: 12122

Regla seleccionada: ( S→1 A ) ( A →2 B ) ( B→ 1 A ) ( A →2 B ) ( B→ λ )

Page 12: Tc2 Yamid Final

8. Compare la gramática con el autómata antes de minimizar (ya sea por la izquierda o derecha).

Gramática antes de minimizar

Page 13: Tc2 Yamid Final

Gramática después de minimizar

La gramática sigue siendo lineal por la derecha después de minimizado el autómata.

Las variables de esta gramática son A, B, S y las constantes 0, 1, 2.

9. El autómatas nuevo expresarlo o graficarlo con su respectivo diagrama de Moore.

10. Identificar sus tablas de Transición (plasmarlas).

11. Plasmar los pasos de minimización en el simulador (compárelos con el proceso manual que está explicando) y capturar los procesos en imágenes para ser documentadas en el texto.

Las flechas que salen son eliminadasLas flechas que llegan son dirijidas a su estado equivalente

Primer paso.

δ 0 1 2

→# q1 q2 q2 ϕ

q2 ϕ q2 q5

# q5 ϕ q2 q5

Page 14: Tc2 Yamid Final

Iniciamos desde el autómata dado, mirando los posibles estados a ser equivalentes

Segundo paso.

Los estados q2 y q3 son equivalentes, por lo tanto podemos eliminar a q3

Tercer paso.

Page 15: Tc2 Yamid Final

Los estados q4 y q5 son equivalentes, por lo tanto podemos eliminar a q4

Los estados q0 y q1 son equivalentes, por lo tanto podemos eliminar a q0

El estado incial pasa a ser q1.

Y finalmente, se obtiene el autómata minimizado. Donde quedan solo tres (3) estados.

Page 16: Tc2 Yamid Final

Autómata Minimizado con el simulador JFLAP

Autómata Minimizado con proceso Manual

Aunque con nombres diferentes los estados, pero es un automata equivalente.Por lo tanto, es válido el proceso, dado que acepta las mismas cadenas.El automáta realizado manualmente realiza las mismas transiciones, que el comparado con el JFLAP.

Page 17: Tc2 Yamid Final

PARTE 2: Diseñe un APD que acepte cadenas de este tipo (con pila vacía): {(abc) (aabcc) (aaabccc) (aaaabcccc) (aabccccc) (abccccc) (aabcccc) (aaaaaabcccccccccc) (aaabccccc) (aaabccccccccccc)}

Cadenas no válidas. {(bcc) (ac) (aabc) (aaaabcc) (aaaccccb) (acb) (aaaaabcc) (aaabcc)} 1. Describa el autómata en notación matemática, y encuentre en primera

instancia una regla que evalúe estas cadenas y que cumpla las condiciones de las mismas.

Un autómata con pila (PDA) es esencialmente un autómata finito que posee control sobre una pila, es decir una lista de la cual solo se puede “leer”, “poner” o“sacar”el primer elemento. Dado el estado actual del autómata y el primer elemento de la pila, un símbolo de input nos llevará (posiblemente en forma no determinística) el estado siguiente y a la modificación que se debe hacer en el primer elemento de la pila.

Diremos que una cadena es aceptada por pila vacía por el PDA si cuando la aplicamos obtenemos una pila vacía. Diremos que una cadena es aceptada por estado final por el PDA si lleva el estado inicial a uno final. Los lenguajes aceptados por los autómatas con pila, tantos los aceptados por pila vacía o por estado final, son los mismos que los aceptados por las gramáticas libres de contexto e incluyen estrictamente a los lenguajes regulares.

apbrcs

donde p es mayor o igual a 1r es igual a 1

s es igual o mayor a p

este APD acepta un numero igual de a´s y de c´s o un número mayor de c´s; y una sola b. En su orden abc.El autómata de pila es un séptuplo (K, Σ, Γ, Δ, s, F) en donde:

K es el conjunto de estados (q0, q1, q2, q3)Σ es el alfabeto de entrada (abc)Γ es el alfabeto de la pila (AZ)s ∈ K es el estado inicial (q0)Z0 ∈ Γ es el símbolo inicial de la pila (Z) (o también se denota como Z simplemente)F ⊆ es el estado final (q3)Δ ⊆ (K x Σ* x Γ) x (K x Γ*) es la relación (función) de transición.

Page 18: Tc2 Yamid Final

2. Grafíquelo en JFLAP y realice el “Traceback” para las transiciones. (Las columnas para un AP son: El estado en que se encuentra el autómata, lo que falta por leer de la palabra de entrada, y el contenido de la pila).

PASO 1: El estado en que se encuentra el autómata q0, lo que falta por leer de la palabra de entrada abc, y el contenido de la pila Z.PASO 2: El estado en que se encuentra el autómata q0, lo que falta por leer de la palabra de entrada bc, y el contenido de la pila AZ.PASO 3: El estado en que se encuentra el autómata q1, lo que falta por leer de la palabra de entrada c, y el contenido de la pila AZ.PASO 4: El estado en que se encuentra el autómata q2, lo que falta por leer de la palabra de entrada (nada), y el contenido de la pila Z.PASO 5: El estado en que se encuentra el autómata q3 (estado final), lo que falta por leer de la palabra de entrada (nada), y el contenido de la pila vacia.

Page 19: Tc2 Yamid Final

Se añaden las cadenas tanto válidas como no válidas dadas en el ejercicio, mostradas en el JFLAP.

Page 20: Tc2 Yamid Final

3. Plasme las imágenes y capturas en el documento. (Documente el proceso)

La cadena valida (abc). Se utiliza la misma cadena utilizada en el traceback.

Para comprobar la validez de esta cadena, se hace clic en la barra de herramientas “Input”, el autómata aún no realiza ningún proceso, y luego la opción de “fast run”.

Luego El autómata no ha recibido sobre que cadena realizar el traceback, debemos digitar la cadena, digitamos abcc y clic en aceptar.

Clic en aceptar (nuevamente)

Page 21: Tc2 Yamid Final

Y se vizualiza el traceback de la cadena seleccionada.

Internamente, el simulador recorre la cadena válida abcc, y deja ver desde el estado que inicia, y los siguientes estados hasta llegar al estado de aceptación. Al igual que los estados en que se encuentra la pila y las cadenas que hacen falta por recorrer para llegar a un estado halt.

4. Muestre el diagrama correspondiente de estados.

ESTADO POR LEER PILAq0q0q1q2q3

abcbcc

ZAZAZZ

Page 22: Tc2 Yamid Final

5. Identifique los contenidos (el recorrido para cada interacción) de la pila y el estado de parada. Realícelo con una cadena válida.

Cadena válida aabcc

El autómata parte del estado inicial q0, falta por leer aabcc y el contenido de la pila es Z.

El autómata se mantiene en el mismo estado inicial q0, falta por leer abcc y el contenido de la pila es AZ.

El autómata se mantiene en el mismo estado inicial q0, falta por leer bcc y el contenido de la pila es AAZ.

Page 23: Tc2 Yamid Final

El autómata se desplaza al estado q1, falta por leer cc y el contenido de la pila es AAZ.

El autómata se desplaza al estado q2, falta por leer c y el contenido de la pila es AZ.

El autómata se mantiene en el estado q2, no falta por leer ninguna letra y el contenido de la pila es Z.

Page 24: Tc2 Yamid Final

El autómata se desplaza del estado q2 al estado q3, no falta por leer ninguna letra y el contenido de la pila es vacia.