Teoría de Automatas, Lenguajes Formales y Gramáticas. D. Castro Esteban



Documentos relacionados
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Autómatas finitos no deterministas (AFnD)

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Lenguajes Regulares. Antonio Falcó. - p. 1

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Serafín Moral Departamento de Ciencias de la Computación. Modelos de Computación ITema 2: Autómatas Finitos p.1/88

TEMA II TEORÍA INTUITIVA DE CONJUNTOS

2: Autómatas finitos y lenguajes regulares.

Tema 2. Grupos. 3. El conjunto de matrices de orden 2 con coeficientes enteros (o reales) con la suma es un grupo conmutativo.

Autómatas y Lenguajes Formales. Tema 3.2: Autómatas Finitos No Deterministas. Luis Peña luis.pena@urjc.es

Definición formal de autómatas finitos deterministas AFD

Cardinalidad. Teorema 0.3 Todo conjunto infinito contiene un subconjunto infinito numerable.

Tema 2: Autómatas finitos

Clase 09: AFN, AFD y Construcción de Thompson

Expresiones Regulares y Derivadas Formales

Introducción a Autómatas Finitos

TEMA 5. GRAMÁTICAS REGULARES.

El cuerpo de los números reales

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

Tema 3: Conjuntos y Funciones

Estructuras algebraicas

AUTÓMATAS DE PILA. Nota: Si existe transición de tipo (2), sólo se garantiza que AP es determinístico si s A, δ( e i, s, X) está indefinida.

Autómatas Finitos y Lenguajes Regulares

Propiedades de los Lenguajes Libres de Contexto

A partir de la definición obtenemos las siguientes propiedades para estas funciones:

Tema 4 Probabilidad condicionada: teoremas básicos. Independencia de sucesos

Conjuntos y relaciones

Lenguajes No Regulares

Apuntes de Matemática Discreta 2. Operaciones con Conjuntos

Dependencia e independencia lineal

Espacio de Funciones Medibles

Máquinas Secuenciales, Autómatas y Lenguajes Tema 5: Propiedades de los Lenguajes Regulares. Luis Peña

Conjuntos finitos y conjuntos numerables

Proyecto Unico - Parte 1 - Solución

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

Lenguaje Regular. Sumario. Lenguaje Regular. Autómatas y Lenguajes Formales. Capítulo 8: Propiedades de los Lenguajes Regulares

Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto:

Clase 08: Autómatas finitos

Máquinas de estado finito y expresiones regulares

Víctor J. Díaz Madrigal y Fernando Enríquez de Salamanca Ros. 2.1 Límites de los lenguajes regulares Teorema de Myhill-Nerode Lema del bombeo

Introducción a la Teoría de Autómatas, Lenguajes y Computación

NOTAS DE TRABAJO, 29 ÁLGEBRA Y ESTRUCTURAS DISCRETAS

Espacios vectoriales

Propiedades de los Lenguajes Libres de Contexto

4. " $#%&' (#) para todo $#* (desigualdad triangular).

CONJUNTOS. Consideremos, por ejemplo, los siguientes conjuntos:

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

En las figuras anteriores vemos algunos casos (no todos) que pueden presentarse al pasar por un punto x 0. (en este caso, para x 0 =2)

Autómatas de Estados Finitos

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

Reglas de derivación Sumas, productos y cocientes. Tema 4

2 Autómatas finitos y gramáticas regulares.

2 Autómatas finitos y gramáticas regulares.

Clase 25/09/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf

Topología de R n. Beatriz Porras

Repaso. Lenguajes formales

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

Lógica Proposicional y Teoría de Conjuntos

1. Si están situados en rectas paralelas: la recta que une los orígenes, deja sus extremos en un mismo semiplano.

Números naturales, principio de inducción

Conjuntos Un conjunto es una colección de objetos. A cada uno de esos objetos se llama elemento del conjunto.

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

si este límite es finito, y en este caso decimos que f es integrable (impropia)

3. Autómatas Finitos. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Teoría de Autómatas, Lenguajes Formales y Gramáticas. David Castro Esteban

Teoría de Conjuntos. Conjunto es: colección de cosas, o una colección determinada de objetos.

Un poco sobre Teoría de Conjuntos

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR. Ciencias de la ingeniería

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez

Límites en el infinito, funciones divergentes

NOTAS DEL CURSO MATEMÁTICA DISCRETA. Pascual Jara Martínez. Departamento de Álgebra. Universidad de Granada

Propiedades de lenguajes independientes del contexto

Matrices y Determinantes.

Conceptos básicos de la matemática

Producto cartesiano. X Y = {(x, y) : x X, y Y }. Ejemplo En el tablero de ajedrez, X = números del 1-8, Y = letras de A-H.

Introducción a la Teoría de Automátas

Autómatas Deterministas. Ivan Olmos Pineda

Taller matemático. Razonamiento. Cristóbal Pareja Flores antares.sip.ucm.es/cpareja Facultad de Estadística Universidad Complutense de Madrid

Máquinas de Turing Definición y descripción

Topología de la Recta

Expresiones regulares, gramáticas regulares

TEORÍA DE AUTÓMATAS I Informática de Sistemas

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

La Jerarquía de Chomsky

Divisibilidad y congruencias

2.Teoría de Autómatas

Minimización de Aútomatas Finitos

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Curso Básico de Computación

Propiedades de Lenguajes Regulares

Conjuntos, Aplicaciones y Relaciones

Equivalencia Entre PDA y CFL

UNIDAD 5 : ESTRUCTURAS ALGEBRAICAS

DESARROLLO DE UN ENTORNO DE SIMULACIÓN PARA AUTÓMATAS DETERMINISTAS CAROLINA GONZÁLEZ NARANJO CÉSAR AUGUSTO MONTOYA ROMÁN

Operaciones con matrices

Tema 3 Conjuntos, Relaciones y Funciones.

Transcripción:

Teoría de Automatas, Lenguajes Formales y Gramáticas D. Castro Esteban

T E X & LAT E X

Contenidos 1 Autómatas finitos Autómatas finitos deterministas Autómatas finitos no deterministas Autómatas finitos no deterministas 1 Gramáticas regulares Expresiones y gramáticas regulares Autómatas finitos y gramáticas regulares Autómatas y expresiones regulares 1 Propiedades de los lenguajes regulares Lenguajes no regulares Propiedades de clausura Propiedades de decisión Equivalencia y minimización 1 Autómatas a pila Definiciones básicas Autómatas a pila deterministas

Autómatas finitos deterministas Definición Un autómata finito determinista es una tupla D = (K,Σ,δ,s,F) donde: K es un conjunto (finito) de estados, Σ es un alfabeto (finito), δ : K Σ K es la función de transición, s K es el estado inicial, y F K es el conjunto de los estados aceptadores.

