Está en la página 1de 8

Introducción a la Teorı́a de la Computación

Taller 5
Angela Marı́a Cárdenas Orjuela,
David Julian Bustos Cortes,
Gabriela Marı́a Garcı́a Romero
Abril 2021

Problema 1. Realizar Ejercicio 1 -((i))) Ejercicio 2 -((ii)), de la Sección 2.8.

1) Sea Σ = {a, b}. Diseñar AFN-λ (autómatas finitos no-deterministas con transiciones λ) que
acepten los siguientes lenguajes:

(i) (ab ∪ b)∗ ab∗ a∗

a q1
b

b
q0
a b a

q2 λ q3

2) Sea Σ = {0, 1}. Diseñar AFN-λ (autómatas finitos no-deterministas con transiciones λ) que
acepten los siguientes lenguajes:

(ii) 0+ 1(010)∗ (01 ∪ 10)∗ 1+

q4
1
q6
0 q3 0
0 1 1
0

q0 0 q1 1 q2 λ q5 1 q8

1
0
q7

1
Problema 2. Diseñe un AFN-λ que acepte el lenguaje de todas las cadenas de longitud 3n, con
n ≥ 1, tales que al menos uno de los sı́mbolos en la posición 3k - 2, 3k - 1 y 3k es cero para todo
k, con 1 ≤ k ≤ n.

0 0, 1 0, 1
q0 q1 q2 q3

0 0
1

q4 1 q5

Problema 3. Utilizando el procedimiento presentado en esta sección, construir AFN equivalente


al siguiente AFN-λ µ. Proceder ya sea por simple inspección o aplicando explı́citamente la fórmula
40 (q, a) = λ[4(λ[q], a)] para todo q ∈ Q y todo a ∈ Σ.

La función de transición 40 : Q × {a, b} → ℘({q0 , q1 , q2 , q3 , q4 }) es:

40 (q0 , a) = λ[4(λ[q0 ], a)]


40 (q1 , a) = λ[4(λ[q1 ], a)]
= λ[4({g0 , q1 , g2 }, a)]
= λ[4({q1 }, a)]
= λ[q1 , q3 ]
= λ[q1 ]
= {q1 , q3 }
= {q1 }

40 (q0 , b) = λ[4(λ[q0 ], b)]


= λ[4({g0 , q1 , g2 }, b)] 40 (q1 , b) = λ[4(λ[q1 ], b)]
= λ[q4 ] = λ[4({q1 }, b)]
= {q4 } =φ

2
40 (q2 , a) = λ[4(λ[q2 ], a)] 40 (q3 , b) = λ[4(λ[q3 ], b)]
= λ[4({q2 }, a)] = λ[4({q3 }, b)]
= λ[q3 ] = λ[q2 ]
= {q3 } = {q2 }

40 (q2 , b) = λ[4(λ[q2 ], b)] 40 (q4 , a) = λ[4(λ[q4 ], a)]


= λ[4({q2 }, b)] = λ[4({q4 }, a)]
= λ[q4 ] = λ[q2 ]
= {q4 } = {q2 }

40 (q3 , a) = λ[4(λ[q3 ], a)] 40 (q4 , b) = λ[4(λ[q4 ], b)]


= λ[4({q3 }, a)] = λ[4({q4 }, b)]
=φ =φ

El autómata µ0 ası́ obtenido es el siguiente:

q1
a

q0 a q3 b
a
b
q2
b
q4 a

Problema 4. Utilizar la noción de complemento de un AFD para diseñar AFD que acepten los
siguientes lenguajes:
(1) El lenguaje L de todas las cadenas que no contienen la subcadena bc. Alfabeto: {a, b, c}.

Diseñamos primero un AFD µ que acepte el lenguaje de todas las cadenas que tienen la
subcadena bc. Esto lo conseguimos forzando la trayectoria bc:

a, c b a, b, c
b

q0 q1 c q2
a

Para aceptar L formamos el complemento de µ, intercambiando los estados de aceptación


con los de no-aceptación:

3
a, c b a, b, c
b

q0 q1 c q2
a

Problema 5. Realizar Ejercicio 1 de la Sección 2.11. Ejercicio 2 -((ii), (iii)) de la Sección 2.11.
1 Utilizar el Teorema 2.11.1 (iii) para construir un AFD que acepte el lenguaje L de todas las
cadenas sobre el alfabeto Σ = {a, b} que tienen longitud impar y que no contienen dos bes
consecutivas, expresando L como diferencia de dos lenguajes.

Encontramos un AFD µ1 que acepta el lenguaje L1 (El lenguaje de todas las cadenas de
longitud impar):

a, b

q0 q1
a, b

Encontramos un AFD µ2 que acepta el lenguaje L2 (El lenguaje de todas las cadenas que
contienen dos bes consecutivas):

a a, b
b

p0 p1 b p2
a

Entonces L = L(µ1 ) - L(µ2 ) = L1 − L2 . El producto cartesiano µ1 × µ2 tiene 6 estados:


(q0 , p0 ), (q1 , p0 ), (q1 , p1 ), (q0 , p1 ), (q0 , p2 ) y (q1 , p2 ); El conjunto de estados de aceptación esta
dado por: F = F1 × (Q2 − F2 ) = {q1 } × {p0 , p1 } = {(q1 , p0 ), (q1 , p1 )}

