• No se han encontrado resultados

Trabajo Colaborativo 1 Automatas Preliminar

N/A
N/A
Protected

Academic year: 2021

Share "Trabajo Colaborativo 1 Automatas Preliminar"

Copied!
21
0
0

Texto completo

(1)

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

(2)

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.

(3)

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.

(4)

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) = q4 f(q1, a) = q4 f(q1, b) = q1 f(q1, c) = q2 f(q2, a) = q4 f(q2, b) = q4 f(q2, c) = q2 f(q3, a) = q4 f(q3, b) = q3 f(q3, c) = q2 f(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 a a b , b c c ,c c b q 2

(5)

Entrada → q0 Estado inicial f (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 q2

q2* q3 q3 q3

q3 q3 q3 q3

lenguaje construido en AFD.

f(q1, 1) = q1 f(q2, 1) = q3 f(q3, 1) = q3 f(q1, 2) = q1 f(q2, 2) = q3 f(q3, 2) = q3 f(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*

(6)

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 1

A 0 B

B C D

C E E

D 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

(7)

D::=E0 | E1 E::=E0 | E1}

4. Decir cuáles de las siguientes palabras son reconocidas por el siguiente AFND: 110, 01, 100 AFND = ({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 q 2 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: q0 q0 q2 q2 q1 q1 0 1 0 1 λ,0,1 λ

(8)

A. 110

Carácter Estado Proceso

- q0

1 q1

1 q1

0 q0 Aceptado

B. 01

Carácter Estado Proceso

- q0

0 Error No aceptado C. 100

Carácter Estado Proceso

- q0

1 q2

0 q2

0 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 b

q1 q2 ө

(9)

q

3 ө q1,q4

q4 ө q3

Luego generamos el grafico

Desarrollamos la tabla para cada una de las cadenas

Cadena aab

Carácter Estado Proceso

- q1 a q2 a q1 b error No Aceptado - q1 a q2 a q3 b q4 Aceptada - q1 a q2 a q4 b q3 Aceptada • Cadena ba

Carácter Estado Proceso

- q1

b error No Aceptado

Cadena aba

Carácter Estado Proceso

- q1

(10)

b q1 a Error No Aceptado - q1 a q2 b q3 a 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})

(11)

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.

(12)

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

(13)

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

(14)

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

(15)

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:

(16)

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

(17)

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:

(18)

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

(19)

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.

(20)

Al realizar las operaciones indicadas según la referencia1, primero el diagrama

de Moore del autómata propuesto quedaría así:1

• 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}

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

Minatitlan (Material de Apoyo).

(21)

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

Referencias

Documento similar

Es mucho más rápido (para el usuario experto) usar argumentos Ejemplo: ls -l -a Tema 1 Diseño de algoritmos y programas C++ Elementos básicos Identificadores Constantes Variables