Autómatas finitos deterministas Ejemplo Consideramos A = (K,Σ,δ,s,F), donde K := {s,q 1,q 2 }, Σ := {0,1}, F := {q 2 } y la función de transición δ se describe mediante la tabla de transiciones: 0 1 s q 1 s q 1 q 1 q 2 q 2 q 2 q 2 La flecha indica el estado inicial y el asterisco indica el estado final. El autómata acepta las cadenas que contienen la secuencia 01.

Configuración y paso de computación Definición (Configuración, AFD) Dado un autómata finito determinista D = (K,σ,δ,s,F), llamaremos configuración a toda tupla (q,w) K Σ. Definición (Paso de computación, AFD) Sea D = (K,Σ,δ,s,F) un autómata finito determinista y sean (q,w) y (q,w ) dos configuraciones del mismo. Diremos que la configuración (q,w ) se sigue de (q,w) en un paso de computación, denotado mediante (q,w) D (q,w ), si existe σ Σ tal que δ(q,σ) = q y w = σw. (q,w) D (q,w ) denota cero o más pasos de computación.

Lenguaje de un AFD Definición (Lenguaje de un AFD) Dado un autómata finito determinista D = (K,Σ,δ,s,F), se define el lenguaje aceptado por el autómata, denotado L(D), como: L(D) := {ω Σ : (s,ω) D (f,ε), con f F}. Los lenguajes que son aceptado por un autómata finito determinista se llaman regulares.

Representación de AFD L os AFD se representan, normalmente mediante su diagramas de transición. En ella se representa el autómata mediante un grafo orientado sujeto a las siguientes consideraciones: cada nodo del grafo se corresponde con un estado del autómata, dos nodos p y q están unidos mediante un arco dirigido de p a q si y sólo si existe σ Σ, tal que δ(p,σ) = q; dicho arco se etiqueta con el símbolo σ; si existen diversos símbolos σ 1,...,σ n Σ, el arco se etiqueta con σ 1,...,σ n, los nodos correspondientes a estados aceptadores se representan mediante una doble circunferencia, y al nodo correspondiente al estado inicial llega una flecha sin origen concreto.

Ejemplo Ejemplo El autómata anterior se representa mediante: 1 0 0,1 0 s q 1 1 q 2

Autómatas finitos no deterministas Definición Un autómata finito no determinista es una tupla N = (K,Σ,δ,s,F) donde: K es un conjunto (finito) de estados, Σ es un alfabeto (finito), δ : K Σ P(K) es la función de transición ab. s K es el estado inicial, y F K es el conjunto de los estados aceptadores. a P(K) es el conjunto de todos los subconjuntos de K, i.e. las partes de K b La función de transición también puede definirse como una relación δ K Σ K.

Paso de computación Definición Sea N = (K,Σ,δ,s,F) un autómata finito no determinista y sean (q,w) y (q,w ) dos configuraciones del mismo. Diremos que la configuración (q,w ) se sigue de (q,w) en un paso de computación, denotado mediante (q,w) D (q,w ), si existe σ Σ tal que q δ(q,σ) y w = σw. La notación (q,w) N (q,w ) indicará que la configuración (q,w ) se sigue de (q,w) en cero o más pasos de computación.

Ejemplo Considerar el autómata N = (K,Σ,δ,s,F), donde K := {s,q 1,q 2 }, Σ := {0,1}, F := {q 2 } y la función de transición δ se describe mediante: 0 1 s {s,q 1 } {s} q 1 /0 {q 2 } q 2 {q 2 } {q 2 }

Ejemplo El diagrama de transición es como sigue: 0,1 0,1 0 s q 1 1 q 2

Equivalencia entre AFDs y AFNs Teorema Todo lenguaje L Σ aceptado por un autómata finito no determinista es aceptado por un autómata finito determinista.

Demostración Sea L Σ un lenguaje aceptado por un AFN N = (K,Σ,δ,s,F). Construimos un AFD D = (K,Σ,δ,s,F ) que acepta L como sigue: Definimos K := P(K), F := {q K : q F /0}, δ : K Σ K se define mediante δ (q,σ) := δ(q {σ}) = p q δ(p,σ), y el estado inicial mediante s := {s}.

Demostración Veamos, por inducción en la longitud de la cadena w, que si D acepta w partiendo de un cierto estado q, existe una estado q q, tal que N acepta w partiendo de q. (Base) Supongamos w = ε. Por lo tanto, si D acepta ε partiendo de q, se sigue que q F. Tomando q q F tenemos que N acepte w partiendo de q. (Paso inductivo) Supongamos que la afirmación es cierta para todas las cadenas de longitud a lo más n 1 y sea w = w 1 w n una de longitud n aceptada por D partiendo de q. Tenemos que D acepta w 2 w n partiendo de δ (q,w 1 ). Por lo tanto, existe un p δ (q,w 1 ) tal que N acepta w 2 w n partiendo del estado p. Puesto que p δ (q,w 1 ), existe un q q tal que δ(q,w 1 ) = p y por ende, N acepta w partiendo de q con q q. Tomando como q = {s}, si D acepta una cierta cadena w, N también la acepta. Igualmente se demuestra que si N acepta una cadena w, D también.

Algoritmo de conversión Algoritmo El algoritmo toma como entrada la descripción de un autómata finito no determinista cualquiera A = (K,Σ,δ,s,F) y devuelve como salida un autómata finito determinista A = (K,Σ,δ,s,F ) que acepta el mismo lenguaje. Su evolución es la siguiente. (Inicialización) Inicializa el nuevo conjunto de estados K := {{s}} y para cada σ Σ lleva a cabo la siguiente tarea: define δ ({s},σ 1 ) = δ(s,σ) y, si δ(s,σ) {s} añade δ(s,σ) a K. (Iteración) Si para todo q K y σ Σ está definido δ (q,σ), el algoritmo termina su ejecución devolviendo A = (K,Σ,δ,s,F ) donde F = {q K ;q F /0}. En caso contrario, considera un par (q,σ) K Σ tal que δ (q,σ) no haya sido definido, define δ (q,σ) = δ(q,σ) y, si δ(q,σ) / K, se añade a K y se itera de nuevo.

