Sunteți pe pagina 1din 72

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

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

Algoritmia dos aut


omatos
Algoritmia de base
Equival
encia entre NDFA e DFA

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

Introducao `a nocao de aut


omatos
Contexto
Exemplos Introdut
orios
Definicao formal da nocao de aut
omato
Exemplos ilustrativos
Execucao e Linguagem Reconhecida Por aut
omatos

Algoritmia dos aut


omatos

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:

o dispositivo de aquisicao de dados (I/O, eventualmente


infinito)
dispositivos de armazenamento de dados (Memoria - RAM por
exemplo)
dispositivo de armazenamento do programa (Memoria - ROM
por exemplo)
dispositivo de execucao (o processador)
registo do estado da execucao (Program counter, registos do
processador, etc,)
Qualquer dispositivo, mesmo sendo te
orico, deve contemplar estes aspectos.
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
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

um passo de execucao (bis) = uma relac


ao R de transic
ao entre
os estados. Ou seja a R b significa o processo de execucao
modifica o estado a no estado b. Quando a execucao e
determinista (ha um s
o estado destinopossvel em cada passo de
execucao) a relacao e uma func
ao de transic
ao.
Como se constr
oi R? A partir do programa e da maquina que
executa.

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

Primeira abordagem a nocao de Processo Efectivo

automato (um grafo particular)


estado/nodo do aut
omato
conjunto dos vertices
percurso do aut
omato
relacao de transicao
estado inicial
fita
S. Melo de Sousa

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

Representacao dos dados

Problema : reconhecer uma linguagem (i.e. as palavras


constituintes)
Dados : uma palavra, colocada numa fita.
um ciclo de execucao: processamento duma letra da palavra por
reconhecer.
fim da execucao: fim da palavra por analisar.
Destaca-se do conjunto de estados os estados iniciais e 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

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

Nao determinismo e relacao de transicao


Um aut
omato nao determinista e um aut
omato com eventualmente
mais do que um estado inicial
transic
oes  (ou seja, transic
oes que nao precisam de consumir input
para serem exploradas)
transic
oes com a mesma letra partindo do mesmo estado
Isto implica que a sua execucao possa ter de considerar simultaneamento
varios estado simultaneamente. Por isso e necessario contemplar uma
relacao de transicao e nao somente uma funcao: para uma dada letra e
para um dado estado de partida se relacionam com eventualemnte varios
estados de chegadas.

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

Mais 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

Nocao de execucao de um automato


Consideremos um aut
omato M = {Q, , , s, F }
Configurac
ao: (q, w ) Q . Representa o estado completo do
aut
omato (em que estado se encontra actualmente e o input que resta
por analisar)
Configurac
ao deriv
avel num passo: (q, a.w ) `M (q 0 , w ) se (q, a, q 0 ) .
Representa um passo de execuc
ao a partir de q com a entrada a. Esta
entrada e de dois tipos: a ou a = . No primeiro caso, diz-se que a
derivac
ao num passo consumiu um elemento da fita de entrada (a leitura
do elemento actualmente activo na fita dos dados). No caso seguinte
(transic
ao (q, , q 0 )),  e prefixo de qualquer palavra (p , p = .p),
logo a configurac
ao obtida n
ao altera (n
ao consome) a fita de entrada
((q, .w ) `M (q 0 , w )).

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

Nocao de execucao de um automato


Configurac
ao deriv
avel num n
umero qualquer de passo (eventualmente
0): (q, w ) `M (q 0 , w 0 ). Fecho reflexivo-transitivo da relac
ao `M , isto e,
(q, w ) `M (q 0 , w 0 ) se (q, w ) `M (q1 , w1 ) `M (q2 , w2 ) `M `M (q 0 , w 0 ).
Designaremos `M por derivac
ao.
Execuc
ao dum aut
omato:(s, w ) `M (q1 , w1 ) `M (q2 , w3 ) `M `M
(qn1 , wn1 ) `M (qn , )
No caso dum aut
omato sem transico
es  temos a simplificac
ao seguinte
(cada passo consome de facto um elemento da fita de entrada):
(s, a1 a2 a3 . . . an ) `M (q1 , a2 a3 . . . an ) `M (q2 , a3 . . . an ) `M `M
(qn1 , an ) `M (qn , )
Neste contexto, diz-se que a1 a2 a3 . . . an e aceite se qn e um estado final
(qn F ).

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

Linguagem aceite por um automato

O conjunto de todas as palavras aceites por um automato M,


designado de L(M) e o conjunto de todas as palavras tais que:
{w | (s, w ) `M (q, ) com q F }
Diz-se de L(M) que e a linguagem reconhecida ou aceite ou ainda
gerada por M.
De notar que esta nocao de derivacao codifica a nocao de caminho
num grafo (ver mais alem). Passar (derivar) duma configuracao
para outra = escolher uma transicao (e nao necessariamente
consumir um elemento da fita de dados).

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

