Autómatos Finitos com Transições Epsilon

download Autómatos Finitos com Transições Epsilon

of 21

  • date post

    12-Aug-2015
  • Category

    Documents

  • view

    28
  • download

    0

Embed Size (px)

description

apontamentos

Transcript of Autómatos Finitos com Transições Epsilon

AutomatosnitosnaodeterminsticoscomtransicoesporAutomatosquepodemmudar deestadosemconsumir qualquer smbolo,isto e,admitetransicoespors1 __ '` __a/s2'` __a/s3'` __` a

/s0'` __ >}}}}}}}}

AAAAAAAAs4 __ '` __a/s5'` __a/s6'` __a/s7'` __a/s8'` __ _ ` aoaceitaalinguagem {x {a}

| |x| edivisvelpor3ou5 }DepartamentodeCienciadeComputadoresdaFCUPMCAula6 1Podemostambemsimplicaraconstrucaodosautomatosquereconhecemconjuntosnitosdepalavras-chave:0\ __r/2\ __e/3\ __d/4\ __e/5\ __ ` _/10` __

8qqqqqqqqqqqqqqqq

&MMMMMMMMMMMMMMMM1\ __d/6\ __e/7\ __d/8\ __o/9\ __ ` _Construmosumaut omatoparacadapalavra(cadaumacomoseuestadoinicial) e depois reunimos todos numso comumnovo estado inicial etransicoespordesseestadoparacadaumdosiniciaisdaspalavras.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 2AFND-N= (S, , , s0, F)emqueeumafuncaodeS ( {})em P(S)Exemplo6.1. AFND-quereconhecaalinguagemdaspalavrasquere-presentamn umerosdecimais:Opcionamente,umsinal +ou Umasequenciadedigitos 0a 9Umpontodecimal OutrasequenciadedgitosepelomenosumadassequenciadedgitostemdesernaovaziaDepartamentodeCienciadeComputadoresdaFCUPMCAula6 3E = ({s0, s1, . . . , s5}, {, +, , 0, 1, . . . , 9}, , s0, {s5})/s0'` __,+,/s1'` __0,1,...,9

?????????0,1,...,9`/s2'` __0,1,...,9/s3'` __

/_`0,1,...,9 s5 __ '` __s4'` __?

, + 0, 1, . . . 9s0{s1} {s1} s1 {s2} {s1, s4}s2 {s3}s3{s5} {s3}s4 {s3} s5 DepartamentodeCienciadeComputadoresdaFCUPMCAula6 4FechoportransicoesE

= (S, {}, , s0, F)Paras S,sejaFecho(s)conjuntodeestadosacessveisdoestadosportransicoesporFormalmentedenimosFecho(s)recursivamenteporBase. s Fecho(s)Inducao. sep Fecho(s)er (p, )entaor Fecho(s)Para o Exemplo 6.1 temos: Fecho(s0) = {s0, s1}, Fecho(s3) = {s3, s5}eparaosrestantesestadoss,Fecho(s) = {s}.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 5ExtensaodafuncaotransicaoapalavrasDadoE

= (S, {}, , s0, F)estendemos demodoaque (s, w)sejaoconjuntodeestadosquesaoacessveisdesporcaminhoscujasetiquetasconcatenadasdaow,masalgumaspodemser.Adenicaorecursiva e:Base. (s, ) = Fecho

(s)Inducao. Suponhamosquew = xa,coma ,seja (s, x) = {p1, . . . , pk}eseja ki=1(pi, a) = {r1, . . . , rm}entao (s, w) = mj=1Fecho

(rj)ParaoExemplo6.1,calculemos (s0, 3.7):DepartamentodeCienciadeComputadoresdaFCUPMCAula6 6/s0'` __,+,/s1'` __0,1,...,9

@@@@@@@@@0,1,...,9`/s2'` __0,1,...,9/s3'` __

/_`0,1,...,9 s5'` __ '` __s4'` __>~~~~~~~~~ b(s0, )=Fecho

(s0)= {s0, s1} Para b(s0, 3) (s0, 3) (s1, 3)= {s1, s4}

b(s0, 3)=Fecho

(s1) Fecho

(s4)= {s1, s4} Para b(s0, 3.) (s1, ) (s4, )= {s2} {s3}= {s2, s3}

b(s0, 3.)=Fecho

(s2) Fecho

