Está en la página 1de 5

UNIVERSIDAD DE CONCEPCIÓN

Facultad de Ingenierı́a
Depto. Ing. Informática y Cs. de la Computación

Pauta de Evaluación 1
Teorı́a de Computación
22 de septiembre de 2022

P1. Clasifique en lenguaje regular y no regular, los siguientes lenguajes. Justifique su respuesta
en ambos casos.
a) L1 = {0n w1n : w ∈ {0, 1}∗ ∧ n > 1}.
Solución.
Note que cualquier palabra del tipo 0n w1n se puede escribir como: 0w0 1, donde w0 =
0n−1 w1n−1 ∈ Σ∗ , luego L1 = 0(0 ∪ 1)∗ 1, y como existe una expresión regular para
describirlo, es un lenguaje regular.
0, 1

También se puede construir un AFND: 0 1

0 1
1
O un AFD:
0 0
1
0, 1

b) L2 = {0n 1n w : w ∈ {0, 1}∗ ∧ n > 1}.


Solución.
Probemos que este lenguaje no es regular usando el lema del bombeo.
Sea p ∈ N y w = 0p 1p , al dividir la palabra w en tres palabras x, y y z tales que: |y| > 0
y |xy| 6 p, tenemos que y = 0k , con 0 < k 6 p. Luego, para i = 2, xy i z = 0p+k 1p ∈ / L2 ,
luego L2 no es un lenguaje regular.
Note que no sirve evaluar el bombeo para i = 0 ya que:
xy 0 z = 0p−k 1p = 0p−k 1p−k 1k ∈ L2

P2. Construya una expresión regular para:


L = {w ∈ {0, 1}∗ : |w| es impar y w no contiene la subpalabra 11}

Solución.

Alternativa 1. El AFD que reconoce el lenguaje es:


0,1
Donde:
1 1 q0 : se ha leı́do un número par de sı́mbolos y el último no es 1
q0 q1 q4
0
1 q1 : se ha leı́do un número impar de sı́mbolos y el último es 1
0 0
q2 : se ha leı́do un número impar de sı́mbolos y el último no es 1
1 q3 : se ha leı́do un número par de sı́mbolos y el último es 1
q2 q3
0
q4 : se han leı́do dos unos consecutivos
UNIVERSIDAD DE CONCEPCIÓN
Facultad de Ingenierı́a
Depto. Ing. Informática y Cs. de la Computación

Ahora aplicamos el algoritmo para llevar a una ER:


0,1
Eliminamos q4 :
ε 1 1 ε 1
s q0 q1 q4 s q0 q1
0 0
1 ε ε
0 0 0 0
1 1
q2 q3 f q2 q3 f
0 0
ε ε

Eliminamos q3 : Eliminamos q1 :
ε 1 ε
s q0 q1 s q0 10
0
ε 1
0 0 0 0

q2 ε q2 ε
10 f 10 f

Eliminamos q2 : Eliminamos q0 :
ε 1 ∪ 0(10)∗ (10 ∪ 0(10)∗ 0)∗ (1 ∪ 0(10)∗ )
s q0 f s f

10 ∪ 0(10)∗ 0

Luego la ER es: (10 ∪ 0(10)∗ 0)∗ (1 ∪ 0(10)∗ )

Alternativa 2.

L = {w ∈ {0, 1}∗ : |w| es impar} ∩ {w ∈ {0, 1}∗ : w no contiene la subpalabra 11}

El AFD para {w ∈ {0, 1}∗ : |w| es impar} es:


0, 1
0 1
0, 1

EL AFD para {w ∈ {0, 1}∗ : w no contiene la subpalabra 11} es:


0 0, 1

1 1
0 1 2
0

Luego el AFD para L es:


1 1
11 20 11 20
1 0, 1 1 ε 0∪1
0 0, 1 0 0∪1
ε
00 21 AFNDG s 00 f 21
0 1 0 ε 1
0 0
1 1
01 10 01 10
0 0
UNIVERSIDAD DE CONCEPCIÓN
Facultad de Ingenierı́a
Depto. Ing. Informática y Cs. de la Computación

