11.07.2015 Views

Teoría de Automatas, Lenguajes Formales y Gramáticas

Teoría de Automatas, Lenguajes Formales y Gramáticas

Teoría de Automatas, Lenguajes Formales y Gramáticas

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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


T E X & LAT E X


Contenidos1 Autómatas finitosAutómatas finitos <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministas1 <strong>Gramáticas</strong> regularesExpresiones y gramáticas regularesAutómatas finitos y gramáticas regularesAutómatas y expresiones regulares1 Propieda<strong>de</strong>s <strong>de</strong> los lenguajes regulares<strong>Lenguajes</strong> no regularesPropieda<strong>de</strong>s <strong>de</strong> clausuraPropieda<strong>de</strong>s <strong>de</strong> <strong>de</strong>cisiónEquivalencia y minimización1 Autómatas a pilaDefiniciones básicasAutómatas a pila <strong>de</strong>terministas


Autómatas finitos <strong>de</strong>terministasDefiniciónUn autómata finito <strong>de</strong>terminista es una tupla D = (K,Σ,δ,s,F)don<strong>de</strong>:K es un conjunto (finito) <strong>de</strong> estados,Σ es un alfabeto (finito),δ : K ×Σ −→ K es la función <strong>de</strong> transición,s ∈ K es el estado inicial, yF ⊆ K es el conjunto <strong>de</strong> los estados aceptadores.


Autómatas finitos <strong>de</strong>terministasEjemploConsi<strong>de</strong>ramos A = (K,Σ,δ,s,F), don<strong>de</strong> K := {s,q 1 ,q 2 },Σ := {0,1}, F := {q 2 } y la función <strong>de</strong> transición δ se <strong>de</strong>scribemediante la tabla <strong>de</strong> transiciones:0 1→ s q 1 sq 1 q 1 q 2∗q 2 q 2 q 2La flecha indica el estado inicial y el asterisco indica el estado final.El autómata acepta las ca<strong>de</strong>nas que contienen la secuencia 01.


Configuración y paso <strong>de</strong> computaciónDefinición (Configuración, AFD)Dado un autómata finito <strong>de</strong>terminista D = (K,σ,δ,s,F), llamaremosconfiguración a toda tupla (q,w) ∈ K ×Σ ∗ .Definición (Paso <strong>de</strong> computación, AFD)Sea D = (K,Σ,δ,s,F) un autómata finito <strong>de</strong>terminista y sean (q,w)y (q ′ ,w ′ ) dos configuraciones <strong>de</strong>l mismo. Diremos que laconfiguración (q ′ ,w ′ ) se sigue <strong>de</strong> (q,w) en un paso <strong>de</strong> computación,<strong>de</strong>notado mediante (q,w) ⊢ D (q ′ ,w ′ ), si existe σ ∈ Σ tal queδ(q,σ) = q ′ y w = σw ′ .(q,w) ⊢ ∗ D (q′ ,w ′ ) <strong>de</strong>nota cero o más pasos <strong>de</strong> computación.


Lenguaje <strong>de</strong> un AFDDefinición (Lenguaje <strong>de</strong> un AFD)Dado un autómata finito <strong>de</strong>terminista D = (K,Σ,δ,s,F), se <strong>de</strong>fine ellenguaje aceptado por el autómata, <strong>de</strong>notado L(D), como:L(D) := {ω ∈ Σ ∗ : (s,ω) ⊢ ∗ D (f,ε), con f ∈ F}.Los lenguajes que son aceptado por un autómata finito <strong>de</strong>terministase llaman regulares.


Representación <strong>de</strong> AFDLos AFD se representan, normalmente mediante su diagramas <strong>de</strong>transición. En ella se representa el autómata mediante un grafoorientado sujeto a las siguientes consi<strong>de</strong>raciones:cada nodo <strong>de</strong>l grafo se correspon<strong>de</strong> con un estado <strong>de</strong>l autómata,dos nodos p y q están unidos mediante un arco dirigido <strong>de</strong> p a qsi y sólo si existe σ ∈ Σ, tal que δ(p,σ) = q; dicho arco seetiqueta con el símbolo σ; si existen diversos símbolosσ 1 ,...,σ n ∈ Σ, el arco se etiqueta con σ 1 ,...,σ n ,los nodos correspondientes a estados aceptadores serepresentan mediante una doble circunferencia, yal nodo correspondiente al estado inicial llega una flecha sinorigen concreto.


EjemploEjemploEl autómata anterior se representa mediante:100,10s q11 q 2


Paso <strong>de</strong> computaciónDefiniciónSea N = (K,Σ,δ,s,F) un autómata finito no <strong>de</strong>terminista y sean(q,w) y (q ′ ,w ′ ) dos configuraciones <strong>de</strong>l mismo. Diremos que laconfiguración (q ′ ,w ′ ) se sigue <strong>de</strong> (q,w) en un paso <strong>de</strong> computación,<strong>de</strong>notado mediante (q,w) ⊢ D (q ′ ,w ′ ), si existe σ ∈ Σ tal queq ′ ∈ δ(q,σ) y w = σw ′ .La notación (q,w) ⊢ ∗ N (q′ ,w ′ ) indicará que la configuración (q ′ ,w ′ ) sesigue <strong>de</strong> (q,w) en cero o más pasos <strong>de</strong> computación.


EjemploConsi<strong>de</strong>rar el autómata N = (K,Σ,δ,s,F), don<strong>de</strong> K := {s,q 1 ,q 2 },Σ := {0,1}, F := {q 2 } y la función <strong>de</strong> transición δ se <strong>de</strong>scribemediante:0 1→ s {s,q 1 } {s}q 1 /0 {q 2 }∗q 2 {q 2 } {q 2 }


EjemploEl diagrama <strong>de</strong> transición es como sigue:0,10,10s q11 q 2


Equivalencia entre AFDs y AFNsTeoremaTodo lenguaje L ⊆ Σ ∗ aceptado por un autómata finito no <strong>de</strong>terministaes aceptado por un autómata finito <strong>de</strong>terminista.


DemostraciónSea L ⊆ Σ ∗ un lenguaje aceptado por un AFN N = (K,Σ,δ,s,F).Construimos un AFD D = (K ′ ,Σ,δ ′ ,s ′ ,F ′ ) que acepta L como sigue:DefinimosK ′ := P(K),F ′ := {q ∈ K ′ : q ∩ F ≠ /0},δ ′ : K ′ ×Σ → K ′ se <strong>de</strong>fine medianteδ ′ (q,σ) := δ(q × {σ}) = ∪ p∈q δ(p,σ), yel estado inicial mediante s ′ := {s}.


DemostraciónVeamos, por inducción en la longitud <strong>de</strong> la ca<strong>de</strong>na w, que si D aceptaw partiendo <strong>de</strong> un cierto estado q ′ , existe una estado q ∈ q ′ , tal que Nacepta w partiendo <strong>de</strong> q.(Base) Supongamos w = ε. Por lo tanto, si D acepta ε partiendo<strong>de</strong> q ′ , se sigue que q ′ ∈ F ′ . Tomando q ∈ q ′ ∩ F tenemos que Nacepte w partiendo <strong>de</strong> q.(Paso inductivo) Supongamos que la afirmación es cierta paratodas las ca<strong>de</strong>nas <strong>de</strong> longitud a lo más n − 1 y sea w = w 1 ···w nuna <strong>de</strong> longitud n aceptada por D partiendo <strong>de</strong> q ′ . Tenemos queD acepta w 2 ···w n partiendo <strong>de</strong> δ ′ (q ′ ,w 1 ). Por lo tanto, existe unp ∈ δ ′ (q ′ ,w 1 ) tal que N acepta w 2 ···w n partiendo <strong>de</strong>l estado p.Puesto que p ∈ δ ′ (q ′ ,w 1 ), existe un q ∈ q ′ tal que δ(q,w 1 ) = p ypor en<strong>de</strong>, N acepta w partiendo <strong>de</strong> q con q ∈ q ′ .Tomando como q ′ = {s}, si D acepta una cierta ca<strong>de</strong>na w, N tambiénla acepta. Igualmente se <strong>de</strong>muestra que si N acepta una ca<strong>de</strong>na w, Dtambién.


