Trabajo Colaborativo 1 Automatas Preliminar

26
TRABAJO COLABORATIVO 1 CURSO AUTOMATAS Y LENGUAJES FORMALES ELABORADO POR: OSCAR AUGUSTO MESA LONDOÑO CC # 15328532 GUSTAVO ADOLFO MADRIGAL CC# 15.325.544 HUGO HERNANDO MEJIA BARAJAS CC# 13.928.726 GRUPO 301405_8 TUTOR: JAIRO RIANO UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

Transcript of Trabajo Colaborativo 1 Automatas Preliminar

Page 1: Trabajo Colaborativo 1 Automatas Preliminar

TRABAJO COLABORATIVO 1

CURSO

AUTOMATAS Y LENGUAJES FORMALES

ELABORADO POR:

OSCAR AUGUSTO MESA LONDOÑOCC # 15328532

GUSTAVO ADOLFO MADRIGALCC# 15.325.544

HUGO HERNANDO MEJIA BARAJASCC# 13.928.726

GRUPO

301405_8

TUTOR:

JAIRO RIANO

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIAUNAD

2010

Page 2: Trabajo Colaborativo 1 Automatas Preliminar

INTRODUCCION

A través del estudio y de la investigación podemos decir que los temas de

autómatas, computabilidad e incluso complejidad algorítmica, han venido

incorporandose de manera fuerte en el medio de la computación siendo este

muy importante en el desarrollo de todos los campos de la sociedad.

En este tema analizaremos los tipos de autómata finitos, las expresiones

regulares y las propiedades de los lenguajes regulares, veremos cada uno de

los elementos y restricciones de estos y en que consiste cada uno de ellos.

Los autómatas y lenguajes formales, son muy importantes en nuestra

formación profesional, para estudiar, analizar y profundizar los conceptos

fundamentales de la teoría del diseño y manejo de variables en los autómatas.

Vamos a tratar de afianzar algunos conocimientos sobre los temas de

autómatas y lenguajes formales tales como lenguajes regulares formulando el

desarrollo de una serie de ejercicios.

Page 3: Trabajo Colaborativo 1 Automatas Preliminar

OBJETIVOS

Reconocer los leguajes regulares, automatas finitos y su aplicación.

Adquirir habilidades necesarias para desarrollar automatas y maquinas

que reconozcan languates o computen funciones.

Adquirir los conceptos básicos de la teoría de los lenguajes formales y la relación que existe con la teoría de autómatas.

Aumentar las relaciones sociales, humanas y particulares de cada uno de los integrantes de este curso a través de la interacción o participación para el desarrollo de esta actividad donde se comparten conocimientos, experiencias personales y valores.

Page 4: Trabajo Colaborativo 1 Automatas Preliminar

1. Obtener el lenguaje reconocido por el siguiente AFD:

A = ({q0, q1, q2, q3, q4}, {a, b, c}, f, q0, {q2})

f(q0, a) = q1 f(q0, b) = q4 f(q0, c) = q4f(q1, a) = q4 f(q1, b) = q1 f(q1, c) = q2f(q2, a) = q4 f(q2, b) = q4 f(q2, c) = q2f(q3, a) = q4 f(q3, b) = q3 f(q3, c) = q2f(q4, a) = q4 f(q4, b) = q4 f(q4, c) = q4

SOLUCION

Desarrollamos por medio de la tabla de transiciones del AFD, y esta arroja los siguientes resultados:

F a b c→ q₀ q₁ q₄ q₄q₁ q₄ q₁ q₂

# q₂ q₄ q₄ q₂

q₃ q₄ q₃ q₂

q₄ q₄ q4 q₄

Al realizar el diagrama con los datos consignados en la tabla de transiciones, obtenemos el siguiente resultado

b a, b, c

q0

q1 q4

q3

a

a

aa

b

, bc

c

,c

c

bq2

Page 5: Trabajo Colaborativo 1 Automatas Preliminar

Entrada q0 Estado inicialf (función de transición)

Lenguaje reconocido por AFD:

ba*b*c*

ca*b*c*

ab*aa*b*c*

ab*cc*aa*b*c*

ab*cc*ba*b*c

2. Determinar el lenguaje que reconoce el siguiente AFD:

Tabla de transiciones

