Você está na página 1de 25

02/04/2015

Prof. Andr Ricardo Jovetta

1.
2.
3.
4.
5.
6.
7.

8.

9.

Introduo e Conceitos Bsicos


Linguagens e Gramticas
Linguagens Regulares
Propriedades das Linguagens Regulares
Autmato Finito com Sada
Linguagens Livres do Contexto
Propriedades e Reconhecimento das Linguagens Livres do
Contexto
Linguagens Recursivamente Enumerveis e Sensveis ao
Contexto
Hierarquia de Classes e Linguagens e Concluses

02/04/2015

3.1 Sistema de Estados Finitos


3.2 Composio Seqencial, Concorrente e NoNo-Determinista
3.3 Autmato Finito
3.4 Autmato Finito NoNo-Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

02/04/2015

Linguagens Regulares ou Tipo 3 formalismos


Autmato Finito
 formalismo operacional ou reconhecedor
 basicamente, um sistema de estados finitos
Expresso Regular
 formalismo denotacional ou gerador
 conjuntos (linguagens) bsicos + concatenao e unio
Gramtica Regular
 formalismo axiomtico ou gerador
 gramtica com restries da forma das regras de
produo

Hierarquia de Chomsky
classe de linguagens mais simples
algoritmos de reconhecimento, gerao ou converso entre
formalismos
 pouca complexidade
 grande eficincia
 fcil implementao

Fortes limitaes de expressividade


exemplo: duplo balanceamento no regular.
linguagens de programao em geral: no-regulares

02/04/2015

Complexidade de algoritmos - autmatos finitos


classe de algoritmos mais eficientes (tempo de
processamento)
 supondo determinada condio
qualquer autmato finito igualmente eficiente
qualquer soluo tima
 a menos de eventual redundncia de estados
redundncia de estados
 (no influi no tempo)
 pode ser facilmente eliminada: Autmato Finito Mnimo

Importantes propriedades - podem ser usadas para


construir novas linguagens regulares
 a partir de linguagens regulares conhecidas
 (definindo uma lgebra)
provar propriedades
construir algoritmos

Se um problema tiver uma soluo regular


considerar preferencialmente a qualquer outra no-regular
 propriedades da Classe
 eficincia e simplicidade dos algoritmos

02/04/2015

Universo de aplicaes das linguagens regulares


muito grande
constantemente ampliado

Exemplo tpico e simples


anlise lxica

Exemplos mais recentes


sistemas de animao
hipertextos
hipermdias

Captulos subseqentes
minimizao de autmatos finitos
propriedades da Classe
algumas importantes aplicaes

02/04/2015

3.1 Sistema de Estados Finitos


3.2 Composio Seqencial, Concorrente e NoNo-Determinista
3.3 Autmato Finito
3.4 Autmato Finito NoNo-Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

Sistema de Estados Finitos


modelo matemtico de sistema com entradas e sadas
discretas
nmero finito e predefinido de estados
 podem ser definidos antes de iniciar o processamento

Estado
somente informaes do passado
necessrias para determinar as aes para a prxima
entrada

02/04/2015

Motivacional
associados a diversos tipos de sistemas naturais e
construdos

Exp:
Exp: Elevador

No memoriza as requisies anteriores


Estado: sumaria "andar corrente" e "direo de movimento"
Entrada: requisies pendentes

Exp:
Exp: Analisador Lxico, Processador de Texto
Estado: memoriza a estrutura do prefixo da palavra em
anlise
Entrada: texto

Restrio
nem todos os sistemas de estados finitos
so adequados para serem estudados por esta abordagem

Exp:
Exp: Crebro humano
Neurnio: nmero finito de bits
Crebro: cerca de 235 clulas
 abordagem pouco eficiente
 exploso de estados

02/04/2015

Exp:
Exp: Computador
processadores e memrias: sistema de estados finitos
estudo da computabilidade
 exige uma memria sem limite predefinido
Mquina de Turing
 mais adequado ao estudo da computabilidade
computabilidade e solucionabilidade de problemas
 apenas introduzido
 questes tratadas na Teoria da Computao

3.1 Sistema de Estados Finitos


3.2 Composio Seqencial, Concorrente e NoNo-Determinista
3.3 Autmato Finito
3.4 Autmato Finito NoNo-Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

02/04/2015

Construo composicional de sistema


construdo a partir de sistemas conhecidos
 e assim sucessivamente
 at chegar ao nvel mais elementar (como uma ao
atmica)

Composio
Seqencial
Concorrente
No-Determinista

Seqencial
execuo da prxima componente
depende da terminao da componente anterior

Concorrente
componentes independentes
 ordem em que so executadas no importante
