Baixe o app para aproveitar ainda mais
Prévia do material em texto
Autômatos e computabilidade Autômatos finitos 2 Pedro A D Rezende UnB – IE – CIC Cadeia vazia: l (ou e) é a cadeia tal que |l| = 0 A & C: Autômatos finitos 2 Trasições “espontâneas” Um lFA é um FA com transições por l, isto é, M = (Q, , q 0 , d, F) onde d (Q(S{l}))Q. ((q,l),q') d seria transição de q por l para q' omo vértices, d como arestas rotuladas qq' transição de q para q' por a A & C: Autômatos finitos 2 Trasições “espontâneas” Um lFA é um FA com transições por l, isto é, M = (Q, , q 0 , d, F) onde d (Q(S{l}))Q. ((q,l),q') d seria transição de q por l para q'. omo vértices, d como arestas rotuladas qq' transição de q para q' por a Q \ {l} q 0 q ... a ... | l {q'...} A & C: Autômatos finitos 2 Comportamento de lFAs O comportamento de um lFA perante cadeias de S inclui transições espontâneas (por l). d* (QS*)Q é definida indutivamente por: d*(q,l) = {q}l ; d*(q,a) = d(q,a)l d*(q,aa) = d(d*(q,a),a)l onde Pl é o l-fecho de PQ definido por Pl = {qQ | caminho de rQ a q rotulado por l} A & C: Autômatos finitos 2 Comportamento de lFAs O comportamento de um lFA perante cadeias de S inclui transições espontâneas (por l). d* (QS*)Q é definida indutivamente por: d*(q,l) = {q}l ; d*(q,a) = d(q,a)l ; d*(q,aa) = d(d*(q,a),a)l . onde Pl é o l-fecho de PQ definido por Pl = {qQ | caminho de rQ a q rotulado por l} A & C: Autômatos finitos 2 Comportamento de lFAs O comportamento de um lFA perante cadeias de S inclui transições espontâneas (por l). d* (QS*)Q é definida indutivamente por: d*(q,l) = {q}l ; d*(q,a) = d(q,a)l ; d*(q,aa) = d(d*(q,a),a)l onde, dado VQ, Vl é o fecho l de V: Vl = {qQ | caminho de vV a q rotulado por l} A & C: Autômatos finitos 2 Modelos computacionais para LFs FA é um modelo para reconhecedores de linguagens regulares aS* (string) |d*(q 0 ,a) F| (booleano de aL(M)?) Como encontrar modelo computacional inverso, para geradores de linguagens regulares? ...... (booleanos) aL (string de LL Reg ) lFA revela modelo equivalente para geradores A & C: Autômatos finitos 2 Modelos computacionais para LFs FA é um modelo para reconhecedores de linguagens regulares aS* (string) |d*(q 0 ,a) F| (booleano de aL(M)?) Como encontrar modelo computacional inverso, para geradores de linguagens regulares? ...... (booleanos) aL (string de LL Reg ) lFA revela modelo equivalente para geradores Input M output A & C: Autômatos finitos 2 Modelos computacionais para LFs FA é um modelo para reconhecedores de linguagens regulares aS* (string) |d*(q 0 ,a) F| (booleano de aL(M)?) Como encontrar modelo computacional inverso, i.e., para geradores de linguagens regulares? ...... (booleanos) aL (string de LL Reg ) lFA revela modelo equivalente para geradores Input M output A & C: Autômatos finitos 2 Modelos computacionais para LFs FA é um modelo para reconhecedores de linguagens regulares aS* (string) |d*(q 0 ,a) F| (booleano de aL(M)?) Como encontrar modelo computacional inverso, i.e., para geradores de linguagens regulares? ...... (booleanos) aL (string de LL Reg ) lFA revela modelo equivalente para geradores Input M output Input M output A & C: Autômatos finitos 2 Modelos computacionais para LFs FA é um modelo para reconhecedores de linguagens regulares aS* (string) |d*(q 0 ,a) F| (booleano de aL(M)?) Como encontrar modelo computacional inverso, i.e., para geradores de linguagens regulares? ...... (booleanos) aL (string de LL Reg ) lFA revela modelo equivalente para geradores Input M output Input M output A & C: Autômatos finitos 2 Equivalência funcional entre lFAs e NFAs Dado qualquer lFA M = (Q, , q 0 , d, F), existe NFA M' que reconhece a mesma linguagem: M' = (2Q, , {q 0 }, d', F') d' é dada pela tabela de transições de M e pelo fecho reflexivo-transitivo de transições por l T d'(V,a) = d(V,a)l (estados alcançáveis a partir de V via transição por a + caminho rotulado por l) A & C: Autômatos finitos 2 Equivalência funcional entre lFAs e NFAs Dado qualquer lFA M = (Q, , q 0 , d, F), existe DFA M' que reconhece a mesma linguagem: M' = (2Q, , q' 0 , d', F') d' é dada por transições de M com input e pelo fecho reflexivo-transitivo de transições por l T d'(V,a) = d(V,a)l (estados alcançáveis a partir de V via transição por a + caminho rotulado por l) A & C: Autômatos finitos 2 Equivalência funcional entre lFAs e DFAs Dado qualquer lFA M = (Q, , q 0 , d, F), existe DFA M' que reconhece a mesma linguagem: M' = (2Q, , q' 0 , d', F') d' é dada por transições de M com input e pelo fecho reflexivo-transitivo de transições por l T d'(V,a) = d(V,a)l (estados alcançáveis a partir de V via transição por a + caminho rotulado por l) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F = {q 0 }lF A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F = {q 0 }lF A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F = {q 0 }lF def. comportamento DFA def. q inicial M' A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F = {q 0 }lF def. comportamento DFA def. q inicial M' A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F = {q 0 }lF def. comportamento DFA def. q inicial M' M' reconhece l (aplicando definição de F') hipótese def. comportamento lFA A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F {q 0 }lF def.comportamento DFA def. q inicial M' M' reconhece l Tese P(0) (aplicando definição de fecho) M reconhece l A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F {q 0 }lF def. comportamento DFA def. q inicial M' M' reconhece l Hipótese P(0) def. comportamento lFA M reconhece l A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) Defina q' 0 ={q 0 }l e os estados finais de M' por F' = {VQ | VF} (V contém algum estado final de M) Provaremos, por indução sobre |a|: d'*(q' 0 ,a) F' d*(q 0 ,a)F P(0): d'*(q' 0 ,l) = {q' 0 } = {{q 0 }l} , e portanto {q 0 }lF d*(q 0 ,l)F {q 0 }lF def. comportamento DFA def. q inicial M' M' reconhece l Hipótese P(0). def. comportamento lFA M reconhece l A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M), Dado V = d'*(q' 0 ,|a|=n), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: T = d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular aaL(M') caminho de q 0 a qF em M c.c.r.p. aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: T = d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular aaL(M') caminho de q 0 a qF em M c.c.r.p. aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular aaL(M') caminho de q 0 a qF em M c.c.r.p. aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular aaL(M') caminho de q 0 a qF em M c.c.r.p. aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular, aaL(M') caminho em M de q 0 a qF que se concatena em aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular, aaL(M') caminho em M de q 0 a qF que se concatena em aa aaL(M) A & C: Autômatos finitos 2 Demonstração de L(M lFA ) = L(M DFA ) (continuação) nN [ P(n) P(n+1) ]: (supondo aL(M')aL(M)) Dado V = d'*(q' 0 ,a), temos: aS* [qV caminho de q 0 a q em M cuja concatenação de rótulos produz a]. Prova por indução, dado que: d'*(q' 0 ,aa) = d'(d'*(q' 0 ,a),a) = d(V,a)l em particular, aaL(M') caminho em M de q 0 a qF que se concatena em aa aaL(M)
Compartilhar