Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Operações Regulares: Teoria da Computação e Autômatos Finitos Determinísticos, Notas de aula de Informática

Documento que apresenta conceitos básicos da teoria da computação, com ênfase em autômatos finitos determinísticos (afds). O texto aborda a definição de um afd, exemplos de autômatos, construção de diagramas de estados e saídas associadas a estados ou transições. Além disso, discute a importância de funções de transição estendida (´) e a computação de um autômato finito. O documento também apresenta conceitos relacionados, como linguagem, operações regulares e fechamento.

Tipologia: Notas de aula

2013

Compartilhado em 15/03/2013

samuel-santos-98
samuel-santos-98 🇧🇷

5

(5)

44 documentos

1 / 21

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
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.2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Pré-visualização parcial do texto

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
    • (Altera de imprecisão)

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?