04-AF-P01

download 04-AF-P01

of 35

Transcript of 04-AF-P01

  • 5/21/2018 04-AF-P01

    1/35

    Autmatos Finitos

    Mquinas de Estado Finito

    So mquinas abstratas que capturam as partes essenciais dealguma mquina concreta.

    Embora existam mquinas abstratas conceitualmente maispoderosas que as de estado finito, estas, do ponto de vista

    terico e prtico, servem para modelar um amplo espectro de

    mquinas.

    Ex. circuito de lmpadas, mquina de vender jornal ou

    refrigerante passando por elevadores e sinais de trnsito

  • 5/21/2018 04-AF-P01

    2/35

    Ex. Lmpada

    - dois estados: acesa ou apagada

    - duas aes: acender ou apagar

    Ex2. Mquina de vender jornal

    - custo do jornal: 0,30- moedas aceitas: 0,05 - 0,10 - 0,25

    - no h circuito subtrator e nem memria.

    - a mquina comea no estado 30

    - o estado 0 o estado final

    - as transies representam a insero de moedas

    - a mquina libera o jornal quando o cliente inserir um total de 30 centavos

    305

    25 205

    155

    105

    55

    05

    10 10 10 10 10

    25 25 25 25 25

    25

    10

    5,10,2530 0

  • 5/21/2018 04-AF-P01

    3/35

    Basicamente, existem 2 tipos de mquinas de estado finito:

    a) transdutores: mquinas com entrada e sada;

    b) reconhecedores: mquinas onde a sada aceitar ou

    rejeitar a entrada.

    Em uma mquina de estado finito a memria organizada em

    estados, que indicam a situao corrente da mquina dadoum seqncia de smbolos na entrada.

    Linguagens regulares so aquelas aceitas por mquinas deestado finito.

  • 5/21/2018 04-AF-P01

    4/35

    Autmatos FinitosSo mquinas de estado finito do tipo reconhecedor de

    linguagem.

    Consiste em um conjunto Q de estados e um conjunto detransies entre estados que ocorrem quando smbolos de um

    alfabeto de entrada so lidos de um string de entrada w.

    Dentre os estados, distinguem-se:

    - um estado inicial q0;- um conjunto de estados finais F.

  • 5/21/2018 04-AF-P01

    5/35

    Alfabeto de entrada: =

    Estados do autmato: Q =

    Estado inicial: q0 =

    Estados finais: F =

    Transies:

    Autmatos Finitos Determinsticos

    Um AFD uma quntupla M = (Q, , , q0, F) onde:- Q = conjunto de estados - = alfabeto de entrada

    - = funo total de Q Q - q0 = estado inicial

    - F = conjunto de estados finais

  • 5/21/2018 04-AF-P01

    6/35

    Em um AFD, cada par estado-smbolo possui uma nicatransio correspondente - da seu determinismo.

    Comportamento do Autmato

    Os apontadores indicam o estado atual da mquina(inicialmente q0). A cada transio do autmato, um smbolo

    da entrada e lido e os apontadores so atualizados. O

    autmato reconhece o string de entrada se a ltima transio

    resultar em um estado final.

    Ex. Que linguagem aceita por este autmato?

  • 5/21/2018 04-AF-P01

    7/35

    Autmatos EquivalentesSeja o AFD M = (Q, , , q0, F). A linguagem de M,

    denotada por L(M), o conjunto de todos os strings *

    aceitos por M.

    O autmato finito uma mquina que l e reconhece strings

    de uma linguagem.

    Dois AFDs so equivalentes se eles reconhecem a mesma

    linguagem.

    Configurao Instantnea

    Consiste no estado em que o autmato se encontra e orestante do string de entrada que deve ser lido.

    [qi, w]

  • 5/21/2018 04-AF-P01

    8/35

    Transio do Autmato[qi, aw] [(qi, a), w] uma transio do autmato

    [qi, w] [qj, v] corresponde a 0 ou mais transies do

    autmato

    Linguagem Reconhecida

    L(M) = {w

    * | [q0, w] [q

    i,

    ] e q

    i F}

    Ex. Verificar se o autmato ao lado

    reconhece as strings de entrada

    0101 e 0100.

    *

    *

  • 5/21/2018 04-AF-P01

    9/35

    Determinismo IncompletoQuando nem todas as transies so especificadas temos o

    chamado determinismo incompleto. Formalmente, ocorre

    quando uma funo parcial de Q Q.

    Quando uma string analisada e no h transio para um

    prximo estado o autmato pra (HALT), rejeitando a mesma.

    Ex. AFD incompleto para (ab)*c. Ele aceita abc e abcc?

  • 5/21/2018 04-AF-P01

    10/35

    Ex. Construa AFDs para as seguintes linguagens sobre o alfabeto = {0, 1}.

    1) As linguagens denotadas por:

    a) (0 1)*

    b) 0 (0 1)*

    1c) (0 1)* 0 (0 1)*

    d) (1 01 001)* ( 0 00)

    2) L = {w | w termina com 00}

    3) L = {w | w possui 000 como substring}

    4) L = {w | o segundo smbolo de w, da esquerda para direita, 1}

    5) L = {w | w no contm 101 como substring}

    6) L = {w | interpretado como binrio, w mltiplo de 3}

    7) L = {w | w = 0n1n, n 0}

    E se fosse n k, k N?

  • 5/21/2018 04-AF-P01

    11/35

    Implementao de um Autmato

  • 5/21/2018 04-AF-P01

    12/35

    algo

    ritmo

    inteiroEstado

    caracterSm

    bolo

    Estado

    0

    enquantoe

    xistesmbolo

    naentrada

    faa

    leia(Smbolo)

    esc

    olherEstado

    caso0:

    escolherS

    mbolo

    caso

    a:Estado

    1

    caso

    b:Estado

    2

    fim

    escolher

    caso1:

    escolherS

    mbolo

    caso

    a:Estado

    1

    caso

    b:Estado

    2

    fim

    escolher

    caso2

    :escolherS

    mbolo

    caso

    a:Estado

    0

    caso

    b:Estado

    2

    fim

    escolher

    fim

    escolher

    fim

    enquanto

    seEstado=

    2ento

    esc

    reva(Ostringfoireconh

    ecido)

    sen

    o

    esc

    reva(Ostringnofoireconhecido)

    fim

    se

    fim

    algoritmo

  • 5/21/2018 04-AF-P01

    13/35

    Autmatos Finitos No DeterminsticosSo autmatos que permitem mais de uma transio partindo deum estado para um mesmo smbolo do alfabeto de entrada.

    Ex: (qn, a) = {qi}(qn, a) = {qi, qj, qk}(qn, a) =

    Definio: Um Autmato Finito No Determinstico (AFN) umaquntupla M = (Q, , , q0, F) , onde:- Q = conjunto de estados

    - = alfabeto de entrada- q0 = estado inicial- F = conjunto de estados finais

    - = funo total de Q P (Q)

  • 5/21/2018 04-AF-P01

    14/35

    Ex:

    um string de entrada pode gerar diferentes computaes em

    um AFN

    um string aceito por um AFN se existir alguma computao

    que termine em um estado final.

    L(M) = {w * | existe uma computao [q0, w] [qi, ] com qi F}

    0,1

    0 1 2 30,1 0,11

    *

  • 5/21/2018 04-AF-P01

    15/35

    Transies Lambda

    Uma transio lambda () uma transio que pode ocorrerentre estados do autmato sem que nenhum smbolo da

    entrada seja lido.

  • 5/21/2018 04-AF-P01

    16/35

    Definio: Um Autmato Finito No Determinstico com Transio

    Lambda (AFN-) uma quntupla M = (Q, , , q0, F) , onde:

    - Q = conjunto de estados - = alfabeto de entrada

    - q0 = estado inicial - F = conjunto de estados finais

    - = funo total de Q ( {}) P (Q)

    Todo AFD um AFN que, por sua vez, um AFN-.

    Porm: Todo AFN- tem um AFN equivalente e

    Todo AFN tem um AFD equivalente

    Remoo do No - Determinismo

    Um AFN construdo a partir de um AFN- da seguinte maneira:Para cada par (estado qi, smbolo a), determinar que estados qjpodem ser alcanados a partir de qi quando o smbolo a lido daentrada.

  • 5/21/2018 04-AF-P01

    17/35

    Ex: Que estados podem ser alcanados a partir de 1 quando a

    lido da entrada?

  • 5/21/2018 04-AF-P01

    18/35

    Fecho-Lambda:

    O fecho-lambda de um estado qi, denotado por fecho- (qi), o conjunto de todos os estados que podem ser alcanados a

    partir de qi sem nenhuma leitura de smbolo da entrada.

    Definio: O fecho- (qi) definido recursivamente:

    Base: qi fecho- (qi)

    Recurso: Seja qj um elemento de fecho- (qi). Se existe

    uma transio (qj, ) = qk, ento qk tambmpertence a fecho- (qi)

    O conjunto de estados que podem ser alcanados a partir de

    qi quando o smbolo a lido da entrada formado daseguinte forma:

    - para cada qj fecho- (qi), inclua (qj, a)- inclua tambm o fecho- de cada um destes estados

  • 5/21/2018 04-AF-P01

    19/35

    Construo de um AFD a partir de um AFN-Dado um AFN- M = (Q, , , q0, F),

    um AFN equivalente M= (Q, , , q0, F) pode ser

    construdo da seguinte forma:(qi, a) = U fecho - ((r, a))

    r fecho -(qi)

    F {q0} , se fecho-(q0) F , ou

    F , caso contrrio.

    Ex.

    F =

    1

    A

    B

    0

    C

    ED

    1

    0

    0

    0

    1

    1

  • 5/21/2018 04-AF-P01

    20/35

    Construo de um AFD a partir de um AFN

    Dado o AFN M = (Q, , , q0, F),o AFD M= (Q, , , q0, F) equivalente construdoda seguinte forma:

    Q = P(Q)

    (R, a) = { q Q | q (r, a) para r R } = U (r, a)r R

    q0 = { q0}F = { R Q | R F }

    Para um AFN-M = (Q, , , q0, F), substituir

    (R, a) = { q Q | q fecho-( (r, a) ) para r R }

    = U fecho-( (r, a) )r R

    q0 = fecho-( q0 )

  • 5/21/2018 04-AF-P01

    21/35

    Algoritmo Iterativo para AFN AFD

    Seja AFN M = (Q, , , q0, F), um AFD M= (Q, , , q0, F)equivalente construdo da seguinte forma:

    crie o estado q0 = [q0] e o insira em Qpara cada estado X de Q faa

    para cada smbolo a faa

    seja Y = U (qi, a)qj X

    se Y Q ento

    crie o estado Y

    insira Y em Q

    crie a transio (X, a) = Y

    fim para

    fim para

  • 5/21/2018 04-AF-P01

    22/35

    GramticasIntroduo

    Expresses regulares e AFs so usados para se especificar ereconhecer linguagens simples (regulares). Uma outra

    forma de especificar (gerar) uma linguagem regular

    atravs de gramticas. Nesse caso, temos as chamadas

    Gramticas Regulares.

    As gramticas ainda podem especificar linguagens mais

    complexas, como as no-regulares. Neste caso, temos asGramticas Livres de Contexto, Gramticas Sensveis ao

    Contexto e Gramticas Irrestritas.

  • 5/21/2018 04-AF-P01

    23/35

    Produo, Derivao e outros conceitosSmbolos no-terminais so elementos auxiliares na gerao de sentenas.Ex. S, A, B, Z.

    Smbolos terminais so elementos formadores das sentenas (alfabeto).

    Ex. a, b, c,

    Formas sentenciais so strings de smbolos terminais e no-terminais.

    Ex. aSb, Ac, AbZ

    Sentenas so strings de smbolos terminais.

    Ex. acb, ca, baa,

    Uma produo (regra) consiste um par ordenado de formas sentenciais

    em que o lado esquerdo da produo (primeiro elemento do par) pode

    ser substitudo pelo lado direito da mesma (segundo elemento do par).

    Ex. B bA

  • 5/21/2018 04-AF-P01

    24/35

    Definio de GramticaUma gramtica uma qudrupla G = (V, , P, S), em que:V = conjunto de smbolos no-terminais (ou variveis)

    = conjunto de smbolos terminais (alfabeto), V =

    P = conjunto de regras (produes), P (V )+ (V )*

    S = smbolo inicial ou varivel de partida, S V

    Uma derivao representa a obteno de uma forma sentencial a partir

    de outra, em que os smbolos do lado direito de uma produosubstituem aqueles colocados do lado esquerdo da mesma.

    S w, l-se S deriva w em um passo

    S w, l-se S deriva w em zero ou mais passos

    se S (V )* entao uma forma sentencial de G

    se S w * ento w uma sentena de G

    A linguagem gerada pela gramtica G L(G) = { w * | S w }

  • 5/21/2018 04-AF-P01

    25/35

    A recurso em uma gramtica permite que ela derive infinitas

    palavras. Ela pode ser direta (da forma A aA) ou indireta(da forma A w aA e w no contm A).

    Derivao mais direita (DMD)

    Durante o processo de derivao o no-terminal expandido decada forma sentencial sempre o mais direita.

    Derivao mais esquerda (DME)

    Durante o processo de derivao o no-terminal expandido decada forma sentencial sempre o mais esquerda.

    Ex. Seja G = ({S,A}, {a, b}, {S AA, A AAA | bA | Ab | a }, S)

    DMD de ababaa : S AA Aa AAAa AAbAa AAbaa

    AbAbaa Ababaa ababaa

    DME de ababaa : S AA aA aAAA abAAA abaAA

    ababAA ababaA ababaa

  • 5/21/2018 04-AF-P01

    26/35

    Gramticas Regulares (GR)Seja gramtica G = (V, , P, S), em que cada regra a forma:i) A a

    ii) A aB

    iii) A

    sendo que A e B V e a . Ento G Gramtica Linear a Direita.

    Seja gramtica G = (V, , P, S), em que cada regra a forma:

    i) A a

    ii) A Ba

    iii) A

    sendo que A e B V e a . Ento G Gramtica Linear a Esquerda.

    G GR ou G GLD ou G GLE

  • 5/21/2018 04-AF-P01

    27/35

    Equivalncia entre Formalismos

    AFN-AFNAFD

    UM UM

    PODE SER CONVERTIDOPODE SER CONVERTIDO

    Gramtica

    Regular

    Autmato

    Finito

    Expresso

    Regular

    PODE SER CONVERTIDA

    PODE SER CONVERTIDA

    PODE SER CONVERTIDO

    PODE SER CONVERTIDO

  • 5/21/2018 04-AF-P01

    28/35

    G: S aS | aA

    A bA | b

    Converso GR AFA converso de uma GR G = (V, , P, S) em um AFN equivalente

    M = (Q, , , q0, F) obtida da seguinte forma:

    1. Q = V U {Z}, se P contm uma regra da forma Aa, ou

    Q = V, caso contrrio

    2. (A, a) = B, para toda regra da forma A aB P, ou

    (A, a) = Z, para toda regra da forma A a P

    3. q0 = S4. F = { A | A P } U {Z}, se Z Q, ou

    F = { A | A P }, caso contrrio

    S A Za b

    a bM:

  • 5/21/2018 04-AF-P01

    29/35

    Converso AF GRA converso de AFN M = (Q, , , q0, F) para uma GR equivalente

    G = (V, , P, S) obtida da seguinte forma:

    1. V = Q

    2. se (A, a) = B, incluir a regra da forma A aB em P

    3. se A F, incluir a regra A em P

    4. S = q0

    G: S aS| bB | aZ

    B bB | Z

    S

    Z

    b

    a

    a b

    B

    M:

  • 5/21/2018 04-AF-P01

    30/35

    Gramtica para Linguagem Reversa Reverso de Regras

    Seja uma GLD GD = (V, , PD, S) entopodemos obter uma GLE GE = (V, , PE, S) talque L(GE) = L(GD)R da seguinte forma:

    PE = { | PD em que

    V {} } { R | PD em que

    V }

  • 5/21/2018 04-AF-P01

    31/35

    GLD GLESeja uma GLD G1 = (V1, , P1, S1) ento

    podemos obter uma GLE G2 = (V2, , P2, S2)tal que L(G1) = L(G2) da seguinte forma:

    1. Determinar L(G1)

    2. Determinar L(G1)R

    3. Obter uma GLD G tal que L(G) = L(G1)R

    4. Transformar GLD G em GLE G2 atravs da

    reverso de regras

  • 5/21/2018 04-AF-P01

    32/35

    C

    onversoER

    AF

  • 5/21/2018 04-AF-P01

    33/35

    Converso de AF ERSeja um AF M.

    1. Crie um autmato M com os estados de M e acrescente dois

    estados: I (inicial) e F (final);

    2. Para o estado inicial q0 de M, crie um transio lambda do

    novo estado inicial I para q0. E para cada estado final qfde

    M, crie transies lambdas de qfpara F. Assim:

    3. Considere o rtulo de cada transio como sendo uma

    expresso regular. Por exemplo:

    vira

  • 5/21/2018 04-AF-P01

    34/35

    4. Para cada estado interno qi do novo autmato faa

    para cada par de faa

    se no houver ento

    crie a transio

    seno

    crie a transio

    se nova transio resultou ento

    substitua por

    fim para

    remova o estado qi e suas transies do autmato

    fim para

    5. A expresso regular corresponde ao rtulo entre I e F

  • 5/21/2018 04-AF-P01

    35/35

    Ex.

    1) Construa gramtica para a linguagem sobre = {a, b} onde osstrings tm tamanho par e possuem um nmero mpar de bs.

    2) Construa autmatos e expresses regulares para as seguintes

    gramticas regulares:a) S aA b) S aS | bA |

    A aA | bA | A aA | bS

    3) Construa gramticas regulares para os seguintes autmatos:a) b)