Algoritmo <strong>de</strong> conversiónAlgoritmoEl algoritmo toma como entrada la <strong>de</strong>scripción <strong>de</strong> un autómata finitono <strong>de</strong>terminista cualquiera A = (K,Σ,δ,s,F) y <strong>de</strong>vuelve como salidaun autómata finito <strong>de</strong>terminista A ′ = (K ′ ,Σ,δ ′ ,s ′ ,F ′ ) que acepta elmismo lenguaje. Su evolución es la siguiente.(Inicialización) Inicializa el nuevo conjunto <strong>de</strong> estadosK ′ := {{s}} y para cada σ ∈ Σ lleva a cabo la siguiente tarea:<strong>de</strong>fine δ ′ ({s},σ 1 ) = δ(s,σ) y, si δ(s,σ) ≠ {s} aña<strong>de</strong> δ(s,σ) aK ′ .(Iteración) Si para todo q ∈ K ′ y σ ∈ Σ está <strong>de</strong>finido δ ′ (q,σ), elalgoritmo termina su ejecución <strong>de</strong>volviendo A ′ = (K ′ ,Σ,δ ′ ,s ′ ,F ′ )don<strong>de</strong> F ′ = {q ∈ K ′ ;q ∩ F ≠ /0}. En caso contrario, consi<strong>de</strong>ra unpar (q,σ) ∈ K ′ ×Σ tal que δ ′ (q,σ) no haya sido <strong>de</strong>finido, <strong>de</strong>fineδ ′ (q,σ) = δ(q,σ) y, si δ(q,σ) /∈ K ′ , se aña<strong>de</strong> a K ′ y se itera <strong>de</strong>nuevo.


