Você está na página 1de 60

Linguagens Formais e Autmatos

P. Blauth Menezes
blauth@inf.ufrgs.br

Departamento de Informtica Terica Instituto de Informtica / UFRGS

Linguagens Formais e Autmatos - P. Blauth Menezes

Linguagens Formais e Autmatos


P. Blauth Menezes 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

Linguagens Formais e Autmatos - P. Blauth Menezes

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

5 Autmato Finito com Sada


Linguagens Formais e Autmatos - P. Blauth Menezes

5 Autmato Finito com Sada

Conceito bsico de autmato finito


aplicaes prticas restritas informao de sada limitada lgica binria aceita/rejeita

Gerao de uma palavra de sada


estende a definio de Autmato Finito mesma classe de linguagens reconhecidas

As sadas podem ser associadas


s transies: Mquina de Mealy aos estados Mquina de Moore

Linguagens Formais e Autmatos - P. Blauth Menezes

A sada no pode ser lida: no memria auxiliar


definida sobre um alfabeto especial: alfabeto de smbolos de sada pode ser igual ao alfabeto de entrada sada: fita de sada, independente da de entrada cabea da fita de sada move uma clula para a direita a cada smbolo gravado resultado do processamento estado final (condio de aceita/rejeita) informao contida na fita de sada

Linguagens Formais e Autmatos - P. Blauth Menezes

Mquinas de Mealy e Moore


modificaes sobre o AFD exerccio no-determinismo movimentos vazios

Aplicaes dos autmatos finitos com sada


tradicionais analisador lxico processador de textos WWW (World Wide Web) hipertexto e hipermdia animao quadro-a-quadro

Linguagens Formais e Autmatos - P. Blauth Menezes

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

5.1 Mquina de Mealy

Para cada transio da mquina


gera uma palavra de sada (pode ser vazia)

Linguagens Formais e Autmatos - P. Blauth Menezes

Def: Mquina de Mealy


M = (, Q, , q0, F, ) - alfabeto (de smbolos) de entrada Q - conjunto de estados (finito) - funo programa ou funo de transio (funo parcial) : Q Q *

q 0 - elemento distinguido de Q: estado inicial F - subconjunto de Q: conjunto de estados finais - alfabeto (de smbolos) de sada

Mquina de Mealy AFD


, Q, q0 e F so como no AFD

Linguagens Formais e Autmatos - P. Blauth Menezes

10

Computao, para entrada w


sucessiva aplicao da funo programa para cada smbolo de w (da esquerda para a direita) at ocorrer uma condio de parada

Palavra vazia como sada


nenhuma gravao realizada no move a cabea da fita de sada

Se todas as transies geram sada vazia


processa como se fosse um AFD

Definio formal da funo programa estendida


exerccio

Linguagens Formais e Autmatos - P. Blauth Menezes

11

Exp: Mquina de Mealy: Dilogo


Aplicao comum e recomendada para os autmatos com sada projeto de dilogo entre um programa e o seu usurio determina, eventualmente, aes internas ao sistema Dilogo pode ser de dois tipos comandado pelo programa comandado pelo usurio

Linguagens Formais e Autmatos - P. Blauth Menezes

12

Exp: ...Mquina de Mealy: Dilogo


Exemplo de dilogo que cria e atualiza arquivos entrada fornecida pelo usurio (em um teclado, por exemplo) "" sada gerada pelo programa (em um vdeo, por exemplo) [] ao interna ao programa (sem comunicao com o usurio) () resultado de ao interna ao programa (entrada no diagrama)

Mquina de Mealy M = (, { q0, q1, , q8, qf }, , q0, { qf }, ) e : smbolos (palavras do portugus) de entrada/sada vlidos

Linguagens Formais e Autmatos - P. Blauth Menezes

13

q0

qualquer info "ao?"

fim "fim programa"

qf

q1 cria arq "nome?" q2 nome [existe?] (sim) "erro" nome [existe?] (no) "erro" atu arq "nome?" q4

q3 (no) "ao?" (sim) "ao?" q6 inclui info "info..."

