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