f 1 2 3→ q₀ q1 q1 q2q2* q3 q3 q3q3 q3 q3 q3

lenguaje construido en AFD.

f(q1, 1) = q1 f(q2, 1) = q3 f(q3, 1) = q3f(q1, 2) = q1 f(q2, 2) = q3 f(q3, 2) = q3f(q1, 3) = q2 f(q2, 3) = q3 f(q3, 3) = q3

A = (q1, q2, q3}, {1, 2, 3}, f, q1, {q2})

El lenguaje que reconoce el autómata es:

1*2*311*2*3*

Page 6: Trabajo Colaborativo 1 Automatas Preliminar

1*2*321*2*3*

1*2*331*2*3*

3. Dado el autómata finito siguiente:

Definir la gramática lineal izquierda que describe el mismo lenguaje reconocido por el autómata.

Q / ∑ 0 1A 0 BB C DC E ED E E

La gramática lineal derecha:

P = {A::= B0 | C1

B::= B0 | B1

C::= C0 | D1

D::= E0| E1

E::= E0 | E1}

La gramática lineal izquierda:

P = {A::=B0 | C1

B::=B0 | B1

C::=C0 | D1

Page 7: Trabajo Colaborativo 1 Automatas Preliminar

D::=E0 | E1

E::=E0 | E1}

4. Decir cuáles de las siguientes palabras son reconocidas por el siguiente

AFND: 110, 01, 100AFND = ({0, 1}, {q0, q1, q2}, q0, {q1})

f(q0, 0) = Ө f(q0, 1) = {q1, q2} f(q0, λ) = Өf(q1, 0) = {q0} f(q1, 1) = {q0, q1} f(q1, λ) = {q0}f(q2, 0) = {q2} f(q2, 1) = Ө f(q2, λ) = {q1}

Verificamos los datos iníciales por medio de la tabla de transiciones

f 0 1 λq0 ө q1,q2 өq1 q0 q0,q1 q0 q2

q2 ө q1

Generamos el gráfico con la información suministrada

Luego de realizar las operaciones, tenemos como resultado que las los estados de aceptación son qo, q1 en λ

Realizamos la verificación de los lenguajes indicados para determinar cuál de ellos corresponde a la operación, por medio de las siguientes tablas:

q0q0

q2q2

q1 q1

0

1

0

1

λ,0,1

λ

Page 8: Trabajo Colaborativo 1 Automatas Preliminar

A. 110

Carácter Estado Proceso- q01 q11 q10 q0 Aceptado

B. 01

Carácter Estado Proceso- q00 Error No aceptado

C. 100

Carácter Estado Proceso- q01 q20 q20 q2λ q1 Aceptado

Las palabras reconocidas para el AFND = ({0, 1}, {q0, q1, q2}, q0, {q1}) son 01 y 100

5. Determinar la pertenencia de las cadenas: aab, aba y ba, al lenguaje reconocido por el siguiente AFND:

A = ({a,b}, {q1,q2,q3,q4}, f, q1, {q1}, {(q2,q4), (q3,q4), (q4,q3)})

f(q1,a) = {q2} f(q1,b) = Өf(q2,a) = {q1,q3,q4} f(q2,b) = {q1,q3}f(q3,a) = Ө f(q3,b) = {q1,q4}f(q4,a) = Ө f(q4,b) = {q3}

Generamos inicialmente las tablas para poder hallar el resultado de la operación

f a bq1 q2 өq2 q1,q3,q4 q1,q3

Page 9: Trabajo Colaborativo 1 Automatas Preliminar

q3

ө q1,q4

q4 ө q3

Luego generamos el grafico

Desarrollamos la tabla para cada una de las cadenas

Cadena aab

Carácter Estado Proceso- q1a q2a q1b error No Aceptado

- q1a q2a q3b q4 Aceptada

- q1a q2a q4b q3 Aceptada

Cadena ba

Carácter Estado Proceso- q1b error No Aceptado

Cadena aba

Carácter Estado Proceso- q1a q2

Page 10: Trabajo Colaborativo 1 Automatas Preliminar

b q1a Error No Aceptado

- q1a q2b q3a Error No Aceptado

6. Obtener para cada uno de los siguientes autómatas finitos su autómata Mínimo Equivalente:

Desarrollo

Autómata A1

