Autómata finito y Expresiones regulares - .Autómata finito y ... Ejemplo: ∑ = {0,1}, el alfabeto

download Autómata finito y Expresiones regulares - .Autómata finito y ... Ejemplo: ∑ = {0,1}, el alfabeto

of 56

  • date post

    20-Sep-2018
  • Category

    Documents

  • view

    232
  • download

    0

Embed Size (px)

Transcript of Autómata finito y Expresiones regulares - .Autómata finito y ... Ejemplo: ∑ = {0,1}, el alfabeto

  • Autmata finito y Expresiones regulares

    A* | C. B

  • Conceptos

    Alfabeto (): es el conjunto finito no

    vaco de smbolos.

    Ejemplo: = {0,1}, el alfabeto binario

    Cadenas: secuencia finita de smbolos

    pertenecientes a un alfabeto

    Por ejemplo: 01101 es una cadena del

    anterior.

    = {ASCII}

  • Cadena vaca(): cadena que contiene

    0 smbolos.

    Longitud de una cadena |cad |:numero

    de smbolos.

    Ejemplo: |011|=3 y || = 0

  • Potencia de alfabeto

    Potencias de un alfabeto k :conjunto

    de cadenas de longitud k, tal que

    todos los smbolos que las forman

    pertenecen al

    0 = {} sea cual sea el

    Si ={0,1}, entonces

    1={0,1}

    2 = {00,01,10,11}

  • los que se pueden generar a partir de

    los lenguajes bsicos({},{},{a}), con la

    aplicacin de las operaciones de

    unin, concatenacin y * de Kleene un

    nmero finito de veces

    5

    Lenguaje Regular

  • Lenguaje: Conjunto de cadenas, todas elegidas

    de algn *.

    L(r) Lenguaje generado por la e.r r con

    ={a,b}

    L(r) = { , a, bb, aa, abb, }

  • Operadores

    Sean L y M lenguajes regulares entonces

    (L U M) es un lenguaje regular

    Unin de L y M (L U M): conjunto de

    cadenas que pertenecen a L, a M, o a

    ambos.

    Por ejemplo:

    Si L={001,10,111} y M={, 001}, entonces

    L U M = {,10,001,111}

    7

  • Concatenacin de L y M(L.M)

    (L.M) es un lenguaje regular

    Conjunto de cadenas que pueden

    formarse tomando cualquier cadena

    de L y concatenndola con cualquier

    cadena de M

    Por ejemplo

    Si L={001,10,111} y M={, 001}, entonces

    L . M =

    {001,10,111,001001,10001,111001}

  • Clausura de Kleen de (L*)

    L* es un lenguaje regular

    Cualquier conjunto de cadenas que se

    pueden formar (quiz con

    repeticiones)

    L(r*) = L(r)* cero o mas concatenaciones

    L*= U Li

    i=0

    Ejemplo: Si L = {0,11} L*={,011,11110}

  • Expresiones Regulares(e.r.)

    Representa una descripcin algebraica de

    los lenguajes regulares.

    Son un conjunto de secuencias de

    smbolos vlidas que se construyen en

    base al alfabeto del lenguaje.

    Ejemplo:

    dir *.* donde el patrn * coincide

    con cualquier cadena de caracteres.

  • Expresin Regular(e.r)

    Forma compacta para definir un

    lenguaje regular.

    Ejemplo:

    Sea el = {a,b} La e.r r = (a|bb)* se define en base al

    alfabeto del lenguaje L(r)

    11

  • Expresiones regulares bsicas

    o , L() = {}

    a , L(a) = { a }

    Si E y F son e.r.

    1. E + F es una e.r. que representa la

    unin de L(E) y L(F). Es decir L(E+F)=

    L(E)UL(F)

    12

  • 2. EF es una e.r. que representa la

    concatenacin de L(E) y L(F). Es decir

    L(E.F)= L(E).L(F).

    3. E* es una e.r. que representa la clausura de

    L(E). Es decir, L(E*) = (L(E))*.

    4. E es una e.r. entonces (E) es una e.r. que

    denota el mismo lenguaje que E. Es decir,

    L((E)) = L(E).

  • L(r+) = L(r)+ una o mas concatenaciones

    L+ = U Li

    i=1

    14

    Cerradura positiva

  • Prioridad

    1. ()

    2. *

    3. . o nada4. | = U=+

  • Formas abreviadas

    Digito = {0|1|2|3.|9} = [0-9]=D o d

    Letra = {a|b|z,A|B|Z}=[a-zA-Z]=L o l

    Signo = {+|-| } =S o s

    ConstanteEntera = signo digito+=CE o ce

    (r)? = U L(r) 0 1 vez

    G= { _ }

    16

  • Ejemplos

    1. r = a*.(b | c)+ y = {a,b,c}

    L(r)= {b,c,bb,cc,bc,cb,ab,ac,cbc,bcc,

    abb,acc, aac,ccc,ccb, . . .}

    2. r = [0-9]*.[0-9]+ y = {1..9,.}

    L(r)= {.2,1.2,12.3,023.236425,

    3567.45627, .758478, . . .}

    17

  • Ejemplo

    3. Identificadores en ADA inician con

    letra seguido de letra o dgito o guin

    bajo (ste no puede ser el ltimo)

    r=L(L |D)*(G*(L |D)+)* y = {L,D,G}

    L(r)={a,s,a_f,k_ _d,suma, sum12s,s2a_a}

    18

  • Leyes algebraicas de e.r.

    LEY DESCRIPCIN

    r | s = s | r | es conmutativo

    r | (s | t) = (r | s) | t | es asociativo

    r.(s.t) = (r.s).t . es asociativa

    r.(s | t) = r.s | r.t . se distribuye sobre |

    .r = r. = r es la identidad para la concatenacin

    r* = (r | )* se garantiza en una cerradura

  • Leyes algebraicas

    1) r | | r r

    2) r | r r

    3) *

    4) r . . r

    5) r . r* r* . r

    6) r . r* | r*

    7) (r* . s*)* (r | s)*

    8) (r*)* r*

  • Algunas e.r

    [abc] = {a,b,c}

    ^a es cualquier smbolo que no sea la a

    Ejemplo ^[a-Az-Z] cualquier smbolo menos una letra

    a? es {,a}

    \ c el carcter c literalmente

    Ejemplo

    \$ftp= { $ftp }

  • Prctica 2

    Dadas las e.rs y el = {a,b,c,d} definir

    los L(r) definidos por dichas e.r.

    1. r=ab 5. r=(ab|c)*d

    2. r=a|b 6. r=(ab)*

    3. r=a* 7. r=a | a*b

    4. r=ab* 8. r=(a|ab)*

    22

  • Prctica 2

    9. r=(a|b)*

    10. r=(a|b)*aa(a|b)*

    11. r=(a|) (a|ab)*

    12. r=(a*|b)*abb

    13. r=(c | d)+ (a+|db)*

    14. r=(d.c)* | (b|ad+)*

    15. r=(c*|) | (a|ab)*23

  • Prctica 3

    Define los alfabetos y modela mediante una e.r los siguientes lenguajes:

    1. cadenas con a lo mas una pareja de 0's consecutivos y a lo mas una pareja de 1's consecutivos.

    2. cadenas de uno o mas dgitos pero que no contienen dos dgitos pares consecutivos.

    3. Cadenas de comentarios que empiezan por un asterisco y un uno y terminan con el fin de esa lnea o bien empiezan por un asterisco y un dos y terminan con el fin de la lnea siguiente.

  • 4. Lenguaje formado por todas las cadenas de caracteres

    que cumplen simultneamente las tres condiciones siguientes:

    a) Sus tres primeros caracteres son, por este orden, una letra i, una n y otra i.

    b) Sus tres ltimos caracteres son, por este orden, una letra f, una i y una n.

    c) Entre las tres letras iniciales y las tres letras finales de la cadena aparece una secuencia de uno o mas caracteres, pero ninguno de los cuales es ni una letra ni un salto de lnea.

    Observa que cada una de las seis letras de la cadena debe poder ser, indistintamente, mayscula o minscula, ya que no se ha impuesto ninguna restriccin al respecto.

  • 5. L1 el lenguaje de todas las cadenas que pueden formarse utilizando nicamente cero o mas dgitos binarios y asteriscos con la restriccin de que no se permiten mas de dos asteriscos consecutivos. As, por ejemplo, las siguientes cadenas pertenecern a L1:

    101, **, *1*1*1, *00*1*, .

    Pero no estas otras: +001, 1****1, 000***, 911...

  • 6. L2 el lenguaje de todas las cadenas que pueden formarse utilizando nicamente dgitos decimales y asteriscos con la

    restriccin de que en cada cadena debe haber un nico grupo de varios asteriscos consecutivos. As, por ejemplo, las siguientes cadenas pertenecern a L2:

    2**, *10*1**, 19***99.

    Pero no estas otras: **1**, x****x, 012345, 1*1, ...

  • 7. L3 el lenguaje de todas las cadenas

    formadas por una o mas letras

    minsculas y que no tienen tres bs

    seguidas. As, por ejemplo, las

    siguientes cadenas pertenecern a L3:

    xyz, bb, bebebe, baobab, .

    Pero no estas otras: Gato, abbbba,

    xxxbbb, salu2...

  • 8. Conjunto de cadenas numricas de tres dgitos formados por todos los

    posibles excepto 007. As, por ejemplo,

    o33,921 y 777 pertenecen a este

    lenguaje, pero no efe, 33, etc.

    9. El lenguaje de todas las cadenas que

    se pueden formar con los dgitos 0,1 y 2

    respetando las 2 condiciones siguientes:

    la cadena no ser vaca ni habr ninguna

    subcadena 01 en ella. Por ejemplo.

    02210 pertenece al lenguaje pero no

    2012.

  • Autmatas Finitos

    Modelo matemtico de un sistema que

    recibe una cadena y determina si esta

    pertenece al lenguaje que el autmata

    reconoce

  • Clasificacin

    Deterministas (AFD):no puede estar

    en mas de un estado simultneamente

    No deterministas (AFND):puede estar

    en varios estados al mismo tiempo

  • AFD consta de A = (Q, , , q0 ,F)

    Q conjunto finito de estados.

    conjunto finito de smbolos de entrada.

    funcin de transicin que recibe como

    argumentos un estado y una entrada y

    devuelve un estado.

    q0 estado inicial (uno de los estados de Q).

    Conjunto F de estados finales o de

    aceptacin.

  • Ejemplo 1

    AFD que acepta nicamente todas las

    cadenas de 0s y 1s que contienen la

    secuencia 01 en algn lugar de la

    cadena.

    ( q0,1)= q0 (q2,1)= q1

    (q0,0)= q2 (q2,0)= q2

    (*q1,0)=(q1,1)= q1

  • Representacin de autmatas

    Formal: Quintupla

    Diagarama de Transicin

    Tabla de Transicin

    Formal:

    A=({q0, q1, q2},{0,1},,q0,{q1})

  • Diagrama de Transicin

    q0q2 q1

    Inicio

    0 1

    1 0

    0,1

  • Tabla de transicin

    0 1

    q0 q2 q0

    *q1 q1 q1

    q2 q2 q1

    Inicial

    Final

  • Ejemplo 2

    AFD que acepta nicamente todas las

    cadenas con un nmero par de 0s y/o

    1s.

    ( *q0,0)= q2 (q2,0)= q0

    (q0,1)= q1 (q2,1)= q3

    (q1,0)= q3 (q3,0)= q1

    (q1,1)= q0 (q3,1)= q2

  • Representacin Formal

    A=({q0, q1, q2, q3 },{0,1},,q0,{q0})