Está en la página 1de 3

PRÁCTICO 2

INF319 SA–LENGUAJES FORMALES. GESTIÓN 3–2022

MÓDULOS

1. En un módulo M = <, S, f > se define la función 4. En un módulo M = <, S, f > se define la función
h : S x * → * de la siguiente manera: trayectoria h : S x * → S* de la siguiente manera:

h(s, )=  h(s, )= s


h(s, aw)= ah(f(s, a), w) (a, w*) h(s, aw)= s  h (f(s, a), w) //a, w*

Pruebe que |h(s, u)| = |u| (u*) Note que esta función toma al conjunto de estados S
como si éste fuese un alfabeto, pues esta función
devuelve (return) una cadena (string) de estados. La
cadena de estados devuelta por h, son los estados que
2. En un módulo M = <, S, f > se define la función
ha visitado.
g : S x * → S de la siguiente manera:
(a) Con el módulo <, S, f> y sabiendo que
g(s, )= s ={b, c}; S={0, 1, 2}; f(0, b)=1, f(0, c)=2, f(1, b)=0,
g(s, wa)= f( g(s, w), a) (a, w*) f(1, c)=2 y f(2, b)=1, f(2, c)=0.

Dibuje el grafo de estados de éste módulo y luego


(a) Pruebe que g(s, a) = f(s, a), para todo a. calcule, por definición, h(1, “bcc”).

Se le sugiere que dibuje el grafo trayectoria para entender el


(b) Pruebe por inducción que
resultado.

g(s, uv) = g( g(s, u), v) (u, v *) (b) Pruebe que h(s, a)= s  f(s, a)

3. En un módulo M = <, S, f > se define la función (c) Pruebe por inducción que
g : S x * → S de la siguiente manera: |h(s, u)| = |u| + 1 (u*)

g(s, )= s
g(s, wa)= f( g(s, w), a) (a, w*) 5. En un módulo M = <, S, f > , se define :

Pruebe que para toda u*: DEFINICIÓN. Para todo estado s, tS, decimos que t
es alcanzable a partir de s, anotado “s → t”, si y solo
^
g(s, u) = f(s, u) si, existe una z*, tal que
^
No es necesario que demuestre P[] f(s, z) = t

Para todo s, t, uS, pruebe que:

(a) s → s
(b) Si s → t y t → u entonces s → u
EXPRESIONES REGULARES

6. Escriba una e.r r que especifique todas las 9. Con el alfabeto ={0, 1}, escriba una e.r r que
cadenas de *, donde ={a, b, c}. Es decir L(r)= * especifique todos los números binarios que
contienen al menos una ocurrencia de la
subpalabra “00” en su formación.
7. Sabiendo que  = {a, b, c, d} con una e.r r,
especifique todas las cadenas de * que finalizan en a Ejemplos: 00, 1001, 01010001000, 000, 010000
o en b. Ejemplos: a, b, acca, baaa, cdab, bb, …

Obviamente la cadena  no es reconocida por r. 10. Con el alfabeto ={0, 1, 2, 3} escriba una e.r r que
especifique números enteros pares y mayores que
8. (Regex)Sobre el alfabeto ={a, b}, escriba una 300.
expresión regular r, la cual especifique todas las cadenas No se admiten ceros en la izquierda del número.
de * que tienen exactamente un número par de a’es.

Note que  y las cadenas sin a’es son generadas por r.

AUTÓMATAS FINITOS DETERMINISTAS


No use un AFN para construir el AFD pedido.

11. Dado el lenguaje L={a, aa, ab, b, bb, ba}, dibuje 13. Con  = {0, 1}, dibuje un AFD M de modo que
un AFD M, tal que L(M)=L. el mismo acepte todas las cadenas expresadas en el
 = {a, b} ejercicio 7, de este práctico.
.

12. Con  = {0, 1}, dibuje un AFD M de modo que 14. Con  = {a, b}, dibuje un AFD M de modo que
el mismo acepte todas las cadenas que representan el mismo acepte todas las cadenas no-vacías de *,
números binarios pares. excepto a aquellas que tienen a “aa” como
Ejemplos: subpalabra.
Palabras aceptadas: 0, 00, 10110, 011110, 1010000…
Palabras no aceptadas: , 1, 01, 01000111, … Ejemplos:
Palabras aceptadas: a, b, ba, ab, babba, ababba, …
En otras palabras, solo acepte aquellas cadenas que terminan Palabras no aceptadas: , aa, baabab, baaabba, …
en cero.
Tip: Cuando tenga dos a’es seguidas, con la segunda a vaya a
un agujero negro.
PASO DE UNA REGEX A UN AFN

15. Dada la e.r r=b(a|b)*a, dibuje un AFN N de 16. Dada la e.r r=(b*a)*, dibuje un AFN N de
modo que L(r) = L(N). modo que L(r) = L(N).
 = {a, b}  = {a, b}

PASO DE UN AFN A UN AFD

17. Convierta el AFN encontrado en el ejercicio 15, 20. Convierta el siguiente AFN en un AFD.
en un AFD.  = {a, b}
 = {a, b}
a
18. Dado el AFN N, mostrado abajo, encuentre un AFD 3 b 2
A tal que L(N)=L(A) b
0 a 
5

 1  4
b
3 b 2
b
0

a, b

1 a 4
a

5 b a, b

={a, b}

19. Convierta el siguiente AFN en un AFD.


 = {a, b}

3 b 4
a
2 a 

a 1  0

También podría gustarte