1. Introdução à Teoria da Computação
UAB/UFRPE
Eduardo Araújo Oliveira
http://sites.google.com/site/eaoufpe
slide 1
Conceitos 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 3
Autô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 5
Autômatos Finitos
• Exemplo 1
Entradas: 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
5. Autômatos Finitos
• Exemplo 2
Interruptor
Estados: Ligado ou Desligado
slide 9
Autô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 11
Autô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 13
Autô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 15
Autô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 17
Autô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 19
Autô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 21
Autô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 23
Autô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 25
Autô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ísticos
Exemplo: 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 27
Autô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 29
Autô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 31
Autô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 33
Autô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 101
como 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 1
Conceitos 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 3
Autô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 5
Autômatos Finitos
• Exemplo 1
Entradas: 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
23. Autômatos Finitos
• Exemplo 2
Interruptor
Estados: Ligado ou Desligado
slide 9
Autô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 11
Autô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 13
Autô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 15
Autô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 17
Autô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 19
Autô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 21
Autô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 23
Autô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 25
Autô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ísticos
Exemplo: 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 27
Autô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 29
Autô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 31
Autô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 33
Autô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 101
como subpalavra.
slide 35
Introdução à Teoria da Computação
UAB/UFRPE
Eduardo Araújo Oliveira
http://sites.google.com/site/eaoufpe
slide 36