Ejemplo de conversión de AFN a AFD Cosideramos el AFN anterior. Tomamos como estado inicial {s}, inicializamos K = {{s}} y definimos las transiciones δ ({s},0) = {s,q 1 } y δ ({s},1) = {s}. Actualizamos K a {{s},{s,q 1 }} y definimos δ ({s,q 1 },0) = {s,q 1 } y δ ({s,q 1 },1) = {s,q 2 }. Actualizamos K a {{s},{s,q 1 },{s,q 2 }} y definimos δ ({s,q 2 },0) = {s,q 1,q 2 } y δ ({s,q 2 },1) = {s,q 2 }. Actualizamos K a {{s},{s,q 1 },{s,q 2 },{s,q 1,q 2 }} y definimos: δ ({s,q 1,q 2 },0) = {s,q 1,q 2 } y δ ({s,q 1,q 2 },1) = {s,q 2 }. Lo que termina el proceso.

Ejemplo de conversión de AFN a AFD 1 0 1 0 {s} {s,q 1 } 1 {s,q 2 } 1 0 {s,q 1,q 2 } 0

Autómatas finitos no deterministas con transiciones vacías Definición Un autómata finito con transiciones ε es una tupla E = (K,Σ,δ,s,F) donde: K es un conjunto (finito) de estados, Σ es una alfabeto (finito), δ : K (Σ {ε}) P(K) es la función de transición, s K es el estado inicial, y F K es el conjunto de los estados aceptadores. a a Nótese que la función de transición también puede definirse como una relación δ K Σ Σ, al igual que en el caso de los autómatas finitos no deterministas.

Paso de computación Definición Sea E = (K,Σ,δ,s,F) un autómata finito no determinista con transiciones vacías y sean (q,w) y (q,w ) dos configuraciones del mismo. Diremos que la configuración (q,w ) se sigue de (q,w) en un paso de computación, notado (q,w) D (q,w ), si existe σ Σ {ε} tal que δ(q,σ) = q y w = σw. La notación (q,w) D (q,w ) indicará, al igual que en otros casos, que la configuración (q,w ) se sigue de (q,w) en cero o más pasos de computación.

Clausura respecto de ε Definición (Clausura respecto de ε) Dado un autómata finito no determinista con transiciones vacías E = (K,Σ,δ,s,F), se define la clausura de un estado q K, con respecto de ε, de manera recursiva q Cl ε (q), para todo p Cl ε (q) y todo r Q tales que r δ(p,ε), se verifica r Cl ε (q). En general, dado un conjunto Q K, se define la clausura de Q con respecto a transiciones vacías de manera análoga.

Un ejemplo Sea E = (K,Σ,δ,F,s) es autómata finito no determinista con transiciones vacías descrito por el siguiente diagrama de transición: 0,1 0,1 ε 0 s q 1 2 q 3 q 1 El autómata anterior acepta el lenguaje de las cadenas que contienen la secuencia 01. En este caso, por ejemplo, Cl ε (s) = {s,q 1 } y Cl ε (q 1 ) = {q 1 }.

Equivalencia con AFD Teorema Todo lenguaje L Σ aceptado por un autómata finito no determinista con transiciones vacías es aceptado por un autómata finito determinista.

Demostración Sea dado un AFN ε E = (K,Σ,δ,s,F). Construimos un AFD D = (K,Σ,δ,s,F), que acepte el mismo lenguaje, como sigue K := {P K : Cl ε (P) = P}, s := Cl ε (s), F := {P K : P F /0}, y dados P K y σ Σ, definimos ( ) δ (P,σ) := Cl ε δ(p,σ). p P

Demostración Demostración. Por inducción en la longitud de la cadena w, veamos que si D acepta w partiendo de un cierto estado q, existe una estado q q, tal que E acepta w partiendo de q. (Base) Si w = ε y D acepta ε partiendo de q, tenemos q F. Tomando q q F se tiene que E acepte w partiendo de q. (Paso inductivo) Supongamos la afirmación es cierta para todas las cadenas de longitud a lo más n 1 y sea w = w 1 w n. Si w es aceptada por D partiendo de un cierto estado q, tenemos que D acepta w 2 w n partiendo de δ (q,w 1 ). Por lo tanto, existe un p δ (q,w 1 ) tal que E acepta w 2 w n partiendo del estado p. Puesto que p δ (q,w 1 ), existe un q q tal que δ(q,w 1 ) = q de manera que p Cl ε (q ) y por ende, que E acepta w partiendo de q con q q. Tomando s = {s}, si D acepta una cierta cadena w, N también. Igualmente se muestra que si N acepta w, D también.

Algoritmo de conversión Algoritmo El algoritmo toma como entrada un AFN ε A = (K,Σ,δ,s,F) y devuelve un AFD con igual lenguaje. Su funcionameinto es: (Inicialización) Inicializa K := {CL ε {s}} y para cada σ Σ define δ ({s},σ 1 ) = Cl ε (δ(s,σ)). Si Cl ε (δ(s,σ)) Cl ε ({s}) añade Cl ε (δ(s,σ)) a K. (Iteración) Si todas las transiciones están definidas, el algoritmo termina devolviendo A = (K,Σ,δ,s,F ), con F = {q K ;q F /0}. Si no es así, considera (q,σ) K Σ t.q. δ (q,σ) no está definido, y define δ (q,σ) = Cl ε (δ(q,σ)) y, si Cl ε (δ(q,σ)) / K, se añade a K e itera de nuevo.

Ejemplo El estado inicial es {s,q 1 } (clausura con respecto al vacío de s), definimos K = {{s,q 1 }}) y las transiciones δ ({s,q 1 },0) = {s,q 1 } y δ ({s},1) = {s}. Actualizamos K a {{s},{s,q 1 }} y definimos δ ({s,q 1 },0) = {s,q 1 } y δ ({s,q 1 },1) = {s,q 2 }. Actualizamos K a {{s},{s,q 1 },{s,q 2 }} y definimos: δ ({s,q 2 },0) = {s,q 1,q 2 } y δ ({s,q 2 },1) = {s,q 2 }. Luego K = {{s},{s,q 1 },{s,q 2 },{s,q 1,q 2 }} y definimos δ ({s,q 1,q 2 },0) = {s,q 1,q 2 } y δ ({s,q 1,q 2 },1) = {s,q 2 }. Los estados finales son F = {{s,q 2 },{s,q 1,q 2 }}.

Ejemplo El autómata diagrama de transiciones del autómata construido es el siguiente: 1 0 1 0 0 {s} {s,q 1 } 1 {s,q 2 } 0 {s,q 1,q 2 } 1

Contenidos 1 Autómatas finitos Autómatas finitos deterministas Autómatas finitos no deterministas Autómatas finitos no deterministas 1 Gramáticas regulares Expresiones y gramáticas regulares Autómatas finitos y gramáticas regulares Autómatas y expresiones regulares 1 Propiedades de los lenguajes regulares Lenguajes no regulares Propiedades de clausura Propiedades de decisión Equivalencia y minimización 1 Autómatas a pila Definiciones básicas Autómatas a pila deterministas

