If you can't read please download the document
View
213
Download
0
Embed Size (px)
Csar Ignacio Garca Osoriorea de Lenguajes y Sistemas Informticos
Universidad de BurgosFebrero, 1999 Lenguajes regulares y autmatas finitos 2Csar Ignacio Garca Osorio. Universidad de Burgos.
Conjuntos y expresiones regulares Conjunto regular: Cualquier conjunto de cadenas que se pueda
formar mediante las operaciones de unin, concatenacin y cierre. Las expresiones regulares se utilizan para denotar conjuntos
regulares y se definen del siguiente modo recursivo (dado un alfabeto : la expresin regular que denota el conjunto {} a , a es una expresin regular que designa al conjunto regular {a} Si y son expresiones regulares que designan los conjunto regulares C y
C respectivamente, entonces: ()|() es la expresin regular que designa al conjunto regular C C ()() es la expresin regular que designa al conjunto regular CC ()* es la expresin regular que designa al conjunto regular C* () es la expresin regular que designa al conjunto regular C
es la expresin regular que representa la conjunto vaco (que es regular) Ninguna otra cosa es un expresin regular.
Lenguajes regulares y autmatas finitos 3Csar Ignacio Garca Osorio. Universidad de Burgos.
Propiedades de las expresiones regulares (1)
Expresiones regulares equivalentes: aquellas que an siendo distintas representan el mismo lenguaje.
Algunas propiedades de las e.r. en cuanto a su equivalencia son: r|s=s|r (la unin o seleccin es conmutativa) r|(s|t) = (r|s)|t (la seleccin es asociativa) (rs)t=r(st) (la concatenacin es asociativa) r(s|t)=rs|rt (la concatenacin es distributiva por la izquierda
respecto de la unin) (r|s)t=rt|st (la concatenacin es distributiva por la derecha
respecto de la unin)Lenguajes regulares y autmatas finitos 4Csar Ignacio Garca Osorio. Universidad de Burgos.
Propiedades de las expresiones regulares (2)
r=r =r ( es el elemento neutro de la concatenacin) |r = r| = r ( es el elemento neutro de la unin) (r*)*=r* (el cierre es idempotente) r* = r*r* = (|r)* = r*| = r*(r*|) = (r|)r* = |rr* = |r*r (r*|s*)* = (r*s*)* = (r|s)* = (r*s)*r* = r*(sr*)* r(sr)* = (rs)*r *=*= r+ = rr* = r*r r*=r+ | + = r = r =
(r*s)* = | (r|s)*s (rs*)* = | r(r|s)* r* (r|t)* rn r* si r t entonces r* t* si r1t1 y r2t2 entonces r1r2 t1t2
Lenguajes regulares y autmatas finitos 5Csar Ignacio Garca Osorio. Universidad de Burgos.
Definicin regular sobre
Conjunto de definiciones de la forma:d1 r1 donde r1 es una expresin regular sobre d2 r2 donde r2 es una expresin regular sobre d1d3 r3 donde r3 es una expresin regular sobre d1d2..... . . ...di ri donde ri es una expresin regular sobre ij=1dj..... . . ...dn rn donde rn es una expresin regular sobre nj=1dj
Es decir, es una especie de gramtica en la que no se permiten definiciones recursivas.
Lenguajes regulares y autmatas finitos 6Csar Ignacio Garca Osorio. Universidad de Burgos.
Autmatas (1)
Autmata finito determinista: es una quintupla (,Q, f, q0, F ), donde: es un alfabeto de entrada. QQQQ es un alfabeto de estados. f es la funcin de transicin:
f : Q Q q0 es el estado inicial. FFFF Q es el conjunto de estados finales o estados
de aceptacin
Lenguajes regulares y autmatas finitos 7Csar Ignacio Garca Osorio. Universidad de Burgos.
Autmatas (2)
Autmata finito no determinista: es una quintupla ( ,Q, f, q0, F ), donde: es un alfabeto de entrada. QQQQ es un alfabeto de estados. f es la funcin de transicin:
f : Q ( ) P(Q) q0 es el estado inicial. FFFF Q es el conjunto de estados finales o estados
de aceptacin
Lenguajes regulares y autmatas finitos 8Csar Ignacio Garca Osorio. Universidad de Burgos.
Autmatas (3)
La parte fundamental de un autmata finito es su funcin de transicin por eso es habitual representarlo mediante una tabla que da dicha funcin o mediante un grafo
estados = nodos transiciones = arcosestados finales = nodo con doble circuloestado inicial = nodo con flecha de entrada
a, b, c
c
b
q3
a
q2
c
a
ba
b, c
q0 q1
a b cq0 q0 q1 q2
q1 q3 q2 q2(q2) q3 q3 q3(q3) q3 q2 q2
Lenguajes regulares y autmatas finitos 9Csar Ignacio Garca Osorio. Universidad de Burgos.
Autmatas (4)
Extensin de f a palabras: la funcin f toma como argumentos un estado y un carcter, pero se puede definir una funcin que tome un estado y una palabra:f~: Q * Q e x*
f~(q, e) = f (q, e) f
~(q, ex) = f
~(f (q,e), x)
La funcin f~(q, w), da el estado al que se puede llegar
partiendo de q y siguiendo las transiciones segn w.
El lenguaje reconocido por un autmata M= (,Q, f, q0, F) se define como:
L(M)={w*: f~(q0,w)F} AFD
L(M)={w*: f~(q0,w)F } AFND
Lenguajes regulares y autmatas finitos 10Csar Ignacio Garca Osorio. Universidad de Burgos.
Simulacin de un AFDs q1;c sgtecar();while c e.o.f dobegin
s mueve(s,c);c sgtecar();
endif sF then return SI else return NO
mueve(s,c) es una funcin que implementa la funcin de transicin, dado un estado y un carcter nos devuelve el estado siguiente
sgtecar() es una funcin que accede al siguiente carcter de la cadena de entrada
Lenguajes regulares y autmatas finitos 11Csar Ignacio Garca Osorio. Universidad de Burgos.
Simulacin de un AFNDmueve(s,c) funcin de transicin
sgtecar() accede al siguiente carcter de la entrada
cerr- (s) conjunto de estados a los que se puede llegar a partir de ssiguiendo arcos etiquetados con
S cerr-({s0 });c sgtecar();while c e.o.f dobegin
S cerr-(mueve(S,c));c sgtecar();
endif SF then return SI else return NO
Lenguajes regulares y autmatas finitos 12Csar Ignacio Garca Osorio. Universidad de Burgos.
Paso de un AFND a un AFD cerr-(q) = {f
~(q, n)}{q}. Es decir el conjunto de estados a los que puedo
llegar a partir del estado q mediante transiciones (sin consumir entrada) cerr-(T)= qT cerr-(q) Algoritmo: Construccin de subconjuntos
D cerr-(q0);while haya un estado T sin marcar en D do
marcar T;for cada smbolo de entrada a do
U cerr-(mueve(T, a));if UD then aadir U sin marcar a DtranD[T, a] U
AFND( ,Q, f, q0, F ) AFD( ,D, tranD, cerr-(q0), F ) F={UD: UF }
Lenguajes regulares y autmatas finitos 13Csar Ignacio Garca Osorio. Universidad de Burgos.
Teoremas de anlisis y sntesis
Teorema de sntesis: Todo conjunto regular es un lenguaje aceptado por un reconocedor finito. e.r AFD Procedimientos:
Mtodo de Thompson Mtodo de las derivadas Mtodo de Aho-Sethi-Ullman
Teorema de anlisis: Todo lenguaje aceptado por un reconocedor finito es un un conjunto regular. AFD e.r Procedimientos:
Mtodo 1 Mtodo de las ecuaciones caractersticas
Lenguajes regulares y autmatas finitos 14Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de Thompson (1)
Lenguajes regulares y autmatas finitos 15Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de Thompson (2)
Lenguajes regulares y autmatas finitos 16Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de las derivadas (1)
Consideremos una expresin regular , que designa un conjunto regular L, y consideremos el conjunto Leformado por todas las cadenas de L que empiezan por un determinado smbolo e. Definimos el cociente izquierdo de L entre e, denotado L\e, como el conjunto resultante de suprimir e en todas las cadenas de Le.
L\e={w : ew L}y definimos la derivada de respecto al smbolo e,
denotado De(), como la expresin regular de L\e.
Lenguajes regulares y autmatas finitos 17Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de las derivadas (2) Algunas propiedades de las derivadas as
definidas son: De1(e2) = si e1=e2 si e1e2 De() = De() = D()= Dew()=Dw[De()] Dwe()=De[Dw()] De(|)=De()|De() De()=De() | ()De() donde ()= si L si L De(*)=De()*
Lenguajes regulares y autmatas finitos 18Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de las derivadas (3)Algoritmo de sntesis (Brozozowaki, 1962) Para construir un reconocedor del lenguaje denotado por la
expresin regular, se puede seguir el siguiente procedimiento Calcular {Dw(): w*} El estado inicial es q1=; los otros son las diferentes
Dw() La funcin de transicin es f(, e)= De();
f(Dw(), e)= Dwe(); El conjunto de estado finales es
F={Dw(): L(Dw())}
Lenguajes regulares y autmatas finitos 19Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de Aho-Sethi-Ullman(1)
Construir la e.r. ampliada $ $ Obtener el rbol sintctico de $ Responder a las preguntas:
Que letras pueden aparecer como primera letra de la e.r. representada por cules como ltimas?
Supuesto que yo se que letra acaba de aparecer, que letras pueden venir a continuacin en las palabras representadas por ?
La idea es tratar de numerar la posicin de las letras que aparecen en la e.r. Una vez que tengo el rbol puedo hacer una numeracin, lo cual me da una ordenacin parcial. Se establece una equivalencia entre los estados significativosdel autmata y las posiciones del rbol (nodos hoja).
Lenguajes regulares y autmatas finitos 20Csar Ignacio Garca Osorio. Universidad de Burgos.
Mtodo de Aho-Sethi-Ullman(2)
Permite construir directamente un AFD a partir de una expresin regular aumentada ($ $).
Primero se construye un rbol sintctico T para $ con las posiciones de las hojas numeradas y despus se calculan cuatro funciones: anulable, primera-pos, ltima-pos y siguiente-pos haciendo recorridos sobre T.
Por ltimo se construye el AFD a partir de la funcin siguiente-pos. Las funciones anulable, primera-pos y ltima-pos se definen sobr