(s3)= {s2, s3, s5} Para b(s0, 3.7) (s2, 7) (s3, 7) (s5, 7)= {s3}

b(s0, 3.7)=Fecho

(s3)= {s3, s5}DepartamentodeCienciadeComputadoresdaFCUPMCAula6 7LinguaguemaceiteporumAFND-DadoE

= (S, {}, , s0, F)L(E) = {x

| (s0, x) F = }Para o Exemplo 6.1 como (s0, 3.7) = {s3, s5} e s5 Fentao 3.7 L(E).DepartamentodeCienciadeComputadoresdaFCUPMCAula6 8EliminacaodetransicoesDado E=(SE, , E, s0, FE) umAFND-, podemos construmos A=(SA, , A, sA, FA)umAFDequivalente, porummetodosemelhante`adaconstrucaodesubconjuntos:sA = Fecho

(s0)SAeoconjuntodossubconjuntosXdeSE, tal queX=Fecho

(X)(i.eXefechadoportransicoes)eXeacessveldesAFA = {X | X SAeX FE = }A(X, a) ecalculadoparaa eX SApor1. SejaX = {p1, . . . , pk}2. Seja ki=1(pi, a) = {r1, . . . , rm}3. entaoA(X, a) = mj=1Fecho

(rj)DepartamentodeCienciadeComputadoresdaFCUPMCAula6 9Exerccio6.1. Constroi umADFequivalente ao AFND- do exem-plo 6.1./s0'` __,+,/s1'` __0,1,...,9

@@@@@@@@@0,1,...,9`/s2'` __0,1,...,9/s3'` __