Eliminamos 20: Eliminamos 21:


11 11
1(0 ∪ 1)
1 ε 1 ε
0 0
ε ε
s 00 f 21 (0 ∪ 1)(0 ∪ 1) s 00 f
0 ε 1 0 ε
0 0
1 1
01 10 01 10
0 0

Eliminamos 10: Eliminamos 11:


11
1 ε
0
ε ε 1
s 00 f s 00 f
0 ε 10 0 ε
0 0
01 10 01 10

Eliminamos 01: Eliminamos 00:


ε 1 ∪ 0(10)∗ (10 ∪ 0(10)∗ 0)∗ (1 ∪ 0(10)∗ )
s 00 f s f

10 ∪ 0(10)∗ 0

Por lo tanto, la expresión regular es: (10 ∪ 0(10)∗ 0)∗ (1 ∪ 0(10)∗ ).


UNIVERSIDAD DE CONCEPCIÓN
Facultad de Ingenierı́a
Depto. Ing. Informática y Cs. de la Computación

P3. Dado L un lenguaje regular, pruebe que NoPrefijo(L) es regular. Donde:


NoPrefijo(L) = {w ∈ L : ningún prefijo propio de w pertenece a L} .

Solución.

Alternativa 1. Vemos que:


NoPrefijo(L) = {w ∈ L : ningún prefijo propio de w pertenece a L} = L \ LΣ+ = L ∩ LΣΣ∗ .

Como LΣΣ∗ es la concatenación de lenguajes regulares, es un lenguaje regular, de aquı́ su


complemento también lo es y, del mismo modo, es regular su intersección con L. Por lo tanto,
NoPrefijo(L) es regular.

Alternativa 2. Debemos aceptar las palabras que al ser procesadas por un AFD que
reconoce el lenguaje A nunca pasen por un estado de aceptación antes de llegar al final de
la palabra. De este modo si MA = (Q, Σ, δA , q0 , F ) es un AFD que reconoce A definimos M
que reconoce NoPrefix(A). Tenemos dos casos posibles:
a) Si q0 ∈
/ F , basta con eliminar las transiciones desde un estado final a otros estados, es
decir: M = (Q ∪ {q∅ } , Σ, δ, q0 , F ) tal que:
(
δA (q, σ) Si q ∈
/ F ∪ {q∅ }
δ(q, σ) =
q∅ Si q ∈ F ∪ {q∅ }

b) Si q0 ∈ F , no podemos olvidar que ε ∈ NoPrefix(A) y que pueden haber palabras


aceptadas porque pasan por un ciclo del grafo cuyo único estado de aceptación es q0 .
En este caso: M = (Q ∪ {s, q∅ } , Σ, δ, s, F ∪ {s}) tal que:

δA (q0 , σ) Si q = s

δ(q, σ) = δA (q, σ) Si q 6= s ∧ q ∈ / F ∪ {q∅ }

q∅ Si q 6= s ∧ q ∈ F ∪ {q∅ }

... ...

Ejemplo:
A: A0 :
0 0,1
0,1

0 0
0,1 0,1 0,1

1 1 1 0,1

1 1
0,1
0,1
0 0
UNIVERSIDAD DE CONCEPCIÓN
Facultad de Ingenierı́a
Depto. Ing. Informática y Cs. de la Computación

Note que esta construcción funciona bien solo con AFD y no con un AFND ya que podrı́a
haber más de una forma de reconocer una palabra en un AFND, en una pasa por otro estado
de aceptación y en la otra no, entonces la palabra serı́a aceptada siendo que tiene un prefijo
propio en el lenguaje. En el caso del AFD eso no ocurre, ya que existe una única secuencia
de transiciones que permiten que la palabra sea aceptada, por lo tanto, podemos verificar si
pasa por otro estado de aceptación.

También podría gustarte