Baixe Operações Regulares: Teoria da Computação e Autômatos Finitos Determinísticos e outras Notas de aula em PDF para Informática, somente na Docsity!
Operações regulares
Universidade Federal de Campina Grande – UFCG Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação – DSC Professor: Andrey Brito Disciplina: Teoria da Computação Período: 2012.
Exemplos da última aula
- Um autômato que aceita palavras que tenham um número par de 0s - Jeito errado de resolver: contar o total de 0s - Jeito certo: lembrar apenas do mínimo de informação
- Um autômato que aceita palavras com um número par de 0s e par de 1s
- Um autômato que aceita palavras com um número par de 0s e de 1s ou par de 0s e ímpar de 1s
- Mais um: todo 1 é seguido por dois 0s
Onde estávamos?
• Precisamos saber olhar para um diagrama de
estados de um AF e defini-lo formalmente, e
vice-versa
• Construir autômatos finitos para um problema
qualquer (??)
• Entender o vocabulário e a notação
Para esquentar...
• A máquina de refrigerantes como um
autômato
- Quais são os símbolos de entrada? Qual é o
alfabeto?
- O que a máquina precisa lembrar?
- O que é o resultado? Como ela chega lá?
- O que é uma entrada?
• Qual o diagrama de estados desse AF?
MAIS ALGUNS CONCEITOS E
NOTAÇÕES...
Por que usar ´? E o que é ?
- Formalidade, não estamos “autorizados” a usar caso o parâmetro seja uma palavra e não um símbolo - Ainda assim é útil ter uma notação que descreva em que estado o autômato estará depois que processar uma conjunto de símbolos, sem ter que detalhar todas as transições
- significa uma palavra com 0 símbolos (a palavra nula ou vazia) - Por exemplo, uma máquina recebe a palavra fazia do mesmo jeito que um programa poderia executar mesmo sem receber nenhuma entrada - Em alguns livros, descrito como ε
Computação de um autômato finito
- Seja M = <Q, , , q 0 , F> e w *
- Uma computação de M a partir de w é uma
sequência de configurações c 0 , c 1 , ..., cn
- co = <qo, w>
- cn = <qj, >, qj Q
- ck+1= <(qk, a), u> , a e u *
- Se qj é um estado final, então M aceita w
Linguagem
- Conjunto de cadeias ou palavras
- M 1 aceita um conjunto de palavras da forma:
A = {p | p contém ao menos um “1” ou um número par de “0”s segue o último “1”}
- A linguagem reconhecida por M 1 é então o
conjunto de palavras A (i.e., todas as palavras que M 1 aceita) L(M 1 ) = A
Classe de linguagens
• A linguagem aceita por um autômato M
também pode ser escrita como
L(M) = {w * : ’(q 0 , w ) F}
• Linguagem regular: uma linguagem que é
reconhecida por um autômato finito
• A classe da linguagens regulares é o conjunto
de todas as linguagens regulares
Operações regulares
- Aritmética
- Objeto de estudo: números
- Exemplos de operações: +, -, *, /
- Teoria da computação
- Objeto de estudo: linguagens
- Exemplos de operações:
- União: A B = { x | x A ou x B}
- Concatenação: A • B = { xy | x A e y B}
- Estrela: A* = { x 1 x 2 x 3 ...xk |k ≥ 0 e cada xi A}
Operações regulares
• Considere as seguintes linguagens
- L 1 = { w * | w tem um número par de 0s}
- L 2 = { w | w contém o padrão “101”}
• Quem é L 3 = L 1 L 2?
• Quem é L 4 = L 1 • L 2?
Outras operações: complemento
• Considere novamente as linguagens
- L 1 = { w | w tem um número par de 0s}
- L 2 = { w | w contém o padrão “101”}
• Qual o complemento?
Outras operações: complemento
• Considere as seguintes linguagens
- L 1 = { w | w tem um número par de 0s}
- L 2 = { w | w contém o padrão “101”}
• Qual o complemento?
- L 1 = { w | w tem um número ímpar de 0s}
- L 2 = { w | w não contém o padrão “101”}
• Como projetar os autômatos?