AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y...

34
DIAPOSITIVAS AUTÓMATAS CON TRANSICIONES ÉPSILON (EJERCICIOS) UNIDAD DE APRENDIZAJE: AUTÓMATAS Y LENGUAJES FORMALES PROGRAMA EDUCATIVO: INGENIERÍA EN COMPUTACIÓN ESPACIO ACADÉMICO: FACULTAD DE INGENIERÍA UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO ELABORÓ: LILIA OJEDA TOCHE FECHA de ELABORACIÓN: Julio-Septiembre 2017

Transcript of AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y...

Page 1: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

DIAPOSITIVAS

AUTÓMATAS CON TRANSICIONES ÉPSILON(EJERCICIOS)

UNIDAD DE APRENDIZAJE: AUTÓMATAS Y LENGUAJES FORMALES

PROGRAMA EDUCATIVO: INGENIERÍA EN COMPUTACIÓN

ESPACIO ACADÉMICO: FACULTAD DE INGENIERÍA

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

ELABORÓ: LILIA OJEDA TOCHE

FECHA de ELABORACIÓN: Julio-Septiembre 2017

Page 2: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Guión Explicativo

¨ El presente juego de diapositivas tiene como finalidad apoyar al profesor de la Unidad de aprendizaje de AUTÓMATAS Y LENGUAJES FORMALES del Plan de estudios de la Licenciatura de Ingeniería en Computación, específicamente en la Unidad de Competencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación.

¨ Se recomienda que este material se utilice para revisar algunos ejercicios de autómatas finitos no deterministas con transiciones épsilon en clase, y otros puedan asignarse o revisarse por los mismos alumnos como trabajo extraclase.

Page 3: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Guión Explicativo

¨ En la parte introductoria se mencionan algunosconceptos básicos de la teoría de autómatas,incluyendo la definición de autómata finito contransiciones épsilon.

¨ Cabe señalar que entre las características propiasde este material se encuentran:¤ Se han seleccionado los ejercicios de manera que se

presentan de menor a mayor complejidad.¤ Se plantea un ejercicio y enseguida se resuelve.¤ Se presentan las soluciones de todos los ejercicios

planteados.

Page 4: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

AUTÓMATAS FINITOS NO DETERMINISTAS CON

TRANSICIONES ÉPSILON

EJERCICIOS

Page 5: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Introducción

Definiciones BásicasA continuación se presentan algunos conceptosbásicos necesarios para la comprensión de losejercicios que se presentan en las seccionessubsecuentes.Símbolo es un signo que representa algoabstracto. En este material, símbolo se referirá aun caracter alfanumérico.Ejemplosa, b, 1, 0, x, y, z, 9,

Page 6: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Introducción

Alfabeto es un conjunto de símbolos y normalmente sedenota con la letra Σ. EjemplosΣ = {a,b,c,…z} Σ = {1,2,3,…9} Σ = {0,1} Σ = {a,b}Cadena o palabra es un conjunto de símbolos de algúnalfabeto Σ concatenados entre sí, es decir uno enseguida delotro.EjemplosPara el alfabeto Σ = {a,b,c,…z} algunas cadenas son:

ab, z, cc, abc, ababPara el alfabeto Σ = {0,1} algunas cadenas son:

0, 1, 01, 000, 0101

Page 7: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Introducción

Cadena Vacía ε (épsilon), es la cadena que nocontiene ningún símbolo.

Lenguaje es un conjunto de cadenas o palabrasdefinido en un alfabeto Σ.EjemplosSi Σ = {0,1} podríamos definir los lenguajes“conjunto de cadenas en Σ que terminan en 0”algunos de las palabras del lenguajes serían: 0,10,00,010,100, 110…

Page 8: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Introducción

1

0

A B CB

D 0,1

0,1

Autómata es una máquina matemática M formadapor 5 elementos M = (Σ, Q, s, F, δ) donde Σ es unalfabeto de entrada, Q es un conjunto finito deestados, s es el estado inicial, F es un conjunto deestados finales o de aceptación y δ (delta) es unarelación de transición.Ejemplo:Σ ={0,1} s = AQ= {A,B,D} F = {B}δ: (A,0) = B (A,1) = D (B,0) = B

(B,1) = B (D,0) = D (D,1) = D

Page 9: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Introducción

Autómata Finito No determinista contransiciones épsilon (AFND-ε) es un autómatafinito no determinista en donde se permitentransiciones que no contengan ningún símbolo dela entrada. Es decir, se puede pasar de un estadoa otro sin consumir ningún símbolo de la entrada.

A continuación se muestran varios ejercicios sobreeste tipo de autómatas.

Page 10: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 1

0

1

0,1

q0 q2q10

ε

0,1

q20

ε q1

q3q4

SOLUCIÓN

Ejercicio: Construya un AFND-ε para el lenguaje en ∑ = {0,1} cuyas cadenas empiezan con “0” o terminan en “1”.

Page 11: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 2

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas queinician en la sub-cadena “ac” o terminan en la sub-cadena “ab”.

a c

b

a,b,c

q0 q2q10

q3

q4q5 q6a,b,c

a

ε

ε q1

Page 12: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 3

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “01” o terminan en “0”.

0

0,1

q0 q30

q10

ε

0,1q3

0

1q2