la ecuación A1=(K, Σ, f, p1, F)

K={p1,p2,p3,p4,p5,p6,p7,p8}

Σ={0,1}

f=lo indicado en la tabla

F={p4,p8}

Ósea A1=({p1,p2,p3,p4,p5,p6,p7,p8},{0,1}, f, p1, {p4,p8})

tenemos el siguiente diagrama:

Page 11: Trabajo Colaborativo 1 Automatas Preliminar

Aplicando el método de minimización quedaría así:

Algoritmo: encontraremos que debemos:

Eliminar los estados inaccesibles del autómata.

Construir una tabla con todos los pares (p, q) de estados restantes.

Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final, es decir, aquellos pares de estados que son claramente distinguibles.

Para cada par (p, q) y cada símbolo a del alfabeto, tal que r = δ(p,a) y s = δ(q,a):

1. Si (r, s) ya ha sido marcado, entonces p y q también son distinguibles, por lo tanto marcar la entrada (p, q).

2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s).

Agrupar los pares de estados no marcados.

Sigue:

Page 12: Trabajo Colaborativo 1 Automatas Preliminar

- Paso 1, se en rojo los estado p5 y p8, por se estados inaccesibles.- Paso 2 y 3, las tablas se encuentra a continuación:

p2  

p3    

p4      

p6        

p7          

p1 p2 p3 p4 p6

p2  

p3    

p4      

p6        

p7          

p1 p2 p3 p4 p6

- Paso 4 la tabla quedaría asi:

Page 13: Trabajo Colaborativo 1 Automatas Preliminar

p2  

p3    

p4      

p6      

p7          

p1 p2 p3 p4 p6

Continuamos con el paso 5.

- Paso 5, el par (p3,p1), se encuentra encerrados en verde, el cual llamaremos pa y el par (p6,p7), se encuentra encerrado en rojo, el cual llamaremos pb con el método finalizado el Autómata quedaría así:

Page 14: Trabajo Colaborativo 1 Automatas Preliminar

7. Dado el Autómata Finito

(a)Construir el AFD mínimo equivalente

(b)Deducir el lenguaje que reconoce

Tabla de equivalencias:

1 0 λ

p* q - r

Q q r s

r* s - p

s r q -

Escogemos los finales (p* y r*) = C1 y no finales (q, s)= C2

Nueva tabla:

1 0 λ NUEVO

ESTADO

p* C2 - C1 C1

r* C2 - C1 C1

q C2 C1 C2 C2

s C1 C2 - C3

Page 15: Trabajo Colaborativo 1 Automatas Preliminar

Nuevo autómata:

Lenguaje admitido:

a. Todas las palabras que inicien y/o terminen en 1

b. Todas las palabras que terminen en 0

8. Encontrar el autómata mínimo equivalente al siguiente AFD:

Page 16: Trabajo Colaborativo 1 Automatas Preliminar

Se escoge la primera partición separando en dos grupos los terminales

con los no terminales:

Q/E1= (C1, C2) C1= Estados finales, C2= Estados no finales

Q/E1= (C1= [q2, q4, q6, q9], C2= [q0, q1, q3, q5, q7, q8])

Tomamos la clase1 C1:

a b c

Q2* C1 C2 C1

Q4* C2 C1 C1

Q6* C1 C2 C1

Q9* C2 C1 C1

Se observa que q2 y q6, por un lado, y el q4 con el q9, transitan igual.

Tomamos la clase 2 C2:

A B C

Q0 C2 C2 C2

Q1 C2 C1 C2

Page 17: Trabajo Colaborativo 1 Automatas Preliminar

Q3 C2 C1 C2

Q5 C1 C2 C2

Q7 C2 C1 C2

Q8 C2 C2 C2

Q1, Q3, Q7 Transita igual.

Q0 Y Q8 También transitan igual.

Q5 No Transita igual.

Luego se organizan en grupos:

Q/E2= (C1= [q2, q4, q6, q9], C2=[q5]), C3=[q0, q8]), C4=[q1, q3, q7 ])

a b C

Q0 C4 C1 C3

Q8 C4 C4 C3

Se comprueba que q0 y q8 no transitan iguales.

Se prueba con C4

a b C

Q1 C4 C1 C2

Q3 C4 C1 C4

Q7 C4 C1 C4

Q1 No Transita Igual