portanto, podem ser processadas ao mesmo tempo

02/04/2015

NoNo-Determinista
prxima componente: escolha entre diversas alternativas
em oposio determinista
para as mesmas condies
prxima componente sempre a mesma
no-determinismo pode ser
interno: sistema escolhe aleatoriamente
externo: escolha externa ao sistema
Sistemas reais
as trs formas de composio so comuns

Exp:
Exp: Banco
Seqencial
fila: prximo cliente depende do atendimento do anterior
pagamento de uma conta depende do fornecimento de um
valor
Concorrente
diversos caixas atendem independentemente diversos
clientes
clientes nos caixas: aes independentemente dos clientes
na fila
No-determinista
dois ou mais caixas disponveis ao mesmo tempo
prximo cliente pode escolher o caixa
caminhar de um indivduo: perna esquerda ou direita

10

02/04/2015

Linguagens Formais
seqencial e no-determinimo: especialmente importantes
Semntica do nono-determinismo adotada
a usual para Linguagens Formais, Teoria da Computao...
no-determinismo interno
objetivo: determinar a capacidade de reconhecer
linguagens e de solucionar problemas
difere da adotada no estudo dos Modelos para Concorrncia
exemplo: Sistemas Operacionais
pode causar confuso com a semntica da concorrncia

3.1 Sistema de Estados Finitos


3.2 Composio Seqencial, Concorrente e NoNo-Determinista
3.3 Autmato Finito
3.4 Autmato Finito NoNo-Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular

11

02/04/2015

Autmato Finito: sistema de estados finitos


nmero finito e predefinido de estados
modelo computacional comum em diversos estudos
terico-formais
Linguagens Formais
Compiladores
Semntica Formal
Modelos para Concorrncia

Formalismo operacional/reconhecedor - pode ser


determinstico
dependendo do estado corrente e do smbolo lido
pode assumir um nico estado
no-determinstico
dependendo do estado corrente e do smbolo lido
pode assumir um conjunto de estados alternativos
com movimentos vazios
dependendo do estado corrente e sem ler qualquer

smbolo
pode assumir um conjunto de estados (portanto

no-determinstico)

12

02/04/2015

Movimento vazio
pode ser visto como transies encapsuladas
excetuando-se por uma eventual mudana de estado
nada mais pode ser observado
anlogo encapsulao das linguagens orientadas a
objetos
Trs tipos de autmatos: equivalentes
em termos de poder computacional

Autmato finito (determinstico): mquina constituda por


Fita: dispositivo de entrada
contm informao a ser processada
Unidade de Controle: reflete o estado corrente da mquina
possui unidade de leitura (cabea da fita)
acessa uma clula da fita de cada vez
movimenta-se exclusivamente para a direita
Programa, Funo Programa ou Funo de Transio
comanda as leituras
define o estado da mquina

13

02/04/2015

Fita finita
dividida em clulas
cada clula armazena um smbolo
smbolos pertencem a um alfabeto de entrada
no possvel gravar sobre a fita (no existe memria
auxiliar)
palavra a ser processada ocupa toda a fita

Unidade de controle
nmero finito e predefinido de estados
origem do termo controle finito
leitura
l o smbolo de uma clula de cada vez
move a cabea da fita uma clula para a direita
posio inicial da cabea clula mais esquerda da fita

14

02/04/2015

Programa: funo parcial


dependendo do estado corrente e do smbolo lido
determina o novo estado do autmato

Def:
Def: Autmato Finito (Determinstico) ou AFD
M = (, Q, , q0, F)
um alfabeto (de smbolos) de entrada
Q um conjunto de estados possveis do autmato (finito)
uma (funo) programa ou funo de transio (funo
parcial)
: Q Q
transio do autmato: (p, a) = q
q0 um elemento distinguido de Q: estado inicial
F um subconjunto de Q: conjunto de estados finais

15

02/04/2015

Autmato finito como um diagrama: (p, a) = q

Estados iniciais e finais

Transies paralelas: (p, a) = q e (p, b) = q

16

02/04/2015

Funo programa como uma tabela de dupla entrada

(p, a) = q

Computao de um autmato finito


sucessiva aplicao da funo programa
para cada smbolo da entrada (da esquerda para a direita)
at ocorrer uma condio de parada
LembreLembre-se que um autmato finito
no possui memria de trabalho
para armazenar as informaes passadas
deve-se usar o conceito de estado

17

02/04/2015

Exp:
Exp: Autmato Finito: aa ou bb como subpalavra
L1 = { w | w possui aa ou bb como subpalavra }
Autmato finito
M1 = ({ a, b }, { q0, q1, q2, qf }, 1, q0, { qf })

