Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
LENGUAJES FORMALES Y AUTOMATAS
Departamento de Lenguajes y Sistemas InformaticosEscuela Tecnica Superior de Ingenierıa Informatica
Universidad de Sevilla
Vıctor J. Dıaz MadrigalJose Miguel Canete Valdeon
Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Temario
Leccion 1 Cadenas
Leccion 2 Lenguajes
Leccion 3 Expresiones Regulares
Leccion 4 Gramaticas Incontextuales
Leccion 5 Automatas Finitos
Leccion 6 Automatas de Pila
Leccion 7 La Jerarquıa de Chomsky
Leccion 8 Maquinas de Turing
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Cadenas
1. Alfabetos, sımbolos y cadenas
2. Operaciones sobre cadenas
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Alfabetos, sımbolos y cadenas
Alfabeto: Conjunto no vacıo y finito de elementos denominados sımbolos
Cadena: Secuencia finita de sımbolos procedentes de un alfabeto.
Cadena nula (vacıa): Aquella cadena que no contiene ningun sımbolo. Se denotamediante λ (o ε)
Ejemplos:
Alfabeto Cadenas
{a, b, c} λ, a, abc, ccccc, . . .
{0, 1} λ, 0, 010101, 10111111100001111, . . .
ASCII λ, sin(-1238E42+y), perro, program-nada-begin-end;, . . .
Notacion:
Alfabetos: Σ, Σ1
Sımbolos: a, b, c, . . .
Cadenas: . . ., u, v, w, x, y, z
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Operaciones sobre cadenas
La longitud o tamano |x| de una cadena x = a1 . . . an, se define como |x| = n.
La concatenacion x · y (o xy) de dos cadenas x = a1 . . . an e y = b1 . . . bm se definecomo xy = a1 . . . anb1 . . . bm
La potencia xi con i ≥ 0 de una cadena x se define mediante xi = xx ..i.. x
Ejemplos: Considerando las cadenas x = 101 e y = 11 definidas sobre {0, 1}
Longitud |0| = 1, |λ| = 0, |x| = 3
Concatenacion xy = 10111, yx = 11101
Potencia 02 = 00, (10)3 = 101010, x2 = 101101
Propiedades
xλ = λx = x (Elemento neutro) x0 = λ
x(yz) = (xy)z (Asociatividad) x1 = x
|xy| = |x|+ |y| xixj = xi+j con i, j ≥ 0
|xi| = i|x| con i ≥ 0
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Lenguajes
1. Definicion de lenguaje
2. Operaciones sobre lenguajes
3. Problemas fundamentales
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Definicion de lenguaje
Universo Σ∗ de un alfabeto Σ: Conjunto de todas las cadenas que se pueden formarcon los sımbolos de Σ
Lenguaje L(Σ) respecto de un alfabeto Σ (o simplemente L en el caso de que Σ sesobreentienda): Cualquier subconjunto del universo, es decir, L ⊆ Σ∗
Ejemplos de lenguajes sobre Σ = {0, 1}Lenguaje universal Σ∗ {λ, 0, 1, 00, 01, 10, 11, 000, 001, . . .}Lenguaje vacıo ∅={}Lenguaje de la cadena vacıa {λ}Cadenas que empiezan por 0 {0, 00, 01, 000, 001, 010, 011, . . .}Cadenas de longitud uno {0, 1}Cadenas con un numero par de 1s {λ, 11, 011, 101, 110, 0011, . . .}Cadenas palindromicas {λ, 11, 00, 010, 000, 101, 111, 0000, 1001, . . .}
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Operaciones sobre lenguajes: Operaciones basicas
Union: L1 ∪ L2 = {x |x ∈ L1 o x ∈ L2}Interseccion: L1 ∩ L2 = {x |x ∈ L1 y x ∈ L2}Diferencia: L1 − L2 = {x |x ∈ L1 y x /∈ L2}Complementario: L = ¬L = Σ∗ − L
Ejemplo: Sean L1 = {0, 1, 00} y L2 = {00, 01, 10} definidos sobre Σ = {0, 1}
L1 ∪ L2 = {0, 1, 00, 01, 10}L1 ∩ L2 = {00}L1 − L2 = {0, 1}¬L1 = {λ, 01, 10, 11, 000, 001, 010, 011, . . .}
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Operaciones sobre lenguajes: Basadas en la concatenacion
Concatenacion: L1 · L2 = L1L2 = {xy |x ∈ L1 e y ∈ L2}Potencia: Li = L · L ..i.. · L (con i ≥ 0)
Clausura o Cierre de Kleene: L∗ = L0 ∪ L1 ∪ L2 ∪ . . . =⋃∞
i=0 Li
Clausura o Cierre positivo: L+ = L1 ∪ L2 ∪ L3 ∪ . . . =⋃∞
i=1 Li
Ejemplo: Sean L1 = {0, 1, 00} y L2 = {00, 01, 10} definidos sobre Σ = {0, 1}
L1L2 = {000, 001, 010, 100, 101, 110, 0000, 0001, 0010}L2
1 = L1L1 = {00, 01, 000, 10, 11, 100, 001, 0000}L∗1 = {λ, 0, 1, 00, 01, 000, 10, 11, 100, ...}L+
1 = {0, 1, 00, 01, 000, 10, 11, 100, ...}
Propiedades
L{λ} = {λ}L = L (Elemento neutro) L0 = {λ}L∅ = ∅L = ∅ (Elemento nulo) L1 = L
L1(L2L3) = (L1L2)L3 (Asociatividad) L+ = LL∗ = L∗L
LiLj = Li+j con i, j ≥ 0
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Problemas fundamentales
Representacion de lenguajes: ¿Que notaciones son utiles para describir lenguajes(infinitos)?
Notacion Ejemplo Lenguaje
Conjuntos {anbncn |n ≥ 0} {λ, abc, aabbcc, aaabbbccc, . . .}Patrones 0+(10)* {0, 10, 1010, 101010, . . .}
Automatas {1, 001, 010, 111, 100101, . . .}Gramaticas S → aSb |λ {λ, ab, aabb, aaabbb, . . .}
Estudio de la pertenencia: ¿Esta incluida una cadena en el lenguaje descrito poruna cierta notacion?
Clasificacion de lenguajes: ¿Pueden ser representados todos los lenguajes conuna misma notacion?
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Expresiones regulares
1. Definicion de Expresion Regular (ExpReg)
2. Lenguaje de una expresion regular
3. Propiedades algebraicas
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Definicion de Expresion Regular (ExpReg)
Dado un alfabeto Σ, las expresiones regulares (expreg) se definen:
1. a ∈ Σ es una expresion regular
2. ∅ es una una expresion regular
3. λ es una una expresion regular
4. Si α y β son expresiones regulares, entonces
a) α + β es una expresion regular
b) α · β (o αβ) es una expresion regular.
c) α∗ es una expresion regular
d) (α) es una expresion regular
5. Ninguna otra expresion salvo las anteriores es una expresion regular
Ejemplos: Para Σ = {0, 1} tenemos las siguientes ExpRegs
0 1λ (0 + λ)11∗0 01 (∅+ 1)(1 + 0)∗0
Nota: La precedencia de los operadores es (de mas a menos): ∗, ·, +
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Lenguaje de una expresion regular
Lenguaje Una expresion regular E representa un lenguaje L(E). Los lenguajes repre-sentados por las expresiones regulares se denominan lenguajes regulares.
Denotamos la clase de los lenguajes regulares mediante LREG.
Relacion entre una ExpReg E y su lenguaje L(E)
L(a) = {a} L(α + β) = L(α) ∪ L(β)
L(∅) = ∅ L(αβ) = L(α)L(β)
L(λ) = {λ} L(α∗) = L(α)∗
L((α)) = L(α)
Ejemplos:L(0 + λ) = L(0) ∪ L(λ) = {0, λ}L(a(b + c)) = L(a)(L(b) ∪ L(c)) = {ab, ac}L(a∗) = L(a)∗ = {a}∗ = {λ, a, aa, aaa, . . .} = {an |n ≥ 0}L(aa∗) = L(a)L(a)∗ = {a}{λ, a, aa, aaa, . . .} = {a, aa, aaa, . . .} = {an |n ≥ 1}L((0 + 1)∗) = (L(0) ∪ L(1))∗ = {0, 1}∗ = {λ, 0, 1, 00, 01, 10, 11, 000, 0001, . . .}
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Propiedades algebraicas
Equivalencia Dos expresiones regulares E1 y E2 son equivalentes, E1 = E2, cuandoL(E1) = L(E2).
Propiedades de la union, concatenacion y cierre de Kleene
α + β = β + α
α + (β + γ) = (α + β) + γ
α + ∅ = ∅+ α = α
α + α = α
αλ = λα = α
α(βγ) = (αβ)γ
α∅ = ∅α = ∅
∅∗ = λ∗ = λ
αα∗ = α∗α
α∗α∗ = (α∗)∗ = α∗
α∗ = λ + αα∗
Propiedades distributivas
α(β + γ) = αβ + αγ
(α + β)γ = αγ + βγ
(αβ)∗α = α(βα)∗
(α∗β)∗ = (α + β)∗β + λ
(α + β)∗ =
(α∗ + β∗)∗
(α∗β∗)∗
(α∗β)∗α∗
Ejemplo:
λ∗a + b∗∗ba + b∗a = λa + b∗∗ba + b∗a
= a + b∗∗ba + b∗a
= a + b∗ba + b∗a
= a + bb∗a + b∗a
= (λ + bb∗)a + b∗a
= b∗a + b∗a
= b∗a
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Gramaticas independientes del contexto (GIC)
1. Definicion de GIC
2. Derivacion
3. Lenguaje de una GIC
4. Arbol sintactico
5. Ambiguedad
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Definicion de GIC: Definicion
Una gramatica independiente del contexto (o incontextual) GIC se define conuna tupla:
G = (VT , VN , S, P )
VT es el alfabeto de los sımbolos terminales (token, lexema)
VN es el alfabeto de los sımbolos no terminales (variable, categorıa)
Los alfabetos VT y VN son disjuntos. Denotamos V = VT ∪ VN
S ∈ VN es un no terminal distinguido denominado axioma (sımbolo inicial o raız)
P ⊆ VN × V ∗ es un conjunto finito de pares (A,α) denominados reglas o produc-ciones denotados A → α.
Ejemplos:
G0 = ({a, b}, {S,A, B}, S, {S → AB, A → aA,A → a,B → Bb,B → λ})G1 = ({a, b}, {S}, S, {S → aSb, S → λ})
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Definicion de GIC: Notacion
Salvo que se indique lo contrario usaremos el siguiente convenio en la notacion:
Un sımbolo en VT a, b, c, . . .
Un sımbolo en VN A,B, C, . . .
Un sımbolo en V . . . , X, Y, Z
Una secuencia en V ∗T . . . , x, y, z
Una secuencia en V ∗ α, β, γ, . . .
La cadena vacıa λ
Combinacion de A-reglas A → α1 | . . . |αk
Con estos convenios, la gramatica G1 = ({a, b}, {S}, S, {S → aSb, S → λ}) puede serdescrita de forma sucinta enumerando sus producciones:
G1 = {S → aSb |λ}
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Derivacion
Dada una GIC G = (VT , VN , S, P ) definimos:
Derivacion directa α ⇒G β cuando α = µAν, β = µγν y A → γ ∈ P
Derivacion (en al menos un paso) α ⇒+G β cuando existen α1, α2, . . . , αk con
k > 1 tales que: α = α1 ⇒G α2 . . . ⇒G αk = β
Derivacion (en cero o mas pasos) α ⇒∗G β cuando α = β o α ⇒+
G β
Forma sentencial a todo α ∈ V ∗ que verifica S ⇒∗G α
Sentencia a todo w ∈ V ∗T que verifica S ⇒∗
G w
Nota: Cuando se sobreentiende la gramatica G se usa la notacion ⇒, ⇒+ y ⇒∗.
Ejemplo: Dado G1 = {S → aSb |λ} tenemos que
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaabbb
S ⇒+ aSb aSb ⇒+ aaaSbbb
aSb ⇒∗ aSb aSb ⇒∗ aaaSbbb
Formas sentenciales: S, aaSbb, aaabbb
Sentencia: aaabbbb
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Lenguaje de una GIC
Lenguaje El lenguaje generado por una GIC G = (VT , VN , S, P ) se define mediante:
L(G) = {w ∈ V ∗T |S ⇒∗
G w}
Ejemplos
G0 = {S → AB,A → aA | a,B → Bb |λ} L(G0) = {anbm |n ≥ 1,m ≥ 0}G1 = {S → aSb, S → λ} L(G1) = {anbn |n ≥ 0}
Los lenguajes generados por las gramaticas GIC se denomina lenguajes incontex-tuales o independientes del contexto.
Denotaremos la clase de los lenguajes independientes del contexto con LIC.Teorema [LREG ⊂ LIC] La clase de los lenguajes regulares esta estrictamente conteni-da en la clase de los lenguajes independientes del contexto.
Equivalencia Dos gramaticas GIC G1 y G2 son equivalentes cuando L(G1) = L(G2)
Ejemplo: Las gramaticas G1, G′ y G′′ son equivalentes.
G1 ={
S → aSb |λ}
G′ =
S → A |λA → aBb
B → A |λ
G′′ =
S → aA |λA → Sb
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Arbol sintactico
El conjunto de los arboles sintacticos (de derivacion, o de analisis) de una GICG = (VT , VN , S, P ) incluye aquellos arboles que cumplen que:
Sus nodos interiores estan etiquetados con sımbolos no terminales
Sus nodos hojas estan etiquetados con sımbolos en V o con λ.
Si un nodo interior esta etiquetado con A y sus k ≥ 0 hijos (ordenados de izquierda aderecha) estan etiquetados con X1, X2, . . . , Xk ∈ V entonces A → X1X2 . . . Xk ∈ P .
G =
S → AcB | cA → aA |λB → bS | b
Toda derivacion X ⇒∗G w tiene asociado un unico arbol sintactico (pero no al contrario).
Derivacion por la izquierda S ⇒ AcB ⇒ aAcB ⇒ acB ⇒ acbS ⇒ acbc
Derivacion por la derecha S ⇒ AcB ⇒ AcbS ⇒ Acbc ⇒ aAcbc ⇒ acbc
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Ambiguedad: Definicion
Decimos que una GIC G = (VT , VN , S, P ) es ambigua si existe al menos una cadenaw ∈ L(G) que tiene dos o mas arboles sintacticos distintos.
Ejemplo: Sea la gramatica G = ({+, ∗, num}, {E}, E, {E → E + E |E ∗ E |num}).La cadena num + num + num muestra que G es ambigua puesto que:
Denominamos lenguaje ambiguo a aquel que puede ser generado por una gramaticaambigua. Decimos que un lenguaje es inherentemente ambiguo si toda gramatica quegenera dicho lenguaje es ambigua.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Ambiguedad: Gramatica de la calculadora
Existen heurısticas que permiten, en determinados casos, transformar una gramaticaambigua en otra equivalente que no lo es.
Ambigua (Precedencia y Asociatividad)
G = ({num,+, ∗, (, )}, {E}, E, P )
P = {E → E + E |E ∗ E | (E) |num}
Version no ambigua
G′ = ({num,+,−, (, )}, {E, T, F}, E, P ′)
P ′ =
E → E + T |TT → T ∗ F |FF → (E) |num
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automatas Finitos (AF)
1. Automatas finitos deterministas (AFD)
2. Automatas finitos no deterministas (AFND)
3. Automatas finitos no deterministas con λ-transiciones (λ-AFND)
4. La clase de los lenguajes aceptados por los automatas finitos
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automatas Finitos Deterministas (AFD): Definicion
Un automata finito determinista AFD es una tupla M = (Σ, Q, q0, F, δ) donde
Σ es el alfabeto de la entrada
Q es un conjunto finito de elementos denominados estados
q0 ∈ Q es el estado inicial
F ⊆ Q es el conjunto de estados finales o de aceptacion
δ : Q× Σ → Q es la funcion de transicion
Ejemplo: M0 = ({0, 1}, {q0, q1}, q0, {q0}, δ) donde
δ(q0, 0) = q0 δ(q0, 1) = q1
δ(q1, 0) = q1 δ(q1, 1) = q0
Tabla de transicion
M0 0 1
→ ∗q0 q0 q1
q1 q1 q0
Diagrama (Grafo) de transicion
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AFD: Lenguaje
Lenguaje L(M) aceptado por un AFD: Dado un AFD M = (Σ, Q, q0, F, δ)
L(M) = {w ∈ Σ∗ | δ∗(q0, w) ∈ F}donde δ∗ : Q× Σ∗ → Q es la extension de δ a cadenas definida mediante:
δ∗(q, λ) = q
δ∗(q, aw) = δ∗(δ(q, a), w)para todo q ∈ Q y a ∈ Σ
Ejemplo: L(M0) lo forman las cadenas de 0s y 1s que contienen un numero par de 1s
0101 ∈ L(M0) δ∗(q0, 0101) = q0 ∈ F q00→ q0
1→ q10→ q1
1→ q0
100 /∈ L(M0) δ∗(q0, 100) = q1 /∈ F q01→ q1
0→ q10→ q1
Equivalencia: Dos AFDs M ′ y M ′′ son equivalentes si y solo si L(M ′) = L(M ′′)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automatas Finitos No Deterministas (AFND): Definicion
Un automata finito no determinista AFND es una tupla M = (Σ, Q, q0, F, δ) similara un AFD salvo que δ : Q× Σ → ℘(Q)
Ejemplo: M1 = ({0, 1}, {q0, q1, q2}, q0, {q2}, δ) donde
δ(q0, 0) = {q0, q1} δ(q0, 1) = {q0}δ(q1, 0) = ∅ δ(q1, 1) = {q2}δ(q2, 0) = ∅ δ(q2, 1) = ∅
Nota: La ejecucion del automata se detiene ante transiciones que conducen a ∅.
Tabla de transicion
M1 0 1
→ q0 q0, q1 q0
q1 q2
∗q2
Diagrama (Grafo) de transicion
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AFND: Lenguaje
Lenguaje L(M) aceptado por un AFND: Dado un AFND M = (Σ, Q, q0, F, δ)
L(M) = {w ∈ Σ∗ | δ∗(q0, w) ∩ F 6= ∅}
donde δ∗ : Q× Σ∗ → ℘(Q) es la extension de δ a cadenas definida
δ∗(q, λ) = {q}δ∗(q, wa) =
⋃p∈δ∗(q,w) δ(p, a)
para todo q ∈ Q y a ∈ Σ
Ejemplo: L(M1) lo forman las cadenas de 0s y 1s que acaban en 01
10101 ∈ L(M1) δ∗(q0, 10101) = {q0, q2}10 /∈ L(M1) δ∗(q0, 10) = {q0, q1}
Equivalencia: Dos AFNDs M ′ y M ′′ son equivalentes si y solo si L(M ′) = L(M ′′)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AFND con λ-transiciones (λ-AFND): Definicion
Un automata finito no determinista con transiciones nulas λ-AFND es una tuplaM = (Σ, Q, q0, F, δ) similar a un AFND salvo que δ : Q× (Σ ∪ {λ}) → ℘(Q)
Ejemplo: M2 = ({0, 1}, {q0, q1, q2}, q0, {q2}, δ) donde
δ(q0, 0) = {q1} δ(q0, 1) = ∅ δ(q0, λ) = {q1}δ(q1, 0) = ∅ δ(q1, 1) = {q1, q2} δ(q1, λ) = ∅δ(q2, 0) = ∅ δ(q2, 1) = ∅ δ(q2, λ) = {q0}
Nota: La ejecucion del automata se detiene ante transiciones que conducen a ∅.Tabla de transicion
M2 0 1 λ
→ q0 q1 q1
q1 q1, q2
∗q2 q0
Diagrama (Grafo) de transicion
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
λ-AFND: Cierre λ∗
Dado un λ-AFND M = (Σ, Q, q0, F, δ) se define λ∗(S) con S ⊆ Q como el menor conjuntoque verifica:
1. si q ∈ S entonces q ∈ λ∗(S)
2. si q ∈ λ∗(S) entonces δ(q, λ) ⊆ λ∗(S)
Ejemplo: Dado el λ-AFND M2
λ∗({q0}) = {q0, q1}λ∗({q1}) = {q1}λ∗({q2}) = {q0, q1, q2}λ∗({q1, q2}) = λ∗({q1}) ∪ λ∗({q2}) = {q0, q1, q2}
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
λ-AFND: Lenguaje
Lenguaje L(M) aceptado por un λ-AFND: Dado un λ-AFND M = (Σ, Q, q0, F, δ)
L(M) = {w ∈ Σ∗ | δ∗(q0, w) ∩ F 6= ∅}donde δ∗ : Q× Σ∗ → ℘(Q) es la extension de δ a cadenas definida
δ∗(q, λ) = λ∗({q})δ∗(q, wa) = λ∗(
⋃p∈δ∗(q,w) δ(p, a))
para todo q ∈ Q y a ∈ Σ
Ejemplo: L(M2) lo forman cadenas constituidas por secuencias no vacıas de 1s precedidosopcionalmente por un 0.
0101 ∈ L(M1) δ∗(q0, 0101) = {q0, q1, q2}010 /∈ L(M1) δ∗(q0, 010) = {q1}
Equivalencia: Dos λ-AFNDs M ′ y M ′′ son equivalentes si y solo si L(M ′) = L(M ′′)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
La clase de los lenguajes aceptados por los AFs
Teorema Dado L ⊆ Σ∗, las siguientes tres afirmaciones son equivalentes:
L es aceptado por un AFD
L es aceptado por un AFND
L es aceptado por un λ-AFND
Teorema: La clase LAF de lenguajes aceptados por los AFs es identica a la clase LREGde los lenguajes descritos mediante expresiones regulares.
Ejemplo: Para el lenguaje {a, ab} tenemos:
a + ab
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automatas de Pila (AP)
1. Automata de Pila (AP)
2. Automata de Pila Determinista (APD)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automata de Pila (AP): Definicion
Un automata de pila AP es una tupla M = (Σ, Γ, Z0, Q, q0, F, δ) donde
Σ es el alfabeto de la entrada
Γ es el alfabeto de los sımbolos de la pila
Z0 ∈ Γ− Σ es la marca de la pila (se usa para determinar su fondo)
Q conjunto finito de estados (q0 ∈ Q es el inicial y F ⊆ Q los finales)
δ : Q× (Σ ∪ {λ})× Γ → ℘fin(Q× Γ∗) es la funcion parcial de transicion
Ejemplo: M1 = ({a, b}, {a, b, Z0}, Z0, {p, q, f}, p, {f}, δ) donde
δ(p, a, Z0) = {(p, aZ0)} δ(p, a, a) = {(p, aa)} δ(p, b, a) = {(q, λ)}δ(q, b, a) = {(q, λ)} δ(q, λ, Z0) = {(f, λ)}
Nota: Las transiciones no definidas indican que el automata se detiene.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AP: Configuracion, movimiento y computacion
Dado un AP M = (Σ, Γ, Z0, Q, q0, F, δ) definimos:Configuracion: Tupla de la forma (q, x, α) con q ∈ Q, x ∈ Σ∗ y α ∈ Γ∗
Movimiento `M : Cambio de configuracion en el automata
(q, aw, Aγ) `M (p, w, βγ) si (p, β) ∈ δ(q, a, A) con a ∈ Σ ∪ {λ}
Computacion `∗M : Secuencia de cero o mas movimientos. Dadas dos configuracionesC y D, se cumple C `∗M D cuando
C = D o existen c1, c2, . . . , ck con k > 1 tales que: C = c1 `M c2 . . . `M ck = D
Nota: Cuando el AP M se sobreentiende se usa la notacion ` y `∗
(p, aabb, Z0) `M1 (p, abb, aZ0) `M1 (p, bb, aaZ0) `M1 (q, b, aZ0) `M1 (q, λ, Z0) `M1 (q, λ, λ)
(p, abb, aZ0) `∗M1(p, abb, aZ0)
(p, abb, aZ0) `∗M1(q, b, aZ0)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AP: Lenguajes aceptados
Dado un AP M = (Σ, Γ, Z0, Q, q0, F, δ) definimos:
Por pila vacıa: LV (M) = {w ∈ Σ∗ | (q0, w, Z0) `∗M (q, λ, λ) con q ∈ Q}Por estado final: LF (M) = {w ∈ Σ∗ | (q0, w, Z0) `∗M (qf , λ, α) con α ∈ Γ∗, qf ∈ F}Ejemplos:
LV = LF = {anbn |n > 0}
LV = ∅ y LF = a∗
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AP: Indeterminismo
El AP de la figura es no determinista y reconoce el lenguaje wwR con w ∈ (0 + 1)∗. Elindeterminismo se debe a que el AP ignora cuando comienza el sufijo wR. De forma que
o bien sigue en el estado p indicando que no se ha leido el primer sımbolo de wR
o bien cambia al estado q indicando que ha leido el primer sımbolo de wR.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
AP: La clase LAPTeorema: La clase de lenguajes aceptados por los AP con aceptacion por estado finales la misma que la clase de los lenguajes aceptados por los AP con aceptacion por pilavacıa. Denotaremos a dicha clase mediante LAP.
Teorema: La clase LAP es identica a la clase LIC de los lenguajes generados por lasgramaticas independientes del contexto.
Ejemplo: Para el lenguaje am+nbn con n,m > 0 tenemos:
G =
S → AI
A → aA | aI → aIb | ab
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Automata de Pila Determinista (APD): Definicion
Un automata de pila determinista APD es una AP M = (Σ,Γ, Z0, Q, q0, F, δ) talque para cada q ∈ Q, a ∈ Σ y X ∈ Γ se cumple |δ(q, a, X)|+ |δ(q, λ, X)| ≤ 1
Ejemplo: El siguiente APD reconoce el lenguaje wcwR donde w ∈ {0, 1}∗.
Estado Entrada Pila
p 01c10 Z0
p 1c10 0Z0
p c10 10Z0
q 10 10Z0
q 0 0Z0
q λ Z0
f λ λ
Se denominan lenguajes independientes del contexto deterministas a aquelloslenguajes independientes del contexto que son aceptados por algun APD. Denotamosmediante LICD la clase de los lenguajes independientes del contexto deterministas.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
APD: La clase LAPD(F)
Denotamos mediante LAPD(F) la clase de los lenguajes aceptados por los APD conaceptacion por estado final.
Teorema: [LAF ⊂ LAPD(F)] Si un lenguaje es aceptado por un AF entonces dicholenguaje es aceptado por un APD con aceptacion por estado final.
(Basta con anadir Z0/Z0 a cada una de las transiciones del AFD)
Teorema: [LAPD(F) ⊂ LAP] Si un lenguaje es aceptado por un APD con aceptacionpor estado final entonces dicho lenguaje es aceptado por un AP.
(Lo contrario no es cierto, puesto que el lenguaje wwR, con w ∈ {0, 1}∗, no puede seraceptado mediante un APD debido a la imposibilidad de saber a priori en que momentodebe empezar el reconocimiento del sufijo wR)
Nota: A pesar de que el automata es no determinista, podemos encontrar una gramaticano ambigua para generar dicho lenguaje: G = ({0, 1}, {S}, S, {S → 1S1 | 0S0 |λ})
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
APD: La clase LAPD(V)
Denotamos mediante LAPD(V) la clase de los lenguajes aceptados por los APD conaceptacion por pila vacıa.
Teorema Dado L ⊆ Σ∗, las siguientes dos afirmaciones son equivalentes:
1. L es aceptado por un APD por pila vacıa
2. L es aceptado por un APD por estado final y L cumple la propiedad del prefijo
(Un lenguaje L cumple la propiedad del prefijo (PREF) si no existen dos cadenas dis-tintas x, y ∈ L tales que x es un prefijo de y)
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Jerarquıa de Chomsky
1. Clasificacion de gramaticas
2. Clasificacion de lenguajes
3. Gramaticas regulares
4. Gramaticas independientes del contexto
5. Gramaticas dependientes del contexto
6. Gramaticas sin restricciones
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Clasificacion de gramaticas
Chomsky generaliza el concepto de gramatica G = (VT , VN , S, P ) y propone una clasifi-cacion (jerarquıa) segun la forma que deben tener sus producciones:
Regulares (GREG)Por la izquierda: A → Ba A → a
Por la derecha: A → aB A → a
Independientes del contexto (GIC) A → v
Dependientes del contexto (GDC) αAβ → v con |αAβ| ≤ |v|Con estructura de frase (GEF) αAβ → γ
donde A,B ∈ VN , a ∈ VT , α, β, γ ∈ V ∗ y v ∈ V +
Para cubrir el caso de la generacion de λ en todos los tipos de gramaticas, se admite lainclusion de la regla S → λ en GREGs, GICs y GDCs.
Se verifica:
El conjunto de las gramaticas GRs esta estrictamente contenido en el de las GICs.
El conjunto de las gramaticas GICs esta estrictamente contenido en el de las GDCs.
El conjunto de las gramaticas GDCs esta estrictamente contenido en el de las GEFs.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Clasificacion de lenguajes
La jerarquıa de Chomsky implica a su vez una jerarquıa de lenguajes.
Las gramaticas GREGs por la derecha o izquierda generan la misma clase de lengua-jes LREG denominados regulares. Esta clase coincide con la de los lenguajes acep-tados por los automatas finitos y la de los lenguajes descritos mediante expresionesregulares.
Las GICs generan la clase LIC de los lenguajes independientes del contexto.Esta clase coincide con la de los lenguajes aceptados por los automatas de pila.
Las GDCs generan la clase LDC de los lenguajes dependientes del contexto.
Las GEFs generan la clase LEF de los lenguajes con estructura de frases. Estaclase de lenguajes coincide con la de los lenguajes aceptados por las maquinas deTuring.
Se verifica LREG ⊂ LIC ⊂ LDC ⊂ LEF
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Gramaticas regulares
Ejemplo: Las dos gramaticas Gr y Gl generan el lenguaje regular 11∗00∗
Regular por la derecha Regular por la izquierda
Gr =
S → 1A
A → 1A | 0B | 0B → 0B | 0
Gl =
S → C0
C → C0 |D1 | 1D → D1 | 1
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Gramaticas independientes del contexto
Ejemplo: Las dos gramaticas G1 y G2 generan el lenguaje independiente del contexto0n1n2m con n,m ≥ 0.
GIC en formato no estricto GIC en formato estricto
G1 =
S → AB
A → 0A1 |λB → 2B |λ
G2 =
S → AB |A |B |λA → 0A1 | 01
B → 2B | 2Podemos observar que la gramatica G1 no es una GIC en sentido estricito ( incluye reglasnulas asociadas a sımbolos que no son el axioma). Admitiremos, sin embargo, que es unaGIC debido al siguiente teorema.
Teorema Si todas las reglas de una gramatica G son de la forma A → γ con A ∈ VN yγ ∈ V ∗, entonces podemos obtener otra gramatica GIC equivalente a G.
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Gramaticas dependientes del contexto
Ejemplo: Sea la GDC G = ({a, b, c}, {S,M}, S, P ) donde
P =
S → aMc | aSMc
cM → Mc
aM → ab
bM → bb
La gramatica G genera el lenguaje dependiente del contexto anbncn con n > 0. Unejemplo de derivacion serıa:
S ⇒ aSMc ⇒ aaSMcMc
⇒ aaaMcMcMc ⇒ aaaMMccMc ⇒ aaaMMcMcc ⇒ aaaMMMccc
⇒ aaabMMccc ⇒ aaabbMccc ⇒ aaabbbccc
Teorema Toda gramatica GDC G pueden ser convertida en otra gramatica equivalenteG′ donde todas las reglas de G′ son la forma αAβ → αvβ o S → λ con A ∈ VN , v ∈ V +
y α, β ∈ V ∗. Es decir, reglas en donde A se sustituye por v en el contexto (α, β).
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Gramaticas con estructura de frases
Las gramaticas GEFs se caracterizan frente al resto (dejando aparte el caso S → λ) enque admite reglas compresoras. Una regla compresora es aquella regla que cumple queel tamano de su lado derecho es menor que el tamano de su lado izquierdo.
Ejemplo: Sea la GEF G = ({a, b, c}, {S,M}, S, P ) donde
P =
S → abMSc |λbMc → bc
bMa → abM
bMb → bbM
La gramatica G genera el lenguaje anbncn con n ≥ 0. Un ejemplo de derivacion serıa:
S ⇒ abMSc ⇒ abMabMScc ⇒ abMabMcc ⇒ abMabcc ⇒ aabMbcc ⇒ aabbMcc ⇒ aabbcc
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Maquinas de Turing
1. Modelo basico de una Maquina de Turing
2. Maquinas de Turing y computadoras
3. Lenguajes aceptados por una Maquina de Turing
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Modelo basico de una MT: Componentes
Una maquina de Turing (MT) es una tupla M = (Γ, Σ,4, Q, q0, F, δ) donde
Γ es el alfabeto de la cinta infinita por ambos lados.
Σ ⊂ Γ es el alfabeto de la entrada
4 ∈ Γ (4 /∈ Σ) es el sımbolo espacio en blanco.
Q conjunto finito de estados (q0 ∈ Q es el inicial y F ⊆ Q los finales)
δ : Q× Γ → Q× Γ× {I, D} es la funcion parcial de transicion (I y D indican sitras la lectura el movimiento es a la izquierda o a la derecha)
Ejemplo: M1 = ({a, b,4}, {a, b},4, {q0, q1}, q0, {q1}, δ) donde
δ(q0, a) = (q0, a, D) δ(q0, b) = (q0, a,D) δ(q0,4) = (q1,4, I)
Tabla de transicion
M1 a b 4→ q0 q0aD q0aD q14I
∗q1
Diagrama (Grafo) de transicion
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Modelo basico de una MT: Movimientos
Dada una MT M = (Γ,Σ,4, Q, q0, F, δ) se define
Configuracion X1 . . . Xi−1qXi . . . Xn con X1, . . . Xn ∈ Γ y q ∈ Q, indica que M esta enel estado q, que el puntero de lectura se encuentra situado sobre la casilla que contieneel sımbolo Xi, y que todas las casilla a la izquierda (derecha) del sımbolo X1 (Xn)contienen 4.
Movimiento `M : Cambio de configuracion en el automata. Hay dos alternativas de-pendiendo del sentido del movimiento indicado por las directivas I o D
Izquierdo: X1 . . . Xi−1qXi . . . Xn `M X1 . . . pXi−1Y . . . Xn si δ(q, Xi) = (p, Y, I)
Derecho: X1 . . . Xi−1qXi . . . Xn `M X1 . . . Xi−1Y p . . . Xn si δ(q, Xi) = (p, Y, D)
Computacion `∗M : Secuencia de cero o mas movimientos.
Nota: Cuando la MT M se sobreentiende se usa la notacion ` y `∗
q0aaba `M1 aq0aba `M1 aaq0ba `M1 aaaq0a `M1 aaaaq04 `M1 aaaq1a
aq0aba `∗M1aq0aba q0aaba `∗M1
aaaq1a
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Maquinas de Turing y computadoras
Una funcion de cadena es Turing computable si existe una MT M = (Γ, Σ,4, Q, q0, F, δ)para la que q0w `∗M qfu para algun qf ∈ F , cuando f(w) = u donde u, v ∈ Σ∗.
Ejemplo: Supongamos que representamos un entero positivo n mediante una cadenaan. La siguiente MT calcula la funcion f(n,m) = n + m teniendo en cuenta que f
sera representada mediante la transformacion de anbam en an+mb.
M a b 4→ q0 q0aD q1aD
q1 q1aD q24I
q2 q3bI
q3 q3aI q44D
∗q4
q0abaa ` aq0baa ` aaq1aa ` aaaq1a ` aaaaq14` aaaq2a ` aaq3ab ` aq3aab ` q3aaab ` q34aaab ` q4aaab
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Lenguajes aceptados por una MT: Definicion
Lenguaje L(M) aceptado por una MT: Dado un MT M = (Γ,Σ,4, Q, q0, F, δ)
L(M) = {w ∈ Σ∗ | q0w `∗M αqfβ con α, β ∈ Γ∗ y qf ∈ F}
Ejemplo: L(M) acepta el lenguaje an con n ≥ 0.
M a 4→ q0 q0aD q14D
∗q1
q0aa ` aq0a ` aaq04 ` aa4q14
Nota: Asumimos que no existen transiciones desde ningun estado de aceptacion.
Los lenguajes aceptados por las MT se denominan lenguajes recursivamente enu-merables. Denotamos mediante LR.E . a la clase de los lenguajes recursivamenteenumerables.
Equivalencia: Decimos que dos MT M1 y M2 son equivalentes cuando L(M1) = L(M2).
LFA, Curso 2006/2007
Vıctor J. Dıaz Madrigal y Jose Miguel Canete
Lenguajes aceptados por una MT: La parada
Parada Decimos que una MT M = (Γ,Σ,4, Q, q0, F, δ) para si alcanza un p ∈ Q ysenala a un X ∈ Γ para el que no esta definido δ(p,X).
Una MT no tiene porque pararse ante todas las cadenas de entrada. Por ejemplo, la MTM acepta el lenguaje {a, b} y solo se para con las cadenas λ, a y b del lenguaje (a + b)∗.
M a b 4→ q0 q1aD q1bD
q1 q0aI q0bI q24D
∗q2
q0a ` aq14 ` a4q24q0ab ` aq1b ` q0ab ` aq1b ` . . .
Los lenguajes aceptados por una MT que paran ante cualquier cadena de entrada(pertenezca o no al lenguaje) se denominan lenguajes recursivos. Denotamos la clasede los lenguajes recursivos mediante LREC.Teorema [LDC ⊂ LREC]. La clase LDC de los lenguajes dependientes del contextoesta contenida de forma estricta en la clase de los lenguajes recursivos.
LFA, Curso 2006/2007