Documente Academic
Documente Profesional
Documente Cultură
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Teoria da Computacao
Aut
omatos finitos
Simao Melo de Sousa
Computer Science Department
University of Beira Interior, Portugal
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Plano
1
Introduc
ao `
a noc
ao de aut
omatos
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Teorema de Kleene
Propriedades dos aut
omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares
Aut
omatos e Computac
ao
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Plano
1
Teorema de Kleene
Aut
omatos e Computacao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Objectivos
Aut
omatos finito: primeira abordagem a modelizac
ao da noc
ao de procedimento
efectivo. Mas igualmente u
teis noutros contextos (processamento de strings,
an
alise l
exica, etc...)
Derivar da noc
ao de aut
omatos finitos a noc
ao de programa executado num
mecanismo (como os computadores).
Nestes mecanismos
e importante realcar as componentes seguintes:
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Objectivos
um estado = configuracao dos registos do processador, do program
counter, da mem
oria e de todos os outros recursos
Um passo de execucao = modificacao do estado
Um exemplo. Uma maquina com um processador com 8 Mb de
RAM, 16 registos de 32 bits:
1 byte = 8 bits = 23 bits
1 Mb = 1024 1024 bytes = 210 210 bytes = 220 bytes =
223 bits
8 Mb = 23 223 bits = 226 bits
16 registos de 32 bits = 24 25 bits = 29 bits
um estado = 226 + 29 bits = 67109376
n
umero de estados possveis = 267109376 !!!!!!! (n
umero
estimado de atomos no universo = 1080 )
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Objectivos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
programa/algoritmo
uma configuracao da memoria
relacao de transicao
execucao
execuc
oes possveis
a configuracao inicial da memoria
dados de entrada
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplos de automato
O Fant
astico Pr
emio
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Definicao Formal
Um aut
omato finito n
ao-determinista (abreviatura NDFA) sobre um
alfabeto A e definido por um 5-tuplo M = {Q, , , S, F } onde:
Q e o conjunto dos estados
= A {} e o conjunto dos labels das transic
oes
Q Q e a relacao de transicao
S Q e o conjunto dos estados iniciais
F Q e o conjunto dos estados finais
Diz-se duma transicao (q, , q 0 ) que e uma -transicao.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Um Exemplo
Figura : Aut
omato Nao Determinista
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Definicao Formal
Um aut
omato finito determinista (abreviatura DFA) sobre um alfabeto
A e definido por um 5-tuplo M = {Q, , , S, F } onde:
Q e o conjunto dos estados
= A e o conjunto dos labels das transic
oes (sem transicoes )
: Q Q e a funcao de transicao
s Q e o estado inicial
F Q e o conjunto dos estados finais
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Um Exemplo
Figura : Aut
omato Determinista
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Mais Um Exemplo
Especificac
ao
Q = {q0 , q1 }
= {a, b}
s = q0
F = {q1 }
q
q0
: q0
q1
q1
a
b
a
b
(q, ))
q0
q1
q0
q1
Figura : Aut
omato reconhecendo
palavras de que terminam por b
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Outro Exemplo
Especificac
ao
De que tipo e este aut
omato?
Qual e a definic
ao formal deste
aut
omato?
Que tipo de palavras este
aut
omato reconhece?
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Especificac
ao
De que tipo e este aut
omato?
Qual e a definic
ao formal deste
aut
omato?
Que tipo de palavras este
aut
omato reconhece?
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Designaremos `0 M de derivac
ao extendida.
Execucao dum aut
omato: (S, a1 a2 a3 . . . an ) `0M (Q1 , a2 a3 . . . an ) `0M
0
(Q2 , a3 . . . an ) `M `0M (Qn1 , an ) `0M (Qn , )
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplo
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplo
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Caminho
Revisitemos a noc
ao de configurac
ao e de linguagem gerada e ver a execuc
ao
como um percurso de grafo.
Seja M = {Q, , R , S, F } um NDFA (ou de forma indiferente, um DFA). Um
caminho em M e uma sequencia c de arestas consecutivas (no grafo subjacente
ao aut
omato) de forma seguinte:
c = (q0 , a1 , q1 )(q1 , a2 , q2 )(q2 , a3 , q3 )(q3 , a4 , q4 ) (qn1 , an , qn )
ou
a
1
2
n
c = q0
q1
q2 . . .
qn
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Contexto
Exemplos Introdut
orios
Definic
ao formal da noc
ao de aut
omato
Exemplos ilustrativos
Execuc
ao e Linguagem Reconhecida Por aut
omatos
Exemplo
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Algoritmia de base
Equival
encia entre NDFA e DFA
Plano
1
Teorema de Kleene
Aut
omatos e Computacao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Algoritmia de base
Equival
encia entre NDFA e DFA
estado poco
remocao das transic
oes (NDFA NDFA)
remocao dos estados nao produtivos e dos estados inacessveis
completacao
Ver acetatos manuscritos distribudos nas aulas
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Algoritmia de base
Equival
encia entre NDFA e DFA
nocao de aut
omatos equivalentes
Determinisacao (NDFA DFA)
Minimisacao (DFA DFAmin )
Unicidade do aut
omato minimal
Os aut
omatos nao determnisticos tem o mesmo poder expressivo
que os aut
omatos determinsticos (L(NDFA) = L(DFA))
Ver acetatos manuscritos distribudos nas aulas
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Plano
1
Teorema de Kleene
Propriedades dos aut
omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `as express
oes regulares
Aut
omatos e Computacao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Teorema de Kleene
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Objectivos
O teorema de Kleene afirma que o conjunto das linguagens reconhecidas pelos
aut
omatos finitos coincide com o conjunto das linguagens regulares. Sabemos
que todas as linguagens podem ser representadas por express
oes regulares.
Assim o teorema de Kleene pode ser demonstrado:
1
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Objectivos
Retomemos a nossa digressao sobre o teorema de Kleene.
Designemos de aut2regexp o primeiro algoritmo, e de regexp2aut o
segundo algoritmo.
A demonstracao relacionada com aut2regexp ja foi abordada nas
aulas anteriores. Vamos a seguir exibir a segunda parte da
demonstracao.
mas antes: uma forma simples de comprovar que os dois algoritmos
sao correctos e de considerar um aut
omato M e uma expressao
regular e. Os dois algoritmos sao correctos se
L(e) = L(aut2regexp(regexp2aut(e))) e
L(M) = L(regexp2aut(aut2regexp(M))) qualquer que sejam M e e.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Exemplo
.
R(1, 1, k)
R(1, 2, k)
R(2, 1, k)
R(2, 2, k)
k=1
+a
b
a
+b
k=2
( + a) + ( + a)( + a) ( + a)
b + ( + a)( + a) b
a + a( + a) ( + a)
( + b) + a( + a) b
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Outro Exemplo
Temos L(M) = R(1, {1, 2, 3}, 3). Calculemos estes valores por partes.
R(1, , 1) = {y , } R(2, , 1) =
R(3, , 1) =
R(1, , 2) = {x}
R(2, , 2) = {, y } R(3, , 2) =
R(1, , 3) =
R(2, , 3) = {x}
R(3, , 3) = {, x, y }
R(1, {1, 2, 3}, 3) = R(1, {2, 3}, 3)
R(1, {2, 3}, 1).R(1, {2, 3}, 1) .R(2, {3}, 1) = R(1, {2, 3}, 1) .R(2, {3}, 1)
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Outro Exemplo
Teoria da Computac
ao
= {, y }
= {x}
= {, y }
=
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Outro Exemplo
S. Melo de Sousa
Teoria da Computac
ao
=
= x(x + y )
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Alterar o aut
omato M em M 0 da seguinte forma: juntar dois novos
estados i e f que ser
ao respectivamente o estado inicial u
nico (i) e o
estado final u
nico (f ) de M 0 . Do estado i partem -transico
es para todos
os estados iniciais de M. De todos os estados finais de M saem
-transic
oes para f .
Enquanto o conjunto Q de M n
ao for considerado no seu completo (i.e.
vazio) fazer o seguinte: considerar um estado q de Q. Considerar todos
os estados p e r de Q {q} tais que existe transico
es directas entre p e q
e entre q e r . Sejam (p, lpq , q) e (q, lqr , r ) essas transico
es. Ent
ao juntar a
transic
ao (p, lpqr , r ) onde lpqr = lpq lpq .lqq
.lqr . Esta fase concluda, o
estado q pode ser removido de Q assim como todas as transico
es que
partem ou chegam a q.
Quando a operac
ao anterior termina s
o restam os dois estados i e f e
uma transic
ao entre estes dois estados. A etiqueta desta transic
ao e a
linguagem reconhecida pelo aut
omato M.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Outro Exemplo
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Linguagens regulares
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Plano
1
Teorema de Kleene
Aut
omatos e Computacao
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
S. Melo de Sousa
i n i c i a l )
Teoria da Computac
ao
pedidos )
pedidos )
pedidos )
pedidos )
pedidos )
pedidos )
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Uma linguagem n
ao regular e assim necessariamente infinito (o inverso e
falso).
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Teorema do bombeamento
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Teorema do bombeamento
Demonstrac
ao. (essencialmente baseada nas observaco
es feitas previamente)
L e regular, logo existe um aut
omato finito determinista (minimal) M que o
reconhece. Suponhamos que M tenha n estados. Seja w uma palavra de
comprimento maior ou igual a n. Consideremos os n passos de execuc
ao
seguintes:
(q0 , w1 w2 . . . wn ) `M (q1 , w2 . . . wn ) `M `M (qn , )
onde w1 , w2 , . . . , wn s
ao os primeiros caracteres de w e q0 o estado inicial de
M. Temos assim n + 1 configuraco
es implicadas aqui num aut
omato com n
estados. Pelo princpio da gaiola de pombos existem i e j tais que
(0 i < j n) e qi = qj . Ou seja a palavra u = wi wi+1 . . . wj , n
ao vazia (j
a
que i < j), leva a execuc
ao do estado qi ao estado qi . Ent
ao esta palavra pode
ser removida de w ou ate mesmo repetida sequencialmente sem alterar a sua
aceitac
ao por M. Ou seja M aceita xu y onde x = w1 w2 . . . wi ,
u = wi+1 . . . wj , y = wj . . .. Finalmente temos |xu |= j n.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
L = {an | n primo} n
ao e regular. Procedemos mais uma vez por contradic
ao.
L e regular. Logo existe um aut
omato determinista minimal com m estados
que reconhece a linguagem L. Seja w uma palavra de L tal que |w | > m. Logo
podemos arranjar uma descomposic
ao xuy de w tal que xu y tambem pertenca
igualmente a L. Vejamos esta afirmac
ao em detalhe: x = ap , u = aq e y = ar
onde p, r 0, q > 0 e r + q + r > m. Ent
ao, em particular k N, xu k y L
ou seja p + kq + r primo. Vejamos agora se todos os k validam esta imposic
ao
(condic
ao necess
aria). Ora para k = p + 2q + r + 2,
p + kq + r = (q + 1)(p + 2q + r ), logo n
ao e primo. Contradic
ao. L n
ao e
regular.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
{an bn c m | n, m N}
{w | w {a, b} ha tantos a como b em w }
Seja L uma linguagem regulares. {ww 1 | w L}, onde
w 1 = wn wn1 . . . w2 w1 se w = w1 w2 . . . wn1 wn .
2
{an | n N}
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
0 1 0 1
0 1 1 0
1 0 1 1
0
1
0
1
0 1 1 0
1
0
1
1
O conjunto de todas as palavras de T que representam
multiplicac
oes correctas nao e regular
Desafio: demonstrar que essas linguagens nao sao regulares.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Aut
omatos vistos como algoritmos
Limites algortmicos dos aut
omatos de estados finitos
Problemas e algoritmos sobre linguagens regulares
Problemas e algoritmos
Dada uma linguagem regular L sobre um alfabeto e uma palavra
w . O problema de determinar se w L e decidvel.
O problema que consiste em determinar se uma linguagem regular L
e vazio (ou seja determinar se L = ) e decidvel.
O problema de determinar se uma linguagem regular L e universal
(ou seja determinar se L = ) e decidvel.
O problema que consiste em determinar se uma linguagem regular
L1 e contida numa linguagem regular L2 (L1 L2 ) e decidvel.
O problema que consiste em determinar se duas linguagens regulares
sao iguais e decidvel.
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Plano
Teorema de Kleene
Aut
omatos e Computacao
Aut
omatos finitos com output
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Objectivos
Os aut
omatos que vimos ate este momento sao designados de aceitadores
(acceptors em ingles). Isto e, as execuc
oes permitam dar uma resposta
binaria (sim, nao) ao input ao quais esses aut
omatos sao submetidos.
Existem formas de extender os aut
omatos de forma a que esses consigam
fornecer respostas mais ricas: os aut
omatos com sada (transducers em
ingles).
S. Melo de Sousa
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Princpios de Base
Uma acc
ao = produc
ao de output. Para isso e preciso definir o alfabeto
de sada, digamos . Executar um aut
omato com output produzir
a
assim, alem de consumir a palavra de entrada, uma palavra de .
Duas abordagens principais: Aut
omatos de Moore e Aut
omato de
Mealy.
1
Moore: as acc
oes sao despoletadas pelos estados por onde
passa a execucao. Funcao de output f : Q {}. Na
passagem ao estado x, o resultado de f (x) e colocado no
buffer de sada.
Mealy: as acc
oes sao despoletadas pelas transicoes por onde
passa a execucao. Funcao de output: g : Q {}.
Na escolha e passagem da transicao (p, a, q) o resultado da
funcao g (p, a) e colocado no buffer de sada.
Teoria da Computac
ao
Introduc
ao `
a noc
ao de aut
omatos
Algoritmia dos aut
omatos
Teorema de Kleene
Aut
omatos e Computac
ao
Aut
omatos finitos com output
Um exemplo simples
Teoria da Computac
ao