aulas automatos

26
Informática Teórica Engenharia da Computação

Upload: vitor-machado

Post on 25-Sep-2015

32 views

Category:

Documents


4 download

DESCRIPTION

automatos aula

TRANSCRIPT

Apresentao do PowerPoint

Informtica Terica Engenharia da ComputaoAutmatos FinitosEquivalncia entre AFs e expresses regularesQualquer expresso regular pode ser convertida num autmato finito que reconhece a linguagem que ela descreve, e vice versa.

2Autmatos FinitosEquivalncia entre AFs e expresses regularesTeorema: Uma linguagem regular se e somente se alguma expresso regular a descreve.

Esse teorema tem duas direes. Enunciamos e provamos cada uma das direes como um lema separado.Lema 1.55: Se uma linguagem descrita por uma expresso regular ento ela regular.Lema 1.60: Se uma linguagem regular ento ela descrita por uma expresso regular.

3Autmatos FinitosEquivalncia entre AFs e expresses regularesLema 1.55: Se uma linguagem descrita por uma expresso regular ento ela regular.

Idia da Prova:Vamos supor que tenhamos uma expresso regular R descrevendo alguma linguagem A. Mostramos como converter R num AFN que reconhece A. Pois j vimos que se um AFN reconhece A ento A regular.

4De expresso regular para AFNPROVA

Vamos considerar os 6 casos na definio de uma ER.

Caso 1: R = a para algum a em . Ento L(R) = {a}, e o seguinte AFN reconhece L(R).

aN = ({q1, q2},, , q1,{q2}) (q1,s) ={q2} para s=a e = para sa(q2,s) = 5De expresso regular para AFNPROVA

Vamos considerar os 6 casos na definio de uma ER.

Caso 2: R = . Ento L(R)={}

N = ({q1},, , q1,{q1}) (r,s) = para quaisquer r e s 6De expresso regular para AFNPROVA

Vamos considerar os 6 casos na definio de uma ER.

Caso 3: R = . Ento L(R)=

N = ({q1},, , q1,) (r,s) = para quaisquer r e s 7De expresso regular para AFNPROVA

Caso 4: R1 R2

Caso 5: R1 R2

Caso 6: R*

Para os trs ltimos casos usamos as construes dadas nas provas de que a classe de linguagens regulares fechada sob as operaes regulares.

8Autmatos FinitosEquivalncia entre AFs e expresses regularesTeorema: Uma linguagem regular se e somente se alguma expresso regular a descreve.

Agora vamos provar a segunda parte desse teorema.

Lema 1.60: Se uma linguagem regular ento ela descrita por uma expresso regular.

9De autmatos para expresses regularesLema 1.60: Se uma linguagem regular ento ela descrita por uma expresso regular.Idia da prova: Precisamos mostrar que, se uma linguagem A for regular, uma expresso regular a descreve. Dado que A regular, ela aceita por um AFD.Descrevemos um procedimento para converter AFDs em expresses regulares equivalentes.Dividimos esse procedimento em duas partes, usando um novo tipo de autmato finito chamado autmato finito no-determinstico generalizado, AFNG.

10De autmatos para expresses regularesPrimeiro mostramos como converter AFDs em AFNGs, e ento AFNGs em expresses regulares.

11De autmatos para expresses regularesAFNG Autmato Finito No-determinstico GeneralizadoAFNGs so simplesmente AFNs nos quais as setas de transio podem ter quaisquer expresses regulares como rtulo, ao invs de somente membros do alfabeto ou . O AFNG l blocos de smbolos da entrada, no necessariamente apenas um smbolo a cada vez. O AFNG se move ao longo de uma seta de transio conectando dois estados lendo um bloco de smbolos da entrada, esses ltimos constituem uma cadeia descrita pela expresso regular sobre aquela seta.Um AFNG aceita sua entrada se seu processamento pode levar o AFNG a estar num estado de aceitao no final da entrada.

