Teoriacomputacao eduardo uab_ufrpe - imprimir_nopw

  • 228 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
228
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
11
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 1Conceitos Iniciais • Computadores atuais mais rápidos e poderosos • Modelos matemáticos • Autômatos Finitos slide 2
  • 2. Autômatos Finitos • Reconhecedor de palavras ou cadeia de caracteres • Bons modelos para computadores com capacidade de memória reduzida • Fazem parte de vários dispositivos eletro-mecânicos do dia-a-dia slide 3Autômatos Finitos • Exemplo 1 Visão aérea de uma porta automática slide 4
  • 3. Autômatos Finitos • Exemplo 1 O controlador da porta pode estar em 2 estados: - aberto (significando porta aberta) - fechado (significando porta fechada) O controlador passa de um estado para outro dependendo do estímulo (entrada) que recebe: slide 5Autômatos Finitos • Exemplo 1Entradas: Existem 4 condições de entrada possíveis Frente: significando que uma pessoa está em pé sobre o tapete da frente; Retaguarda: significando que uma pessoa está em pé sobre o tapete de dentro; Ambos: significando que existem pessoas sobre os 2 tapetes; Nenhum: significando que ninguém está sobre os tapetes. slide 6
  • 4. Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis slide 7Autômatos Finitos • Exemplo 1 Tabela de Transição slide 8
  • 5. Autômatos Finitos • Exemplo 2 Interruptor Estados: Ligado ou Desligado slide 9Autômatos Finitos • Exemplo 3 Palavra AMOR Qualquer outra palavra deve ser descartada slide 10
  • 6. Autômatos Finitos • Exemplo 3 Tentativa de leitura da Palavra AMBIENTE slide 11Autômatos Finitos • Controladores para: – Lavadoras de louça/roupa – Termômetros eletrônicos – Relógios digitais – Calculadoras – Máquinas de venda automática slide 12
  • 7. Autômatos Finitos • O AF é uma máquina, reconhecedora de palavras ou cadeia de caracteres, que sempre pára retornando uma resposta sim (cadeia reconhecida) ou não (cadeia não conhecida) • Podem ser classificados em: – Autômatos Finitos Determinísticos (AFD) – Autômatos Finitos Não-Determinísticos (AFND) slide 13Autômatos Finitos Determinísticos – Definição Formal Definição formal de um Autômato Finito Determinístico: Um Autômato Finito Determinístico (AFD) M é uma 5-upla: M = (Q, Σ, δ, q0, F), onde Q: conjunto finito de estados do autômato; Σ: alfabeto de símbolos de entrada; δ: função programa ou função de transição (parcial) δ: Q × Σ → Q. Significa dizer que permanecendo em um estado e lendo um símbolo do alfabeto faz o autômato passar para outro estado ou mesmo ficar no mesmo q0: estado inicial (q0∈Q) F: conjunto de estados finais ou estados de aceitação (F⊆Q) slide 14
  • 8. Autômatos Finitos Determinísticos – Cadeias e Linguagens Um alfabeto Σ é um conjunto finito (não-vazio) de símbolos Uma cadeia (string) em um alfabeto Σ é uma seqüência finita de símbolos deste alfabeto Ex.: Alfabetos Ex.: Cadeias Σ1 = {0,1} 01001 Σ2 = {a, b, c, …, z} abracadabra slide 15Autômatos Finitos Determinísticos – Cadeias e Linguagens Se w = w1w2…wn é uma cadeia sobre Σ, o comprimento de w, denotado por |w|, é n Ex.: |abracadabra| = 11 A cadeia de comprimento 0, é denominada cadeia nula e é representada por λ slide 16
  • 9. Autômatos Finitos Determinísticos – Cadeias e Linguagens Se u = u1u2…un e v = v1v2…vm são cadeias no alfabeto Σ, então a concatenação de u com v, denotada por uv, é definida por: uv = u1u2…unv1v2…vm Ex.: u = abra e v = cadabra ⇒ uv = abracadabra Propriedades da concatenação • uλ = λu = u • u(vw) = (uv)w • |uv| = |u| + |v| slide 17Autômatos Finitos Determinísticos – Concatenação A concatenação da mesma cadeia várias vezes é definida por: w0 = λ, e wn+1 = wn w, para n ≥ 0 Se w = w1w2…wn é uma cadeia no alfabeto Σ, então a reversa (inversa) de w, denotada por wR, é definida por wR = wn…w2w1 Observações • λR = λ • (vw)R = wRvR slide 18
  • 10. Autômatos Finitos Determinísticos – Linguagens Seja Σ um alfabeto. Então: Σ0 = { λ } Σ1 = { w : |w| = 1 } Σ2 = { w : |w| = 2 } Σn = { w : |w| = n } Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ … ou seja, Σ* = { w : w é uma cadeia em Σ} slide 19Autômatos Finitos Determinísticos – Linguagens Uma Linguagem L no alfabeto Σ é qualquer subconjunto de Σ* Ex.: Σ = { a, b } L1 = { ab, ba } L2 ={λ} L3 = { anbn : n ≥ 0 } slide 20
  • 11. Autômatos Finitos Determinísticos – Linguagens Exemplo: Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens sobre ∑ dadas por: A = {bom, mau} e B = {garoto, garota}, então: A ∪ B = {bom, mau, garoto, garota} A • B = {bomgaroto, bomgarota, maugaroto, maugarota} A* = {λ, bom, mau, bombom, bommau, maubom, maumau, bombombom, ...} slide 21Autômatos Finitos Determinísticos – Representação Gráfica • Representação Gráfica slide 22
  • 12. Autômatos Finitos Determinísticos Um autômato finito M1: (diagrama de estados) M1 tem 3 estados, q1, q2, q3 ; M1 inicia no estado q1 ; M1 tem um estado final, q2 ; Os arcos que vão de um estado p/ outro chamam-se transições. slide 23Autômatos Finitos Determinísticos - O autômato finito M1 recebe os símbolos de entrada um por um; - Depois de ler cada símbolo, M1 move-se de um estado para outro, de acordo com a transição que possui aquele símbolo como seu rótulo; - Quando M1 lê o ultimo símbolo ele produz uma saída: reconhece se M1 está no estado final não-reconhece se M1 não estiver. slide 24
  • 13. Autômatos Finitos Determinísticos Exemplo: entrada 1101 1. Inicia no estado q1. 2. Lê 1, segue transição de q1 p/ q2. 3. Lê 1, segue transição de q2 p/ q2. 4. Lê 0, segue transição de q2 p/ q3. 5. Lê 1, segue transição de q3 p/ q2. 6. Pára c/ saída reconhece. slide 25Autômatos Finitos Determinísticos Vamos aprender! Testar: 1, 01, 11, 0101 (em M1) Percebemos que : - M1 reconhece qualquer cadeia que termine com 1 (vai p/ o estado final q2 toda vez que lê 1); - M1 não reconhece cadeias como 0, 10, 101000. slide 26
  • 14. Autômatos Finitos DeterminísticosExemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Função de Transição δ 0 1 qpar qpar qímpar qímpar qímpar qpar δ (qpar,0) = qpar ... slide 27Autômatos Finitos Determinísticos• Um Autômato Finito nunca entra em “loop” infinito• Novos símbolos da entrada são lidos a cada aplicação da função programa, o processo de reconhecimento de qualquer cadeia pára de duas maneiras: – Aceitando ou; – rejeitando uma entrada. slide 28
  • 15. Autômatos Finitos Determinísticos• Definir um AF engloba definir – Um conjunto finito de estados; – Um alfabeto de entrada que indica os símbolos de entrada permitidos; – Um conjunto de regras de movimento que indicam como ir de um estado p/ outro, dependendo do símbolo de entrada; – Um estado escolhido como estado inicial; – Um conjunto de estados escolhidos como estados finais (de reconhecimento); slide 29Autômatos Finitos Determinísticos – Praticando... • Exercício: suponha que o alfabeto é {0,1}. Projete um AF para reconhecer a linguagem regular composta por todas as cadeias que tem 001 como subcadeia • Por exemplo, 0010, 1001, 001 e 11111110011111 pertencem a esta linguagem, mas 11 e 0000 não slide 30
  • 16. Autômatos Finitos Determinísticos – Praticando...Exercício 2: Construir um AFD que reconhece a linguagem a*. M = (∑, Q, δ, qo, F) Q = { qo }, ∑ = { a }, F = { q0 } Função de Transição a δ a qo qo qo slide 31Autômatos Finitos Determinísticos – Praticando...Exercício 3: Construir um AFD que reconhece a linguagem aa* . M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { a }, F = { q1 } Função de Transição δ a a a qo q1 qo q1 q1 q1 slide 32
  • 17. Autômatos Finitos Determinísticos – Praticando...Exercício 4: Construir um AFD que reconhece a linguagem (abb*a)* M = (∑, Q, δ, qo, F) Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 } Função de Transição a δ a b qo q1 qrej qo b q1 q1 qrej q2 b a q2 q0 q2 q2 slide 33Autômatos Finitos Determinísticos – Praticando...Exercício 5:Conjunto de todos as palavras com três zeros consecutivos. slide 34
  • 18. Autômatos Finitos Determinísticos – Praticando...Exercício 6:Conjunto de todas as palavras que não contém 101como subpalavra. slide 35 Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 36
  • 19. Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 1Conceitos Iniciais • Computadores atuais mais rápidos e poderosos • Modelos matemáticos • Autômatos Finitos slide 2
  • 20. Autômatos Finitos • Reconhecedor de palavras ou cadeia de caracteres • Bons modelos para computadores com capacidade de memória reduzida • Fazem parte de vários dispositivos eletro-mecânicos do dia-a-dia slide 3Autômatos Finitos • Exemplo 1 Visão aérea de uma porta automática slide 4
  • 21. Autômatos Finitos • Exemplo 1 O controlador da porta pode estar em 2 estados: - aberto (significando porta aberta) - fechado (significando porta fechada) O controlador passa de um estado para outro dependendo do estímulo (entrada) que recebe: slide 5Autômatos Finitos • Exemplo 1Entradas: Existem 4 condições de entrada possíveis Frente: significando que uma pessoa está em pé sobre o tapete da frente; Retaguarda: significando que uma pessoa está em pé sobre o tapete de dentro; Ambos: significando que existem pessoas sobre os 2 tapetes; Nenhum: significando que ninguém está sobre os tapetes. slide 6
  • 22. Autômatos Finitos • Exemplo 1 Entradas: Existem 4 condições de entrada possíveis slide 7Autômatos Finitos • Exemplo 1 Tabela de Transição slide 8
  • 23. Autômatos Finitos • Exemplo 2 Interruptor Estados: Ligado ou Desligado slide 9Autômatos Finitos • Exemplo 3 Palavra AMOR Qualquer outra palavra deve ser descartada slide 10
  • 24. Autômatos Finitos • Exemplo 3 Tentativa de leitura da Palavra AMBIENTE slide 11Autômatos Finitos • Controladores para: – Lavadoras de louça/roupa – Termômetros eletrônicos – Relógios digitais – Calculadoras – Máquinas de venda automática slide 12
  • 25. Autômatos Finitos • O AF é uma máquina, reconhecedora de palavras ou cadeia de caracteres, que sempre pára retornando uma resposta sim (cadeia reconhecida) ou não (cadeia não conhecida) • Podem ser classificados em: – Autômatos Finitos Determinísticos (AFD) – Autômatos Finitos Não-Determinísticos (AFND) slide 13Autômatos Finitos Determinísticos – Definição Formal Definição formal de um Autômato Finito Determinístico: Um Autômato Finito Determinístico (AFD) M é uma 5-upla: M = (Q, Σ, δ, q0, F), onde Q: conjunto finito de estados do autômato; Σ: alfabeto de símbolos de entrada; δ: função programa ou função de transição (parcial) δ: Q × Σ → Q. Significa dizer que permanecendo em um estado e lendo um símbolo do alfabeto faz o autômato passar para outro estado ou mesmo ficar no mesmo q0: estado inicial (q0∈Q) F: conjunto de estados finais ou estados de aceitação (F⊆Q) slide 14
  • 26. Autômatos Finitos Determinísticos – Cadeias e Linguagens Um alfabeto Σ é um conjunto finito (não-vazio) de símbolos Uma cadeia (string) em um alfabeto Σ é uma seqüência finita de símbolos deste alfabeto Ex.: Alfabetos Ex.: Cadeias Σ1 = {0,1} 01001 Σ2 = {a, b, c, …, z} abracadabra slide 15Autômatos Finitos Determinísticos – Cadeias e Linguagens Se w = w1w2…wn é uma cadeia sobre Σ, o comprimento de w, denotado por |w|, é n Ex.: |abracadabra| = 11 A cadeia de comprimento 0, é denominada cadeia nula e é representada por λ slide 16
  • 27. Autômatos Finitos Determinísticos – Cadeias e Linguagens Se u = u1u2…un e v = v1v2…vm são cadeias no alfabeto Σ, então a concatenação de u com v, denotada por uv, é definida por: uv = u1u2…unv1v2…vm Ex.: u = abra e v = cadabra ⇒ uv = abracadabra Propriedades da concatenação • uλ = λu = u • u(vw) = (uv)w • |uv| = |u| + |v| slide 17Autômatos Finitos Determinísticos – Concatenação A concatenação da mesma cadeia várias vezes é definida por: w0 = λ, e wn+1 = wn w, para n ≥ 0 Se w = w1w2…wn é uma cadeia no alfabeto Σ, então a reversa (inversa) de w, denotada por wR, é definida por wR = wn…w2w1 Observações • λR = λ • (vw)R = wRvR slide 18
  • 28. Autômatos Finitos Determinísticos – Linguagens Seja Σ um alfabeto. Então: Σ0 = { λ } Σ1 = { w : |w| = 1 } Σ2 = { w : |w| = 2 } Σn = { w : |w| = n } Σ* = Σ0 ∪ Σ1 ∪ … ∪ Σn ∪ Σn+1 ∪ … ou seja, Σ* = { w : w é uma cadeia em Σ} slide 19Autômatos Finitos Determinísticos – Linguagens Uma Linguagem L no alfabeto Σ é qualquer subconjunto de Σ* Ex.: Σ = { a, b } L1 = { ab, ba } L2 ={λ} L3 = { an b n : n ≥ 0 } slide 20
  • 29. Autômatos Finitos Determinísticos – Linguagens Exemplo: Seja ∑ = {a, b, c, ..., z}. Sejam A e B as linguagens sobre ∑ dadas por: A = {bom, mau} e B = {garoto, garota}, então: A ∪ B = {bom, mau, garoto, garota} A • B = {bomgaroto, bomgarota, maugaroto, maugarota} A* = {λ, bom, mau, bombom, bommau, maubom, maumau, bombombom, ...} slide 21Autômatos Finitos Determinísticos – Representação Gráfica • Representação Gráfica slide 22
  • 30. Autômatos Finitos Determinísticos Um autômato finito M1: (diagrama de estados) M1 tem 3 estados, q1, q2, q3 ; M1 inicia no estado q1 ; M1 tem um estado final, q2 ; Os arcos que vão de um estado p/ outro chamam-se transições. slide 23Autômatos Finitos Determinísticos - O autômato finito M1 recebe os símbolos de entrada um por um; - Depois de ler cada símbolo, M1 move-se de um estado para outro, de acordo com a transição que possui aquele símbolo como seu rótulo; - Quando M1 lê o ultimo símbolo ele produz uma saída: reconhece se M1 está no estado final não-reconhece se M1 não estiver. slide 24
  • 31. Autômatos Finitos Determinísticos Exemplo: entrada 1101 1. Inicia no estado q1. 2. Lê 1, segue transição de q1 p/ q2. 3. Lê 1, segue transição de q2 p/ q2. 4. Lê 0, segue transição de q2 p/ q3. 5. Lê 1, segue transição de q3 p/ q2. 6. Pára c/ saída reconhece. slide 25Autômatos Finitos Determinísticos Vamos aprender! Testar: 1, 01, 11, 0101 (em M1) Percebemos que : - M1 reconhece qualquer cadeia que termine com 1 (vai p/ o estado final q2 toda vez que lê 1); - M1 não reconhece cadeias como 0, 10, 101000. slide 26
  • 32. Autômatos Finitos DeterminísticosExemplo: Autômato que reconhece a linguagem de números binários com quantidade ímpar de 1s. M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { 0, 1 }, F = { q1 } Função de Transição δ 0 1 qpar qpar qímpar qímpar qímpar qpar δ (qpar,0) = qpar ... slide 27Autômatos Finitos Determinísticos• Um Autômato Finito nunca entra em “loop” infinito• Novos símbolos da entrada são lidos a cada aplicação da função programa, o processo de reconhecimento de qualquer cadeia pára de duas maneiras: – Aceitando ou; – rejeitando uma entrada. slide 28
  • 33. Autômatos Finitos Determinísticos• Definir um AF engloba definir – Um conjunto finito de estados; – Um alfabeto de entrada que indica os símbolos de entrada permitidos; – Um conjunto de regras de movimento que indicam como ir de um estado p/ outro, dependendo do símbolo de entrada; – Um estado escolhido como estado inicial; – Um conjunto de estados escolhidos como estados finais (de reconhecimento); slide 29Autômatos Finitos Determinísticos – Praticando... • Exercício: suponha que o alfabeto é {0,1}. Projete um AF para reconhecer a linguagem regular composta por todas as cadeias que tem 001 como subcadeia • Por exemplo, 0010, 1001, 001 e 11111110011111 pertencem a esta linguagem, mas 11 e 0000 não slide 30
  • 34. Autômatos Finitos Determinísticos – Praticando...Exercício 2: Construir um AFD que reconhece a linguagem a*. M = (∑, Q, δ, qo, F) Q = { qo }, ∑ = { a }, F = { q0 } Função de Transição a δ a qo qo qo slide 31Autômatos Finitos Determinísticos – Praticando...Exercício 3: Construir um AFD que reconhece a linguagem aa* . M = (∑, Q, δ, qo, F) Q = { qo, q1 }, ∑ = { a }, F = { q1 } Função de Transição δ a a a qo q1 qo q1 q1 q1 slide 32
  • 35. Autômatos Finitos Determinísticos – Praticando...Exercício 4: Construir um AFD que reconhece a linguagem (abb*a)* M = (∑, Q, δ, qo, F) Q = { qo, q1, q2 }, ∑ = { a, b }, F = { q0 } Função de Transição a δ a b qo q1 qrej qo b q1 q1 qrej q2 b a q2 q0 q2 q2 slide 33Autômatos Finitos Determinísticos – Praticando...Exercício 5:Conjunto de todos as palavras com três zeros consecutivos. slide 34
  • 36. Autômatos Finitos Determinísticos – Praticando...Exercício 6:Conjunto de todas as palavras que não contém 101como subpalavra. slide 35 Introdução à Teoria da Computação UAB/UFRPE Eduardo Araújo Oliveira http://sites.google.com/site/eaoufpe slide 36