teoriacomputacion3

Upload: nanti-mantela

Post on 10-Oct-2015

2 views

Category:

Documents


0 download

TRANSCRIPT

  • Autmatas y Lenguajes Formales

    Clase 2: Autmatas Finitos

    Dr. Wladimir RodrguezPostgrado en Computacin

    [email protected]

  • Dr. Wladimir Rodrguez Teora de la Computacin2

    Contenido

    Autmata Finito Determinista Autmata Finito No-Determinista Autmata Finito con Transiciones Nulas Expresiones Regulares Gramticas Regulares Autmatas con Salida: Mquinas de Moore y

    Mealy

  • Dr. Wladimir Rodrguez Teora de la Computacin3

    Autmata Finito Determinista

    Un Autmata Finito es una quntupla M = (Q, A, , q0, F) donde

    Q es un conjunto finito llamado conjunto de estados A es un alfabeto llamado alfabeto de entrada es una aplicacin llamada funcin de transicin

    : Q A Q

    q0 es un elemento de Q llamado estado inicial F es un subconjunto de Q, llamado conjunto de estados

    finales

  • Dr. Wladimir Rodrguez Teora de la Computacin4

    Ejemplo

    Sea el autmata M = (Q, A, , q0, F), donde Q = {q0, q1, q2} A = {a, b} La funcin de transicin viene dada por:

    (q0, a) = q1, (q0, b) = q2,

    (q1, a) = q1, (q1, b) = q2,

    (q2, a) = q1, (q2, b) = q0,

    F = {q1}

  • Dr. Wladimir Rodrguez Teora de la Computacin5

    Diagrama de Transicin Es un grafo en el que: Hay un nodo por cada estado Por cada transicin (q, a) = p hay un arco de q a p con

    la etiqueta a.

    El estado inicial est indicado con una flecha entrante. Los estados finales estn indicados con una doble circunferencia.

    qo

    q2

    a

    b

    a

    b

    b

    q1 a

  • Dr. Wladimir Rodrguez Teora de la Computacin6

    Clculo Asociado. Traza

    qo q1

    0

    1

    1 0

    1 0 0

    qo q1

    1 0 0

    qo q1

    1 0 0

    qo q1

    1 0 0

    qo q1

  • Dr. Wladimir Rodrguez Teora de la Computacin7

    Proceso de Clculo

    Autmata M = (Q, A, , q0, F)

    Descripcin Instantnea o Configuracin: Un elemento de Q A*: (q, u). Configuracin Inicial para u A*: (q0, u) Relacin paso de clculo entre dos configuraciones

    ((q, u) (p, v)) ((u = av) y (q, a) = p) De una configuracin slo se puede pasar a lo

    mximo a una configuracin en un paso de clculo.

  • Dr. Wladimir Rodrguez Teora de la Computacin8

    Proceso de Clculo

    Relacin de clculo entre dos configuraciones: ((q, u) * (p, v)) si y slo si existe una sucesin de

    configuraciones C0, . . . , Cn tales que

    C0 = (q, u), Cn = (p,v) y i n - 1, Ci Ci+1 1

    Lenguaje Aceptado por un Autmata Finito

    L(M) = {u A* : (q0, u) * (q, ), q F}

    Las palabras de L(M) se dicen aceptadas por el

  • Dr. Wladimir Rodrguez Teora de la Computacin9

    Ejemplos

    qo q1

    1

    1

    0 0

    1

    2

    3

    letra

    dgito

    dgito

    letra

  • Dr. Wladimir Rodrguez Teora de la Computacin10

    Constantes Reales Gramtica G = (V, T, P, S), donde T = {+, -, E, o, 1, 2, 3, 4, 5, 6, 7, 8, 9, .} V = {,,,,} S = P contiene las siguientes producciones + 0123456789 . . .E

  • Dr. Wladimir Rodrguez Teora de la Computacin11

    Autmata Finito

    q2

    qo

    q1

    q3

    q4

    q6

    q5

    q8

    q7

    +,-

    0,...,9

    0,...,9

    .

    0,...,9

    0,...,9

    0,...,9

    E 0,...,9

    0,...,9

    +,-

    0,...,9

    +,-,E

    +,-,.

    E,+,-,.

    T

    E,.

    E,+,-,.

    E,+,-,.

    E,.

  • Dr. Wladimir Rodrguez Teora de la Computacin12

    Ejercicios

    Dibujar autmatas finitos deterministas que reconozcan los siguientes conjuntos de cadenas construidas sobre el alfabeto A = {0, 1}

    cadenas acabadas en 00 cadenas con dos unos consecutivos cadenas que no contengan dos unos consecutivos cadenas con dos ceros consecutivos o dos unos consecutivos cadenas con dos ceros consecutivos y dos unos consecutivos cadenas acabadas en 00 o 11 cadenas con un 1 en la antepenltima posicin cadenas de longitud 4

  • Dr. Wladimir Rodrguez Teora de la Computacin13

    Autmatas Finitos No Deterministas

    Un Autmata Finito no deterministaes es una quntupla M = (Q, A, , q0, F) donde

    Q es un conjunto finito llamado conjunto de estados A es un alfabeto llamado alfabeto de entrada es una aplicacin llamada funcin de transicin

    : Q A (Q)

    q0 es un elemento de Q llamado estado inicial F es un subconjunto de Q, llamado conjunto de estados

    finales

  • Dr. Wladimir Rodrguez Teora de la Computacin14

    Ejemplo

    q0 q1 q2 q3 q4 q6q5

    0 1 0 0 1 0

    0,1 0,1

    r0

    r2

    r1

    a c

    b

  • Dr. Wladimir Rodrguez Teora de la Computacin15

    Ejemplos

    r0

    r2

    r1

    a c

    b

    r0 r2r1a c

    b

    r3

    b,c

    a

    a,b,c

    a,b,c

  • Dr. Wladimir Rodrguez Teora de la Computacin16

    Ejemplos

    q2

    qo

    q1

    q3

    q4

    q6

    q5

    q7

    +,-

    0,...,9

    0,...,9

    .

    0,...,9

    0,...,9

    0,...,9

    E 0,...,9

    0,...,9

    +,-

    0,...,9

  • Dr. Wladimir Rodrguez Teora de la Computacin17

    Proceso de Clculo

    Autmata no determinista M = (Q, A, , q0, F)

    Descripcin Instantnea o Configuracin: Un elemento de Q A*: (q, u). Configuracin Inicial para u A*: (q0, u) Relacin paso de clculo entre dos configuraciones

    ((q, u) (p, v)) ((u = av) y p (q, a)) De una configuracin slo se puede pasar varias

    configuraciones distintas en un paso de clculo, e incluso a ninguna

  • Dr. Wladimir Rodrguez Teora de la Computacin18

    Proceso de Clculo

    Relacin de clculo entre dos configuraciones: ((q, u) * (p, v)) si y slo si existe una sucesin de

    configuraciones C0, . . . , Cn tales que

    C0 = (q, u), Cn = (p,v) y i n - 1, Ci Ci+1

    Lenguaje Aceptado por un AF no-determinista

    L(M) = {u A* : q F, (q0, u) * (q, ), }

    Las palabras de L(M) se dicen aceptadas por el

  • Dr. Wladimir Rodrguez Teora de la Computacin19

    Definiciones

    Dado un autmata M = (Q, A, , q0, F), definimos

    Si B Q,*(B,a) = (q,a)

    qB Si B Q, *(B,) = B *(B,au) = *(*(B,a),u) *(q,u) = *({q},u)

  • Dr. Wladimir Rodrguez Teora de la Computacin20

    AFND AFD

    Dado un AFND M = (Q, A, , q0, F) se llama autmata determinista asociado o equivalente a M, al autmata M = (Q, A, , q0, F) dado por

    Q = (Q) q0 = {q0} (B,a) = *(B,a) = qB (q,a) F = {B (Q)BF }

  • Dr. Wladimir Rodrguez Teora de la Computacin21

    AFND AFD

    Dado un autmata no determinista se le hace corresponder uno determinista que recorre todos los caminos al mismo tiempo

    Un autmata no-determinista y su determinista asociado o equivalente aceptan el mismo lenguaje

  • Dr. Wladimir Rodrguez Teora de la Computacin22

    Ejemplo

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0}

  • Dr. Wladimir Rodrguez Teora de la Computacin23

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin24

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin25

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin26

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin27

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin28

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin29

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    01

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin30

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin31

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin32

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin33

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin34

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin35

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin36

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin37

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin38

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin39

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin40

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin41

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    1

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin42

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    1

    0

    1

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin43

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    1

    0

    1

    0

    Ejemplo

  • Dr. Wladimir Rodrguez Teora de la Computacin44

    q1 q2 q3 q4 q5 q6q00 1 0 0 1 0

    0,1 0,1

    {q0} {q0, q1}0

    1 0

    {q0, q2}1

    {q0, q1, q3}

    0

    1

    {q0, q1, q4}

    010

    {q0, q2, q5} 1

    {q0, q1, q3, q6}

    0

    {q0, q1, q4, q6} 0

    {q0, q2, q6}

    1

    {q0, q1, q6}0

    {q0, q2, q5, q6}

    1 0

    {q0, q6}

    1

    0

    1

    0

    1

    01

    Ejemplo