Your SlideShare is downloading. ×
Teoriacomputacao eduardo uab_ufrpe - imprimir_nopw
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Teoriacomputacao eduardo uab_ufrpe - imprimir_nopw

245
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
245
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
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