σ : (Q × P ) × Σ → Q × P
σ((q, p), a) := (σ1 (q, a), σ2 (p, a))

b
(q1 , p0 ) (q0 , p1 ) (q1 , p2 )
a a

a
a, b
(q0 , p0 )

a a, b

b
b
(q1 , p1 ) (q0 , p2 )

4
El autómata obtenido sin estados limbo es:

q1 , p0 q0 , p1
a a

(q0 , p0 )

b
q1 , p1

2 Utilizar el Teorema 2.11.1 para construir AFD que acepten los siguientes lenguajes sobre el
alfabeto {0, 1}:

(ii) El lenguaje L de todas las cadenas que tienen longitud impar y que terminan en 01.

Encontramos un AFD µ1 que acepta el lenguaje L1 (El lenguaje de todas las cadenas
de longitud impar):
0, 1

q0 q1
0, 1

Encontramos un AFD µ2 que acepta el lenguaje L2 (El lenguaje de todas las cadenas
que terminan e 01):
1 0
1

p0 0 p1 p2
0
1

Entonces L = L(µ1 ) ∩ L(µ2 ) = L1 ∩ L2 . El producto cartesiano µ1 × µ2 tiene 6 estados:


(q0 , p0 ), (q1 , p0 ), (q1 , p1 ), (q0 , p1 ), (q0 , p2 ) y (q1 , p2 ); El conjunto de estados de aceptación
esta dado por: F = F1 × F2 = {q1 } × {p2 } = {(q1 , p2 )}

σ : (Q × P ) × Σ → Q × P
σ((q, p), a) := (σ1 (q, a), σ2 (p, a))

5
1

1 0 1
(q0 , p0 ) (q1 , p0 ) (q0 , p1 ) (q1 , p2 )

1 0
1

0
(q0 , p2 )

0
0
0
1

(q1 , p1 )

(iii) El lenguaje L de todas las cadenas que tienen longitud impar y que no terminan en 11.
Encontramos un AFD µ1 que acepta el lenguaje L1 (El lenguaje de todas las cadenas
de longitud impar):
0, 1

q0 q1
0, 1

Encontramos un AFD µ2 que acepta el lenguaje L2 (El lenguaje de todas las cadenas
que terminan en 11):
0 1
1

p0 p1 1 p2
0
0

Entonces L = L(µ1 ) - L(µ2 ) = L1 − L2 . El producto cartesiano µ1 × µ2 tiene 6 estados:


(q0 , p0 ), (q1 , p0 ), (q1 , p1 ), (q0 , p1 ), (q0 , p2 ) y (q1 , p2 ); El conjunto de estados de aceptación
esta dado por: F = F1 × (Q2 − F2 ) = {q1 } × {p0 , p1 } = {(q1 , p0 ), (q1 , p1 )}

σ : (Q × P ) × Σ → Q × P
σ((q, p), a) := (σ1 (q, a), σ2 (p, a))

6
0

0 1 1
(q0 , p0 ) (q1 , p0 ) (q0 , p1 ) (q1 , p2 )
0 0

0
0 1
1
1
1
(q1 , p1 ) (q0 , p2 )

Problema 6. Con lo visto en clase diseñe un AFD que acepte el lenguaje de cadenas binarias en
la que toda subcadena o bloque de cuatro sı́mbolos contiene al menos dos ceros.

Encontramos un AFD µ1 que acepta el lenguaje L1 (El lenguaje de todas las cadenas que no
contienen la subcadena 111):

0
1 1

q0 q1 q2
0
0

Encontramos un AFD µ2 que acepta el lenguaje L2 (El lenguaje de todas las cadenas que no
contienen las subcadenas 1101 y 1111):

0
1 1 0, 1

p0 p1 p2 p3
0

Encontramos un AFD µ3 que acepta el lenguaje L3 (El lenguaje de todas las cadenas que no
contienen la subcadena 1011 y 1111):

0
1 0, 1 1

t0 t1 t2 t3

0
0

7
Entonces L4 = L(µ2 ) ∩ L(µ3 ) = L2 ∩ L3 . Se hace el producto cartesiano µ2 × µ3 ; El conjunto de
estados de aceptación esta dado por: F = F2 × F3 :

0
0

1 1 1
(p0 , t0 ) ((p1 , t1 ) (p2 , t2 ) (p3 , t3 )

0
0 0 (p3 , t0 )

0 (p0 , t2 )

(p1 , t3 )

Entonces L = (L(µ2 ) ∩ L(µ3 )) ∩ L(µ1 )) = (L2 ∩ L3 ) ∩ L1 . Se hace el producto cartesiano (µ2 ×


µ3 ) × µ1 ; El conjunto de estados de aceptación esta dado por: F = (F2 × F3 ) × F1 :

1 1
(q0 , p0 , t0 ) (q1 , p1 , t1 ) (q2 , p2 , t2 )

0
0 0 (q0 , p3 , t0 )

0 (q0 , p0 , t2 )

(q1 , p1 , t3 )

También podría gustarte