/_`0,1,...,9 s5'` __ '` __s4'` __>~~~~~~~~~

ResolucaoFecho

(s0)= {s0, s1}, Fecho(s3)= {s3, s5}eparaos restantesestadoss,Fecho(s)= {s}, + 0, 1, . . . 9 {s0, s1} {s1} {s2} {s1, s4}{s1} {s2} {s1, s4}{s2} {s3, s5}{s1, s4} {s3, s2, s5} {s1, s4}{s3, s5} {s3, s5}{s2, s3, s5} {s3, s5}DepartamentodeCienciadeComputadoresdaFCUPMCAula6 10EquivalenciaentreAFDeAFND-Proposicao6.1. UmalinguagemL eaceiteporumAFND-seesoseLeaceiteporalgumAFD.Lema6.1. E(s0, w) = A(sA, w)Dem: Porinducaoem |w|.Base. w=, E({s0}, ) =Fecho

(s0) e sA=Fecho

(s0). Entao

A(sA, ) = sA = Fecho

(s0) = E(s0, )Inducao. w=xa e E(s0, x) = A(sA, x), sejam {p1, . . . , pk}. Peladenicaocalculamos E(s0, w)por1. ki=1(pi, a) = {r1, . . . , rm}2. E(s0, w) = mj=1Fecho

(rj)DepartamentodeCienciadeComputadoresdaFCUPMCAula6 11masisso eprecisamenteA({p1, . . . , pk}, a)que e A(sA, w).Dem: (Proposicao 6.1) () Seja E=(SE, , E, s0, FE) umAFND- e seja A=(SA, , A, sA, FA) umAFDconstrudo pelo metodo desubconjuntosmodicado. QueremosqueL(A) = L(E). Parax

,x L(A) A(sA, x) FA A(sA, x) FE = E(s0, x) FE = x L(E)() Paratornar umAFDnumAFND- bastaacrescentar (s, )= etransformar as transicoes do tipo(s, a) = s

em(s, a) = {s

},para todososestadosdoAFD.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 12Exerccio6.2. Considera o automato nito comtransicoes por ,({s0, s1, s2}, {a, b, c}, , s0, {s2}) com a seguinte funcao de transicao: a b cs0{s1, s2} {s1} {s2}s1 {s0} {s2} {s0, s1}s2 (a)Apresenta o diagrama que descreve o automato.(b)Calcula o fecho- de cada estado.(c)Determina um automato nito determinstico completo equivalente.

DepartamentodeCienciadeComputadoresdaFCUPMCAula6 13Linguagensregulareseexpressoesregulares[HMU00](Cap. 3.3)Vamos ver que as linguagens aceites por automatos nitos podemserdescritasdeclarativamenteporexpressoesregulares.Expressoesdestetiposaousadasemmuitossistemas:expansaodenomesdecheirosemUNIX:ls *.cem procura de palavras em comandos como o grep ou navegadores WWWanalisadoreslexicais(lex)decompiladoresouprocessadoresdelingua-gens naturais: ex. n umeros decimais, identicadores, palavras chave,etc.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 14RepresentacaonitadelinguagensL1 = {x {0, 1}

| xtem2ou3ocorrenciasde1, naosendoasduasprimeirasconsecutivas }Podemosescrever:L1= {0}

{1}{0}

{0}{1}{0}

({1}{0}

{})ousimplicando, podemosassociaraL1aexpressao:0

10

010

(10

+ )L2 = {x {0, 1}

| xcontem 000}L2={0, 1}

{000}{0, 1}

ou simplicando, podemos associar a L2aexpressao:(0 + 1)

000(0 + 1)

DepartamentodeCienciadeComputadoresdaFCUPMCAula6 15ExpressoesregularessobreumalfabetoO conjunto das expressoesregularessobre e o conjunto das linguagensporelasdescritassaodenidosindutivamentepor:(i)e uma expressao regular sobre , e descreve a linguagem{};i.eL() = {}(ii) e uma expressao regular sobre , e descreve a linguagem ;i.e L() = (iii) Se a entao a e uma expressao regular sobre , e descreve alinguagem {a};i.eL(a) = {a}(iv) SeressaoexpressoesregularessobrequedescrevemaslinguagensL(r)eL(s), entao(r + s), (rs)e(r

)saoexpressoesregularessobre, e descrevemL(r) L(s), L(r)L(s) e L(r)

respectivamente;i.eL((r + s)) = L(r) L(s),L((rs)) = L(r)L(s)eL((r

)) = L(r)

.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 16Usando as precedencias das operacoes, fecho >concatenacao >uniao,podemosomitiralgunsparentisis!expressaoregularsobre {0,1} linguagemdescrita(0 + 1) {0, 1}(0

) {, 0, 00, 000, 0000, 00000, . . .}((0

)(11)) {11, 011, 0011, 00011, 000011, 0000011, . . .}((01)

) {, 01, 0101, 010101, 01010101, 0101010101, . . .}((0 + 1)

) {, 0, 1, 00, 01, 10, 11, 000, 001, 010,011,100,101,110,111,. . . }((1

)(0((0 + 1)

))) {0, 10, 01, 00, 000, 100, 010,001, 110, 101, 011, . . . }={x|xtemalgum0}Emresumo, o conjunto das linguagens regulares sobre umalfabeto contem , {}, {a}paraa e efechadoparaaconcatenacao,reuniaoefechodeKleene.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 17Mas...Nemtodasaslinguagenssaoregulares! Porexemplo{0n1n| n 1}DepartamentodeCienciadeComputadoresdaFCUPMCAula6 18MaisalgumasexpressoesregularesA = {x {0, 1}

| xtempelomenosum 11entrecadaparde 0s}Isto e,seocorrerum 0temdeocorrer 11aseguir(1 + 011)

exceptoparao 0mais`adireitaA = L((1 + 011)

( + 0 + 01))B = {x {a, b}

| xquetemumn umeropardeas}TendoumatemnecessariamenteoutroB = L((ab

a + b)

)C = {x {0, 1}

| xnaotemasubpalavra 111}DepartamentodeCienciadeComputadoresdaFCUPMCAula6 19Se houver um 1 ou um 11 tem de haver pelo menos um 0 antes de outro1C = L(0

+ 0

(1 + 11)(0+(1 + 11))

0

)D = {x {0, 1}

| xnaotemasubpalavra00}`Adireitadeum0temum1(01 + 1)

,maspodeterminarem 0D = L((01 + 1)

(0 + ))R, linguagem dos n umeros decimais racionais em ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , .}Paraosdgitos: digito = (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9)R = L(( +)digito+(.digito++ ))DepartamentodeCienciadeComputadoresdaFCUPMCAula6 20Leituras[HMU00]Cap2.5,3.1,3.3Referencias[HMU00] John E. Hopcroft, Rajeev Motwani, and Jerey D. Ullman.IntroductiontoAutomataTheory, LanguagesandComputation.AddisonWesley,2ndedition,2000.DepartamentodeCienciadeComputadoresdaFCUPMCAula6 21