Page 18: Trabajo Colaborativo 1 Automatas Preliminar

Q3 y Q7 Transitan Igual

9. Construir el autómata finito determinista mínimo equivalente al

siguiente:

Se escoge la primera partición separando en dos grupos los terminales

con los no terminales:

Q/E1= (C1, C2)

C1= Estados finales,

C2= Estados no finales

Q/E1= (C1= [q1, q3, q8], C2= [q0, q2, q4, q5, q6, q7 ])

Tomamos la clase1 C1:

a b c

Q1* C1 C2 C2

Q3* C1 C2 C2

Q8* C1 C2 C2

Se observa que q1, q2, y q3 Transitan igual.

Page 19: Trabajo Colaborativo 1 Automatas Preliminar

Tomamos la clase 2 C2:

A B C

Q0 C1 C2 C2

Q2 C1 C2 C2

Q4 C1 C1 C2

Q5 C1 C2 C2

Q6 C1 C2 C2

Q7 C1 C1 C1

Q0, Q5, Q6 Transita igual

Q4, No Transita igual

Q7, No Transita igual

Luego se organizan en grupos:

Q/E2= (C1= [q1, q3, q8 ], C2=[q7]), C3=[q4]), C4=[q0, q2, q5, q6 ])

A B C

Q0 C1 C4 C4

Q2 C1 C4 C4

Q4 C1 C4 C4

Q5 C1 C4 C4

Q6 C1 C4 C4

Se comprueba que q0, q2, q5, q6, transitan iguales.

Por lo tanto la partición solución quedará:

Q/E= ( C1= [q1, q3, q8 ], C2=[q7]), C3=[q4]), C4=[q0, q2, q5, q6 ])

Page 20: Trabajo Colaborativo 1 Automatas Preliminar

Teniendo en cuenta que los grupos Cx se toman como estados. Los

estados finales e inicial son tenidos en cuenta de acuerdo al grupo que

se encuentre:

Los estados c1, c2, c3, y c4 tienen solución debido a que el inicial c4,

envía a recibe b,c y retorna en si mismo bc.

10.- Encontrar el AFD mínimo equivalente al siguiente AFND:

Al realizar las operaciones indicadas según la referencia1, primero el diagrama de Moore del autómata propuesto quedaría así:1

1 OROZCO, Maribel., (2004). CONVERSION DE UN AFDN A UN AFD (p.p 1 – 24). Minatitlan, Instituto Tecnologico de

Minatitlan (Material de Apoyo).

Page 21: Trabajo Colaborativo 1 Automatas Preliminar

     S'=P(S) Conjunto de todos los subconjuntos de S (recordar que el conjunto potencia se encuentra incluido el conjunto vacío, que será el estado de captación global)      Como tenemos tres estados, el conjunto potencia P(S) = { l, q0,q1,q2,q3,q0-q1,q0-q2,q0-q3,q1-q2,q1-q3,q2-q3,q0-q1-q2,q0-q1-q3,q1-q2-q3,q0-q1-q2-q3}

     i'= {i} (mismo estado inicial)      En nuestro caso seguirá siendo el estado q0.

     F' es la colección de subconjuntos de S (estados de S') que contienen, por lo menos, un estado de F (cada uno de los estados de S' dentro de los cuales hay al menos un estado de aceptación de M).      En nuestro caso serán todos los subconjuntos que tengan el estado q1, ya que este es el único estado de aceptación del diagrama original; luego F'= { q1,q0-q1,q1-q2,q1-q3,q0-q1-q2,q0-q1-q3,q1-q2-q3,q0-q1-q2-q3}

En la siguiente grafica se muestra como quedaría el nuevo AFD, y en el circulo rojo se encuentran los estados que se eliminarían de acuerdo a lo explicado según la referencia:

Page 22: Trabajo Colaborativo 1 Automatas Preliminar

CONCLUSIONES

Los Autómatas Finitos más complejos pueden ser minimizados a partir de algoritmos que evalúan el comportamiento de la máquina, desechando los estados innecesarios o inaccesibles, los cuales no influyen en el funcionamiento final del autómata y por ende pueden ser eliminados.

BIBLIOGRAFÍA

http://www.slideshare.net/jbuabud/lenguajes-regulares-y-autmatas-finitos-clase-8