q5

fim "operao abandonada"

q7

inclui info "info..."

fim infos "salva arq?" sim "arq salvo" [salva arq] no "arq no salvo" [abandona arq]

q8

Linguagens Formais e Autmatos - P. Blauth Menezes

14

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

15

5.2 Mquina de Moore

Possui uma segunda funo


gera uma palavra de sada (pode ser vazia) para cada estado da mquina

Linguagens Formais e Autmatos - P. Blauth Menezes

16

Def: Mquina de Moore


M = (, Q, , q0, F, , S) - alfabeto (de smbolos) de entrada Q - conjunto de estados (finito) - funo programa ou funo de transio (funo parcial) : Q Q q 0 - elemento distinguido de Q: estado inicial F - subconjunto de Q: conjunto de estados finais - alfabeto (de smbolos) de sada S - funo de sada (funo total) S: Q *

Linguagens Formais e Autmatos - P. Blauth Menezes

17

Mquina de Moore AFD & Mealy


, Q, , q0 e F so como no AFD como na Mquina de Mealy

Computao, para entrada w


sucessiva aplicao da funo programa para cada smbolo de w (da esquerda para a direita) at ocorrer uma condio de parada juntamente com a sucessiva aplicao da funo de sada cada estado atingido

Linguagens Formais e Autmatos - P. Blauth Menezes

18

Palavra vazia como sada


nenhuma gravao realizada no move a cabea da fita de sada

Se todas as transies geram sada vazia


processa como se fosse um AFD

Definio formal da funo programa estendida


exerccio

Linguagens Formais e Autmatos - P. Blauth Menezes

19

Exp: Mquina de Moore: Anlise Lxica


Analisador Lxico autmato finito (em geral, determinstico) identifica os componentes bsicos da linguagem nmeros, identificadores, separadores, etc Mquina de Moore como Analisador Lxico cada estado final associado a uma unidade lxica a sada descreve ou codifica a unidade lxica identificada estados no-finais em geral, sada vazia

Linguagens Formais e Autmatos - P. Blauth Menezes

20

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

21

5.3 Equivalncia das Mquinas de Moore e de Mealy

Equivalncia
no vlida para a entrada vazia demais casos pode ser facilmente verificada (por qu?)

Linguagens Formais e Autmatos - P. Blauth Menezes

22

Teorema: Mquina de Moore Mquina de Mealy


Toda Mquina de Moore pode ser simulada por uma Mquina de Mealy, para entradas no vazias

Prova: (por induo)


Supondo

(q0,u0)

a1

(q1,u1)

a0
Correspondente Mealy ???

Linguagens Formais e Autmatos - P. Blauth Menezes

23

(q0,u0)

a1

(q1,u1)

a0

qe

(a1,u0u1)

(a0,u0u0)

q1

q0

(a1,u1)

(a0,u0)
Linguagens Formais e Autmatos - P. Blauth Menezes

24

M = (, Q, , q0, F, , S), Mquina de Moore qualquer Correspondente Mealy ME = (, Q { qe }, ME, qe, F, ) Estado qe referenciado somente na primeira transio executada garante a gerao da sada referente ao estado inicial q0 de Moore Funo programa ME ME(qe, a) = ((q0, a), S(q0) S((q0, a))) ME(q, a) = ((q, a), S((q, a)))

Linguagens Formais e Autmatos - P. Blauth Menezes

25

Induo em n > 0 prova que, de fato, ME (Mealy) simula M (Moore) ao reconhecer a entrada a1an se M passa pelos estados q0, q1, , qn e gera as sadas u0, u1, , un, ento ME passa pelos estados qe, q0, q1, , qn e gera as sadas u0u 1, , un

Linguagens Formais e Autmatos - P. Blauth Menezes

26

Teorema: Mquina de Mealy Mquina de Moore


Toda Mquina de Mealy pode ser simulada por uma Mquina de Moore

Prova: (por induo)


(a1,u1)

...
(ai,ui) q (b,v) p

...
(an,un)