q4

εq1 q3

Page 13: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 4

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {a,b}. El conjunto de cadenas queinician en “b” o terminan en “bba”.

b

a,b

q0

q30

q10

q2

ε

b

a,b

q3

ab

q4 q5 q6

q1ε

Page 14: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 5

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas queinician en la sub-cadena “ac” y terminan en la sub-cadena “ab”.

aεc b

a,b,c

q0 q30

q1 q2q30

q5a aq3 q4

Page 15: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 6

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “0” y terminan en “1”.

01

0,1

q0q30q1 q20

ε

q3q2

Page 16: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 7

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “01” y terminan en “0”.

0 ε

0,1

q0q30q1 q2

0

01

q2 q4q3

Page 17: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 8

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguaje definido en el alfabeto Σ= {a,b}. El conjunto de cadenas que inician en “b” y terminan en “bba”.

b

a,b

q0 q1 q20

bq4

q2b

q3 q5

Page 18: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 9

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas queinician en la sub-cadena “ac” o no terminan en la sub-cadena“ab”.

a

c

c

b

a

a,b,c

q0 q2 q3

q4q5 q6

b,c

ε

a

b,c

ε

q1

Page 19: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 10

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “0” o no terminan en “1”.

0

0

q0 q30

q10q20

ε 0,1

q4

0,1

q2

q20

εq1

q3

Page 20: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 11

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “01” o no terminan en “0”.

0

0,1

q0 q30

q1 q20

ε

1q4

1

0,1

q3

q5

q2ε

Page 21: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 12

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {a,b}. El conjunto de cadenas queinician en “b o no terminan en “bba”.

b

a

a,b

q0

q30

q1

ε

b

a

q3

b

abq4

b

q5

a

q6

q2ε

Page 22: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 13

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas queinician en la sub-cadena “ac” y no terminan en la sub-cadena“ab”.

a

c

c b

b,c

q0 q30

q1 q2 q4 q5

a

a

b,c

a

εq3

Page 23: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 14

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “0” y no terminan en “1”.

00

0,1

q0 q1 q2ε

q3

Page 24: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 15

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas queinician en “01” y no terminan en “0”.

0

0,1

q0q30

q1 q20

11 ε

q2q30

q4q3

Page 25: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 16

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {a,b}. El conjunto de cadenas queinician en “b” y no terminan en “bba”.

b

a

q0

q30

ε

q30

b

ab

q5

b

q3

a

q4

q1

q2

b

a

Page 26: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 17

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas que noinician en la sub-cadena “ac” o no terminan en la sub-cadena “ab”.

a

c

ε

b

a,b

b,c

q1 q3

q4

q2

q5 q6

a,b,c

a

a

b,c

b,c

a

q10 ε

q0

Page 27: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 18

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas que noinician en “0” o no terminan en “1”.

ε 1

0,1

q0 q30

q10

q2

ε

0

0,1

q3

q20

q1

q4

Page 28: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 19

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas que noinician en “01” o no terminan en “0”.

ε 0q0 q3

0q1 q2

01

1

0,1q3

0

0,1

q2 q30

ε

q4 q5

Page 29: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 20

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {a,b}. El conjunto de cadenas que noinician en “b” o no terminan en “bba”.

εq0

q30

q20

ε

a,b

a q2

q30

q1

q50

b

a

q3

q30

q4 q20

b

abq5

q30

b

a

q6

q7

a

b

Page 30: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 21

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ={a,b,c}. El conjunto de cadenas que noinician en la sub-cadena “ac” y no terminan en la sub-cadena“ab”.

a

c

ε

b

a,b

b,c

q3

q2

q4 q5

a

a

b,c

b,c

a

q1q0

Page 31: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 22

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas que noinician en “0” y no terminan en “1”.

0εq0 q3

0q11 q2

0,1

q3

Page 32: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 23

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {0,1}. El conjunto de cadenas que noinician en “01” y no terminan en “0”.

ε

0q0 q3

0q1 q2

01

1

q3

0

0,1

q2 q30

ε

q4q5

Page 33: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Ejercicio 24

SOLUCIÓN

Ejercicio: Obtenga un AFND-ε dado el siguiente lenguajedefinido en el alfabeto Σ= {a,b}. El conjunto de cadenas que noinician en “b” y no terminan en “bba”.

ε

q0

q30

q20

a

aq1

q30

q50

b

a

q2

q30

q3 q20

b

abq4

q30

b

a

q5

q6

a

b

Page 34: AyLF Autómatas con transiciones épsilonCompetencia II: Manejar la teoría de autómatas finitos y sus relaciones entre sí y con los lenguajes de programación. ¨ Se recomienda

Referencias

¨ Bibliográficas

¨ Dean K. (1995). “Teoría de Autómatas y Lenguajes Formales”. Edit. Prentice Hall,España.

¨ Hopcroft J. E., Ullman J.D. (2007). “Introducción a la teoría de autómatas, lenguajesy computación”. 3ª ed. Edit. Pearson Educación, Madrid.

¨ Linz P. (2001) "An Introduction to Formal Languages and Automata", 3rd Edition,J.A. Bartlett.

¨ Martin J. (2004). “Lenguajes Formales y Teoría de la computación”. 3ª ed. Edit.MacGraw-Hill Interamericana de México.