Expresiones regulares Definición Dado un alfabeto finito Σ, se define un expresión regular, vía inducción estructural, de la siguiente manera: (Base) /0,ε y σ (con σ Σ) son expresiones regulares cuyos lenguajes asociados son /0, {ε} y {σ} respectivamente. (Inducción) Distinguimos los siguientes casos: Dada una e.r. E, (E) es una e.r. cuyo lenguaje es precisamente L(E) (el lenguaje asociado a E). Dada una e.r. E, E es una e.r. cuyo lenguaje es L(E) (la cláusura de L(E) con respecto a la concatenación). Dadas dos e.r. E 1 y E 2, E 1 + E 2 es una e.r. cuyo lenguaje es L(E 1 ) L(E 2 ) (la unión de los lenguajes asociados a E 1 y E 2 ). Dadas dos e.r. E 1 y E 2, E 1 E 2 es una e.r. cuyo lenguaje asociado es L(E 1 )L(E 2 ) (la concatenación de los lenguajes de E 1 y E 2 ).

Ejemplo Un ejemplo sencillo de e.r. es (0+1) 01(0+1). Dicha expresión describe el conjunto de las cadenas de ceros y unos que continen la subcadena 01. Para verlo, basta observar que (0+1) describe cualquier cadena de ceros y unos.

Gramática regular Definición Una gramática regular (lineal a derecha) es una tupla G = (N,T,P,S) donde N es un conjunto finito de símbolos llamados variables o símbolos no terminales, T es un conjunto finito de símbolos, llamados terminales, satisfaciendo T N = /0, P N (T N T) es un conjunto finito de elementos, llamados producciones, de manera tal que si (p,q) P se denotará mediante la expresión p q; p recibe el nombre de cabeza y q el de cuerpo de la producción, y S N es el símbolo inicial.

Ejemplo La gramática que describe el lenguaje asociado a (0+1) 01(0+1) viene dada por las producciones siguientes: S 0S S 1S S 01S S 0S S 1S, y S ε. Más compactamente, S 0S 1S 01S S 0S 1S ε.

Derivación Definición Dada una gramática regular G = (N,T,P,S) y una cadena αv, con α T y v N, diremos que αγ (T N T ) deriva de αv, si existe una producción v γ P. Si es el caso, lo indicaremos mediante la notación αv G αγ; en general, si una cierta cadena β (T N T ) deriva de δ (T N T ) tras un número finito de derivaciones, lo notaremos mediante δ G γ. Ejemplo Continuando con el ejemplo anterior, es sencillo ver que se tiene, por ejemplo, S 0S 01S 0101S 0101. En particular, se tiene que 0101 pertenece al lenguaje de la gramática.

Autómatas finitos y gramáticas regulares Teorema Sea A un autómata finito. Entonces, existe una gramática regular G tal que L(G) = L(A).

Demostración Supongamos dado un autómata A = (K,Σ,δ,q 0,F). Construimos la gramática G tal que L(G) = L(A) como sigue: el conjunto de variables de G coincide con Q (el conjunto de estados de A), el conjunto de carácteres terminales de G es Σ y su símbolo inicial es q 0. Las producciones de G se definen como sigue: dada una variable q Q, q σp (con p Q y σ Σ) es una producción si δ(q,σ) = p; dado un estado aceptador f F, f ε es una producción. Queda claro que una cierta cadena w Σ se deriva del símbolo inicial de G si y sólo si es aceptado por el autómata. Por lo tanto, L(G) = L(A).

Ejemplo Consideremos el autómata finito determinista visto anteriormente, la gramática del lenguaje por él aceptado es: q 0 1q 0 q 0 0q 1 q 1 0q 1 q 1 1q 2 q 2 0q 2, q 2 1q 2, y q 2 ε.

De gramáticas regulares a autómatas Teorema Sea G una gramática regular. Entonces, existe un autómata finito (no determinista) A tal que L(A) = L(G).

Demostración Supongamos dada una gramática regular G = (V,T,P,S) (lineal a derecha). Construimos el autómata A = (K,T,δ,q 0,F) como sigue: el conjunto de estado viene dado por las expresiones de la forma [v], donde v es una subcadena del cuerpo de alguna producción, el alfabeto del autómata coincide con el conjunto de caracteres terminales de G, la función de transición se define mediante las reglas siguientes: dado un estado [p], con p una variable de G, y un símbolo t T, se define δ([p],t) = {[q] : p q P}. Dados t T y p T T V definiendo un estado [p], se define δ([tp],t) = {[p]} Es fácil ver, por inducción en la longitud de las cadenas, que L(A) = L(G).

De expresiones regulares a autómatas Teorema Sea Σ un alfabeto finito y E una expresión regular sobre dicho alfabeto. Entonces, existe un autómata finito (no determinista con transiciones vaciás) A = (K,Σ,δ,q 0,F) tal que L(A) = L(E).

Demostración La demostración es por inducción estructural en la expresión regular; como subproducto, se describe un algoritmo que transforma expresiónes regulares en autómatas finitos (no deterministas con transiciones vaciás)

Demostración (Caso Base) Supongamos que la e.r. es de los tipos: /0, ε o σ (con σ Σ; consideramos los autómatas: ε σ Los lenguajes de dichos AFN ε son /0, ε) y σ (respec).

Demostración (Paso inductivo).- Si E = E 1 + E 2, donde E 1 y E 2 son dos e.r. con A 1 y A 2 como AF asociados (i.e. se satisface que L(E 1 ) = L(A 1 ) y L(E 2 ) = L(A 2 )), consideramos: ε A 1 ε ε ε A 2

Demostración Si E = E 1, donde E 1 es e.r. con A 1 AF asociado, consideramos: ε ε ε ε

Demostración Si E = E 1 E 2, donde E 1 y E 2 son dos e.r. con A 1 y A 2 como AF asociados, consideramos: ε ε A 2 A 2 Queda claro que los lenguajes se corresponden con los de las e.r..

De autómatas a expresiones regulares Teorema Sea A = (K,Σ,δ,q 0,F) un autómata finito sobre un alfabeto Σ. Entonces, existe una expresión regular sobre el mismo alfabeto Σ, digamos E, tal que L(E)=L(A).

Demostración Supongamos que A es un AFD. Además, suponemos que el conjunto de estados es {1,...,n}. Construimos una familia de e.r. Rij k, con 1 k n y 1 i,j k, cuyo interpretación es la siguiente: Rij k es la expresión regular que describe las cadenas que hacen que A pase del estado i al estado j atravesando, únicamente, nodos etiquetados con naturales menores o iguales a k. La construcción de dichas e.r. es inductiva en k.