Correspondente Moore ???


Linguagens Formais e Autmatos - P. Blauth Menezes

27

(a1,u1)

...
(ai,ui) q (b,v) p

...
(an,un)

a1

(q,u1,u1)

...
ai

...
(q,ui,ui) b (p,v,v)

...
an

...
b (q,un,un)
28

Linguagens Formais e Autmatos - P. Blauth Menezes

Correspondente Mquina de Moore em geral, mais estados que Mealy transies com sadas diferentes atingem um mesmo estado simulado por diversos estados (um para cada sada) estado um par ordenado estado, sada

Linguagens Formais e Autmatos - P. Blauth Menezes

29

M = (, Q, , q0, F, ), Mealy qualquer. Correspondente Moore MO = (, (Q S()) { q0, }, MO, q0, , F S(), , S) S(): imagem de , restrita componente sada conjunto de sadas possveis de M se (q0, a) = (q, u) MO(q0, , a) = q, u se (q, b) = (p, v), ento, para cada (qi, ai) = (q, ui) MO(q, ui, b) = p, v para o estado q, u de MO S(q, u) = u
Linguagens Formais e Autmatos - P. Blauth Menezes

30

Induo em n prova que, ao reconhecer a entrada a1an se M passa pelos estados q0, q1, , qn e gera as sadas u1, , un ento MO passa pelos estados q0, , q1, u1, , qn, un e gera as sadas , u1, , un

Linguagens Formais e Autmatos - P. Blauth Menezes

31

Exp: Mquina de Mealy Mquina de Moore


M = ({ a, }, { q, p }, , q, { q, p }, { a, }) compacta brancos de um texto Mquina de Mealy

(a,a) q (,) (a,a) (,) p

Linguagens Formais e Autmatos - P. Blauth Menezes

32

MO = ({ a, }, Q, MO, q, , F, { a, }, S) Q = F = { q, p } { , a, }

Mquina de Moore

(p,,)

(q,,) a

a a

(p,,)

(q,a,a) a
Linguagens Formais e Autmatos - P. Blauth Menezes

33

Obs: Mquina de Mealy Mquina de Moore


Mealy possui, em geral menos estados que a correspondente Moore Em aplicaes prticas, sempre que possvel, usar Mealy preferencialmente a Moore Em experimentos reais, significativa preferncia das pessoas associar as sadas aos estados (e no s transies). sugere-se especial ateno a este fato

Linguagens Formais e Autmatos - P. Blauth Menezes

34

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

35

5.4 Hipertexto e Hipermdia como Autmato Finito com Sada

Hipertexto
ponteiros ou links entre diversas pginas texto possui ncoras que apontam para pginas do documento

Hipermdia
extenso desta noo para recursos multimdia imagens, animaes e sons

Linguagens Formais e Autmatos - P. Blauth Menezes

36

Noo de hipertexto
proposta por Vannevar Bush em 1945, objetivando armazenar uma grande quantidade de documentos interligados de acordo com uma semntica de associao flexibilizando/otimizando tempos de recuperao de informaes

Associao hipertexto/hipermdia WWW


documentos com ponteiros fisicamente codificados nas pginas tal soluo compromete reusabilidade e atualizao dos recursos usados

Idealmente, hipertexto (hipermdia) deve possuir


estrutura navegacional independente dos dados sobre a qual construdo

Linguagens Formais e Autmatos - P. Blauth Menezes

37

Hipertextos (hipermdias) vistos como AF com sada


alfabeto de entrada: conjunto de rtulos dos ponteiros modificaes no alfabeto? funo programa: estrutura navegacional determina a estruturao lgica modificaes na funo programa? alfabeto de sada: conjunto de recursos hipertexto/hipermdia armazenados na base de dados modificaes no alfabeto de sada? palavra de sada: uma pgina, composta por smbolos do alfabeto de sada (recursos hipertexto/hipermdia) concatenados modificaes nas sadas?

Linguagens Formais e Autmatos - P. Blauth Menezes

38

