Propiedades de las expresiones regulares (1) regulares .• Expresiones regulares equivalentes: aquellas

  • View
    213

  • Download
    0

Embed Size (px)

Text of Propiedades de las expresiones regulares (1) regulares .• Expresiones regulares equivalentes:...

  • 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