Trabajo Colaborativo 1 Automatas Preliminar

Post on 15-Feb-2015

648 views 31 download

Transcript of 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

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.

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.

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

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*

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

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

λ

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

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

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:

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:

- 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:

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í:

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

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:

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

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

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.

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 ])

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).

     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:

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