Linguagem aceite por um automato

No caso dos aut


omatos nao determinstico e possvel existirem
varias derivac
oes que permitam reconhecer uma determinada
palavra p. Assim para determinar se uma palavra e aceite, basta
que exista uma. Por isso e necessario explorar todas as
possibilidades ate encontrar uma tal derivacao.
No caso determinstico, se existir uma derivacao que determine que
uma palavra e aceite, entao essa e u
nica. Mais, derivacao num
passo = (consumo dum elemento na fita de entrada + escolha
duma 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

Nocao alternativa de execucao de um automato


Consideremos um aut
omato M = {Q, , R , s, F }
Configuracao extendida: (r , w ) Q . Representa o estado
completo do aut
omato (em que conjunto de estados este se
encontra actualmente e o input que resta por analisar)
Diz-se do estado q 0 que e alcanc
avel por q se existir um caminho
de q para q 0 s
o com transic
oes 
Configuracao extendida derivavel num passo: (r , a.w ) `0M (r 0 , w ), (r
e r 0 conjunto de estados) r 0 e constitudo de todos os estados q 0
que podem ser atingidos a partir dos estados q por exactamente
uma transicao a (com a 6= ) assim como de todos os estados
alcancaveis a partir de q 0 .

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

Nocao alternativa de execucao de um automato

Configuracao extendida derivavel num n


umero qualquer de passo
(eventualmente 0): Fecho reflexivo-transitivo da relacao `0M .

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

Linguagem aceite por um automato (segunda versao)


Extende-se a nocao de palavra reconhecida ou aceite da seguinte
forma: diz-se que a1 a2 a3 . . . an e aceite se o conjunto Qn contem
um estado final q Qn . q F .
O conjunto de todas as palavras aceites por um automato M, forma
a linguagem reconhecida L(M).
De forma resumida, esta nocao de derivacao captura o facto que um
passo de execucao consome exactamente um caracter na fita de
entrada. Assim neste contexto uma derivacao que comprove que
uma determinada palavra p e aceite tem por comprimento o n
umero
de caracteres de p (ou seja o comprimento de p).
Outro aspecto importante desta nocao de derivacao: nao ha
diferencas entre derivacao extendida num aut
omato determinstico e
aut
omato nao determinstico. Uma palavra e aceite via uma
derivacao extendida u
nica.
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

NDFA, DFA e execucao - Em resumo...

No caso dos aut


omatos deterministas, existe no maximo uma
execucao para uma palavra em entrada
No caso dos aut
omatos nao determinsticos, e possvel que existam
execuc
oes possveis para a mesma palavra em entrada, mesmo na
o que tenta capturar a nocao de
ausencia de transic
oes . E
configuracao extendida. Neste caso a execucao e u
nica.

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

Figura : Qual e a linguagem reconhecida por este 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

Exemplo

Figura : Qual e a linguagem reconhecida por este Automato?


Aut
omato que le um n
umero bin
ario (fornecido da direita para a esquerda) e
que aceita o n
umero se este for divisvel por 3.
19 10011 acaba em 10 , e 87 1010111 acaba em 00
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

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

Diz-se que c tem como comprimento n, que u = a1 a2 . . . an e a etiqueta do


caminho c, que q0 e o estado inicial de c e qn o seu estado final.
u
Assim sendo diz-se que c e um caminho de q0 para qn (notac
ao q0 qn )
Por convenc
ao, existe sempre um caminho vazio de q para q com etiqueta 

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

Caminho bem sucedido


Seja M = {Q, , R , S, F }. Um caminho c = q0 . . . qn e designado
de bem sucedido se o seu estado inicial q0 pertence a S e o seu
estado final qn a F .
Assim sendo, uma palavra p e reconhecida se e etiqueta dum
caminha bem sucedido. A linguagem reconhecida L(M) e o
conjunto das etiquetas de todos os caminhos bem sucedidos.
Diz-se duma linguagem L definida sobre um alfabeto A que e
aceit
avel ou reconhecida se existir um aut
omato M sobre A que a
reconhece, i.e. L(M) = L.
O conjunto de todas as linguagem reconhecidas por um automato e
designado de Rec(A )

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

Figura : Um exemplo ilustrativo


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

Plano
1

Introducao `a nocao de aut


omatos

Algoritmia dos aut


omatos
Algoritmia de base
Equivalencia entre NDFA e DFA

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Plano
1

Introducao `a nocao de aut


omatos

Algoritmia dos 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 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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Propriedades de fecho das linguagens reconhecidas por automatos


finitos
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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Teorema de Kleene

Linguagens Regulares = Linguagens reconhecidas por automatos


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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

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

mostrando que qualquer linguagem regular pode ser reconhecida por um


aut
omato. Isto passa pela exibic
ao dum algoritmo que permite
transformar uma express
ao regular num aut
omato. A correcc
ao do
algoritmo passa pela demonstrac
ao de que o domnio do algoritmo e o
conjunto das express
oes regulares (todas as express
oes regulares podem
ser alvo do algoritmo) e que a linguagem reconhecida pelo aut
omato
resultante e exactamente a da express
ao regular em entrada.

mostrando que qualquer aut


omato pode ser transformado em qualquer
express
ao regular. O algoritmo resultante dever
a ser comprovado correcto
no sentido de que deve poder transformar qualquer aut
omato e que a
linguagem regular resultante e igual a linguagem reconhecida pelo
aut
omato original.
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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Das linguagens regulares aos automatos


De facto podemos reforcar a implicac
ao (das linguagens regulares aos
aut
omatos) com a seguinte propriedade (cuja demonstrac
ao e feita com base
no algoritmo (e na sua correcc
ao) que permite transformar uma express
ao
regular num aut
omato): A classe das linguagens aceites por aut
omatos finitos e
fechada por
uni
ao
concatenac
ao
fecho de Kleene (estrela)
complementac
ao
intersecc
ao
Ou seja (para o primeiro caso): Sejam M1 e M2 dois aut
omatos ent
ao existe
um aut
omato que reconhece a linguagem L(M1 ) L(M2 )

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Algoritmo de Mac Naughton-Yamada


Seja M um aut
omato, Q = {q1 , q2 , q3 , . . . , qn } o conjunto dos seus
estados e a sua relacao de transicao. Designamos por R(i, j, k) o
conjunto das palavras que permitam passar do estado qi ao estado qj
passando exclusivamente pelos estados {q1 , . . . , qk1 }

{w |(qi , w , qj ) }
se i 6= j
R(i, j, 1) =
{} {w |(qi , w , qj ) } se i = j
R(i, j, k + 1) = R(i, j, k) R(i, k, k)R(k, k, k) R(k, j, k)
S
Temos entao L(M) = qj F R(1, j, n + 1) (para ter a expressao regular
correspondente basta subsituir nas definic
oes anteriores por +)

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Dos automatos `as expressoes regulares

Para formular as linguagens R(i, j, k) s


o foram utilizados conjuntos
finitos, uniao, concatenacao e o fecho de kleene (o fecho reflexivo,
transitivo). A linguagem resultante e assim por definicao uma
linguagem regular.
Este algoritmo pertence `a famlia dos algoritmos de programacao
dinamica.

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

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

Assim L(M) = R(1, 2, 3) = (b + ( + a)( + a) b) + (b + ( + a)( + a) b)(( +


b) + a( + a) b) (( + b) + a( + a) 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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Outro Exemplo

R(1, {2, 3}, 1)


R(1, {3}, 1)
R(1, {3}, 2)
R(2, {3}, 2)
R(2, {3}, 1)

= R(1, {3}, 1) R(1, {3}, 2).R(2, {3}, 2) .R(2, {3}, 1)


= R(1, , 1) R(1, , 3).R(3, , 3) .R(3, , 1)
= R(1, , 2) R(1, , 3).R(3, , 3) .R(3, , 2)
= R(2, , 2) R(2, , 3).R(3, , 3) .R(3, , 2)
= R(2, , 1) R(2, , 3).R(3, , 3) .R(3, , 1)

Assim R(1, {2, 3}, 1) = {, y }


S. Melo de Sousa

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Outro Exemplo

R(1, {2, 3}, 3)


R(1, {3}, 3)
R(2, {3}, 3)

= R(1, {3}, 3) R(1, {3}, 2).R(2, {3}, 2) .R(2, {3}, 3)


= R(1, , 3) R(1, , 3).R(3, , 3) .R(3, , 3)
= R(2, , 2) R(2, , 3).R(3, , 3) .R(3, , 3)

Assim R(1, {2, 3}, 3) = xy x(x + y ) .


Por consequente, L(M) = y xy x(x + y )

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Variante do algoritmo: Tecnica da eliminacao de estados

Princpio de base: permitir que as transic


oes tenham por etiquetas
express
oes regulares (e nao s
o letras).
Partindo deste pressuposto alterar convenientemente o automato original
de tal forma que sobre s
o dois estados e uma transicao. Esta transicao
contem a expressao regular procurada.

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Tecnica da eliminacao de estados


Seja M = {Q, , S, F , R } um aut
omato finito.
1

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

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

Propriedades dos aut


omatos de estados finitos
Digress
oes sobre o teorema de Kleene
Dos Aut
omatos `
as express
oes regulares

Linguagens regulares

Conjuntos das palavras binarias divisveis por 2 (mas tambem por 3


ou por k, k 4 )
Seja = {0, 1, 2, , 9} e seja L o conjunto dos inteiros
naturais divisveis por 2 e por 3. L e regular.
Desafio: demonstrar que sao regulares. Como? exibindo que sao
linguagens reconhecidas por um aut
omato finito ou que sao conjuntos de
palavras construdos com base em linguagens regulares conhecidas e
operadores regulares (uniao, concatenacao e fecho reflexivo-transitivo)

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

Introducao `a nocao de aut


omatos

Algoritmia dos aut


omatos

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

Automatos vistos como algoritmos

Ja referimos que podemos ver os processos de calculos em


dispositivos com mem
oria (assim como registos etc...) como
modificadores de estado em que os estados representam
configurac
oes da mem
oria.
Vamos aqui reforcar esta ideia mostrando como podemos
representar os aut
omatos nestes moldes.

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

Automatos vistos como algoritmos


Imaginemos que um predio de 2 andares tenha dois elevadores e que
pretendemos modelar (de forma simplista) a utilizac
ao dos dois
elevadores.
A posic
ao de cada elevador pode ser representada por uma vari
avel
tomando valores em {0 . . . 2}.
Temos ent
ao 32 = 9 configuraco
es possveis para a conjunc
ao das duas
vari
aveis.
Um exemplo de configurac
ao pode ser {0, 1}, ou seja, a primeira vari
avel
contem o valor 0 (o primeiro elevador encontra-se no res-do-ch
ao) e a
segunda o valor 1 (o segundo elevador encontra-se no primeiro andar).
Estas configuraco
es possveis formam os estados do aut
omato. As
transico
es representam os pedidos dos utilizadores (por exemplo
{a0 , a1 , a2 } para o primeiro, {b0 , b1 , b2 } para o segundo). A cada instante
um s
o pedido e concretizado.
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

Automatos vistos como algoritmos


Em termos de programa, este aut
omato traduz-se em: (assuma que os
pedidos est
ao organizados numa sequ
encia para a qual existam as func
oes vazio,
primeiro e resto)
l e t c o n f i g = r e f ( 0 , 0 ) ( c o n f i g u r a c
ao
l e t rec estado00 pedidos =
i f ( v a z i o p e d i d o s ) then ( )
else
match ( p r i m e i r o p e d i d o s ) with
a0 c o n f i g : = ( 0 , 0 ) ; e s t a d o 0 0 ( r e s t o
| a1 c o n f i g : = ( 1 , 0 ) ; e s t a d o 1 0 ( r e s t o
| a2 c o n f i g : = ( 2 , 0 ) ; e s t a d o 2 0 ( r e s t o
| b0 c o n f i g : = ( 0 , 0 ) ; e s t a d o 0 0 ( r e s t o
| b1 c o n f i g : = ( 0 , 1 ) ; e s t a d o 0 1 ( r e s t o
| b2 c o n f i g : = ( 0 , 2 ) ; e s t a d o 0 2 ( r e s t o
and e s t a d o 0 1 p e d i d o s = . . .

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

Numa imagem resumida

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

Automatos vistos como algoritmos


De forma generica, os aut
omatos sao formalismos adaptados para
representar processos algortmicos que manipulam um conjunto
finito de variaveis. No exemplo do elevador, sao duas variaveis.
Esta caracterizacao (embora informal) e essencial: O
n
umero/tamanho dos dados manipulados deve ser perfeitamente
conhecido (pelo menos o seu limite superior) para poder ser alvo
duma modelizacao algortmica por aut
omato finito. Os automatos
finitos nao conseguem representar processos algortmicos cuja
necessidade em mem
oria nao tem limite conhecido.
essa restricao que vamos explorar e formalizar a seguir para
E
estabelecer que o formalismo dos aut
omatos nao e o formalismo que
procuramos para descrever todos os algoritmos possveis.

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

Algumas consideracoes previas


1

Todas as linguagens finitas s


ao regulares.

Uma linguagem n
ao regular e assim necessariamente infinito (o inverso e
falso).

Se uma linguagem e infinita, ent


ao contem palavras de tamanho infinito.

Qualquer linguagem regular e aceite por um aut


omato finito, este contem
um n
umero finito de estados.

Consideremos uma linguagem regular infinita L e um aut


omato finito M
constitudo de m estados. Para toda a palavra p de comprimento superior
a m em entrada, existe um estado q sobre o qual a execuc
ao do aut
omato
M passar
a pelo menos duas vezes.

Ou seja, podemos descompor a palavra p em tres palavras x, u e y tais


que p = x.u.y e a execuc
ao passa por q ao entrar na an
alise de u e na
an
alise de y . Ent
ao M aceita as palavras geradas pela express
ao regular
x.u .y .

Assim espera-se que as palavras infinitas duma linguagem regular que


essas apresentam umtal padr
ao.
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

Seja L uma linguagem regular, existe um inteiro n 1 tal que


qualquer palavra w de L com |w | n pode ser reescrita como
w = xuy onde u 6= , |xu| n e xu y L.
(corolario) Seja L uma linguagem regular infinita, entao
x, y u + , n N tais que x.u n .y L

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

Aplicacoes do teorema do bombeamento


Dado um p inteiro, a linguagem L1 = {an b n | 0 n p} e regular mas n
ao a
linguagem L2 = {an b n | 0 n}.
L1 e regular. L1 =  {ab} {aabb} . . . {} ou seja a uni
ao finita de
linguagens finitas. QED.
Para L2 vamos proceder via uma demonstrac
ao por absurdo. Vamos
supor que L2 e regular. Logo existe um aut
omato finito determinstico M
com, digamos, m estados. Visto que L2 e regular ent
ao existe uma
descomposic
ao de an b n em xuy tal que xu y tambem pertenca a L2 .
Averiguemos (basta que existe um cortexuy possvel).

u a . Impossvel porque se repetimos u mais do que uma vez


temos mais a do que b.
u b . Impossvel por raz
oes semelhantes.
u (a b) (a b ). Impossvel visto que qualquer
repeticao deste padrao ira misturar a e b e quebrar o padrao
todos os a antes dos b.
Contradic
ao. Logo L2 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

Aplicacoes do Teorema do bombeamento

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

Outras linguagens nao 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

Outras linguagens nao regulares


Sejam D = {0, 1} e T = D D D. Uma multiplicacao correcta
de dois n
umeros binarios pode ser representada como uma palavra
de T . Por exemplo a multiplicacao

0 1 0 1
0 1 1 0
1 0 1 1

pode ser descrita pela palavra de 4 letras seguinte:


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

Introducao `a nocao de aut


omatos

Algoritmia dos aut


omatos

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.

Sob certas condico


es e possvel transformar um aut
omato de Mealy num
aut
omato de Moore equivalente.
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

Um exemplo simples

Figura : Um exemplo de aut


omato de Moore: um lexer simples
S. Melo de Sousa

Teoria da Computac
ao

S-ar putea să vă placă și