Resultado
pginas e ponteiros de um hipertexto/hipermdia em um stio cada autmato com sada: viso da mesma base de dados

Hipermdia vista como um autmato finito com sada


pode possuir restries nos tempos/sincronizaes entre mdias
decorrentes das limitaes de expressividade das LR limitaes sobre o que os autmatos finitos podem computar

Linguagens Formais e Autmatos - P. Blauth Menezes

39

Exp: Hiperdocumento como Autmato Finito com Sada


Hipertexto com objetivo de disponibilizar um Curso sobre Autmatos com Sada na WWW, usando Mquina de Moore Alfabeto de entrada: { prxima, exerccio, anterior, resumos, sada } Alfabeto de sada: { A, B, C, D, E, F, G, H, I, J, K, L, M } A - Introduo AF B - Definio AFD C - Exemplo AFD D - Exerccio AFD E - Introduo AF com Sada F - Definio Mquina de Mealy G - Exemplo Mquina de Mealy H - Exerccio Mquina de Mealy I - Definio Mquina de Moore J - Exemplo Mquina de Moore K - Exerccio Mquina de Moore L - Concluses M - Fim

Linguagens Formais e Autmatos - P. Blauth Menezes

40

A Definio AFD ... Exemplo AFD ... pr x i ma ex er c c i o s

Autmatos ... pr x i ma

Finitos

prxima BC exerccio anterior D Exerccio AFD ... anterior

Aut. Finitos com Sada ... pr x i ma

prxima E

Definio Mealy ... Exemplo Mealy ... pr x i ma ex er c c i o s

prxima FG exerccio anterior prxima H Exerccio ... anterior Mealy

Definio Moore ... Exemplo Moore ... pr x i ma ex er c c i o s

IJ

exerccio anterior prxima

Exerccio Moore ... anterior

L Concluses ... sada

resumos anterior sada

BFI

resumos M

Fim

Definio AFD ... Mquina de Mealy ... Mquina de Moore ... anterior

Linguagens Formais e Autmatos - P. Blauth Menezes

41

Observe
fragmentos de hipertextos so concatenados, compondo pginas mesmos fragmentos so usados em mais de uma pgina reuso de fragmentos de hipertextos se um fragmento for alterado na base de dados todas referncias so automaticamente alteradas no autmato smbolos do alfabeto de entrada so rtulos de ponteiros

Exerccio
Mquina de Mealy

Linguagens Formais e Autmatos - P. Blauth Menezes

42

Vantagens
base de dados alto grau de modularizao dos recursos facilidade de reuso desses recursos independncia da estrutura navegacional (programa) do contedo modificaes na estrutura navegacional no influem no contedo (e vice-versa) facilidade criao/manuteno de hipertextos/hipermdias criao de hipertexto/hipermdia sobre algum j existente interface grfica simples e direta (AF como diagrama) implementao trivial

Linguagens Formais e Autmatos - P. Blauth Menezes

43

Exerccio: no-determinismo
interpretao no contexto de hipertextos/hipermdias na WWW??

Linguagens Formais e Autmatos - P. Blauth Menezes

44

5 Autmato Finito com Sada


5.1 5.2 5.3 5.4 Mquina de Mealy Mquina de Moore Equivalncia das Mquina de Moore e Mealy Hipertexto e Hipermdia como Autmato Finito com Sada 5.5 Animao como Autmato Finito com Sada

Linguagens Formais e Autmatos - P. Blauth Menezes

45

5.5 Animao como AF com Sada

Sistemas de animao para


criao apresentao de animaes

Podem ser
Tempo real imagem exibida computada no momento da visualizao Quadro-a-quadro imagem exibida previamente computada e armazenada

Linguagens Formais e Autmatos - P. Blauth Menezes

46

World Wide Web


sistemas de animao so especialmente importantes grande parte de seu contedo contm animaes

Questes importantes
taxa de transmisso espao de armazenamento tempo de processamento

Linguagens Formais e Autmatos - P. Blauth Menezes

47

Sistemas de animao quadro-a-quadro na WWW


