Sei sulla pagina 1di 5

Pontificia Universidad Católica de Chile

Escuela de Ingenierı́a
Departamento de Ciencia de la Computación

Soluciones Tarea 1
IIC2222 - Teorı́a de Autómatas y Lenguajes Formales
Segundo Semestre, 2003

1. Hay que demostrar que es posible construir una biyección f : Σ∗ → N.


Σ∗ se define como


[

Σ = Σi
i=0

Dado que Σ es finito, entonces cada uno de los Σi también es finito, y por lo tanto contable.
Sea Fi la función que asocia un elemento de Σi con un elemento de N.
Se construye la función f de la siguiente forma:
( P
|w|−1
i=0 |Σi | + Fi (w) si |w| > 0
f (w) =
0 si |w| = 0

Esta función asocia, a cada string w ∈ Σ∗ , un elemento distinto de N. Además se define para
todos los elementos de Σ∗ , por lo tanto es una biyección.
Ya que existe la función f : Σ∗ → N, entonces Σ∗ es contable.

2. a) Se resolverá por inducción en i,


B.I. ∀x ∈ Σ∗ x0 = ε, luego (xr )0 = ε = (ε)r = (x0 )r
H.I. Supongamos que ∀x ∈ Σ∗ , se cumple que (xr )n = (xn )r .
T.I. Ahora (xr )n+1 = (xr )n ◦ xr = (xn )r ◦ xr = (x ◦ xn )r = (xn+1 )r . Luego por inducción
en los naturales se cumple H.I. para todo x.
b) Se resolverá por inducción en el largo de y,
B.I. |y| = 0 implica |x ◦ y| = |x ◦ ε| = |ε ◦ x| = |y ◦ x|
H.I. Supongamos ∀z ∈ Σ∗ tal que |z| = n se cumple que: ∀x ∈ Σ∗ , |x ◦ z| = |z ◦ x|.
T.I. Sea y ∈ Σ∗ tal que |y| = n + 1, esto implica que ∃w ∈ Σ∗ , con |w| = n, y ∃a ∈ Σ tal
que y = wa. Luego |x ◦ wa| = |(x ◦ w)a| = |(x ◦ w)| + 1 = |w ◦ x| + 1 = |w| + |x| + 1 =
|wa| + |x| = |wa ◦ x| ya que w cumple H.I.
Nota: Es fácil demostrar por inducciión que |x ◦ w| = |x| + |w|

3. a) Palabras {a, b, c}∗ , en que cada b está seguida de un número par de c0 s.


M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 .q2 , q3 , q4 }
Σ = {a, b, c}
q0 = q0
F = {q0 , q1 , q3 }
δ:
a,c b a,b,c

b c a,b
q0 q1 q2 q4
a
b c c
a
q3

b) Palabras binarias divisibles por 3. Considere que ε no es un numero.


M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 .q2 , q3 }
Σ = {0, 1}
q0 = q0
F = {q1 }
δ:
0

0
q0 q1

1 1
1
0

q2 q3 1

c) Palabras binarias en que cada 1 esta precedido por un 0 o que tienen un numero par de
0’s.
M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 , q2 , q3 , q4 , q5 , q6 , q7 , q8 }
Σ = {0, 1}
q0 = q0
F = {q0 , q1 , q3 , q4 , q5 , q6 , q8 }
δ:

2
1 1
0 1 0
q6 q5 q7 q8
0
0
0
1
1

0 0
q0 q3 q4

1 1

0
q1 q2
0
1 1
d ) Palabras binarias cuyo número de 1’s es divisible por 3 y que terminan en 1.
M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 , q2 , q3 }
Σ = {0, 1}
q0 = q0
F = {q3 }
δ:
0 0 0

1 1
q0 q1 q2

0 1

q3

4. a) Palabras en {a, b}∗ que terminan con 5 a’s seguidas, y comienzan con al menos una b.
M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 , q2 , q3 , q4 , q5 , q6 }
Σ = {a, b}
q0 = q0
F = {q6 }
δ:
a, b

b a a a a a
q0 q1 q2 q3 q4 q5 q6

b) Palabras binarias que no contienen a 11, o que no contienen a 000 como subpalabra.
M = (Q, Σ, δ, q0 , F ), donde

3
Q = {q0 , q1 , q2 , q3 , q4 , q5 }
Σ = {0, 1}
q0 = q0
F =Q
δ:
0
1

q1 q3
0 1 1

1 q0 0 q5
0 1

1 0 0
q2 q4

c) Palabras binarias en que cada secuencia par de 0’s está seguida de exactamente dos 1’s.
M = (Q, Σ, δ, q0 , F ), donde
Q = {q0 , q1 , q2 , q3 , q4 }
Σ = {0, 1}
q0 = q0
F = {q0 , q1 , q4 }
δ:
0

1 0

q0 q1 q2 q3 q4
1 1
0 0

5. El siguiente AFD acepta el conjunto de las palabras en {a, b}∗ , de largo al menos 10, y cuyos
últimos 10 sı́mbolos contienen a los más 3 a’s.
M = (Q, Σ, δ, q0 , F ), donde
Q = {[w] | |w| ≤ 10, w ∈ Σ∗ }
Σ = {a, b}
q0 = []
F = {[w] | |w| = 10, w ∈ {b}i {ε, a}{b}j {ε, a}{b}k {ε, a}{b}l }
δ:
δ([w], s) = [ws], donde w ∈ Σ∗ , |w| < 10, s ∈ Σ
δ([a1 · · · a10 ], s) = [a2 · · · a10 s], donde s ∈ Σ, ai ∈ Σ, 1 ≤ i ≤ 10}

6. Se pide demostrar que el lenguaje de los strings que tienen un prefijo en L y el resto del string
en Σ∗ − L, es regular.

R = {xy | x ∈ L, y ∈ Σ∗ − L}

4
Si L es regular sobre Σ, entonces existe un AFD ML = (QL , Σ, δL , q0L , FL ) que lo acepta. Esto
implica que Σ∗ −L también es regular, ya que se puede construir el AFD M 0 = (Q0 , Σ, δ 0 , q00 , F 0 )
que lo acepta, donde Q0 = Q, δ 0 = δ, q00 = q0 , F 0 = Q − F .
El lenguaje R es, entonces, una concatenación de dos lenguajes regulares, L y Σ∗ − L, lo que
también es regular.
Sea MC = (QC , Σ, δC , q0C , FC ) un AFD equivalente a M 0 , que también acepta Σ∗ − L, pero
con nombres de estado distintos a los de M 0 , para evitar ambigüedades.
Se puede construir el siguiente AFND que acepta Σ∗ − L:
MR = (QR , Σ, δR , q0R , FR ), donde:
QR = QL ∪ QC
q0R = q0L
FR = FC
δR es tal que:
δR (qL , a) 3 δL (qL , a), para todo a ∈ Σ, qL ∈ QL
δR (qC , a) 3 δC (qC , a), para todo a ∈ Σ, qC ∈ QC
δR (q, a) 3 q0C , si δL (q, s) ∈ FL , a ∈ Σ
Nada más pertenece a δR .

Potrebbero piacerti anche