Linguagens e Programação Automátos Finitos
Autómatos finitos Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.
Representação formal AA = (SS, Σ, ss 0, FF, δδ) S é um conjunto finito de estados não vazio Σ é o alfabeto de entrada s 0 é o estado inicial F é o conjunto de estados finais δ é a função de transição Recebe como argumentos um estado um símbolo de entrada Devolve um novo estado
Representação formal Exemplo: AF capaz de processar números binários terminados em 10 Expressão regular: (0 1)*10 Autómato Finito: AA = ( ss 0, ss 2, ss 2, 0,1, ss 0, ss 2, δδ) δδ ss 0, 0 = {ss 0 } δδ ss 0, 1 = {ss 0, ss 1 } δδ ss 1, 0 = {ss 2 }
Representação de um AF Tabela de transições s 0 {s 0 } {s 0, s 1 } s 1 {s 2 } *s 2 Representação gráfica
Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; a) Represente graficamente o autómato capaz de reconhecer a linguagem (a c d)*(ab(a b c d)*)?
Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; b) Defina formalmente o autómato de acordo com a fórmula AA = (SS, Σ, ss 0, FF, δδ) A=( {q0,q1,q2},{a,b,c,d},q0,{q0,q2},d) d(q0,a)={q0,q1}, d(q0,c)={q0}, d(q0,d)={q0}, d(q1,b)={q2}, d(q2,a)={q2}, d(q2,b)={q2}, d(q2,c)={q2}, d(q2,d)={q2}
Exercícios Propostos 1. Para a linguagem constituída por todas as strings no alfabeto {a, b, c, d} em que o primeiro b (se existir) é precedido de um a ; c) Elabore a tabela de transições respetiva a b c d *q0 {q0,q1} φ {q0} {q0} q1 φ {q2} φ φ *q2 {q2} {q2} {q2} {q2}
Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb a) Represente graficamente o autómato correspondente
Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb b) Defina formalmente o autómato de acordo com a fórmula AA = (SS, Σ, ss 0, FF, δδ) A=( {q0,q1,q2,q3},{a,b},q0,{q3},d) d(q0,a)={q0,q1}, d(q0,b)={q0}, d(q1,b)={q2}, d(q2,b)={q3}
Exercícios Propostos 2. Considere a seguinte expressão regular: (a b)*abb c) Elabore a tabela de transições respetiva a b q0 {q0,q1} {q0} q1 φ {q2} q2 φ {q3} *q3 φ φ
Exercícios Propostos 4. Represente graficamente e através da tabela de transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos. a) aa* bb* a b q0 {q1} {q2} *q1 {q1} φ *q2 φ {q2}
Exercícios Propostos 4. Represente graficamente e através da tabela de transições, os AF capazes de reconhecer as seguintes ER e classifique-os em Determinísticos ou Não Determinísticos. b) (a b)*abb(a b)* a b q0 {q0,q1} {q0} q1 φ {q2} q2 φ {q3} *q3 {q3} {q3}
Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} 0 1(0 1)*00
Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} (0 1)*111(0 1)*
Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} c) L(A) = {u Σ*: u tem um número par de 1 s} (0*10*10*)+ 0*
Exercícios Propostos 6. Considerando o alfabeto Σ = {0,1}, represente as seguintes linguagens utilizando um AF. a) L(A) = {u Σ*: u é um número binário múltiplo de 4} b) L(A) = {u Σ*: 111 é fator de u} c) L(A) = {u Σ*: u tem um número par de 1 s} d) L(A) = {u Σ*: u é vazia ou tem dígitos todos iguais, sendo de comprimento par as sequencias de 0 s e de comprimento impar as sequencias de 1 s} (00)* 1(11)*
Exercício de Aula Converta o seguinte AFN num AFD e minimize-o.
Exercicio de Aula 1. Conversão para AFD 1. Criação da tabela de transições A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 1. Criação da tabela de transições A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 2. Definição nos novos estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG *ABFG ACDEG ABG *ACEG AEG ABDFG A {A,E} {A,B} B {C} φ C φ {D} D {G} {G} E φ {F} F {D} φ *G {G} {G}
Exercicio de Aula 1. Conversão para AFD 3. Renomear os estados A AE AB AE AE ABF AB ACE AB ABF ACDE AB ACE AE ABDF ACDE AEG ABDFG ABDF ACDEG ABG *AEG AEG ABFG *ABDFG ACDEG ABG *ACDEG AEG ABDFG *ABG ACEG ABG *ABFG ACDEG ABG *ACEG AEG ABDFG Renomear A B C B B D C E C D F C E B G F H I G J K *H H L *I J K *J H I *K M K *L J K *M H I
Exercicio de Aula 1. Conversão para AFD A B C B B D C E C D F C E B G F H I G J K *H H L *I J K *J H I *K M K *L J K *M H I
Exercicio de Aula 2. Minimização 1ª Iteração NF FI A B NF C NF B B NF D NF C E NF C NF D F NF C NF E B NF G NF F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI
Exercicio de Aula 2. Minimização 1ª Iteração NF FI A B NF C NF B B NF D NF C E NF C NF D F NF C NF E B NF G NF F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI N O
Exercicio de Aula 2. Minimização 2ª Iteração N O FI A B N C N B B N D N C E N C N D F O C N E B N G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI
Exercicio de Aula 2. Minimização 2ª Iteração N O FI A B N C N B B N D N C E N C N D F O C N E B N G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI P Q R
Exercicio de Aula 2. Minimização 3ª Iteração P Q R O FI A B P C P B B P D Q C E R C P D F O C P E B P G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI S T U
2. Minimização 3ª Iteração S T U Q R O FI Exercicio de Aula A B T C U B B T D Q C E R C U D F O C U E B T G O F H FI I FI G J FI K FI *H H FI L FI *I J FI K FI *J H FI I FI *K M FI K FI *L J FI K FI *M H FI I FI S T U T T Q U R U Q O U R T O O FI FI *FI FI FI
Exercicio de Aula 2. Minimização S T U T T Q U R U Q O U R T O O FI FI *FI FI FI
Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Conversão para AFD A {A,B} {A} B {B,C} {A} *C φ {C} {A,B} {A,B,C} {A} *{B,C} {B,C} {A,C} *{A,C} {A,B} {A,C} *{A,B,C} {A,B,C} {A,C} A {A,B} {A} {A,B} {A,B,C} {A} *{A,C} {A,B} {A,C} *{A,B,C} {A,B,C} {A,C} S 0 S 1 S 0 S 1 S 3 S 0 *S 2 S 1 S 2 *S 3 S 3 S 2
Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Conversão para AFD S 0 S 1 S 0 S 1 S 3 S 0 *S 2 S 1 S 2 *S 3 S 3 S 2
Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. a) Minimização: estados não finais (NF) estados finais (F) S 0 S 1 NF S 0 S 1 S 3 F S 0 *S 2 S 1 NF S 2 *S 3 S 3 F S 2 NF NF F F
Exercícios Propostos 7. Converta os seguintes AFN em AFD e minimize-os. b) Conversão e Minimização:
Exercícios Propostos 8. Considerando o Σ={A,B,C,,Z, a, b, c,, z}, represente as seguintes linguagens utilizando um AF: a) L(A) = {u Σ*: u começa por um carácter minúsculo e tem no máximo duas maiúsculas} b) L(A) = {u Σ*: u começa por uma maiúscula e termina sempre numa vogal}
Exercícios Propostos 9. Considerando o Σ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, represente as seguintes linguagens utilizando um AF: a) L(A) = {u Σ*: u é uma sequência numérica crescente}
Exercícios Propostos 11.Indique uma expressão regular e um autómato finito determinístico que reconheça a mesma linguagem que o seguinte autómato finito não determinístico. Expressão Regular: b((a e)b)*ab AFD:
Exercícios Complementares 6. Implemente um AFD para as linguagens: a) Em Σ = {a,b,c,d}, qualquer palavra com um número par de símbolos b.
Exercícios Complementares 6. Implemente um AFD para as linguagens: b) Em Σ = {0,1}, qualquer palavra com um número par de zeros e um número par de uns.
Exercícios Complementares 7. Para cada um dos seguintes AFD indique a ER: a) a*b b) a*bb+
Exercícios Complementares 8. Represente as seguintes linguagens por uma expressão regular e por um automato finito deterministico a) Para o alfabeto Σ = {0, 1} L(A)={u Σ*:u começa por 1 e tem um número par de 1's} Expressão Regular: (10*10*)+ AFD:
Exercícios Complementares 3.3.2.a) Minimize o seguinte AFD
Exercícios Complementares 3.3.2.a) Construção da Tabela de transições A A B B C B *C E D D F B E E D *F A B
Exercícios Complementares 3.3.2.a) 1ª Iteração NF F A A NF B NF B C F B NF D F F B NF E E NF D NF *C E NF D NF *F A NF B NF
Exercícios Complementares 3.3.2.a) 2ª Iteração G H F A A G B H E E G D H D F F B H B C F B H *C E G D H *F A G B H
Exercícios Complementares 3.3.2.a) Autómato minimizado G G H H F H *F G H
Linguagens e Programação Automátos Finitos