lenguajes formales y automatas¶ - us

53
LENGUAJES FORMALES Y AUT ´ OMATAS Departamento de Lenguajes y Sistemas Inform´aticos Escuela T´ ecnica Superior de Ingenier´ ıaInform´atica Universidad de Sevilla ıctor J. D´ ıaz Madrigal Jos´ e Miguel Ca˜ nete Valde´ on Curso 2006/2007

Upload: others

Post on 01-Oct-2021

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 2: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 3: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 4: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 5: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 6: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 7: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 8: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 9: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 10: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 11: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 12: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 13: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 14: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 15: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 16: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 17: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 18: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 19: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 20: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 21: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 22: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 23: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 24: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 25: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 26: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 27: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 28: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 29: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 30: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 31: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 32: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 33: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 34: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 35: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 36: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 37: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 38: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 39: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 40: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 41: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 42: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 43: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 44: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 45: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 46: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 47: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 48: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 49: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 50: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 51: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 52: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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

Page 53: LENGUAJES FORMALES Y AUTOMATAS¶ - us

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