Demostración En primer lugar, supongamos que k = 0 (caso base). Entonces, R 0 ij denota el conjunto de las cadenas que hacen transicionar al autómata A del estado i al estado j sin pasar por estado alguno (todos los estados están etiquetados con un natural mayor que cero). Por lo tanto, caben dos posibilidades: existe una transición del nodo i al nodo j o, equivalentemente, existe un camino (arco) en el diagrama de transición de A que va de i a j; suponiendo que dicho camino está etiquetado con los símbolos σ 1,...,σ l, definimos R 0 ij = σ 1 +...+σ l, no existe una tal transición; en este caso, definimos R 0 ij = /0.

Demostración Supongamos construidas las expresiones regulares Rij k para 1 k n. Construyamos la expresiones regulares R n+1 ij, con 1 i,j n+1. Dados i,j, con 1 i,j n+1, supongamos que existe una caden que hace transicionar al autómata del estado i al j atravesando estados etiquetados con naturales menores o iguales que n + 1. Distinguimos los siguientes casos: si existe la cadena en cuestión no hace transicionar al autómata A por el estado n+1 (la cadena da un camino del nodo i al nodo j que no atraviesa nodos etiquetados con naturales mayores que n en el diagrama de transiciones), dicha cadena está comtemplada en la expresión regular R n ij,

