Tema 4: Operaciones sobre lenguajes regulares Departamento de Sistemas Informáticos y Computación DSIC - UPV http://www.dsic.upv.es – p.1/19 Tema 4: Propiedades de los lenguajes regulares • Lema de bombeo para lenguajes regulares. • Propiedades de cierre ◦ Operaciones booleanas: Unión, Intersección, Complementación ◦ Diferencia ◦ Reverso ◦ Concatenación y Clausura ◦ Homomorfismo y Homomorfismo Inverso • Minimización de autómatas finitos. DSIC - UPV http://www.dsic.upv.es – p.2/19 Lema de bombeo • Sea L un lenguaje regular sobre Σ. Existe un número natural n (dependiente del lenguaje L) tal que ∀x ∈ L si |x| ≥ n, existen u, v, w ∈ Σ∗ tales que x = uvw y donde: 1. |uv| ≤ n 2. |v| ≥ 1 3. ∀i ≥ 0, uv i w ∈ L • Condición necesaria (no suficiente) para que un lenguaje sea regular • Útil para demostrar ue un lenguaje no es regular ◦ Tomar n como el valor de la constante del lema de bombeo ◦ Escoger una palabra x tal que |x| ≥ n ◦ Considerar todas las posibles factorizaciones de x ◦ Mostrar que, para todas las factorizaciones posibles, puede encontrarse un valor de i tal que uv i w 6∈ L DSIC - UPV http://www.dsic.upv.es – p.3/19 Lema de bombeo • Ejercicios: ◦ L1 = {0i 1i | i ≥ 0} ◦ L2 = {0n | n es primo} ◦ L3 = {w ∈ {0 + 1}∗ | |w|0 > |w|1 } ◦ L4 = {w ∈ {0 + 1}∗ | |w|0 = |w|1 } ◦ L5 = {0n 1m | n − m ≥ 0} ◦ L6 = {0i2 | i ≥ 1} DSIC - UPV http://www.dsic.upv.es – p.4/19 Propiedades de cierre • Un conjunto C es cerrado bajo una operación • sii: ∀x, y ∈ C ⇒ x • y ∈ C • Cierre respecto a Intersección Sean L1 , L2 ∈ L3 , entonces existen dos autómatas A1 , A2 tales que L1 = L(A1 ), L2 = L(A2 ), donde Ai = (Qi , Σ, δi , qi , Fi ), i = 1, 2 Construimos A = (Q, Σ, δ, q0 , F ) donde: ◦ Q = Q 1 × Q2 ◦ q0 = [q1 , q2 ] ◦ F = F 1 × F2 ◦ δ([p1 , p2 ], a) = [δ1 (p1 , a), δ2 (p2 , a)], ∀p1 ∈ Q1 , ∀p2 ∈ Q2 , ∀a ∈ Σ DSIC - UPV http://www.dsic.upv.es – p.5/19 Propiedades de cierre q1 a b q2 a q1 a b a q2 A1 q3 b A2 L(A1 ) ∩ L(A2 )? DSIC - UPV http://www.dsic.upv.es – p.6/19 Propiedades de cierre • Cierre respecto a Unión Sean L1 , L2 ∈ L3 , entonces existen dos autómatas completos A2 , A2 tales que L1 = L(A1 ), L2 = L(A2 ) donde Ai = (Qi , Σ, δi , qi , Fi ), i = 1, 2 Construimos A = (Q, Σ, δ, q0 , F ) donde: ◦ Q = Q 1 × Q2 ◦ q0 = [q1 , q2 ] ◦ F = F 1 × Q2 ∪ Q 1 × F2 ◦ δ([p1 , p2 ], a) = [δ1 (p1 , a), δ2 (p2 , a)], ∀p1 ∈ Q1 , ∀p2 ∈ Q2 , ∀a ∈ Σ DSIC - UPV http://www.dsic.upv.es – p.7/19 Propiedades de cierre 0 0 q1 q2 1 q1 1 1 0 1 q3 0 0 q2 1 A2 A1 L(A1 ) ∪ L(A2 )? DSIC - UPV http://www.dsic.upv.es – p.8/19 Propiedades de cierre • Cierre respecto a Complementación Sea L ∈ L3 , entonces existe un autómata completo A tal que L = L(A) donde A = (Q, Σ, δ, q0 , F ) El autómata A0 = (Q, Σ, δ, q0 , Q − F ) acepta L • Cierre respecto a Diferencia Sean L1 , L2 ∈ L3 . Nótese que L1 − L2 = L1 ∩ L2 DSIC - UPV http://www.dsic.upv.es – p.9/19 Propiedades de cierre • Cierre respecto a Reverso Sean L1 ∈ L3 , entonces existe un autómata A = (Q, Σ, δ, q0 , {qf }). Si |F | > 1 puede modificarse el autómata para que posea un único estado final. Construimos A = (Q, Σ, δ 0 , qf , q0 ) donde: q ∈ δ(p, a) ⇔ p ∈ δ 0 (q, a) DSIC - UPV http://www.dsic.upv.es – p.10/19 Propiedades de cierre • Cierre respecto a Concatenación Sean L1 , L2 ∈ L3 , entonces existen dos autómatas A1 , A2 tales que L1 = L(A1 ), L2 = L(A2 ) donde Ai = (Qi , Σ, δi , qi , Fi ), (i = 1, 2) y tales que Q1 ∩ Q2 = ∅ Construimos A = (Q0 , Σ, δ 0 , q1 , F2 ) donde: ◦ Q0 = Q1 ∪ Q 2 ◦ δ 0 = δ1 ∪ δ2 ∪ δ 00 donde q2 ∈ δ 00 (p, λ), ∀p ∈ F1 DSIC - UPV http://www.dsic.upv.es – p.11/19 Propiedades de cierre • Cierre respecto a Clausura Sea L ∈ L3 , entonces existe un autómata A tal que L = L(A) donde A = (Q, Σ, δ0 , q0 , F ) Construimos A0 = (Q0 , Σ, δ 0 , qn , F 0 ) donde: ◦ Q0 = Q1 ∪ {qn }, qn 6∈ Q ◦ F 0 = F ∪ {qn } ◦ δ 0 (p, a) = δ(p, a), ∀p ∈ Q, ∀a ∈ Σ ◦ qn ∈ δ 0 (p, λ), ∀p ∈ F ◦ δ 0 (qn , λ) = {q0 } DSIC - UPV http://www.dsic.upv.es – p.12/19 Propiedades de cierre • Cierre bajo Homomorfismo Sea h : Σ → ∆∗ y L1 ∈ L3 . Existe una expresión regular r1 tal que L1 = L(r1 ) Construimos una expresión regular r resultado de sustituir cada símbolo a ∈ Σ por su imagen h(a), utilizando parentesis para mantener el orden de actuación de los operadores • Cierre bajo Homomorfismo Inverso Sea h : Σ → ∆∗ y L1 ∈ L3 , entonces existe un autómata A1 tal que L1 = L(A1 ) y donde A = (Q, ∆, δ, q0 , F ) Construimos A0 = (Q, Σ, δ 0 , q0 , F ) donde: ( ◦ δ 0 (p, a) = δ(p, h(a)) si δ(p, h(a)) 6= ∅ ∅ en otro caso DSIC - UPV http://www.dsic.upv.es – p.13/19 Propiedades de cierre q1 a q2 b a a q4 a h(0) = aa h(1) = b h(2) = λ b q3 h−1 (L(A))? DSIC - UPV http://www.dsic.upv.es – p.14/19 Minimización de autómatas finitos • Un AFD A = (Q, Σ, δ, q0 , F ) es accesible si para todo q ∈ Q existe una palabra x ∈ Σ∗ tal que δ(q0 , x) = q • Sea A = (Q, Σ, δ, q0 , F ) un AFD completo y accesible. Definimos la relación de indistiguibilidad ∼ en Q como: ∀q, q 0 ∈ Q : (q ∼ q 0 ⇔ ∀x ∈ Σ∗ (δ(q, x) ∈ F ⇔ δ(q 0 , x) ∈ F )) • Sea A = (Q, Σ, δ, q0 , F ) un AFD completo y accesible y sea la relación de indistiguibilidad ∼. Se define el autómata cociente A/ ∼= (Q0 , Sigma, δ 0 , q00 , F 0 ) como: ◦ Q0 = {[q]∼ | q ∈ Q} ◦ q0 = [q0 ]∼ ◦ F 0 = {[q]∼ | q ∈ F } ◦ δ 0 ([q]∼ , a) = [δ(q, a)]∼ DSIC - UPV http://www.dsic.upv.es – p.15/19 Minimización de autómatas finitos • Sea A = (Q, Σ, δ, q0 , F ) un AFD completo y accesible y sea la relación de indistiguibilidad ∼. El automata A/ ∼ es el AFD mínimo que acepta L(A) • Sea A = (Q, Σ, δ, q0 , F ) un AFD completo y accesible y sea un entero k ≥ 0. Se define la relación de k-distinguibilidad ∼k como: ∀q, q 0 ∈ Q : ◦ ∀k ≥ 0, ◦ ∀k ≥ 0, ◦ ∀k ≥ 0, (q ∼k q 0 ⇔ ∀x ∈ Σ∗ , |x| ≤ k, (δ(q, x) ∈ F ⇔ δ(q 0 , x) ∈ F )) p ∼k+1 q ⇒ p ∼k q p ∼ q ⇒ p ∼k q p ∼k+1 q ⇔ p ∼k q ∧ ∀a ∈ Σ, δ(p, a) ∼k δ(q, a) DSIC - UPV http://www.dsic.upv.es – p.16/19 Minimización de autómatas finitos • Algoritmo de minimización de AFD: 1. π0 = {Q − F, F } 2. Obtener πk+1 a partir de πk B(p, πk+1 ) == B(q, πk+1 ) ⇔ ( B(p, πk ) == B(q, πk ) ∧ ∀a ∈ Σ, B(δ(p, a), πk ) == B(δ(q, a), 3. Si πk+1 es distinta a πk ir a 2 DSIC - UPV http://www.dsic.upv.es – p.17/19 Minimización de autómatas finitos • Ejercicio: 1 0 q1 0 q3 1 q4 0 0 1 1 q2 1 1 0 q5 1 q6 0 q7 0 DSIC - UPV http://www.dsic.upv.es – p.18/19 Minimización de autómatas finitos • Ejercicio: a q0 a b q1 b a b q2 b q4 a a a q3 b b q5 DSIC - UPV http://www.dsic.upv.es – p.19/19