Ejemplo <strong>de</strong> conversión <strong>de</strong> AFN a AFDCosi<strong>de</strong>ramos el AFN anterior. Tomamos como estado inicial {s},inicializamos K ′ = {{s}} y <strong>de</strong>finimos las transicionesδ ′ ({s},0) = {s,q 1 } y δ ′ ({s},1) = {s}.Actualizamos K ′ a {{s},{s,q 1 }} y <strong>de</strong>finimosδ ′ ({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 <strong>de</strong>finimosδ ′ ({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 <strong>de</strong>finimos:δ ′ ({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 <strong>de</strong> conversión <strong>de</strong> AFN a AFD1 010{s} {s,q 1 }1{s,q 2 }10{s,q 1 ,q 2 }0


Autómatas finitos no <strong>de</strong>terministas con transiciones vacíasDefiniciónUn autómata finito con transiciones ε es una tupla E = (K,Σ,δ,s,F)don<strong>de</strong>:K es un conjunto (finito) <strong>de</strong> estados,Σ es una alfabeto (finito),δ : K ×(Σ ∪ {ε}) −→ P(K) es la función <strong>de</strong> transición,s ∈ K es el estado inicial, yF ⊆ K es el conjunto <strong>de</strong> los estados aceptadores. aa Nótese que la función <strong>de</strong> transición también pue<strong>de</strong> <strong>de</strong>finirse como una relaciónδ ⊆ K ×Σ×Σ, al igual que en el caso <strong>de</strong> los autómatas finitos no <strong>de</strong>terministas.


Paso <strong>de</strong> computaciónDefiniciónSea E = (K,Σ,δ,s,F) un autómata finito no <strong>de</strong>terminista contransiciones vacías y sean (q,w) y (q ′ ,w ′ ) dos configuraciones <strong>de</strong>lmismo. Diremos que la configuración (q ′ ,w ′ ) se sigue <strong>de</strong> (q,w) en unpaso <strong>de</strong> 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 <strong>de</strong> (q,w) en cero o más pasos<strong>de</strong> computación.


Clausura respecto <strong>de</strong> εDefinición (Clausura respecto <strong>de</strong> ε)Dado un autómata finito no <strong>de</strong>terminista con transiciones vacíasE = (K,Σ,δ,s,F), se <strong>de</strong>fine la clausura <strong>de</strong> un estado q ∈ K , conrespecto <strong>de</strong> ε, <strong>de</strong> manera recursivaq ∈ Cl ε (q),para todo p ∈ Cl ε (q) y todo r ∈ Q tales que r ∈ δ(p,ε), severifica r ∈ Cl ε (q).En general, dado un conjunto Q ⊆ K , se <strong>de</strong>fine la clausura <strong>de</strong> Q conrespecto a transiciones vacías <strong>de</strong> manera análoga.


Un ejemploSea E = (K,Σ,δ,F,s) es autómata finito no <strong>de</strong>terminista contransiciones vacías <strong>de</strong>scrito por el siguiente diagrama <strong>de</strong> transición:0,10,1ε 0s q12 q 3q 1El autómata anterior acepta el lenguaje <strong>de</strong> las ca<strong>de</strong>nas que contienenla secuencia 01.En este caso, por ejemplo, Cl ε (s) = {s,q 1 } y Cl ε (q 1 ) = {q 1 }.


Equivalencia con AFDTeoremaTodo lenguaje L ⊆ Σ ∗ aceptado por un autómata finito no <strong>de</strong>terministacon transiciones vacías es aceptado por un autómata finito<strong>de</strong>terminista.


DemostraciónSea dado un AFN–ε E = (K,Σ,δ,s,F). Construimos un AFDD = (K ′ ,Σ,δ ′ ,s ′ ,F), que acepte el mismo lenguaje, como sigueK ′ := {P ⊆ K : Cl ε (P) = P},s ′ := Cl ε (s),F ′ := {P ∈ K ′ : P ∩ F ≠ /0}, ydados P ∈ K ′ y σ ∈ Σ, <strong>de</strong>finimos( )⋃δ ′ (P,σ) := Cl ε δ(p,σ) .p∈P


DemostraciónDemostración.Por inducción en la longitud <strong>de</strong> la ca<strong>de</strong>na w, veamos que si D aceptaw partiendo <strong>de</strong> un cierto estado q ′ , existe una estado q ∈ q ′ , tal que Eacepta w partiendo <strong>de</strong> q.(Base) Si w = ε y D acepta ε partiendo <strong>de</strong> q ′ , tenemos q ′ ∈ F ′ .Tomando q ∈ q ′ ∩ F se tiene que E acepte w partiendo <strong>de</strong> q.(Paso inductivo) Supongamos la afirmación es cierta para todaslas ca<strong>de</strong>nas <strong>de</strong> longitud a lo más n − 1 y sea w = w 1 ···w n . Si wes aceptada por D partiendo <strong>de</strong> un cierto estado q ′ , tenemos queD acepta w 2 ···w n partiendo <strong>de</strong> δ ′ (q ′ ,w 1 ). Por lo tanto, existe unp ∈ δ ′ (q ′ ,w 1 ) tal que E acepta w 2 ···w n partiendo <strong>de</strong>l estado p.Puesto que p ∈ δ ′ (q ′ ,w 1 ), existe un q ∈ q ′ tal que δ(q,w 1 ) = q ′′<strong>de</strong> manera que p ∈ Cl ε (q ′′ ) y por en<strong>de</strong>, que E acepta wpartiendo <strong>de</strong> q con q ∈ q ′ .Tomando s ′ = {s}, si D acepta una cierta ca<strong>de</strong>na w, N también.Igualmente se muestra que si N acepta w, D también.


Algoritmo <strong>de</strong> conversiónAlgoritmoEl algoritmo toma como entrada un AFN–ε A = (K,Σ,δ,s,F) y<strong>de</strong>vuelve un AFD con igual lenguaje. Su funcionameinto es:(Inicialización) Inicializa K ′ := {CL ε {s}} y para cada σ ∈ Σ<strong>de</strong>fineδ ′ ({s},σ 1 ) = Cl ε (δ(s,σ)).Si Cl ε (δ(s,σ)) ≠ Cl ε ({s}) aña<strong>de</strong> Cl ε (δ(s,σ)) a K ′ .(Iteración) Si todas las transiciones están <strong>de</strong>finidas, el algoritmotermina <strong>de</strong>volviendo A ′ = (K ′ ,Σ,δ ′ ,s ′ ,F ′ ), conF ′ = {q ∈ K ′ ;q ∩ F ≠ /0}. Si no es así, consi<strong>de</strong>ra (q,σ) ∈ K ′ ×Σt.q. δ ′ (q,σ) no está <strong>de</strong>finido, y <strong>de</strong>fineδ ′ (q,σ) = Cl ε (δ(q,σ))y, si Cl ε (δ(q,σ)) /∈ K ′ , se aña<strong>de</strong> a K ′ e itera <strong>de</strong> nuevo.


EjemploEl estado inicial es {s,q 1 } (clausura con respecto al vacío <strong>de</strong> s),<strong>de</strong>finimos 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 <strong>de</strong>finimosδ ′ ({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 <strong>de</strong>finimos:δ ′ ({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 <strong>de</strong>finimosδ ′ ({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 }}.


EjemploEl autómata diagrama <strong>de</strong> transiciones <strong>de</strong>l autómata construido es elsiguiente:1 01 00{s} {s,q 1 }1{s,q 2 }0{s,q 1 ,q 2 }1


Contenidos1 Autómatas finitosAutómatas finitos <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministas1 <strong>Gramáticas</strong> regularesExpresiones y gramáticas regularesAutómatas finitos y gramáticas regularesAutómatas y expresiones regulares1 Propieda<strong>de</strong>s <strong>de</strong> los lenguajes regulares<strong>Lenguajes</strong> no regularesPropieda<strong>de</strong>s <strong>de</strong> clausuraPropieda<strong>de</strong>s <strong>de</strong> <strong>de</strong>cisiónEquivalencia y minimización1 Autómatas a pilaDefiniciones básicasAutómatas a pila <strong>de</strong>terministas


Expresiones regularesDefiniciónDado un alfabeto finito Σ, se <strong>de</strong>fine un expresión regular, víainducción estructural, <strong>de</strong> la siguiente manera:(Base) /0,ε y σ (con σ ∈ Σ) son expresiones regulares cuyoslenguajes asociados son /0, {ε} y {σ} respectivamente.(Inducción) Distinguimos los siguientes casos:Dada una e.r. E, (E) es una e.r. cuyo lenguaje es precisamenteL(E) (el lenguaje asociado a E).Dada una e.r. E, E ∗ es una e.r. cuyo lenguaje es L(E) ∗ (lacláusura <strong>de</strong> 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 esL(E 1 ) ∪ L(E 2 ) (la unión <strong>de</strong> 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 asociadoes L(E 1 )L(E 2 ) (la concatenación <strong>de</strong> los lenguajes <strong>de</strong> E 1 y E 2 ).


EjemploUn ejemplo sencillo <strong>de</strong> e.r. es (0+1) ∗ 01(0+1) ∗ . Dicha expresión<strong>de</strong>scribe el conjunto <strong>de</strong> las ca<strong>de</strong>nas <strong>de</strong> ceros y unos que continen lasubca<strong>de</strong>na 01. Para verlo, basta observar que (0+1) ∗ <strong>de</strong>scribecualquier ca<strong>de</strong>na <strong>de</strong> ceros y unos.


Gramática regularDefiniciónUna gramática regular (lineal a <strong>de</strong>recha) es una tuplaG = (N,T,P,S) don<strong>de</strong>N es un conjunto finito <strong>de</strong> símbolos llamados variables osímbolos no terminales,T es un conjunto finito <strong>de</strong> símbolos, llamados terminales,satisfaciendo T ∩ N = /0,P ⊆ N ×(T ∗ N ∪ T) es un conjunto finito <strong>de</strong> elementos, llamadosproducciones, <strong>de</strong> manera tal que si (p,q) ∈ P se<strong>de</strong>notará mediante la expresión p → q; p recibe el nombre <strong>de</strong>cabeza y q el <strong>de</strong> cuerpo <strong>de</strong> la producción, yS ∈ N es el símbolo inicial.


EjemploLa gramática que <strong>de</strong>scribe el lenguaje asociado a (0+1) ∗ 01(0+1) ∗viene dada por las producciones siguientes:S → 0SS → 1SS → 01S ′S ′ → 0S ′S ′ → 1S ′ , yS ′ → ε.Más compactamente,S → 0S|1S|01S ′S ′ → 0S|1S|ε.


DerivaciónDefiniciónDada una gramática regular G = (N,T,P,S) y una ca<strong>de</strong>na αv, conα ∈ T ∗ y v ∈ N, diremos que αγ ∈ (T ∗ N ∪ T ∗ ) <strong>de</strong>riva <strong>de</strong> αv, si existeuna producción v → γ ∈ P. Si es el caso, lo indicaremos mediante lanotación αv ⇒ G αγ; en general, si una cierta ca<strong>de</strong>na β ∈ (T ∗ N ∪ T ∗ )<strong>de</strong>riva <strong>de</strong> δ ∈ (T ∗ N ∪ T ∗ ) tras un número finito <strong>de</strong> <strong>de</strong>rivaciones, lonotaremos mediante δ ⇒ ∗ G γ.EjemploContinuando con el ejemplo anterior, es sencillo ver que se tiene, porejemplo,S ⇒ 0S ⇒ 01S ⇒ 0101S ′ ⇒ 0101.En particular, se tiene que 0101 pertenece al lenguaje <strong>de</strong> la gramática.


Autómatas finitos y gramáticas regularesTeoremaSea A un autómata finito. Entonces, existe una gramática regular G talque L(G) = L(A).


DemostraciónSupongamos dado un autómata A = (K,Σ,δ,q 0 ,F). Construimos lagramática G tal que L(G) = L(A) como sigue: el conjunto <strong>de</strong> variables<strong>de</strong> G coinci<strong>de</strong> con Q (el conjunto <strong>de</strong> estados <strong>de</strong> A), el conjunto <strong>de</strong>carácteres terminales <strong>de</strong> G es Σ y su símbolo inicial es q 0 . Lasproducciones <strong>de</strong> G se <strong>de</strong>finen como sigue: dada una variable q ∈ Q,q → σp (con p ∈ Q y σ ∈ Σ) es una producción si δ(q,σ) = p; dadoun estado aceptador f ∈ F, f → ε es una producción.Queda claro que una cierta ca<strong>de</strong>na w ∈ Σ ∗ se <strong>de</strong>riva <strong>de</strong>l símboloinicial <strong>de</strong> G si y sólo si es aceptado por el autómata. Por lo tanto,L(G) = L(A).


EjemploConsi<strong>de</strong>remos el autómata finito <strong>de</strong>terminista visto anteriormente, lagramática <strong>de</strong>l lenguaje por él aceptado es:q 0 → 1q 0q 0 → 0q 1q 1 → 0q 1q 1 → 1q 2q 2 → 0q 2 ,q 2 → 1q 2 , yq 2 → ε.


De gramáticas regulares a autómatasTeoremaSea G una gramática regular. Entonces, existe un autómata finito (no<strong>de</strong>terminista) A tal que L(A) = L(G).


DemostraciónSupongamos dada una gramática regular G = (V,T,P,S) (lineal a<strong>de</strong>recha). Construimos el autómata A = (K,T,δ,q 0 ,F) como sigue:el conjunto <strong>de</strong> estado viene dado por las expresiones <strong>de</strong> la forma[v], don<strong>de</strong> v es una subca<strong>de</strong>na <strong>de</strong>l cuerpo <strong>de</strong> alguna producción,el alfabeto <strong>de</strong>l autómata coinci<strong>de</strong> con el conjunto <strong>de</strong> caracteresterminales <strong>de</strong> G,la función <strong>de</strong> transición se <strong>de</strong>fine mediante las reglas siguientes:dado un estado [p], con p una variable <strong>de</strong> G, y un símbolo t ∈ T ,se <strong>de</strong>fineδ([p],t) = {[q] : p → q ∈ P}.Dados t ∈ T y p ∈ T ∗ ∪ T ∗ V <strong>de</strong>finiendo un estado [p], se <strong>de</strong>fineδ([tp],t) = {[p]}Es fácil ver, por inducción en la longitud <strong>de</strong> las ca<strong>de</strong>nas, queL(A) = L(G).


De expresiones regulares a autómatasTeoremaSea Σ un alfabeto finito y E una expresión regular sobre dichoalfabeto. Entonces, existe un autómata finito (no <strong>de</strong>terminista contransiciones vaciás) A = (K,Σ,δ,q 0 ,F) tal que L(A) = L(E).


DemostraciónLa <strong>de</strong>mostración es por inducción estructural en la expresión regular;como subproducto, se <strong>de</strong>scribe un algoritmo que transformaexpresiónes regulares en autómatas finitos (no <strong>de</strong>terministas contransiciones vaciás)


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


Demostración(Paso inductivo).- Si E = E 1 + E 2 , don<strong>de</strong> E 1 y E 2 son dos e.r. con A 1 yA 2 como AF asociados (i.e. se satisface que L(E 1 ) = L(A 1 ) yL(E 2 ) = L(A 2 )), consi<strong>de</strong>ramos:εA 1εεεA 2


DemostraciónSi E = E ∗ 1 , don<strong>de</strong> E 1 es e.r. con A 1 AF asociado, consi<strong>de</strong>ramos:εεεε


DemostraciónSi E = E 1 E 2 , don<strong>de</strong> E 1 y E 2 son dos e.r. con A 1 y A 2 como AFasociados, consi<strong>de</strong>ramos:εεA 2A 2Queda claro que los lenguajes se correspon<strong>de</strong>n con los <strong>de</strong> las e.r..


De autómatas a expresiones regularesTeoremaSea 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ónSupongamos que A es un AFD. A<strong>de</strong>más, suponemos que el conjunto<strong>de</strong> estados es {1,...,n}.Construimos una familia <strong>de</strong> e.r. Rij k , con 1 ≤ k ≤ n y 1 ≤ i,j ≤ k, cuyointerpretación es la siguiente: Rij k es la expresión regular que <strong>de</strong>scribelas ca<strong>de</strong>nas que hacen que A pase <strong>de</strong>l estado i al estado jatravesando, únicamente, nodos etiquetados con naturales menores oiguales a k.La construcción <strong>de</strong> dichas e.r. es inductiva en k.


DemostraciónEn primer lugar, supongamos que k = 0 (caso base). Entonces, R 0 ij<strong>de</strong>nota el conjunto <strong>de</strong> las ca<strong>de</strong>nas que hacen transicionar al autómataA <strong>de</strong>l estado i al estado j sin pasar por estado alguno (todos losestados están etiquetados con un natural mayor que cero). Por lotanto, caben dos posibilida<strong>de</strong>s:existe una transición <strong>de</strong>l nodo i al nodo j o, equivalentemente,existe un camino (arco) en el diagrama <strong>de</strong> transición <strong>de</strong> A que va<strong>de</strong> i a j; suponiendo que dicho camino está etiquetado con lossímbolos σ 1 ,...,σ l , <strong>de</strong>finimos R 0 ij= σ 1 +...+σ l ,no existe una tal transición; en este caso, <strong>de</strong>finimos R 0 ij= /0.


DemostraciónSupongamos construidas las expresiones regulares Rij k para1 ≤ k ≤ n. Construyamos la expresiones regulares R n+1ij, con1 ≤ i,j ≤ n+1. Dados i,j, con 1 ≤ i,j ≤ n+1, supongamos queexiste una ca<strong>de</strong>n que hace transicionar al autómata <strong>de</strong>l estado i al jatravesando estados etiquetados con naturales menores o igualesque n+1. Distinguimos los siguientes casos:si existe la ca<strong>de</strong>na en cuestión no hace transicionar al autómataA por el estado n+1 (la ca<strong>de</strong>na da un camino <strong>de</strong>l nodo i al nodoj que no atraviesa nodos etiquetados con naturales mayores quen en el diagrama <strong>de</strong> transiciones), dicha ca<strong>de</strong>naestá comtemplada en la expresión regular R n ij ,


Demostraciónsi no es el caso, esto es, la ca<strong>de</strong>na hace transicionar al autómatapor el estado n, partimos dicha ca<strong>de</strong>na en fragmentos <strong>de</strong> lasiguiente manera:el primer fragmento hace transicionar al autómata <strong>de</strong>l estado i aln+1 sin pasar por n+1 como estado intermedio,el último fragmento hace transicionar al autómata <strong>de</strong>l estado n+1al estado j sin pasar por n+1 como estado intermedio, ylos fragmentos intermedios son tales que hacen pasar alautómata <strong>de</strong>l estado n+1 al estado n+1 sin que éste sea uno <strong>de</strong>los intermedios.El primer fragmento está <strong>de</strong>scrito por R n i(n+1) , el último porR n (n+1)jy los fragmentos intermedios por R n (n+1)(n+1 .


DemostraciónPor lo tanto y en cualquier caso, dicha ca<strong>de</strong>na queda <strong>de</strong>scrita porR n ij + Ri(n+1) n (Rn (n+1)(n+1 )∗ R n (n+1)j .El lenguaje <strong>de</strong> A está dado por es la dada por la suma <strong>de</strong> las e.r. <strong>de</strong> laforma R1k n , don<strong>de</strong> 1 suponemos es el estado inicial y k es un estadofinal.


Contenidos1 Autómatas finitosAutómatas finitos <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministas1 <strong>Gramáticas</strong> regularesExpresiones y gramáticas regularesAutómatas finitos y gramáticas regularesAutómatas y expresiones regulares1 Propieda<strong>de</strong>s <strong>de</strong> los lenguajes regulares<strong>Lenguajes</strong> no regularesPropieda<strong>de</strong>s <strong>de</strong> clausuraPropieda<strong>de</strong>s <strong>de</strong> <strong>de</strong>cisiónEquivalencia y minimización1 Autómatas a pilaDefiniciones básicasAutómatas a pila <strong>de</strong>terministas


EjemploConsidérese el lenguaje <strong>de</strong>finido sobre {0,1}L := {0 n 1 n : n ∈ N}Intuitivamente se pue<strong>de</strong> llegar a la conclusión <strong>de</strong> que dicho lenguajeno es regular puesto que un autómata finito que lo reconozca <strong>de</strong>beser capaz <strong>de</strong> contar el número <strong>de</strong> ceros para compararlo con elnúmero <strong>de</strong> unos. Sin embargo, dado que los autómatas tienen unacapacidad <strong>de</strong> almacenamiento limitada por el número <strong>de</strong> estado, nopue<strong>de</strong>n almacenar números arbitrariamente gran<strong>de</strong>s. Por lo tanto, nopue<strong>de</strong> existir un tal autómata, i.e. L no es regular


Lema <strong>de</strong> BombeoLema (Lema <strong>de</strong> Bombeo)Sea L un lenguaje regular. Entonces, existe una constante n(<strong>de</strong>pendiente <strong>de</strong> L) tal que para toda ca<strong>de</strong>na ω ∈ L <strong>de</strong> longitud mayoro igual que n, existen ca<strong>de</strong>nas ω 1 ,ω 2 ,ω 3 ∈ Σ ∗ tales que:ω 2 ≠ ε,|ω 1 ω 2 | ≤ n, ypara todo k ∈ N, la ca<strong>de</strong>na ω 1 ω k 2 ω 3 pertenece a L.


Función <strong>de</strong> transición extendidaDefiniciónDado un autómata A = (K,Σ,δ,s,F), se <strong>de</strong>fine la extensión <strong>de</strong> δ aldominio K ×Σ ∗ (<strong>de</strong>notada por ˆδ ) <strong>de</strong> manera inductiva en la longitud<strong>de</strong> las ca<strong>de</strong>nas:dado q ∈ K , <strong>de</strong>finimos ˆδ(q,ε) := q,dados q ∈ K , ω ∈ Σ ∗ y σ ∈ Σ, <strong>de</strong>finimosˆδ(q,σω) := δ(ˆδ(q,ω),σ).NotaA acepta w ∈ Σ ∗ si y sólo si ˆδ(s,w) ∈ F.


DemostraciónDemostración.Supongamos dado un lenguaje regular L y consi<strong>de</strong>remos un AFA = (K,Σ,δ,s,F) t.q. L = L(A); supongamos a<strong>de</strong>más que #K = n.Dada una ca<strong>de</strong>na ω = σ 1 ···σ m ∈ Σ ∗ , con m ≥ n, <strong>de</strong>finimos p i , para0 ≤ i ≤ m, como el estado en el que se encuentra el autómata trasprocesar la ca<strong>de</strong>na σ 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 elresultado.


EjemploEjemploConsi<strong>de</strong>ramos el lenguaje <strong>de</strong>l ejemplo anterior, veamos por reducciónal absurdo, que no es regular.Si así fuera, por el Lema <strong>de</strong> Bombeo, existiría un natural n ∈ N tal quepara toda ca<strong>de</strong>na <strong>de</strong> longitud como poco n, digamos ω ∈ Σ ∗ existenca<strong>de</strong>nas ω 1 ,ω 2 ,ω 3 ∈ Σ ∗ tales que1 ω 2 ≠ ε,2 |ω 1 ω 2 | ≤ n, y3 para todo k ∈ N, la ca<strong>de</strong>na ω 1 ω k 2 ω 3 pertenece a L.En particular, consi<strong>de</strong>ramos la ca<strong>de</strong>na <strong>de</strong> L <strong>de</strong>finida 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 sunúmero <strong>de</strong> ceros es forzosamente menor que él <strong>de</strong> unos (ω 2 tienelongitud mayor o igual a uno, i.e. consta <strong>de</strong> como poco <strong>de</strong> un cero).


Propieda<strong>de</strong>s básicasTeoremaLas siguientes afirmaciones son ciertas.1 La unión <strong>de</strong> dos lenguajes regulares es regular.2 El complementario <strong>de</strong> un lenguaje regular es regular.3 La intersección <strong>de</strong> dos lenguajes reuglares es regular.4 La diferencia <strong>de</strong> dos lenguajes regulares es regular.NotaLas afirmaciones anteriores son ciertas para un número finito <strong>de</strong>lenguajes (la <strong>de</strong>mostración es por inducción).


Demostración1. Sean L,L ′ ⊆ Σ ∗ dos lenguajes regulares y E L y E L ′ e.r. para losmismos. La expresión regular E L + E L ′) da el lenguaje L ∪ L ′ y, por lotanto, es regular.2. Sea L un lenguaje regular dado por un AFD A. Construimos unautómata A ′ igual a A con la salvedad <strong>de</strong> que sus estadosaceptadores son los estados <strong>de</strong> rechazo <strong>de</strong> A. El autómata A ′ aceptacualquier ca<strong>de</strong>na que A rechaze, i.e. <strong>de</strong>termina el lenguaje L c . Por lotanto, el complementario <strong>de</strong> L es un lenguaje regular.


Demostración3. Dados dos lenguaje regulares L,L ′ ⊂ Σ ∗ tenemos (Leyes <strong>de</strong>Morgan):L ∩ L ′ = ( L c ∪ L ′c)c .Puesto que, tal y como se ha <strong>de</strong>mostrado en 1. y 2., la unión y elcomplementario <strong>de</strong> lenguajes regulares es regular, se sigue que laintersección es regular.4. Sean L,L ′ ⊆ Σ ∗ dos lenguajes regulares. Puesto que se verifica:L \ L ′ = L ∩ L ′c ,se sigue <strong>de</strong> 1. y 3. que la diferencia <strong>de</strong> lenguajes regulares es regular.


ReflexiónDefiniciónDada una ca<strong>de</strong>na cualquiera ω = ω 1 ···ω n ∈ Σ ∗ sobre el alfabeto Σ,se <strong>de</strong>fine la reflexión <strong>de</strong> la ca<strong>de</strong>na ω, notada ω R , comoω R := ω n ···ω 1 .DefiniciónDado un lenguaje L ⊆ Σ ∗ , se <strong>de</strong>fine la reflesión <strong>de</strong>l lenguaje L,<strong>de</strong>notada por L R , comoL R := {ω R : ω ∈ L}.TeoremaSea L ⊆ Σ un lenguaje regular. Entonces, L R es un lenguaje regular.


DemostraciónPara <strong>de</strong>mostrar el enunciado haremos uso <strong>de</strong> la relación existenteentre lenguajes regulares y expresiones regulares.Supongamos en primer lugar que el lenguaje regular L es <strong>de</strong>scrito poruna expresión regular E. Procediendo por inducción estructural,distinguimos los siguientes casos:(Caso Base) Si E = /0, E = ε o E = σ, para algún σ ∈ Σ, <strong>de</strong>finiendoE R como E se tieneL(E R ) = L(E) R = L.


Demostración(Paso inductivo) Consi<strong>de</strong>remos las restantes alternativas:Supongamos que E = E 1 + E 2 , para ciertas expresionesregulares E 1 y E 2 . Definiendo E R = E1 R + E 2R tenemos queL(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 , <strong>de</strong>finiendo E R = E R 2 E R 1tenemosL(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 ∗ 1se sigue <strong>de</strong>l anterior.


HomomorfismoDefiniciónDados dos alfabetos finitos Σ y Γ, llamaremos homomorfismo a todaaplicación h : Σ → Γ ∗ . Toda aplicación como la anterior induce, <strong>de</strong>manera natural una aplicación h : Σ ∗ → Γ ∗ <strong>de</strong>finida medianteh(σ 1 ···σ n ) := h(σ 1 )···h(σ n ).Dado un lenguaje cualquiera L ⊆ Σ, llamaremos homomorfismo <strong>de</strong> L(con respecto a h) al lenguaje h(L) <strong>de</strong>finido porh(L) = {ω ∈ Γ : ∃ω ′ ∈ Lt.q. h(ω ′ ) = ω}.TeoremaSea L ⊂ Σ ∗ un lenguaje regular y h : Σ → Γ un homomorfismo entrelos alfabetos (finitos) Σ y Gamma. Entonces, el homomorfismo <strong>de</strong>llenguaje L (con respecto a h) es un lenguaje regular.


DemostraciónSupongamos que el lenguaje L viene dado mediante una expresiónregular sobre el alfabeto Σ, digamos E. Construyamos, por inducciónestructural, una nueva expresión, digamos E h , que <strong>de</strong>termine h(L).(Caso Base) Supongamos <strong>de</strong> entrada que E = /0, E = ε ó E = σ(con σ ∈ Σ). Entonces, <strong>de</strong>finimos E h mediante E h := /0, E h := εó E h := h(σ) <strong>de</strong> pendiendo <strong>de</strong>l caso. Está claro que, en estecaso, h(L(E)) = L(E h ).(Paso Inductivo) Distinguimos los siguientes casos:si E = E 1 + E 2 , <strong>de</strong>finimos E h := E1 h + E 2 h .si E = E 1 E 2 , <strong>de</strong>finimos E h := E1 h E 2 h y, finalmente,si E = E ∗ 1 , <strong>de</strong>finimos E h := (E h ) ∗ . Resulta fácil <strong>de</strong> ver que en lostres casos anteriores se tiene que h(L(E)) = L(E h ).En resumen, el homomorfismo <strong>de</strong> un lenguaje regular es regular.


Homomorfismo inversoDefiniciónSean Σ y Γ dos alfabetos finitos, h : Σ → Γ un homomorfismo yL ⊂ Γ ∗ un lenguaje regular. Se <strong>de</strong>fine el homomorfismo inverso <strong>de</strong> L(con respecto a h), <strong>de</strong>notado h −1 (L), como:h −1 (L) := {ω ∈ Σ ∗ : h(ω) ∈ L}.TeoremaSean Σ y Γ dos alfabetos finitos, h : Σ → Γ un homomorfismo yL ⊂ Γ ∗ un lenguaje regular. El homomorfismo inverso <strong>de</strong> L es unlenguaje regular.


DemostraciónSupongamos dado A = (K,Γ,δ,s,F) aceptando L. Construyamos unautómata A ′ = (K,Σ,δ ′ ,s,F) (sólo cambia la función <strong>de</strong> transición)<strong>de</strong>finiendo:δ ′ (q,σ) := ˆδ(q,h(σ)),don<strong>de</strong> ˆδ <strong>de</strong>nota la función <strong>de</strong> transición extendida <strong>de</strong> A.Queda claro que el lenguaje <strong>de</strong> A ′ es precisamente h −1 (L).


EquivalenciaTeoremaExisten algoritmos que1 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), y3 dada una g.r. G, construyen una e.r. E, tal que L(E) = L(G).


Otros problemasCuestiónDado un lenguaje regular L, ¿es L no vacío?CuestiónDado un lenguaje regular L, ¿es L el total, i.e. L = Σ ∗ ?CuestiónDados lenguajes regulares L 1 y L 2 , ¿es L 1 = L 2 ?


VaciedadTeoremaExiste un algoritmo que dado un lenguaje regular L <strong>de</strong>ci<strong>de</strong> si es o novacío.


Demostración para AFSi L viene dado por un AF, dicha pregunta equivale a: ¿existe uncamino <strong>de</strong>l estado inicial a un estado aceptador?Así enunciada, la pregunta tiene fácil respuesta algorítmica:el estado inicial es accesible <strong>de</strong>s<strong>de</strong> el estado inicial, ysi el estado p es accesible <strong>de</strong>s<strong>de</strong> el estado inicial y existe un arco<strong>de</strong> p a q, entonces el estado q es accesible <strong>de</strong>s<strong>de</strong> el estadoinicial.Lo anterior resume la construcción inductiva <strong>de</strong>l conjunto <strong>de</strong> estadosaccesibles <strong>de</strong>s<strong>de</strong> el estado inicial, en el momento en que dichoconjunto contenga un estado aceptador, concluimos que el lenguajeno es vacío. Si dicho conjunto no se pue<strong>de</strong> ampliar y no contieneningún estado aceptador, concluimos que el lenguaje L es vacío.


Demostración para ERSi L viene dado mediante una ER E, proce<strong>de</strong>mos por inducciónestructural:(Caso Base) Si E es /0 <strong>de</strong>fine el lenguaje vacío; si es <strong>de</strong>l tipo ε oσ (σ ∈ Σ), entonces L no es vacío.(Paso Inductivo) Si E no es <strong>de</strong> los tipos anteriores, distinguimos:Si es <strong>de</strong> la forma E 1 + E 2 , el lenguaje es vacío si y sólo si loslenguajes <strong>de</strong> E 1 y E 2 lo son,Si es <strong>de</strong>l tipo E 1 E 2 , el lenguaje es vacío si y sólo si el lenguaje <strong>de</strong>E 1 o el <strong>de</strong> E 2 lo son.Finalmente, si la expresión regular es <strong>de</strong>l tipo E ∗ , el lenguaje noes vacío.


Demostración para GRSi L viene dado por una GR, dicha pregunta equivale a: ¿existe unaserie <strong>de</strong> producciones que llevan <strong>de</strong>l símbolo inicial S a una ca<strong>de</strong>nacuya variable se pue<strong>de</strong>s substituir por una ca<strong>de</strong>na <strong>de</strong> sólo terminales?Así enunciada, la pregunta tiene también fácil respuesta algorítmica:el símbolo inicial es accesible <strong>de</strong>s<strong>de</strong> el símbolo inicial, ysi una variable V se obtiene mediante una producción <strong>de</strong>s<strong>de</strong> unavariable que es accesible <strong>de</strong>s<strong>de</strong> el símbolo inicial, tb. esaccesible <strong>de</strong>s<strong>de</strong> S.En el momento en que dicho conjunto contenga una variable que sepue<strong>de</strong> substituir por una ca<strong>de</strong>na sólo <strong>de</strong> terminales, concluimos que ellenguaje no es vacío. Si dicho conjunto no se pue<strong>de</strong> ampliar y nocontiene ninguna <strong>de</strong> tales variables, el lenguaje L es vacío.


Totalidad e igualdadTotalidadPara <strong>de</strong>terminar si un lenguaje regular L es el total, basta <strong>de</strong>cidir si L ces el vacío.IgualdadPara saber si dos lenguajes regulares L 1 y L 2 coinci<strong>de</strong>n, basta sabersi L 1 ⊆ L 2 y L 2 ⊆ L 1 o equivalentemente, si L 1 \ l 2 = /0 y L 2 \ L 1 = /0.


Relaciones <strong>de</strong> equivalenciaDefiniciónSea X un conjunto. Una relación ∼⊆ X × X se dice <strong>de</strong> equivalencia,si satisface las siguientes propieda<strong>de</strong>s:[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 <strong>de</strong> equivalencia y conjuntos cocienteDefiniciónDada una relación ∼⊆ X × X y un elemento x ∈ X , se <strong>de</strong>fine la clase<strong>de</strong> x, notada [x] ∼ , como el conjunto <strong>de</strong> todos los elementos <strong>de</strong> Xrelacionados con x, i.e.[x] := {y ∈ X : x ∼ y}.El conjunto X/ ∼ es el conjunto cociente, i.e. el conjunto <strong>de</strong> todas lasclases <strong>de</strong> equivalenciaNotaDados dos elementos x,y ∈ X no relacionados mediante ∼, severifica [x] ∼ ∩[y] ∼ = /0. La <strong>de</strong>mostración <strong>de</strong> este hecho se sigue lapropiedad transitiva: por reducción al absurdo, sean x,y ∈ X doselementos 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 loque se tiene la afirmación.


Estados equivalentesDefiniciónSea A = (K,σ,δ,s,F) un autómata finito <strong>de</strong>terminista y seanp,q ∈ K dos estados <strong>de</strong>l mismo. Diremos que los estados p y q sonequivalentes, <strong>de</strong>notado por p ∼ q, si para toda ca<strong>de</strong>na w ∈ Σ ∗ severifica que ˆδ(p,w) es <strong>de</strong> aceptación si y sólo si ˆδ(q,w) es <strong>de</strong>aceptación. En caso contrario, diremos que los estados sondistinguibles.


Propieda<strong>de</strong>sTeoremaLa relación estados equivalentes es una relación <strong>de</strong> equivalencia.Demostración.Las tres propieda<strong>de</strong>s se siguen directamente <strong>de</strong> la <strong>de</strong>finición,omitiremos su prueba.


Algoritmo <strong>de</strong> marcadoTeoremaExiste un algoritmo que tomando como entrada un autómata finito<strong>de</strong>terminista, calcula los pares <strong>de</strong> estados distinguibles y por en<strong>de</strong>, lospares <strong>de</strong> estados equivalentes.


DemostraciónEl algoritmo proce<strong>de</strong> como sigue:(Caso Base) Si p ∈ K es un estado <strong>de</strong> aceptación y q ∈ K no loes, se marca el par (p,q) como par <strong>de</strong> estados distinguibles.Dichos estado se distinguen mediante la ca<strong>de</strong>na ε.(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) estamarcado como distinguible, se marca el par (p,q) comodistinguible. Obviamente, una ca<strong>de</strong>na que distingue p y q es aw,don<strong>de</strong> w ∈ Σ ∗ es una ca<strong>de</strong>na que distingue a r y s.


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


EjemploSea A el autómata finito:0C0D011E1En este caso, el algoritmo comienza marcando lo pares formados porestados aceptadores y no aceptadores, i.e.: {(C,E),(D,E)}. Trasesta primera fase, el algoritmo pasa a la fase inductiva. Sin embargo,en esta fase no marca nuevos pares puesto que el par (D,C) esindistinguible.


EquivalenciaTeoremaExiste un algoritmo que <strong>de</strong>ci<strong>de</strong> si dos autómatas finitos aceptan elmismo lenguaje.


DemostraciónSupongamos dados dos autómatas finitosA = (K A ,Σ A ,δ A ,s A ,F A ) y B = (K B ,Σ B ,δ B ,s B ,F B )tales que sus conjuntos <strong>de</strong> estados sean disjuntos. Consi<strong>de</strong>ramos unnuevo autómata cuyo conjunto <strong>de</strong> estados viene dado por la unión <strong>de</strong>los conjuntos K A y K B . El resto <strong>de</strong> los elementos <strong>de</strong>l nuevo autómatase <strong>de</strong>finen <strong>de</strong> manera acor<strong>de</strong> a esta elección.El autómata así <strong>de</strong>finido, tiene dos estados iniciales; sin embargo estono afecta a lo que sigue.El algoritmo emplea el algoritmo <strong>de</strong> marcado para <strong>de</strong>tectar si losestados iniciales son equivalentes o no. Ambos autómatas <strong>de</strong>finen elmismo lenguaje si y sólo si así es.


EjemploConsi<strong>de</strong>ramos el AF <strong>de</strong>l Ejemplo anterior y01A1B0Empleando el algoritmo <strong>de</strong> marcado, son distinguibles los pares <strong>de</strong>estados: (B,A),(E,A),(C,B),(D,B),(E,C) y (E,D).Por lo tanto, el par (A,C) es un par <strong>de</strong> estados equivalentes y ambosautómatas <strong>de</strong>finen el mismo lenguaje.


MinimizaciónTeoremaExiste un algoritmo que tomando como entrada un autómata finito<strong>de</strong>terminista, produce un autómata equivalente con el menor númeroposible <strong>de</strong> estados.


DemostraciónSupongamos dado un autómata A = (K,Σ,δ,s,F). El algoritmoelimina <strong>de</strong> entrada aquellos estados que no son accesibles <strong>de</strong>s<strong>de</strong> elestado inicial. Después, construye un nuevo autómataB = (K ′ ,Σ,δ ′ ,s ′ ,F ′ ) <strong>de</strong> la siguiente manera:K ′ es el conjunto <strong>de</strong> clases <strong>de</strong> equivalencia <strong>de</strong> K con respecto a∼ (equivalencia <strong>de</strong> estados),s ′ es la clase <strong>de</strong> equivalencia <strong>de</strong> s, i.e. s ′ := [s] ∼ ,F ′ es el conjunto <strong>de</strong> clases <strong>de</strong> equivalencia <strong>de</strong> los elementos <strong>de</strong>F, yδ ′ se <strong>de</strong>fine <strong>de</strong> la siguiente manera: dado σ ∈ Σ y q ∈ K ′ , se<strong>de</strong>fine δ ′ (q,σ) = [δ(q,σ)] ∼ . La función <strong>de</strong> transición esta bien<strong>de</strong>finida puesto que, si p ∈ [q] ∼ y [δ(q,σ)] ∼ ≠ [δ(p,σ)] ∼ , losestados p y q serían distinguibles.


DemostraciónEl algoritmo, para construir un tal autómata, hace uso <strong>de</strong>l algoritmo <strong>de</strong>marcado con el fin <strong>de</strong> <strong>de</strong>terminar las clases <strong>de</strong> equivalencia.Veamos que el autómata B así construido tiene el menor número <strong>de</strong>estados posibles. Por reducción al absurdo, supongamos que no esasí y sea C un autómata con un número menor <strong>de</strong> estados. Como<strong>de</strong>finen el mismo lenguaje, i.e. son autómatas aquivalentes, losestados iniciales son equivalentes. Como ninguno <strong>de</strong> los dosautómatas posee estados aislados <strong>de</strong>l inicial, cada estado <strong>de</strong> B va aser equivalente a alguno <strong>de</strong> C. Puesto que C tiene menos estados queB, hay dos estados <strong>de</strong> B equivalentes entre si, lo cual resulta absurdo.


EjemploConsi<strong>de</strong>ramos el autómata:01AE0 1B0101 1FCG0011DH100


EjemploEl mínimo autómata que acepta el lenguaje <strong>de</strong>l anterior es:10G1D,FA,E1000B,H1C10


Contenidos1 Autómatas finitosAutómatas finitos <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministasAutómatas finitos no <strong>de</strong>terministas1 <strong>Gramáticas</strong> regularesExpresiones y gramáticas regularesAutómatas finitos y gramáticas regularesAutómatas y expresiones regulares1 Propieda<strong>de</strong>s <strong>de</strong> los lenguajes regulares<strong>Lenguajes</strong> no regularesPropieda<strong>de</strong>s <strong>de</strong> clausuraPropieda<strong>de</strong>s <strong>de</strong> <strong>de</strong>cisiónEquivalencia y minimización1 Autómatas a pilaDefiniciones básicasAutómatas a pila <strong>de</strong>terministas


Autómatas a pilaDefiniciónUn autómata a pila es una tupla P = (K,Σ,Γ,δ,s,Z,F) don<strong>de</strong>:1 K es un conjunto finito <strong>de</strong> estados,2 Σ y Γ son dos alfabetos finitos llamados <strong>de</strong> entrada y <strong>de</strong> pila(respec.),3 δ : K ×(Σ ∪ {ε}) ×Γ → P(K)×Γ ∗ es una aplicación llamada<strong>de</strong> transición,4 s ∈ K es el estado inicial, Z es el símbolo inicial <strong>de</strong> la pila, y5 F es el conjunto <strong>de</strong> estados aceptadores.


Configuración y paso <strong>de</strong> computación <strong>de</strong> un APDefiniciónDado un AP P = (K,Σ,Γ,δ,s,Z,F), llamaremos configuración <strong>de</strong>lautómata P a toda tupla (q,w,γ) ∈ K ×Σ ∗ ×Γ ∗ . En particular,llamaremos configuración inicial para un ca<strong>de</strong>na dada w ∈ Σ ∗ a latupla (s,w,Z).DefiniciónSupongamos dados un AP P = (K,Σ,Γ,δ,s,Z,F), un símbolo <strong>de</strong>lalfabeto <strong>de</strong> entrada σ ∈ Σ y un símbolo <strong>de</strong>l alfabeto <strong>de</strong> pila ρ ∈ Γ talesque δ(q,σ,ρ) = (Q,α) para ciertos Q ∈ P(K) y α ∈ Γ ∗ . Para todop ∈ Q, w ∈ Σ ∗ y γ ∈ Γ ∗ , diremos que la configuración (q,σw,ργ) dalugar, en un paso <strong>de</strong> computación, a la configuración (p,w,αγ) y lo<strong>de</strong>notaremos por (q,σw,ργ) ⊢ P (p,w,αγ). En general, emplearemosla notación ⊢ ∗ Ppara indicar que una configuración se sigue <strong>de</strong> otra enun número finito <strong>de</strong> pasos (quizás nulo).


Lenguaje aceptado por estado finalDefiniciónDado un autómata a pila P = (K,Σ,Γ,δ,s,Z,F), se <strong>de</strong>fine ellenguaje aceptado por P por estado final como el conjunto <strong>de</strong> lasca<strong>de</strong>nas w ∈ Σ ∗ tales que partiendo <strong>de</strong> la configuración inicial para w,el autómata alcanza en un número finito <strong>de</strong> pasos una configuraciónaceptadora, i.e.L(P) = {w ∈ Σ ∗ : (s,w,Z) ⊢ ∗ P (f,ε,γ) ∈ F × {ε} ×Γ∗ }.


Lenguaje aceptado por pila vacíaDefiniciónDado un autómata a pila P = (K,Σ,Γ,δ,s,Z,F), se <strong>de</strong>fine ellenguaje aceptado por P por pila vacía como el conjunto <strong>de</strong> lasca<strong>de</strong>nas w ∈ Σ ∗ tales que partiendo <strong>de</strong> la configuración inicial para w,el autómata alcanza en un número finito <strong>de</strong> pasos una configuracióncon ca<strong>de</strong>na y pila vacías, i.e.L(P) = {w ∈ Σ ∗ : (s,w,Z) ⊢ ∗ P (f,ε,ε) ∈ K × {ε} × {ε}}.


EquivalenciaTeoremaDado un lenguaje aceptado por un autómata P por estado final, existeun autómata P ′ que acepta L por pila vacía. Recíprocamente, si L esaceptado por un autómata por pila vacía, existe un autómata P ′ queacepta L por estado final.


Demostración (1)Supongamos dado un lenguaje L ⊂ Σ ∗ aceptado por un APP = (K,Σ,Γ,δ,s,Z,F) por estado final. La construcción <strong>de</strong> unautómata P ′ que acepta L por pila vacía es como sigue: P ′ coinci<strong>de</strong>con P con las siguientes salveda<strong>de</strong>s:el símbolo inicial <strong>de</strong> pila viene dado por un nuevo símbolo X ,el conjunto <strong>de</strong> estado coinci<strong>de</strong> con el <strong>de</strong> P salvo por la inclusión<strong>de</strong> dos nuevos estados: un nuevo estado inicial p 0 y un nuevoestado <strong>de</strong>notado p F encargado <strong>de</strong> vaciar la pila.la función <strong>de</strong> transición es igual que en el autómata a pila salvopor la inclusión <strong>de</strong> diversas transiciones: la primera está <strong>de</strong>finidamediante δ(p 0 ,ε,X) = {(s,ZX)} y se encarag <strong>de</strong> apilar elsímbolo inicial <strong>de</strong> pila <strong>de</strong>l autómata P, mientras que las restantesson <strong>de</strong> la forma δ(f,ε,γ) = {(p F ,ε)}, don<strong>de</strong> 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 unautómata a pila por pila vacía. La construcción <strong>de</strong>l autómata P ′ escomo sigue: al igual que en el caso anterior, el nuevo autómata esesencialmente igual a P con las siguientes salveda<strong>de</strong>s:el símbolo inicial <strong>de</strong> pila viene dado por un nuevo símbolo Z ,se aña<strong>de</strong>n dos nuevos estados p 0 (estado inicial) y p F (estadofinal),se consi<strong>de</strong>ran, a<strong>de</strong>más <strong>de</strong> las transiciones <strong>de</strong> originales P, lassiguientes: una transición inicial <strong>de</strong>finida medianteδ(p 0 ,ε,X) = {(s,ZX)} y unas transiciones encargadas <strong>de</strong>aceptar <strong>de</strong>finidas por δ(q,ε,Z) = {(p F ,X)}.


Demostración (4)En líneas generales, el diagrama <strong>de</strong> transiciones <strong>de</strong> P ′ tiene la pinta:ε,X/ZXε,X/Xp 0 s pF


Autómata a pila <strong>de</strong>terministaDefiniciónDado un autómata a pila P = (K,Σ,Γ,s,Z,F), diremos que es<strong>de</strong>terminista 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 regularesTeoremaDado un lenguaje regular L ⊆ Σ ∗ , exite un autómata a pila<strong>de</strong>terministas que acepta L por estado final.NotaPara finalizar, notemos que existen lenguajes aceptador porautómatas a pila que no son aceptados por autómatas a pila<strong>de</strong>terministas.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!