1. Autómatas finitos y expresiones
regulares
"Tarzan"|(Tarzan)—
http://www.rexegg.com/regex-best-trick.html
Ivan Meza
2. Metodología
1. Leer la descripción del lenguaje: ¡pensar e imaginar!
2. Proponer cadenas triviales y no triviales que estén en el lenguaje
3. Proponer cadenas triviales y no triviales que no estén en el
lenguaje
4. Enumerar opciones: unión
5. Definir patrones por opción: concatenación
6. Incluir repeticiones: cerraduras
7. Probar cadenas, en caso de error: ¡pensar!
3. Con crear una expresión regular para el lenguajeΣ = {a, b}
no hay tres consecutivas aes{w ∈ |Σ
∗
}
5. Cadenas que estén
no hay tres consecutivas aes{w ∈ |Σ
∗
}
a
aa
aab
aabbbbbbbba
aabbbbbbbbaab
bbbbaabbbbbbbbaab
ϵ
6. Cadenas que no estén
no hay tres consecutivas aes{w ∈ |Σ
∗
}
aaa
baaa
bbbbaaa
babaabbaaa
7. Opciones, patrones y
repeticiones
no hay tres consecutivas aes{w ∈ |Σ
∗
}
Una a seguida de bes:
Dos aes seguidas de bes:
Cero aes seguidas de bes:
ab
+
aab
+
b
∗
9. Probar solución
( + a + aab
∗
b
+
b
+
)
∗
✖
✖
✔
✖
✔
✔
✔
a
aa
aab
aabbbbbbbba
aabbbbbbbbaab
bbbbaabbbbbbbbaab
ϵ
( + a + aa (ϵ + a + aa)b
∗
b
+
b
+
)
∗
10. Probar solución (2)
( + a + aa (ϵ + a + aa)b
∗
b
+
b
+
)
∗
✖
✖
✖
✖
aaa
baaa
bbbbaaa
babaabbaaa
11. Con crear una expresión regular para los
lenguajes
Σ = {a, b}
{b}
{ϵ}
{}
{a}
► ▮▮ ◼ 2
120
Individual
12. Con crear una expresión regular para
los lenguajes
Σ = {I, V , X, L, C}
Números romanos del 1 al 10
{I, II, III}
{V , X}
► ▮▮ ◼ 4
240
Individual
13. Con UTF-8 crear una expresión regular para el lenguajeΣ =
De las URLs de páginas cifradas
► ▮▮ ◼ 3
180
Equipo
14. Con crear un autómata para los lenguajesΣ = {a, b}
{b}
{ϵ}
{}
{a}
► ▮▮ ◼ 2
120
Individual
15. Con crear un autómata nito para el lenguajeΣ = {a, b}
{a, aaaaa, aa, b, ba}
► ▮▮ ◼ 4
240
Equipo
16. Con crear una expresión regular para el lenguajeΣ = {a, b}
{a, aaaaa, aa, b, ba}
► ▮▮ ◼ 4
240
Equipo
17. Reto con ER
1. Encontrar el patrón, poner lo que no importa en medio y repetir
2. Identificar opciones
18. Con crear una expresión regular para el lenguajeΣ = {a, b}
el número de bes es divisible entre tres{w ∈ |Σ
∗
}
► ▮▮ ◼ 4
240
Equipo
20. Con crear un autómata nito para el lenguajeΣ = {a, b}
el número de bes es divisible entre tres{w ∈ |Σ
∗
}
► ▮▮ ◼ 4
240
Equipo
21. Con crear una expresión regular para el lenguajeΣ = {a, b}
contiene cuando menos una a y dos bes{w ∈ |Σ
∗
}
► ▮▮ ◼ 4
240
Equipo
22. Con crear un autómata nito para el lenguajeΣ = {a, b}
contiene cuando menos una a y dos bes{w ∈ |Σ
∗
}
► ▮▮ ◼ 4
240
Equipo
23. Con crear un autómata nito para el lenguajeΣ = {a, b}
termina en la subcadena{w ∈ |Σ
∗
bab}
► ▮▮ ◼ 4
240
Equipo
24. Con crear una expresión regular para el lenguajeΣ = {a, b}
termina en la subcadena{w ∈ |Σ
∗
bab}
► ▮▮ ◼ 4
240
Equipo
25. Con crear una expresión regular para el lenguajeΣ = {a, b}
contiene la subcadena{w ∈ |Σ
∗
abb}
► ▮▮ ◼ 4
240
Equipo
26. Con crear un autómata nito para el lenguajeΣ = {a, b}
contiene la subcadena{w ∈ |Σ
∗
abb}
► ▮▮ ◼ 4
240
Equipo
27. Con crear una expresión regular para el lenguajeΣ = {a, b}
comienza con o con{w ∈ |Σ
∗
ba aa}
► ▮▮ ◼ 4
240
Equipo
28. Con crear un autómata nito para el lenguajeΣ = {a, b}
comienza con o con{w ∈ |Σ
∗
ba aa}
► ▮▮ ◼ 4
240
Equipo
29. Con crear una expresión regular para el lenguajeΣ = {a, b}
con tal que es non{w ∈ |Σ
∗
ab
i
b
j
i + j }
► ▮▮ ◼ 4
240
Equipo
30. Con crear un autómata para el lenguajeΣ = {a, b}
con tal que es non{w ∈ |Σ
∗
ab
i
b
j
i + j }
► ▮▮ ◼ 4
240
Equipo
31. ivanvladimir@gmail.com ivanvladimir.github.io ivanvladimir
Autómatas finitos y expresiones regulares by is
licensed under a
.
Creado a partir de la obra en
Ivan V. Meza Ruiz
Creative Commons Reconocimiento 4.0
Internacional License
http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/fsm_examples.htm