Demostración si no es el caso, esto es, la cadena hace transicionar al autómata por el estado n, partimos dicha cadena en fragmentos de la siguiente manera: el primer fragmento hace transicionar al autómata del estado i al n+1 sin pasar por n+1 como estado intermedio, el último fragmento hace transicionar al autómata del estado n+1 al estado j sin pasar por n+1 como estado intermedio, y los fragmentos intermedios son tales que hacen pasar al autómata del estado n+1 al estado n+1 sin que éste sea uno de los intermedios. El primer fragmento está descrito por R n i(n+1), el último por R n (n+1)j y los fragmentos intermedios por R n (n+1)(n+1.

Demostración Por lo tanto y en cualquier caso, dicha cadena queda descrita por R n ij + Ri(n+1) n (Rn (n+1)(n+1 ) R n (n+1)j. El lenguaje de A está dado por es la dada por la suma de las e.r. de la forma R1k n, donde 1 suponemos es el estado inicial y k es un estado final.

Contenidos 1 Autómatas finitos Autómatas finitos deterministas Autómatas finitos no deterministas Autómatas finitos no deterministas 1 Gramáticas regulares Expresiones y gramáticas regulares Autómatas finitos y gramáticas regulares Autómatas y expresiones regulares 1 Propiedades de los lenguajes regulares Lenguajes no regulares Propiedades de clausura Propiedades de decisión Equivalencia y minimización 1 Autómatas a pila Definiciones básicas Autómatas a pila deterministas

Ejemplo Considérese el lenguaje definido sobre {0, 1} L := {0 n 1 n : n N} Intuitivamente se puede llegar a la conclusión de que dicho lenguaje no es regular puesto que un autómata finito que lo reconozca debe ser capaz de contar el número de ceros para compararlo con el número de unos. Sin embargo, dado que los autómatas tienen una capacidad de almacenamiento limitada por el número de estado, no pueden almacenar números arbitrariamente grandes. Por lo tanto, no puede existir un tal autómata, i.e. L no es regular

Lema de Bombeo Lema (Lema de Bombeo) Sea L un lenguaje regular. Entonces, existe una constante n (dependiente de L) tal que para toda cadena ω L de longitud mayor o igual que n, existen cadenas ω 1,ω 2,ω 3 Σ tales que: ω 2 ε, ω 1 ω 2 n, y para todo k N, la cadena ω 1 ω k 2 ω 3 pertenece a L.

Función de transición extendida Definición Dado un autómata A = (K,Σ,δ,s,F), se define la extensión de δ al dominio K Σ (denotada por ˆδ ) de manera inductiva en la longitud de las cadenas: dado q K, definimos ˆδ(q,ε) := q, dados q K, ω Σ y σ Σ, definimos ˆδ(q,σω) := δ(ˆδ(q,ω),σ). Nota A acepta w Σ si y sólo si ˆδ(s,w) F.

Demostración Demostración. Supongamos dado un lenguaje regular L y consideremos un AF A = (K,Σ,δ,s,F) t.q. L = L(A); supongamos además que #K = n. Dada una cadena ω = σ 1 σ m Σ, con m n, definimos p i, para 0 i m, como el estado en el que se encuentra el autómata tras procesar la cadena σ 1 σ i, i.e. p i = ˆδ(s,σ 1 σ i ) (notar que p 0 = s). Obviamente, existen 0 j < k n tales que p j = p k. Definiendo ω 1 := σ 1 σ j, ω 2 := σ j+1 σ k, y ω 3 := σ k+1 σ m, se sigue el resultado.

Ejemplo Ejemplo Consideramos el lenguaje del ejemplo anterior, veamos por reducción al absurdo, que no es regular. Si así fuera, por el Lema de Bombeo, existiría un natural n N tal que para toda cadena de longitud como poco n, digamos ω Σ existen cadenas ω 1,ω 2,ω 3 Σ tales que 1 ω 2 ε, 2 ω 1 ω 2 n, y 3 para todo k N, la cadena ω 1 ω k 2 ω 3 pertenece a L. En particular, consideramos la cadena de L definida por ω = 0 n 1 n. Por lo anterior, existen ω 1,ω 2,ω 3 verificando 1, 2 y 3. Tomando k = 0, se sigue que ω 1 ω 3 pertenece a L, lo cual es absurdo puesto que su número de ceros es forzosamente menor que él de unos (ω 2 tiene longitud mayor o igual a uno, i.e. consta de como poco de un cero).

Propiedades básicas Teorema Las siguientes afirmaciones son ciertas. 1 La unión de dos lenguajes regulares es regular. 2 El complementario de un lenguaje regular es regular. 3 La intersección de dos lenguajes reuglares es regular. 4 La diferencia de dos lenguajes regulares es regular. Nota Las afirmaciones anteriores son ciertas para un número finito de lenguajes (la demostración es por inducción).

Demostración 1. Sean L,L Σ dos lenguajes regulares y E L y E L e.r. para los mismos. La expresión regular E L + E L ) da el lenguaje L L y, por lo tanto, es regular. 2. Sea L un lenguaje regular dado por un AFD A. Construimos un autómata A igual a A con la salvedad de que sus estados aceptadores son los estados de rechazo de A. El autómata A acepta cualquier cadena que A rechaze, i.e. determina el lenguaje L c. Por lo tanto, el complementario de L es un lenguaje regular.

Demostración 3. Dados dos lenguaje regulares L,L Σ tenemos (Leyes de Morgan): L L = ( L c L c)c. Puesto que, tal y como se ha demostrado en 1. y 2., la unión y el complementario de lenguajes regulares es regular, se sigue que la intersección es regular. 4. Sean L,L Σ dos lenguajes regulares. Puesto que se verifica: L \ L = L L c, se sigue de 1. y 3. que la diferencia de lenguajes regulares es regular.

Reflexión Definición Dada una cadena cualquiera ω = ω 1 ω n Σ sobre el alfabeto Σ, se define la reflexión de la cadena ω, notada ω R, como ω R := ω n ω 1. Definición Dado un lenguaje L Σ, se define la reflesión del lenguaje L, denotada por L R, como L R := {ω R : ω L}. Teorema Sea L Σ un lenguaje regular. Entonces, L R es un lenguaje regular.

Demostración Para demostrar el enunciado haremos uso de la relación existente entre lenguajes regulares y expresiones regulares. Supongamos en primer lugar que el lenguaje regular L es descrito por una expresión regular E. Procediendo por inducción estructural, distinguimos los siguientes casos: (Caso Base) Si E = /0, E = ε o E = σ, para algún σ Σ, definiendo E R como E se tiene L(E R ) = L(E) R = L.

Demostración (Paso inductivo) Consideremos las restantes alternativas: Supongamos que E = E 1 + E 2, para ciertas expresiones regulares E 1 y E 2. Definiendo E R = E1 R + E 2 R tenemos que L(E R ) = L(E R 1 + E R 2 ) = L(E R 1 ) L(E R 2 ) = L(E 1 ) R L(E 2 ) R = L(E 1 + E 2 ) R = L(E). Con respecto al caso E = E 1 E 2, definiendo E R = E R 2 E R 1 tenemos L(E R ) = L(E 2 2 E R 1 ) = L(E R 2 )L(E R 1 ) = L(E 2) R L(E 1 ) R = (L(E 1 )L(E 2 )) R = L(E 1 E 2 ) R = L(E) R. Finalmente, el caso E = E 1 se sigue del anterior.

Homomorfismo Definición Dados dos alfabetos finitos Σ y Γ, llamaremos homomorfismo a toda aplicación h : Σ Γ. Toda aplicación como la anterior induce, de manera natural una aplicación h : Σ Γ definida mediante h(σ 1 σ n ) := h(σ 1 ) h(σ n ). Dado un lenguaje cualquiera L Σ, llamaremos homomorfismo de L (con respecto a h) al lenguaje h(l) definido por h(l) = {ω Γ : ω Lt.q. h(ω ) = ω}. Teorema Sea L Σ un lenguaje regular y h : Σ Γ un homomorfismo entre los alfabetos (finitos) Σ y Gamma. Entonces, el homomorfismo del lenguaje L (con respecto a h) es un lenguaje regular.

Demostración Supongamos que el lenguaje L viene dado mediante una expresión regular sobre el alfabeto Σ, digamos E. Construyamos, por inducción estructural, una nueva expresión, digamos E h, que determine h(l). (Caso Base) Supongamos de entrada que E = /0, E = ε ó E = σ (con σ Σ). Entonces, definimos E h mediante E h := /0, E h := ε ó E h := h(σ) de pendiendo del caso. Está claro que, en este caso, h(l(e)) = L(E h ). (Paso Inductivo) Distinguimos los siguientes casos: si E = E 1 + E 2, definimos E h := E1 h + E 2 h. si E = E 1 E 2, definimos E h := E1 h E 2 h y, finalmente, si E = E 1, definimos E h := (E h ). Resulta fácil de ver que en los tres casos anteriores se tiene que h(l(e)) = L(E h ). En resumen, el homomorfismo de un lenguaje regular es regular.

Homomorfismo inverso Definición Sean Σ y Γ dos alfabetos finitos, h : Σ Γ un homomorfismo y L Γ un lenguaje regular. Se define el homomorfismo inverso de L (con respecto a h), denotado h 1 (L), como: h 1 (L) := {ω Σ : h(ω) L}. Teorema Sean Σ y Γ dos alfabetos finitos, h : Σ Γ un homomorfismo y L Γ un lenguaje regular. El homomorfismo inverso de L es un lenguaje regular.

Demostración Supongamos dado A = (K,Γ,δ,s,F) aceptando L. Construyamos un autómata A = (K,Σ,δ,s,F) (sólo cambia la función de transición) definiendo: δ (q,σ) := ˆδ(q,h(σ)), donde ˆδ denota la función de transición extendida de A. Queda claro que el lenguaje de A es precisamente h 1 (L).

Equivalencia Teorema Existen algoritmos que 1 dada una e.r. E, construyen un AF A tal que L(A) = L(E), 2 dado un AF A, construyen una g.r. G tal que L(G) = L(A), y 3 dada una g.r. G, construyen una e.r. E, tal que L(E) = L(G).

Otros problemas Cuestión Dado un lenguaje regular L, es L no vacío? Cuestión Dado un lenguaje regular L, es L el total, i.e. L = Σ? Cuestión Dados lenguajes regulares L 1 y L 2, es L 1 = L 2?

Vaciedad Teorema Existe un algoritmo que dado un lenguaje regular L decide si es o no vacío.

Demostración para AF Si L viene dado por un AF, dicha pregunta equivale a: existe un camino del estado inicial a un estado aceptador? Así enunciada, la pregunta tiene fácil respuesta algorítmica: el estado inicial es accesible desde el estado inicial, y si el estado p es accesible desde el estado inicial y existe un arco de p a q, entonces el estado q es accesible desde el estado inicial. Lo anterior resume la construcción inductiva del conjunto de estados accesibles desde el estado inicial, en el momento en que dicho conjunto contenga un estado aceptador, concluimos que el lenguaje no es vacío. Si dicho conjunto no se puede ampliar y no contiene ningún estado aceptador, concluimos que el lenguaje L es vacío.

Demostración para ER Si L viene dado mediante una ER E, procedemos por inducción estructural: (Caso Base) Si E es /0 define el lenguaje vacío; si es del tipo ε o σ (σ Σ), entonces L no es vacío. (Paso Inductivo) Si E no es de los tipos anteriores, distinguimos: Si es de la forma E 1 + E 2, el lenguaje es vacío si y sólo si los lenguajes de E 1 y E 2 lo son, Si es del tipo E 1 E 2, el lenguaje es vacío si y sólo si el lenguaje de E 1 o el de E 2 lo son. Finalmente, si la expresión regular es del tipo E, el lenguaje no es vacío.

Demostración para GR Si L viene dado por una GR, dicha pregunta equivale a: existe una serie de producciones que llevan del símbolo inicial S a una cadena cuya variable se puedes substituir por una cadena de sólo terminales? Así enunciada, la pregunta tiene también fácil respuesta algorítmica: el símbolo inicial es accesible desde el símbolo inicial, y si una variable V se obtiene mediante una producción desde una variable que es accesible desde el símbolo inicial, tb. es accesible desde S. En el momento en que dicho conjunto contenga una variable que se puede substituir por una cadena sólo de terminales, concluimos que el lenguaje no es vacío. Si dicho conjunto no se puede ampliar y no contiene ninguna de tales variables, el lenguaje L es vacío.

Totalidad e igualdad Totalidad Para determinar si un lenguaje regular L es el total, basta decidir si L c es el vacío. Igualdad Para saber si dos lenguajes regulares L 1 y L 2 coinciden, basta saber si L 1 L 2 y L 2 L 1 o equivalentemente, si L 1 \ l 2 = /0 y L 2 \ L 1 = /0.

Relaciones de equivalencia Definición Sea X un conjunto. Una relación X X se dice de equivalencia, si satisface las siguientes propiedades: [Reflexiva] para todo x X, x x, [Simétrica] para todos x,y X, x y implica y x, y [Transitiva] para todos x,y,z X, x y y y z implica x z.

Clases de equivalencia y conjuntos cociente Definición Dada una relación X X y un elemento x X, se define la clase de x, notada [x], como el conjunto de todos los elementos de X relacionados con x, i.e. [x] := {y X : x y}. El conjunto X/ es el conjunto cociente, i.e. el conjunto de todas las clases de equivalencia Nota Dados dos elementos x,y X no relacionados mediante, se verifica [x] [y] = /0. La demostración de este hecho se sigue la propiedad transitiva: por reducción al absurdo, sean x,y X dos elementos no relacionados tales que [x] [y] /0 y sea z [x] [y]. Puesto que x z y z y se sigue x y, lo cúal es absurdo. Por lo que se tiene la afirmación.

Estados equivalentes Definición Sea A = (K,σ,δ,s,F) un autómata finito determinista y sean p,q K dos estados del mismo. Diremos que los estados p y q son equivalentes, denotado por p q, si para toda cadena w Σ se verifica que ˆδ(p,w) es de aceptación si y sólo si ˆδ(q,w) es de aceptación. En caso contrario, diremos que los estados son distinguibles.

Propiedades Teorema La relación estados equivalentes es una relación de equivalencia. Demostración. Las tres propiedades se siguen directamente de la definición, omitiremos su prueba.

Algoritmo de marcado Teorema Existe un algoritmo que tomando como entrada un autómata finito determinista, calcula los pares de estados distinguibles y por ende, los pares de estados equivalentes.

Demostración El algoritmo procede como sigue: (Caso Base) Si p K es un estado de aceptación y q K no lo es, se marca el par (p,q) como par de estados distinguibles. Dichos estado se distinguen mediante la cadena ε. (Paso Inductivo) Sean p,q K dos estados tales que para algún σ Σ se tiene δ(p,σ) = s y δ(q,σ) = r. Si el par (r,s) esta marcado como distinguible, se marca el par (p,q) como distinguible. Obviamente, una cadena que distingue p y q es aw, donde w Σ es una cadena que distingue a r y s.

Demostración El algoritmo anterior marca todos los pares de estados distinguibles. Para demostrarlo, supongamos que no es así, i.e. que existe un par de estado p,q K distinguibles que no han sido marcados por el algoritmo. Los estados p y q no pueden ser distinguidos mediante la cadena ε, puesto que si así fuera hubieran sido marcados en la primera etapa del algoritmo (uno sería aceptador mientras que el otro no). Sea w = w 1...w n Σ + la cadena más corta que distingue a p y q, los estados δ(p,w 1 ) y δ(q,w 1 ) son distinguidos por la cadena w 2...w n. Continuando con la argumentación, llegamos a la conclusión de que unos ciertos estados r K y s K son distinguibles por la cadena vacía y por tanto conforman un par marcado en la primera etapa del algoritmo. Por lo tanto, el par conformado por p y q hubiera sido marcado durante la ejecución de la segunda etapa.

Ejemplo Sea A el autómata finito: 0 C 0 D 0 1 1 E 1 En este caso, el algoritmo comienza marcando lo pares formados por estados aceptadores y no aceptadores, i.e.: {(C,E),(D,E)}. Tras esta primera fase, el algoritmo pasa a la fase inductiva. Sin embargo, en esta fase no marca nuevos pares puesto que el par (D,C) es indistinguible.

Equivalencia Teorema Existe un algoritmo que decide si dos autómatas finitos aceptan el mismo lenguaje.

Demostración Supongamos dados dos autómatas finitos A = (K A,Σ A,δ A,s A,F A ) y B = (K B,Σ B,δ B,s B,F B ) tales que sus conjuntos de estados sean disjuntos. Consideramos un nuevo autómata cuyo conjunto de estados viene dado por la unión de los conjuntos K A y K B. El resto de los elementos del nuevo autómata se definen de manera acorde a esta elección. El autómata así definido, tiene dos estados iniciales; sin embargo esto no afecta a lo que sigue. El algoritmo emplea el algoritmo de marcado para detectar si los estados iniciales son equivalentes o no. Ambos autómatas definen el mismo lenguaje si y sólo si así es.

Ejemplo Consideramos el AF del Ejemplo anterior y 0 1 A 1 B 0 Empleando el algoritmo de marcado, son distinguibles los pares de estados: (B,A),(E,A),(C,B),(D,B),(E,C) y (E,D). Por lo tanto, el par (A,C) es un par de estados equivalentes y ambos autómatas definen el mismo lenguaje.

Minimización Teorema Existe un algoritmo que tomando como entrada un autómata finito determinista, produce un autómata equivalente con el menor número posible de estados.

Demostración Supongamos dado un autómata A = (K,Σ,δ,s,F). El algoritmo elimina de entrada aquellos estados que no son accesibles desde el estado inicial. Después, construye un nuevo autómata B = (K,Σ,δ,s,F ) de la siguiente manera: K es el conjunto de clases de equivalencia de K con respecto a (equivalencia de estados), s es la clase de equivalencia de s, i.e. s := [s], F es el conjunto de clases de equivalencia de los elementos de F, y δ se define de la siguiente manera: dado σ Σ y q K, se define δ (q,σ) = [δ(q,σ)]. La función de transición esta bien definida puesto que, si p [q] y [δ(q,σ)] [δ(p,σ)], los estados p y q serían distinguibles.

Demostración El algoritmo, para construir un tal autómata, hace uso del algoritmo de marcado con el fin de determinar las clases de equivalencia. Veamos que el autómata B así construido tiene el menor número de estados posibles. Por reducción al absurdo, supongamos que no es así y sea C un autómata con un número menor de estados. Como definen el mismo lenguaje, i.e. son autómatas aquivalentes, los estados iniciales son equivalentes. Como ninguno de los dos autómatas posee estados aislados del inicial, cada estado de B va a ser equivalente a alguno de C. Puesto que C tiene menos estados que B, hay dos estados de B equivalentes entre si, lo cual resulta absurdo.

Ejemplo Consideramos el autómata: 0 1 A E 0 1 B 0 1 0 1 1 F C G 0 0 1 1 D H 1 0 0

Ejemplo El mínimo autómata que acepta el lenguaje del anterior es: 1 0 G 1 D,F A,E 1 0 0 0 B,H 1 C 1 0

Contenidos 1 Autómatas finitos Autómatas finitos deterministas Autómatas finitos no deterministas Autómatas finitos no deterministas 1 Gramáticas regulares Expresiones y gramáticas regulares Autómatas finitos y gramáticas regulares Autómatas y expresiones regulares 1 Propiedades de los lenguajes regulares Lenguajes no regulares Propiedades de clausura Propiedades de decisión Equivalencia y minimización 1 Autómatas a pila Definiciones básicas Autómatas a pila deterministas

Autómatas a pila Definición Un autómata a pila es una tupla P = (K,Σ,Γ,δ,s,Z,F) donde: 1 K es un conjunto finito de estados, 2 Σ y Γ son dos alfabetos finitos llamados de entrada y de pila (respec.), 3 δ : K (Σ {ε}) Γ P(K) Γ es una aplicación llamada de transición, 4 s K es el estado inicial, Z es el símbolo inicial de la pila, y 5 F es el conjunto de estados aceptadores.

Configuración y paso de computación de un AP Definición Dado un AP P = (K,Σ,Γ,δ,s,Z,F), llamaremos configuración del autómata P a toda tupla (q,w,γ) K Σ Γ. En particular, llamaremos configuración inicial para un cadena dada w Σ a la tupla (s,w,z). Definición Supongamos dados un AP P = (K,Σ,Γ,δ,s,Z,F), un símbolo del alfabeto de entrada σ Σ y un símbolo del alfabeto de pila ρ Γ tales que δ(q,σ,ρ) = (Q,α) para ciertos Q P(K) y α Γ. Para todo p Q, w Σ y γ Γ, diremos que la configuración (q,σw,ργ) da lugar, en un paso de computación, a la configuración (p,w,αγ) y lo denotaremos por (q,σw,ργ) P (p,w,αγ). En general, emplearemos la notación P para indicar que una configuración se sigue de otra en un número finito de pasos (quizás nulo).

Lenguaje aceptado por estado final Definición Dado un autómata a pila P = (K,Σ,Γ,δ,s,Z,F), se define el lenguaje aceptado por P por estado final como el conjunto de las cadenas w Σ tales que partiendo de la configuración inicial para w, el autómata alcanza en un número finito de pasos una configuración aceptadora, i.e. L(P) = {w Σ : (s,w,z) P (f,ε,γ) F {ε} Γ }.

Lenguaje aceptado por pila vacía Definición Dado un autómata a pila P = (K,Σ,Γ,δ,s,Z,F), se define el lenguaje aceptado por P por pila vacía como el conjunto de las cadenas w Σ tales que partiendo de la configuración inicial para w, el autómata alcanza en un número finito de pasos una configuración con cadena y pila vacías, i.e. L(P) = {w Σ : (s,w,z) P (f,ε,ε) K {ε} {ε}}.

Equivalencia Teorema Dado un lenguaje aceptado por un autómata P por estado final, existe un autómata P que acepta L por pila vacía. Recíprocamente, si L es aceptado por un autómata por pila vacía, existe un autómata P que acepta L por estado final.

Demostración (1) Supongamos dado un lenguaje L Σ aceptado por un AP P = (K,Σ,Γ,δ,s,Z,F) por estado final. La construcción de un autómata P que acepta L por pila vacía es como sigue: P coincide con P con las siguientes salvedades: el símbolo inicial de pila viene dado por un nuevo símbolo X, el conjunto de estado coincide con el de P salvo por la inclusión de dos nuevos estados: un nuevo estado inicial p 0 y un nuevo estado denotado p F encargado de vaciar la pila. la función de transición es igual que en el autómata a pila salvo por la inclusión de diversas transiciones: la primera está definida mediante δ(p 0,ε,X) = {(s,zx)} y se encarag de apilar el símbolo inicial de pila del autómata P, mientras que las restantes son de la forma δ(f,ε,γ) = {(p F,ε)}, donde f F y γ Γ.

Demostración (2) Gráficamente, representamos a continuación dicho autómata: ε,γ/ε ε,x/zx ε,γ/ε p 0 s pf

Demostración (3) Recíprocamente, supongamos que el lenguaje L es aceptado por un autómata a pila por pila vacía. La construcción del autómata P es como sigue: al igual que en el caso anterior, el nuevo autómata es esencialmente igual a P con las siguientes salvedades: el símbolo inicial de pila viene dado por un nuevo símbolo Z, se añaden dos nuevos estados p 0 (estado inicial) y p F (estado final), se consideran, además de las transiciones de originales P, las siguientes: una transición inicial definida mediante δ(p 0,ε,X) = {(s,zx)} y unas transiciones encargadas de aceptar definidas por δ(q,ε,z) = {(p F,X)}.

Demostración (4) En líneas generales, el diagrama de transiciones de P tiene la pinta: ε,x/zx ε,x/x p 0 s pf

Autómata a pila determinista Definición Dado un autómata a pila P = (K,Σ,Γ,s,Z,F), diremos que es determinista si verifica: 1 δ(q,σ,γ) = (Q,γ ) verifica #Q 1 para todo q K, σ Σ y γ Γ. 2 Si δ(q,σ,γ) = (Q,γ ) con Q /0, entonces δ(q,ε,γ) = (/0,γ ).

AP y lenguajes regulares Teorema Dado un lenguaje regular L Σ, exite un autómata a pila deterministas que acepta L por estado final. Nota Para finalizar, notemos que existen lenguajes aceptador por autómatas a pila que no son aceptados por autómatas a pila deterministas.