q1: "smbolo anterior a"


q2: "smbolo anterior b
aps identificar aa ou bb
qf (final): varre o sufixo da entrada - terminar o
processamento

18

02/04/2015

Obs: Autmato Finito Sempre Pra


Como
qualquer palavra finita
novo smbolo lido a cada aplicao da funo programa
no existe a possibilidade de ciclo (loop) infinito
Parada do processamento
Aceita a entrada
aps processar o ltimo smbolo, assume um estado
final
Rejeita a entrada. Duas possibilidades
aps processar o ltimo smbolo, assume um estado
no-final
programa indefinido para argumento (estado e
smbolo)

19

02/04/2015

Obs: Autmato Finito Grafo Finito Direto


Qual a diferena entre um autmato finito e um grafo finito
direto?
Qualquer autmato finito pode ser visto como um grafo finito
direto
podem existir arcos paralelos (mesmos nodos origem e
destino)
dois ou mais arcos podem ser identificados com a mesma
etiqueta (smbolo do alfabeto)
existe um nodo distinguido: estado inicial
existe um conjunto de nodos distinguidos: estados finais
Usual considerar um autmato finito como grafo finito direto
especial
herda resultados da Teoria dos Grafos

Definio formal do comportamento de um autmato finito


dar semntica sintaxe
necessrio estender a funo programa
argumento: estado e palavra

20

02/04/2015

Def:
Def: Funo Programa Estendida, Computao
M = (, Q, , q0, F) autmato finito determinstico
*: Q * Q
: Q Q estendida para palavras - indutivamente
definida
*(q, ) = q
*(q, aw) = *((q, a), w)
Observe
sucessiva aplicao da funo programa
para cada smbolo da palavra
a partir de um dado estado
se a entrada for vazia, fica parado
aceita/rejeita: funo programa estendida a partir do
estado inicial

Exp:
Exp: Funo Programa Estendida

*(q0, abaa) =
*((q0, a), baa) =
*(q1, baa) =
*((q1, b), aa) =
*(q2, aa) =
*((q2, a), a) =
*(q1, a) =
*((q1, a), ) =
*(qf, ) = qf

funo estendida
processa abaa
funo estendida
processa baa
funo estendida
processa aa
funo estendida
processa a
funo estendida
induo; ACEITA

sobre abaa
sobre baa
sobre aa
sobre a
sobre : fim da

21

02/04/2015

Def:
Def: Linguagem Aceita, Linguagem Rejeitada
M = (, Q, , q0, F) autmato finito determinstico.
Linguagem Aceita ou Linguagem Reconhecida por M
L(M) = ACEITA(M) = { w | *(q0, w) F }
Linguagem Rejeitada por M:
REJEITA(M) = { w | *(q0, w) F ou *(q0, w) indefinida }
Supondo que * o conjunto universo

ACEITA(M) REJEITA(M) =
ACEITA(M) REJEITA(M) = *
~ACEITA(M) = REJEITA(M)
~REJEITA(M) = ACEITA(M)

Cada autmato finito M sobre


induz uma partio de * em duas classes de equivalncia
e se um dos dois conjuntos for vazio?

*
ACEITA(M)

REJEITA(M)

22

02/04/2015

Diferentes autmatos finitos podem aceitar uma


mesma linguagem
Def:
Def: Autmatos Finitos Equivalentes
M1 e M2 so Autmatos Finitos Equivalentes se e somente se
ACEITA(M1) = ACEITA(M2)
Def:
Def: Linguagem Regular, Linguagem Tipo 3
L uma Linguagem Regular ou Linguagem Tipo 3
existe pelo menos um autmato finito determinstico que
aceita L

Exp:
Exp: Autmato Finito: Vazia, Todas as Palavras
Linguagens sobre o alfabeto { a, b }
L2 =

L3 = *

23

02/04/2015

Exp:
Exp: Autmato Finito: Vazia, Todas as Palavras

L2 =

L3 = *

diferena entre 2 e 3?
o que, exatamente, diferencia M2 de M3?

Exp:
Exp: Autmato Finito: nmero par de cada smbolo
L4 = { w | w possui um nmero par de a e um nmero par de b }

Como seria para aceitar um nmero mpar de cada smbolo?

24

02/04/2015

Obs:
Obs: Funo Programa Funo Programa Estendida
Objetivando simplificar a notao
e a sua correspondente extenso *
podem ser ambas denotadas por
Obs:
Obs: Computaes Caminhos de um Grafo
conjunto de arcos: computaes possveis
subconjunto de arcos
com origem no estado inicial
destino em algum estado final
linguagem aceita

Obs:
Obs: Computaes Caminhos de um Grafo

25