Soluciones Tarea 1 IIC2222 - Pontificia Universidad Católica de Chile

Anuncio
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:
f (w) =
( P
|w|−1
i=0
0
|Σi | + Fi (w) si |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
q0
b
a,b,c
c
q1
a,b
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
1
q1
1
1
0
q2
q3
1
0
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
0
q6
1
1
0
q5
0
q7
q8
0
0
1
1
0
q0
0
q3
1
q4
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
1
1
0
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
q0
b
q1
a
q2
a
q3
a
q4
a
q5
a
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
1
q0
0
1
0
1
q2
q3
1
0
q5
1
0
0
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
q0
0
q1
0
q2
q3
1
1
q4
0
1
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 .
5
Descargar