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


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

Este documento, da disciplina de teoria da computação do curso de engenharia elétrica e informática da universidade federal de campina grande, aborda o tema de expressões regulares e sua relação com autômatos finitos não determinísticos (afnd) e determinísticos (afd). São apresentadas definições formais, exemplos de construção e propriedades, bem como a equivalência entre expressões regulares e autômatos finitos.

Tipologia: Notas de aula

2013

Compartilhado em 16/03/2013

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

5

(5)

44 documentos

1 / 31

Toggle sidebar

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

Não perca as partes importantes!

bg1
Expressõ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.1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f

Pré-visualização parcial do texto

Baixe Teoria da Computação: Expressões Regulares e Autômatos Finitos e outras Notas de aula em PDF para Informática, somente na Docsity!

Expressõ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.

Aviso

  • Prova 1: 10 de abril

Como construir M (completo)

  • Seja N = <Q, , , q, F> , M será <Q’, , ’, q’,

F’>, onde

– Q’ = P(Q)

  • Para R  Q’ e a  :
    • ’(R, a) = {q  Q | q  E((r, a)), para r  R}
  • q’ = E({q 0 })
  • F’ = {R  Q’| R contém um elemento de F}

Obs.: este procedimento segue arcos  depois que o símbolo é lido (ao invés de antes da leitura).

Exemplo

  • M = <Q’, , δ’, q’, F’>, onde
    • Q’ = < , {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} >
    • q 0 ’ = E( {q 0 } ) = E( {1} ) = {1, 3}
    • F’ = { {1}, {1, 2}, {1, 3}, {1, 2, 3} }

AFND N

a

{1, 3}

{1, 2}

{3} {2, 3}^ {1,2,3}

a,b^ {1}^ {2} a,b

a

a

a a a

b

b

b

b

b

AFD M

b

EXPRESSÕES REGULARES

Expressões regulares

  • Aritmética
    • Objeto de estudo: números
    • Expressão aritmética: (3 + 4)5
    • Expressão aritmética gera: número
  • Teoria da computação
    • Objeto de estudo: linguagens
    • Expressão regular: (01 )  0*
    • Expressão regular gera: linguagem

Definição formal

  • Seja  um alfabeto
    1. Se a  , então a é uma expressão regular
    2. Se  é a palavra nula, então  é uma expressão regular
    3. Se  é o conjunto vazio, então  é uma expressão regular
    4. Se R 1 e R 2 são expressões regulares, então (R 1  R 2 ) e (R 1  R 2 ) são expressões regulares
    5. Se R 1 é uma expressão regular, então (R 1 *) é uma expressão regular

Outras definições

  •  versus 
    • : uma palavra, a palavra vazia, conjunto unitário
    • : nenhuma palavra, conjunto vazio
  • Linguagem descrita por R: L(R)
  • Equivalência: R 1 ≡ R 2 ↔ L(R 1 ) = L(R 2 )
  • R+^ = RR* , ou seja, R* = R+^  {}

q 0 q 1

N 1 N 2

Expressões e linguagens

  • Se  = {0, 1}
    • R 1 =  → L(R 1 ) = {0, 1}
    • R 2 = (0  1) → L(R 2 ) = {0, 1}
    • R 1 ≡ R 2
    • R 3 = * → L(R 3 ) = {todas as palavras sobre o alfabeto, incluindo }
  • R 4 = 1*.  → L(R 4 ) = 
  • R 5 = * → L(R 5 ) = {}

Expressões e linguagens

Expressão

  • 010
  • 1 
  • 001 
  • (01+)*
  • ( )*
  • (01  10)
  • 0 0  1 1  0  1

Propriedades

1. R 1  (R 2  R 3 )  (R 1  R 2 )  R 3 (associativa)

2. R 1  (R 2  R 3 )  (R 1  R 2 )  (R 1  R 3 ) (distributiva)

3. (R 1  R 2 )  (R 2  R 1 ) (comutativa)

4. (R   )  R

5. (R  )  R

Expressões regulares: distributividade

  • w  L(R 1  (R 2  R 3 )) se e somente se
    • x  L(R 1 ) e y  L(R 2  R 3 ) tais que w = x.y

Expressões regulares: distributividade

  • w  L(R 1  (R 2  R 3 )) se e somente se
    • x  L(R 1 ) e y  L(R 2  R 3 ) tais que w = x.y
    • x  L(R 1 ) e (ou y  L(R 2 ) ou y  L(R 3 )) tais que w = x.y
    • x  L(R 1 ) e y  L(R 2 ) ou x  L(R 1 ) e y  L(R 3 ) tais que w = x.y
    • x  L(R 1 ) e y  L(R 2 ) tais que w = x.y ou x  L(R 1 ) e y  L(R 3 ) tais que w = x.y
    • sse w  L(R 1  R 2 ) ou w  L(R 1  R 3 )
    • sse w  L(R 1  R 2 )  L(R 1  R 3 )

Expressão regular vs. autômato finito

  • Teorema 3: uma linguagem é regular se e

somente se ela pode ser descrita por uma

expressão regular

  • Isso significa que ERs e AFs são equivalentes