AVI - Audio Video Interleave MPEG - Moving Picture Expert Group QuickTime GIF - Graphics Interchange Format

Caractersticas desejveis de um sistema de animao


reutilizao seqncias de imagens partes especficas de imagens para compor animaes a partir de animaes existentes busca de informaes (principamente em animaes complexas) ocorrncia de determinadas condies ao longo da animao

Linguagens Formais e Autmatos - P. Blauth Menezes

48

Animaes quadro-a-quadro vistas como AF c/ sada


cada autmato: um ator composio de atores em camadas: animaes

Cada ator
fita de entrada independente alfabeto de sada: conjunto de imagens e sons elementares do ator palavra de sada imagem / som do ator a cada instante da animao alfabeto de entrada: conjunto de aes possveis funo programa: comportamento do ator

Linguagens Formais e Autmatos - P. Blauth Menezes

49

Desejvel estender o modelo com facilidades especficas para animaes


controle de tempos transformaes aplicadas a imagem ou som

Uma soluo: clula de fita de entrada uma tripla


smbolo do alfabeto de entrada tempo de processamento da transio (exibio da imagem) transformao aplicada imagem: posicionamento, rotao, etc. som: volume, equalizao, etc.

Linguagens Formais e Autmatos - P. Blauth Menezes

50

Exp: Animao como AF com Sada


Atores cobra capaz de se movimentar, abocanhar e rir ma que pode estar ou no mordida Animao cobra eventualmente abocanha a ma (Mquina de Mealy)

Linguagens Formais e Autmatos - P. Blauth Menezes

51

imagens dos atores: camadas, compondo quadros das animaes

Linguagens Formais e Autmatos - P. Blauth Menezes

52

sincronizao dos atores: controle de tempos


Linguagens Formais e Autmatos - P. Blauth Menezes

53

Observe que
alterao algum smbolo do alfabeto de sada (imagem elementar) todas referncias so automaticamente alteradas ator pode ser reusado na composio de uma outra animao mesmo ator pode ser usado diversas vezes em uma animao exemplo: animao com diversas cobras independentes

Exerccio Mquina de Moore

Linguagens Formais e Autmatos - P. Blauth Menezes

54

Vantagens
encapsulamento das propriedades estticas e comportamentais em uma unidade bsica (ator) favorece reuso (instanciao) em diferentes animaes existe apenas um autmato (e diversas fitas de entrada) independncia da estrutura comportamental (programa) do contedo das imagens/sons modificaes na estrutura comportamental no influem no contedo das imagens/sons (e vice-versa) facilidade criao e manuteno de atores e animaes criao de ator/animao sobre algum j existente interface grfica simples e direta (AF como diagrama) implementao trivial

Linguagens Formais e Autmatos - P. Blauth Menezes

55

Importante vantagem (animaes complexas)


buscas de informaes sobre a ocorrncia de determinadas condies ao longo de uma animao usando estrutura de estados algumas informaes adicionais

Linguagens Formais e Autmatos - P. Blauth Menezes

56

Comparao com modelos usuais quadro-a-quadro


importante vantagem: tamanho de arquivo (taxa de transferncia) pode montar cada quadro no momento em que exibido mesma imagem exibida em diferentes momentos da animao sem necessidade de codificar (ou transmitir) novamente o mesmo para diferentes instncias do mesmo ator diferentes atores que usam o mesmo alfabeto de sada

Casos reais
20% ou menos do espao usualmente requerido por um GIF

Linguagens Formais e Autmatos - P. Blauth Menezes

57

Exerccio: no-determinismo
interpretao no contexto de animaes???

Linguagens Formais e Autmatos - P. Blauth Menezes

58

Linguagens Formais e Autmatos


P. Blauth Menezes 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
59

Linguagens Formais e Autmatos - P. Blauth Menezes

Linguagens Formais e Autmatos


P. Blauth Menezes
blauth@inf.ufrgs.br

Departamento de Informtica Terica Instituto de Informtica / UFRGS

Linguagens Formais e Autmatos - P. Blauth Menezes

60

Você também pode gostar