12Exemplo de um AFNGqincioab baaaab*bO estado inicial tem setas de transio indo para todos os outros estados masnenhuma seta vindo de qualquer outro estado.abqfinalb*(aa)*a*Existe apenas um estado de aceitao, e ele tem setas vindo de todos osoutros estados mas nenhuma seta indo para qualquer outro estado.Alm domais, o estado de aceitao diferente do estado inicial.Exceto pelos estados inicial e de aceitao, uma seta vai de cada estado paratodos os outros estados e tambm de cada estado para si prprio.13Converso de AFD para AFNGAdicionamos um novo estado inicial com uma transio indo para o antigo estado inicial. Colocamos um novo estado de aceitao com transies indo dos antigos estados de aceitao para ele. Se alguma transio possui mltiplos rtulos, ns a substituimos por uma transio rotulada com a unio dos rtulos anteriores. Adicionamos transies rotulada com entre estados que no esto relacionados.

14bAFDConverso de AFD para AFNGaa,bba121s2a bfAFNGPodemos omitir as setas pois as transies nunca so usadas15Converso de AFNG para expresso regularSuponha que o AFNG possua k estados. Como um AFNG possui um estado inicial e um final que devem ser distintos, logo k 2 Se k > 2, construmos um AFNG equivalente com k-1 estados. Esse passo pode ser repetido no novo AFNG at que ele fique com dois estados.Se k = 2, o AFNG possui uma nica seta que vai do estado inicial ao estado de aceitao.O rtulo dessa seta a expresso regular equivalente.16Converso de um AFD para expresso regularAFD de 3 estadosAFNG de 5 estadosAFNG de 4 estadosAFNG de 3 estadosAFNG de 2 estadosexpresso regular17AFNGConverso de AFNG para AFNG com menos estadosqiAFNG equivalenteEscolhemos arbitrariamente um estado, diferente do inicial e do final, para ser removido.qjqsaiR1R4R3R2qiqj(R1)(R2)*(R3 ) (R4)O novo rtulo compensa a falta do estado removido adicionando uma expresso regular18Converso de AFNG para expresso regularPara dar uma definio precisa do algoritmo que converte um AFNG em uma expresso regular, primeiro daremos uma definio formal de um AFNG.Um AFNG semelhante a um AFN, exceto pela funo de transio.: (Q {qaceita}) (Q {qincio}) RR o conjunto de todas as expresses regulares sobre .Se (qi,qj) = R, a seta do estado qi para o estado qj tem como rtulo a expresso regular R.19AFNG: definio formalUm autmato finito no generalizado uma 5-upla,(Q,,, qincio, qaceita), ondeQ o conjunto finito de estados, o alfabeto de entrada,: (Q {qaceita}) (Q {qincio}) R a funo de transio,qincio o estado inicial, e qaceita o estado de aceitao.20AFNG: definio formalUm AFNG aceita uma cadeia w em * se w=w1w2...wk onde cada wi est em * e existe uma sequncia q0,q1,...qk tal queq0=qincio o estado inicial, qk=qaceita o estado de aceitao. EPara cada i temos wi L(Ri), onde Ri = (qi-1,qi); em outras palavras, Ri a expresso sobre a seta de qi-1 a qi.21Algoritmo para converter um AFNG em uma expresso regularCONVERT(G)Seja k o nmero de estados de GSe k=2, retorne a expresso regular que rotula a nica seta que vai do estado inicial ao final.Se k > 2, selecionamos qualquer estado qsai Q, t.q. qsai qincio e qsai qaceita e seja G o AFNG (Q,,, qincio, qaceita), ondeQ= Q {qsai},e para qualquer qi Q {qaceita} e qj Q {qincio} seja(qi,qj)= (R1)(R2)*(R3 ) (R4)Para R1 = (qi,qsai), R2 = (qsai,qsai), R3 = (qsai,qj) e R4= (qi,qj)

22Algoritmo para converter um AFNG em uma expresso regularCONVERT(G)Seja k o nmero de estados de GSe k=2, retorne a expresso regular que rotula a nica seta que vai do estado inicial ao final.Se k > 2, selecionamos.e construa G.Compute CONVERT(G) e retorne esse valor

23bAFDDe autmato para Expresso Regularaa,bba121s2a bfAFNGRetirando o estado 2.b(a b)*

aRetirando o estado 1.sfa*b(a b)*24

De autmato para Expresso RegularExemplo

qiqf25AFD1ER equivalente23baa(a(aa b)*(ab b))((ba a)(aa b)*ab b)*((ba a)(aa b)* ) a(aa b)*De autmato para Expresso Regularbab26