Story Transcript
Tema 2: Lenguajes regulares
Idea de autómata
Autómatas finitos y gramáticas regulares
b
• Autómatas finitos deterministas
a
p
• Autómatas finitos no deterministas
q
a
b
• Gramáticas regulares (y lineales) a la derecha a
Expresiones regulares • Expresiones regulares
a
b
a
b
a
a
b
p
1
a
b
a
b
p
a
b
p
3
• Autómatas finitos no deterministas con transiciones vacías
a
5
q
q
q
Propiedades de los lenguajes regulares • Minimización de autómatas
a
a
b
a
b
a
• Algunas propiedades de cierre 2
• Lenguajes no regulares
Tema 2: Lenguajes regulares
1
6 q
•
•
•
conjunto de estados
Fuente de entrada
Σ
alfabeto de entrada
a
b
p
q
M = (Q, Σ, δ, δ q0, F) con δ : Q × Σ → Q
b p
a a
Ciclo-máquina: Consultas: estado actual y símbolo de entrada Acciones: avance en la entrada y cambio de estado
q
b
Este autómata es: M = ({p,q}, {a,b}, δ, p, {q}) con δ definida:
Elementos distinguidos para la inicialización y salida: q0 ∈ Q: estado inicial y F ⊆ Q: conjunto de estados finales
δ(p,a) = q δ(p,b) = p δ(q,a) = p δ(q,b) = q
Definición formal: M = (Q, Σ, δ, q0, F) con δ : Q × Σ → Q (función parcial) Tema 2: Lenguajes regulares
b
2
Com ponentes lógicos Q
a
Tema 2: Lenguajes regulares
Formalmente: Unidad de Proceso
a
b
Ejemplo de AFD
Elementos: Com ponentes físicos
a
4
Autómata finito determinista (AFD) •
b
p
p
q
Aplicaciones
a
3
Tema 2: Lenguajes regulares
4
Lenguaje aceptado por un AFD
Ejemplo de AFD a
•
•
•
Configuración: (q, w) ∈ Q ×Σ* q es el estado actual y w la palabra que queda por leer Movimiento:
a
b
a
a
b
p
a
2
a
a
b
a
a
b
a
p
q
a
b
a
a
b
p
p
b
5 q
b
a
4
6 q
a
b
a
b
p
q
(p, aabab) | (q, abab) | (p, bab) | (p, ab) | (q, b) | (q,ε) δ(p,a) = q 5
Función de transición extendida
δ(q,a) = p
δ(p,b) = p
δ(p,a) = q
δ(q,b) = q
Tema 2: Lenguajes regulares
6
Ejemplo de lenguaje aceptado Dado un AFD M = (Q, Σ, δ, δ q0, F), el lenguaje que acepta es L(M) = { w∈Σ*: (q0,w) | * (p, ε) ∧ p∈F } = { w∈Σ*: δ*(q0, w)∈ F }
Función de transición extendida a palabras δ*: Q ×∑* → Q ∀ w∈ Σ*, ∀s ∈ Σ, ∀ q ∈ Q δ*(q, w) = estado en que se encuentra M tras leer la palabra w desde q
Para el AFD M = ({p,q}, {a,b}, δ, p, {q})
b
- δ* (q, ε) = q - δ* (q, ws) = δ (δ δ* (q, w), s)
p
a a
Lenguaje aceptado por M:
q
b
L(M) = { a, bab, aaa, aaba, aabba, abbbabab,.... } = { w∈{a,b}*: el número de a’s en w es impar }
L(M) = { w∈Σ*: δ*(q0, w)∈ F }
Tema 2: Lenguajes regulares
b
p
q
( | * denota 0 ó más pasos de | )
•
a
3 q
Lenguaje aceptado por el autómata M: L(M) = { w∈Σ*: (q0,w) | * (p,εε) ∧ p∈F }
•
b
1
cambio de configuración en un paso (s∈Σ) (p, s.w) | (q, w) si y solo si δ(p,s) = q
Tema 2: Lenguajes regulares
a
7
Tema 2: Lenguajes regulares
8
Autómata finito determinista totalmente especificado (AFDt) •
Ejemplo: AFD a AFDt
Autómata totalmente especificado AFDt
AFD M = (Q, Σ, δ, δ q0, F) con δ : Q × Σ → Q f. parcial
Es un AFD cuya función de transición es total M = (Q, Σ, δ, δ q0, F) •
con δ : Q×Σ ×Σ
b
δ(p,c) = indefinido δ(q,b) = indefinido
Q
p
∪{s}, Σ, δ’, ∪{s} × Σ → Q∪ ∪{s} f. total AFDt N = (Q∪ δ q0, F) con δ’ : Q∪
M y N son equivalentes si L(M) = L(N)
Los AFDts y los AFDs son equivalentes: L(AFDt) = L(AFD)
[⊇ ⊇]
b
tal que
PROPOSICIÓN 1:
[⊆ ⊆]
q
a
Autómatas equivalentes
Dem:
c
a
L(M) = L(N)
a c
Todo AFDt es un AFD
s
Para cada AFD existe un AFDt (con un estado “trampa”) equivalente.
Tema 2: Lenguajes regulares
9
c
a
p
q b a,b,c
Tema 2: Lenguajes regulares
10
Autómata finito no determinista (AFND)
Ejemplo de AFND
• Definición formal: M = (Q, Σ, δ, q0, F) con δ : Q × Σ → ℘(Q ) • Función de transición extendida:
a q0
δ* : Q × Σ* → ℘(Q )
δ * ( q , ε ) = {q} y δ * ( q , ws ) =
a
U δ ( p, s ) p∈δ * ( q , w )
(q, w) ∈ Q × Σ *
•
Configuración:
•
Movimiento:
•
Lenguaje aceptado:
Tema 2: Lenguajes regulares
(p, s.w) |— (q, w) si y solo si q ∈δ(p, s) L(M) = { w∈Σ*: δ *(q0, w) ∩ F ≠∅ } 11
q1 q2
b c
δ(q0, a) = {q1, q2}
δ(q0, b) = ∅
δ(q0, c) = ∅
δ(q1, a) = ∅
δ(q1, b) = {q1}
δ(q1, c) = ∅
δ(q2, a) = ∅
δ(q2, b) = ∅
δ(q2, c) = {q2}
Tema 2: Lenguajes regulares
12
Gramáticas regulares a la derecha (GRD)
Relación entre AFND y AFD PROPOSICIÓN 2:
L(AFD) ⊆ L(AFND)
•
Elementos:
Los lenguajes reconocidos por los autómatas finitos deterministas son reconocidos por los autómatas finitos no deterministas. DEMOSTRACIÓN: Dado un AFD M = (Q, Σ, δ, q0, F), construimos el AFND
C o m p o n en te s N
c o n ju n to d e n o te rm in a le s
F u en te d e en tra d a
Σ
a lfab e to d e te rm in ale s
•
Elementos distinguidos para la inicialización: S∈ ∈N símbolo inicial
•
Ciclo-generativo: Búsqueda de subpalabra: lado izquierdo de una regla
M’ = (Q, Σ, γ, q0, F) con γ (q,s) = { δ(q,s) } ∀q∈Q, ∀s∈Σ
Acciones: sustituir por lado derecho.
Los autómatas M y M’ son equivalentes: L(M) = L(M’)
•
Pasos de la demostración:
con N∩ ∩Σ=∅ y S∈ ∈N
Definición formal: G = (N, ∑, S, P)
con P (conjunto de reglas o producciones) de la forma:
1)
γ*(q,x) = { δ*(q,x) } ∀q∈Q, ∀x∈Σ*
2)
x∈L(M) ⇔ x∈L(M’)
A → aB con A,B∈ ∈N, a∈ ∈∑
A→ε
Tema 2: Lenguajes regulares
13
Tema 2: Lenguajes regulares
14
Gramáticas regulares a la derecha (GRD) •
C o m p o n en te s fo r m a le s
C a te g o ria s
Ejemplo de GRD G = (N, ∑, S, P), con N = {S,A,B}, ∑ = {a,b,c} y siendo P el conjunto
Derivación:
de reglas:
δ 1 ⇒ δ 2 si y sólo si δ 1 = σ 1 A σ 2 , δ 2 = σ 1 βσ •
y A → β ∈P
S → aA | aB
Forma sentencial: *
α ∈ ( Σ ∪ N ) * tal que S ⇒ α G
•
2
B → cB | ε
Ejemplos de derivaciones:
*
(donde ⇒ denota 0 ó más pasos de ⇒ ) S ⇒ aA ⇒ abA ⇒ abbA ⇒ abb
Lenguaje generado por G:
S ⇒ aB ⇒ acB ⇒ ac
*
L (G ) = { w ∈ Σ * : S ⇒ w}
¿Lenguaje generado por G?
G
Tema 2: Lenguajes regulares
A → bA | ε
15
Tema 2: Lenguajes regulares
16
Gramáticas lineales a la derecha (GLD)
Relación entre GRD y GLD
Definición formal: G = (N, ∑, S, P) con N∩ ∩Σ=∅ y S∈ ∈N donde el conjunto P de reglas o producciones es de la forma: A → wB con A,B∈ ∈N, w∈ ∈∑+, u∈ ∈∑* A→u
Algoritmo que transforma una GLD en una GRD equivalente: ENTRADA: GLD G = (N, Σ, A0, P) GRD G’ = (N∪N’, Σ, A0, P’)
SALIDA:
→ awB (ó equiv. A→ → aw) con w ≠ ε se crea un Para cada A→ símbolo no terminal Z∈N’ y cambiamos la regla por 2 reglas:
PROPOSICIÓN 3:
A→ → aZ y Z→ → wB (ó equiv. Z→ → w)
Las GRDs y las GLDs son equivalentes: L(GRD) = L(GLD) Dem:
[⊆ ⊆]
Toda GRD es una GLD
[⊇]
Para cada GLD se construye una GRD equivalente,
Para cada A→ → a con a∈Σ ∈Σ se crea un símbolo no terminal Z∈N’ y cambiamos la regla por 2 reglas: A→ → aZ y Z→ →ε
mediante el siguiente algoritmo:
Continuar el proceso mientras haya reglas que reemplazar. Tema 2: Lenguajes regulares
17
Tema 2: Lenguajes regulares
Ejemplo: GLD a GRD
Relación entre GRD y AFD PROPOSICIÓN 4:
Ejemplo de transformación de una GLD en una GRD equivalente: ENTRADA:
SALIDA:
B→d|ε
Tema 2: Lenguajes regulares
DEMOSTRACIÓN: 1) Crear un algoritmo que produzca una GRD equivalente a un AFD M:
GRD G’ = ({A,B,C,D,E}, {a,b,c,d}, A, P’) siendo P’: A → aC
C → bcB C → bD
D → cB
B → dE | ε
E→ ε
L(AFD) ⊆ L(GRD)
Los lenguajes reconocidos por los autómatas finitos deterministas son generados por las gramáticas regulares a la derecha.
GLD G = ({A,B}, {a,b,c,d}, A, P) siendo P: A → abcB
18
•
ENTRADA: AFD M = (Q, Σ, δ, q0, F) con Q = {q0, q1, ..., qm}.
•
SALIDA:
GRD G = (N, Σ, A0, P)
2) Probar que M y G son equivalentes: L(M)=L(G). 19
Tema 2: Lenguajes regulares
20
2) Demostración formal de la equivalencia
1) Construcción del algoritmo •
Sea N = { A0, A1, ..., Am } donde Ai se corresponde con el estado qi
•
Sea P = { Ai → sAj : δ(qi, s) = qj } ∪ { Ai →ε : qi∈F }
•
La salida es G = (N, Σ, A0, P)
a) Demostramos por inducción sobre k≥0 la siguiente propiedad: (qi, x) |—k— (qj, ε) ⇔
a
Gramática obtenida:
a
b q1
b
x∈L(M) ⇔ (q0, x) |—k— (qf, ε) con qf ∈F ⇔
A0 → aA0 | bA1 | ε
A0⇒k xAf y Af ε ∈P ⇔ A0⇒k xAf ⇒x ⇔
A1 → aA1 | bA2
b q2
A0⇒k+1 x
A2 → aA2 | bA0
a Tema 2: Lenguajes regulares
21
⇔
x∈L(G)
Tema 2: Lenguajes regulares
Relación entre GRD y AFND PROPOSICIÓN 5:
( x∈∑* )
b) A partir de la propiedad anterior podemos demostrar la equivalencia:
Ejemplo: q0
Ai ⇒k xAj
22
Relaciones estudiadas
L(AFND) = L(GRD)
Los lenguajes reconocidos por los autómatas finitos no deterministas son generados por gramáticas regulares a la derecha. Y viceversa.
Repaso de las proposiciones vistas hasta ahora:
DEMOSTRACIÓN: L(AFND) ⊆ L(GRD) Similar a la demostración de la Proposición 2. L(GRD) ⊆ L(AFND) Dar la vuelta a la demostración anterior.
EJEMPLO:
a
q0 a Tema 2: Lenguajes regulares
q1 q2
b c
L(AFDt) =(1) L(AFD) ⊆ (2) L(AFND) =(5) L(GRD) =(3) L(GLD) ⊆ (4)
S → aA | aB A → bA | ε B → cB | ε 23
Tema 2: Lenguajes regulares
24