Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Unión de lenguajes
• Si M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2)
aceptan L1 y L2, respectivamente, la combinación
M12 acepta L1 L2
F1 M1
s1
M1 2 i
s2
F2 M2
2
En notación formal
• M1 2 = (K1 K2 {i}, ,
1 2is1is2, i, F1 F2)
3
Ejemplo
• Construir un AFD sobre {a, b} que reconoce palabras
con un número impar de b’s o que contienen la cadena
aab. b
1 2
b
0 a a
a a b
3 4 5 6
a,b a,b 4
Concatenación de lenguajes
• Si M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2)
aceptan L1 y L2, respectivamente, la combinación M12
acepta L1L2
M1
F1 M2
s1
s2
F2
M12
5
En notación formal
6
Ejemplo: AFN que reconoce palabras que tienen grupos de
aa’s (eventualmente separados por b’s) y después tienen
grupos de aaa’s (eventualmente separados por b’s)
a
1 4 3
a a a
a
0 2
b b
F1
s0
i
M*
8
Complemento de lenguajes
• Si M = (K, , , s, F),
entonces Mc = (K, , , s, K-F)
9
Cerradura bajo intersección
L1 L2 ( L L )
c
1
c c
2
10
Ejercicio
• Utilizar equivalencia:
Si A entonces B (no A) o B
11
Ejercicio
• Utilizar equivalencia:
L1 L2 ( L L )
c
1
c c
2
12
Lenguajes regulares y Autómatas finitos
• Recordemos que los lenguajes regulares son los representados por expresiones regulares.
• Teorema: Un lenguaje es regular si y solo si es aceptado por algún autómata finito.
• Para convertir una expresión regular E en un autómata finito se inicia con la gráfica de transición:
y se aplican recursivamente las siguientes reglas de reemplazo hasta que no sea posible aplicar ninguna de estas reglas.
q0 E q1
13
Ejemplos de ER AF
a
• (a + ab)*
q0 q1
a b
• (ba + a)*bb s
a
q0 b b q1
b a
• (0 + 1)*010
0
q0 0 1 0 q1
1
14
AF ER
a,b a,b
a b
1 2 8
¿Expresión regular?
15
AF ER
a,b b a,b
a b
1 2 8
¿Expresión regular?
(a + b)*ab*b(a + b)*
16
AF ER
3 6
b b a
a
a a
1 2 5 8
a b
b a
4 7
Eliminar el estado 5
17
AF ER
ba*b
3 6
a
a
ba
*
a
a
1 2 8
b
aa *
b
b
aa*a
4 7
Eliminar el estado 5
18
AF ER
1. Convertir el AF a uno en el que sólo haya un estado
inicial al que no llegue ninguna transición, y un solo
estado final del que no salga ninguna transición.
• Añadir un nuevo estado inicial i con una transición del
que salga una transición vacía al antiguo estado inicial.
• Añadir un nuevo estado final f al que lleguen transiciones
vacías desde los antiguos estados finales.
2. Eliminar nodos intermedios sin que se alteren las cadenas
que hay que utilizar para pasar de un estado “origen”,
vecino del eliminado, a un estado “destino”, vecino del
eliminado.
3. Una vez que se hayan eliminado todos los nodos
intermedios y sólo quede el inicial y el final, entonces
fusionar todas las expresiones regulares entre ellos en
una sola por medio de +’s.
19
AF ER
• Paso 1:
F1
s1
i f
• Paso 2:
1 1(1 +...+ k)*1
p1 q1 p1 q1
1 1
1(1 +...+ k)*m n(1 +...+ k)*1
…n q m …
… n(1 +...+ k)*m …
pn qm pn qm
k
• Paso 3:
R1
R2
R1 + R2 + ... + Rn
…Rn 20
Ejemplos de AF ER
a a,b
q0 b q1 a*b(a + b)*
a,b
q0 a q1
a b
(bb*a)*a(a + b)* + (bb*a)*bb*
q2
b
a b
q0 a q1
(a(aa + b)*ab + b)((ba + a)(aa + b)*
b b ab + bb)*((ba + a)(aa + b)* + ) +
a
q2 a(aa + b)*
21
Otro ejemplo
0
1 2
1
1 1 1
0
0
3 4
0
22
Solución al otro ejemplo
23
24
Lema de bombeo (Pumping lemma)
• Si L es un lenguaje regular, entonces existe un número n (la
longitud de bombeo) tal que si w es cualquier cadena en L de
longitud mayor o igual que n, entonces w puede ser dividido en
tres partes, w = xyz, que satisfacen las siguientes tres
condiciones:
– 1) xyiz L para toda i 0.
– 2) |y| > 0.
– 3) |xy| ≤ n.
25
“Demostración” del Lema de bombeo
• Sea M un AFD que reconoce L y sea n el número de estados de este
autómata. Demostraremos que cualquier cadena de longitud mayor o
igual que n puede ser descompuesta en tres partes xyz que satisfacen las
tres condiciones.
• Si el lenguaje no contiene cadenas de longitud mayor o igual que n,
entonces el teorema es verdadero por vacuidad, es decir, no existen
cadenas que lo contradigan, es decir, no existen cadenas que hagan que el
teorema sea falso.
• Si una cadena aceptada por L tiene longitud mayor o igual que n y si
denotamos por q1, q2, ..., qm, los estados visitados por el autómata
conforme se procesa la cadena, iniciando en el estado inicial q1 y
terminando en un estado final qm, entonces existe al menos un estado que
se repite. Sean qj y qk los primeros que se repiten.
• Tomamos x = q1 ... qj-1, y = qj ... qk-1, z = qk ... qm. Nota:
Nota:cualquier
cualquier
lenguaje
lenguajefinito
finito
y z es
esregular.
regular.
q1 x qj=qk qm
26
Ejemplos de lenguajes no regulares
• B = {0i1i | i 0} no es regular.
Supongamos que sí. Sea M un autómata que acepta B. Sea n la longitud de
bombeo.
Consideremos la cadena w = 0n1n B. Bajo la suposición de que B es regular,
entonces la cadena w puede ser descompuesta en tres partes w = xyz tal que xyiz
pertenece a B para toda i 0, en particular, para i=2. Por lo tanto, xyyz debe ser
parte del lenguaje. Hay tres casos para y:
– y consiste solo de 0’s. En este caso xyyz tiene más 0’s que 1’s. Contradicción.
– y consiste solo de 1’s. En este caso xyyz tiene más 1’s que 0’s. Contradicción.
– y consiste de 0’s y 1’s. En este caso xyyz tiene algunos 1’s antes que 0’s.
Contradicción.
27
...Ejemplos
28
¿{w | w tiene el mismo número de 01’s que de 10’s}
= {w | símbolo inicial de w = símbolo final de w}?
29
Tarea 4 (en equipo)
30