SlideShare a Scribd company logo
1 of 60
Download to read offline
Linguagens Formais e
                       Autômatos
                                            P. Blauth Menezes
                                                     blauth@inf.ufrgs.br

                   Departamento de Informática Teórica
                     Instituto de Informática / UFRGS




Linguagens Formais e Autômatos - P. Blauth Menezes                         1
Linguagens Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões




Linguagens Formais e Autômatos - P. Blauth Menezes                              2
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      3
5 – Autômato Finito com Saída
Linguagens Formais e Autômatos - P. Blauth Menezes   4
5 Autômato Finito com Saída
◆    Conceito básico de autômato finito
     • aplicações práticas restritas
     • informação de saída limitada à lógica binária aceita/rejeita

◆    Geração de uma palavra de saída
     • estende a definição de Autômato Finito
     • mesma classe de linguagens reconhecidas

◆    As saídas podem ser associadas
     • às transições: Máquina de Mealy
     • aos estados Máquina de Moore

Linguagens Formais e Autômatos - P. Blauth Menezes                    5
◆    A saída não pode ser lida: não é memória auxiliar
     • definida sobre um alfabeto especial: alfabeto de símbolos de saída
        ∗ pode ser igual ao alfabeto de entrada

     • saída: fita de saída, independente da de entrada

     • cabeça da fita de saída
        ∗ move uma célula para a direita a cada símbolo gravado

     • resultado do processamento
        ∗ estado final (condição de aceita/rejeita)
        ∗ informação contida na fita de saída




Linguagens Formais e Autômatos - P. Blauth Menezes                          6
◆    Máquinas de Mealy e Moore
     • modificações sobre o AFD
     • exercício
        ∗ não-determinismo
        ∗ movimentos vazios

◆    Aplicações dos autômatos finitos com saída
     • tradicionais
         ∗ analisador léxico
         ∗ processador de textos …

     • WWW (World Wide Web)
       ∗ hipertexto e hipermídia
       ∗ animação quadro-a-quadro

Linguagens Formais e Autômatos - P. Blauth Menezes   7
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      8
5.1 Máquina de Mealy
◆    Para cada transição da máquina
     • gera uma palavra de saída (pode ser vazia)




Linguagens Formais e Autômatos - P. Blauth Menezes   9
Def: Máquina de Mealy
                                                M = (Σ, Q, δ, q0, F, Δ)

     • Σ - alfabeto (de símbolos) de entrada
     • Q - conjunto de estados (finito)
     • δ - função programa ou função de transição (função parcial)

                                                     δ: Q × Σ → Q × Δ*

     •   q 0 - elemento distinguido de Q: estado inicial
     •   F - subconjunto de Q: conjunto de estados finais
     •   Δ - alfabeto (de símbolos) de saída

◆    Máquina de Mealy × AFD
     • Σ, Q, q0 e F são como no AFD

Linguagens Formais e Autômatos - P. Blauth Menezes                        10
◆    Computação, para entrada w
     • sucessiva aplicação da função programa
     • para cada símbolo de w (da esquerda para a direita)
     • até ocorrer uma condição de parada

◆    Palavra vazia como saída
     • nenhuma gravação é realizada
     • não move a cabeça da fita de saída

◆    Se todas as transições geram saída vazia
     • processa como se fosse um AFD

◆    Definição formal da função programa estendida
     • exercício

Linguagens Formais e Autômatos - P. Blauth Menezes           11
Exp: Máquina de Mealy: Diálogo
Aplicação comum e recomendada para os autômatos com saída

     • projeto de diálogo entre um programa e o seu usuário

     • determina, eventualmente, ações internas ao sistema

Diálogo pode ser de dois tipos

     • comandado pelo programa

     • comandado pelo usuário




Linguagens Formais e Autômatos - P. Blauth Menezes            12
Exp: ...Máquina de Mealy: Diálogo
Exemplo de diálogo que cria e atualiza arquivos

     •   〈…〉 entrada fornecida pelo usuário (em um teclado, por exemplo)
     •   "…"     saída gerada pelo programa (em um vídeo, por exemplo)
     •   […] ação interna ao programa (sem comunicação com o usuário)
     •   (…) resultado de ação interna ao programa (entrada no diagrama)

Máquina de Mealy

                           M = (Σ, { q0, q1, …, q8, qf }, δ, q0, { qf }, Δ)

     • Σ e Δ: símbolos (palavras do português) de entrada/saída válidos




Linguagens Formais e Autômatos - P. Blauth Menezes                            13
〈qualquer info〉                                              〈fim〉
                                             "ação?"                                             "fim programa"
                                     q0                                                                           qf




                                                                              q1

                                                                 〈cria arq〉    〈atu arq〉
                                                                 "nome?"       "nome?"

                                                            q2                                  q4

                                                              〈nome〉                 〈nome〉
                                                             [existe?]              [existe?]
                                             (sim)                                                      (não)
                                             "erro"                                                     "erro"
                                                            q3                                  q5

                                                                  (não)             (sim)
                                                                 "ação?"           "ação?"
                                                     〈fim〉
                                                  "operação                   q6
                                                 abandonada"
                                                                               〈inclui info〉
                                                                                  "info..."


                                                                              q7        〈inclui info〉
                                                                                           "info..."
                                                                                〈fim infos〉
                                                                               "salva arq?"

                                                     〈sim〉                                      〈não〉
                                                  "arq salvo"                 q8           "arq não salvo"
                                                  [salva arq]                              [abandona arq]


Linguagens Formais e Autômatos - P. Blauth Menezes                                                                     14
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      15
5.2 Máquina de Moore
◆    Possui uma segunda função
     • gera uma palavra de saída (pode ser vazia)

     • para cada estado da máquina




Linguagens Formais e Autômatos - P. Blauth Menezes   16
Def: Máquina de Moore
                                             M = (Σ, Q, δ, q0, F, Δ, δS)

     • Σ - alfabeto (de símbolos) de entrada
     • Q - conjunto de estados (finito)
     • δ - função programa ou função de transição (função parcial)

                                                     δ: Q × Σ → Q

     •   q 0 - elemento distinguido de Q: estado inicial
     •   F - subconjunto de Q: conjunto de estados finais
     •   Δ - alfabeto (de símbolos) de saída
     •   δS - função de saída (função total)

                                                     δS: Q → Δ*


Linguagens Formais e Autômatos - P. Blauth Menezes                         17
◆    Máquina de Moore × AFD & Mealy
     • Σ, Q, δ, q0 e F são como no AFD

     • Δ é como na Máquina de Mealy

◆    Computação, para entrada w
     • sucessiva aplicação da função programa
        ∗ para cada símbolo de w (da esquerda para a direita)
        ∗ até ocorrer uma condição de parada

     • juntamente com a sucessiva aplicação da função de saída
        ∗ cada estado atingido




Linguagens Formais e Autômatos - P. Blauth Menezes               18
◆    Palavra vazia como saída
     • nenhuma gravação é realizada

     • não move a cabeça da fita de saída

◆    Se todas as transições geram saída vazia
     • processa como se fosse um AFD

◆    Definição formal da função programa estendida
     • exercício




Linguagens Formais e Autômatos - P. Blauth Menezes   19
Exp: Máquina de Moore: Análise Léxica
Analisador Léxico

     • autômato finito (em geral, determinístico)
     • identifica os componentes básicos da linguagem
        ∗ números, identificadores, separadores, etc

Máquina de Moore como Analisador Léxico

     • cada estado final
        ∗ associado a uma unidade léxica
        ∗ a saída descreve ou codifica a unidade léxica identificada

     • estados não-finais
        ∗ em geral, saída vazia



Linguagens Formais e Autômatos - P. Blauth Menezes                     20
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      21
5.3 Equivalência das Máquinas de
    Moore e de Mealy
◆    Equivalência
     • não é válida para a entrada vazia             (por quê?)

     • demais casos
        ∗ pode ser facilmente verificada




Linguagens Formais e Autômatos - P. Blauth Menezes           22
Teorema: Máquina de Moore → Máquina de Mealy
Toda Máquina de Moore pode ser simulada por uma Máquina de Mealy,
para entradas não vazias

Prova: (por indução)
Supondo

                                                          a1
                                              (q0,u0)          (q1,u1)



                                                     a0
Correspondente Mealy ???



Linguagens Formais e Autômatos - P. Blauth Menezes                       23
a1
                                                     (q0,u0)               (q1,u1)



                                                       a0




                                                       qe
                                                               (a1,u0u1)


                                        (a0,u0u0)
                                                                            q1


                                                               (a1,u1)
                                                       q0


                                                     (a0,u0)
Linguagens Formais e Autômatos - P. Blauth Menezes                                   24
M = (Σ, Q, δ, q0, F, Δ, δS), Máquina de Moore qualquer

Correspondente Mealy

                                     ME = (Σ, Q ∪ { qe }, δME, qe, F, Δ)

Estado qe

     • referenciado somente na primeira transição executada

     • garante a geração da saída referente ao estado inicial q0 de Moore

Função programa δME

     • δME(qe, a) = (δ(q0, a), δS(q0) δS(δ(q0, a)))

     • δME(q, a) = (δ(q, a), δS(δ(q, a)))



Linguagens Formais e Autômatos - P. Blauth Menezes                         25
Indução em n > 0 prova que, de fato, ME (Mealy) simula M (Moore)

     • ao reconhecer a entrada a1…an

     • se M passa pelos estados q0, q1, …, qn
     • e gera as saídas u0, u1, …, un,

     • então ME passa pelos estados qe, q0, q1, …, qn
     • e gera as saídas u0u 1, …, un




Linguagens Formais e Autômatos - P. Blauth Menezes                 26
Teorema: Máquina de Mealy → Máquina de Moore
Toda Máquina de Mealy pode ser simulada por uma Máquina de Moore

Prova: (por indução)
                                        (a1,u1)


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

                                       ...

                                        (an,un)

Correspondente Moore ???

Linguagens Formais e Autômatos - P. Blauth Menezes                   27
(a1,u1)


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

                                            ...

                                             (an,un)



                                                a1                       b
                                                        (〈q,u1〉,u1)

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

                                            ...            ...
                                                an                       b
                                                        (〈q,un〉,un)


Linguagens Formais e Autômatos - P. Blauth Menezes                                        28
Correspondente Máquina de Moore

     • em geral, mais estados que Mealy

     • transições com saídas diferentes atingem um mesmo estado
         ∗ simulado por diversos estados (um para cada saída)
         ∗ estado é um par ordenado 〈estado, saída〉




Linguagens Formais e Autômatos - 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 saída
        ∗ conjunto de saídas possíveis de M

     • se δ(q0, a) = (q, u)

                                               δMO(〈q0, ε〉, a) = 〈q, u〉

     • se δ(q, b) = (p, v), então, 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 Autômatos - P. Blauth Menezes                              30
Indução em n prova que, ao reconhecer a entrada a1…an

     • se M passa pelos estados q0, q1, …, qn
     • e gera as saídas u1, …, un

     • então MO passa pelos estados 〈q0, ε〉, 〈q1, u1〉, …, 〈qn, un〉
     • e gera as saídas ε, u1, …, un




Linguagens Formais e Autômatos - P. Blauth Menezes                   31
Exp: Máquina de Mealy → Máquina de Moore
M = ({ a, β }, { q, p }, δ, q, { q, p }, { a, β })                Máquina de Mealy

     • compacta brancos de um texto


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

                                           (a,a)             (β,ε)




Linguagens Formais e Autômatos - P. Blauth Menezes                              32
MO = ({ a, β }, Q, δMO, 〈q, ε〉, F, { a, β }, δS)                                        Máquina de Moore

     • Q = F = { q, p } × { ε, a, β }



                                                            (〈p,β〉,β)

                                                        β               β


                                            (〈q,ε〉,ε)       β     a         (〈p,ε〉,ε)

                                                                                    β
                                                        a               a


                                                            (〈q,a〉,a)

                                                                   a

Linguagens Formais e Autômatos - P. Blauth Menezes                                                    33
Obs: Máquina de Mealy × Máquina de Moore
Mealy possui, em geral

     • menos estados que a correspondente Moore

Em aplicações práticas, sempre que possível,

     • usar Mealy preferencialmente a Moore

Em experimentos reais, significativa preferência das pessoas

     • associar as saídas aos estados (e não às transições).

     • sugere-se especial atenção a este fato




Linguagens Formais e Autômatos - P. Blauth Menezes             34
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      35
5.4 Hipertexto e Hipermídia como
    Autômato Finito com Saída
◆    Hipertexto
     • ponteiros ou links entre diversas páginas

     • texto possui “âncoras” que apontam para páginas do documento

◆    Hipermídia
     • extensão desta noção para recursos multimídia
        ∗ imagens, animações e sons




Linguagens Formais e Autômatos - P. Blauth Menezes                    36
◆    Noção de hipertexto
     • proposta por Vannevar Bush em 1945, objetivando
        ∗ armazenar uma grande quantidade de documentos
        ∗ interligados de acordo com uma semântica de associação
        ∗ flexibilizando/otimizando tempos de recuperação de informações

◆    Associação hipertexto/hipermídia à WWW
     • documentos com ponteiros fisicamente codificados nas páginas
     • tal solução compromete
        ∗ reusabilidade e atualização dos recursos usados

◆    Idealmente, hipertexto (hipermídia) deve possuir
     • estrutura navegacional independente dos dados sobre a qual é
       construído

Linguagens Formais e Autômatos - P. Blauth Menezes                    37
◆    Hipertextos (hipermídias) vistos como AF com saída
     • alfabeto de entrada: conjunto de rótulos dos ponteiros
        ∗ modificações no alfabeto?

     • função programa: estrutura navegacional
        ∗ determina a estruturação lógica
        ∗ modificações na função programa?

     • alfabeto de saída: conjunto de recursos hipertexto/hipermídia
        ∗ armazenados na base de dados
        ∗ modificações no alfabeto de saída?

     • palavra de saída: uma página, composta por símbolos do alfabeto
       de saída (recursos hipertexto/hipermídia) “concatenados”
        ∗ modificações nas saídas?


Linguagens Formais e Autômatos - P. Blauth Menezes                       38
◆    Resultado
     • páginas e ponteiros de um hipertexto/hipermídia em um sítio

     • cada autômato com saída: visão da mesma base de dados

◆    Hipermídia vista como um autômato finito com saída
     • pode possuir restrições nos tempos/sincronizações entre mídias
           ∗ decorrentes das limitações de expressividade das LR
           ∗ limitações sobre o que os autômatos finitos podem computar




Linguagens Formais e Autômatos - P. Blauth Menezes                        39
Exp: Hiperdocumento como Autômato Finito com Saída
Hipertexto com objetivo de disponibilizar um Curso sobre Autômatos
com Saída na WWW, usando Máquina de Moore

Alfabeto de entrada: { próxima, exercício, anterior, resumos, saída }
Alfabeto de saída: { A, B, C, D, E, F, G, H, I, J, K, L, M }

     •   A - Introdução AF                           H - Exercício Máquina de Mealy
     •   B - Definição AFD                            I - Definição Máquina de Moore
     •   C - Exemplo AFD                              J - Exemplo Máquina de Moore
     •   D - Exercício AFD                           K - Exercício Máquina de Moore
     •   E - Introdução AF com Saída                                  L - Conclusões
     •   F - Definição Máquina de Mealy                                       M - Fim
     •   G - Exemplo Máquina de Mealy



Linguagens Formais e Autômatos - P. Blauth Menezes                                 40
Autômatos     Finitos
                                                                          A       ...
                                                                                  pr ó x i ma
                             Definição AFD
                             ...
                             Exemplo AFD                             próxima
                             ...                                                                      Exercício AFD
                                                                BC    exercício                 D
                             pr ó x i ma    ex er c í c i o s                                         ...
                                                                                                      anterior
                                                                        anterior

                             Aut. Finitos com Saída                  próxima
                             ...
                             pr ó x i ma                         E



                             Definição Mealy
                                                                     próxima
                             ...
                             Exemplo Mealy                                                            Exercício   Mealy
                                                                FG    exercício                 H
                             ...                                                                      ...
                             pr ó x i ma    ex er c í c i o s                                         anterior
                                                                        anterior

                                                                     próxima
                             Definição Moore                                                          Exercício Moore
                                                                IJ    exercício                 K
                             ...                                                                      ...
                             Exemplo Moore                                                            anterior
                             ...                                        anterior
                             pr ó x i ma    ex er c í c i o s
                                                                     próxima
                                                                 L                                        Definição AFD
                                                                      resumos                   BFI
                                                                                                          ...
                             Conclusões                                                                   Máquina de Mealy
                             ...                                         anterior                         ...
                             saída               resumos                                                  Máquina de Moore
                                                                     saída
                                                                                                          ...
                                                                 M                                        anterior
                             Fim




Linguagens Formais e Autômatos - P. Blauth Menezes                                                                           41
◆    Observe
     • fragmentos de hipertextos são concatenados, compondo páginas

     • mesmos fragmentos são usados em mais de uma página
        ∗ reuso de fragmentos de hipertextos

     • se um fragmento for alterado na base de dados
        ∗ todas referências são automaticamente alteradas no autômato

     • símbolos do alfabeto de entrada são rótulos de ponteiros

◆    Exercício
     • Máquina de Mealy




Linguagens Formais e Autômatos - P. Blauth Menezes                      42
◆    Vantagens
     • base de dados
        ∗ alto grau de modularização dos recursos
        ∗ facilidade de reuso desses recursos

     • independência da estrutura navegacional (programa) do conteúdo
        ∗ modificações na estrutura navegacional
        ∗ não influem no conteúdo (e vice-versa)

     • facilidade
        ∗ criação/manutenção de hipertextos/hipermídias
        ∗ criação de hipertexto/hipermídia sobre algum já existente

     • interface gráfica simples e direta (AF como diagrama)

     • implementação trivial

Linguagens Formais e Autômatos - P. Blauth Menezes                      43
◆    Exercício: não-determinismo
     • interpretação no contexto de hipertextos/hipermídias na WWW??




Linguagens Formais e Autômatos - P. Blauth Menezes                     44
5 – Autômato Finito com Saída
     5.1 Máquina de Mealy
     5.2 Máquina de Moore
     5.3 Equivalência das Máquina de Moore e Mealy
     5.4 Hipertexto e Hipermídia como Autômato Finito
         com Saída
     5.5 Animação como Autômato Finito com Saída




Linguagens Formais e Autômatos - P. Blauth Menezes      45
5.5 Animação como AF com Saída
◆    Sistemas de animação para
     • criação

     • apresentação de animações

◆    Podem ser
     • Tempo real
        ∗ imagem exibida é computada no momento da visualização

     • Quadro-a-quadro
        ∗ imagem exibida é previamente computada e armazenada


Linguagens Formais e Autômatos - P. Blauth Menezes                46
◆    World Wide Web
     • sistemas de animação são especialmente importantes

     • grande parte de seu conteúdo contém animações

◆    Questões importantes
     • taxa de transmissão

     • espaço de armazenamento

     • tempo de processamento




Linguagens Formais e Autômatos - P. Blauth Menezes          47
◆    Sistemas de animação quadro-a-quadro na WWW
     •   AVI - Audio Video Interleave
     •   MPEG - Moving Picture Expert Group
     •   QuickTime
     •   GIF - Graphics Interchange Format

◆    Características desejáveis de um sistema de animação
     • reutilização
        ∗ seqüências de imagens
        ∗ partes específicas de imagens
        ∗ para compor animações a partir de animações existentes

     • busca de informações (principamente em animações complexas)
        ∗ ocorrência de determinadas condições ao longo da animação

Linguagens Formais e Autômatos - P. Blauth Menezes                    48
◆    Animações quadro-a-quadro vistas como AF c/ saída
     • cada autômato: um ator
     • composição de atores em camadas: animações

◆    Cada ator
     • fita de entrada independente
     • alfabeto de saída: conjunto de imagens e sons elementares do ator
     • palavra de saída
         ∗ imagem / som do ator
         ∗ a cada instante da animação

     • alfabeto de entrada: conjunto de ações possíveis
     • função programa: comportamento do ator




Linguagens Formais e Autômatos - P. Blauth Menezes                    49
◆    Desejável estender o modelo com facilidades
     específicas para animações
     • controle de tempos
     • transformações aplicadas a imagem ou som

◆    Uma solução: célula de fita de entrada é uma tripla
     • símbolo do alfabeto de entrada
     • tempo de processamento da transição (exibição da imagem)
     • transformação aplicada
         ∗ imagem: posicionamento, rotação, etc.
         ∗ som: volume, equalização, etc.




Linguagens Formais e Autômatos - P. Blauth Menezes                50
Exp: Animação como AF com Saída
Atores

     • cobra capaz de se movimentar, abocanhar e rir

     • maçã que pode estar ou não mordida

Animação

     • cobra eventualmente abocanha a maçã (Máquina de Mealy)




Linguagens Formais e Autômatos - P. Blauth Menezes              51
• imagens dos atores: camadas, compondo quadros das animações



Linguagens Formais e Autômatos - P. Blauth Menezes               52
• sincronização dos atores: controle de tempos
Linguagens Formais e Autômatos - P. Blauth Menezes    53
◆    Observe que
     • alteração algum símbolo do alfabeto de saída (imagem elementar)
        ∗ todas referências são automaticamente alteradas

     • ator pode ser reusado na composição de uma outra animação

     • mesmo ator pode ser usado diversas vezes em uma animação
        ∗ exemplo: animação com diversas cobras independentes

Exercício

     • Máquina de Moore




Linguagens Formais e Autômatos - P. Blauth Menezes                   54
◆    Vantagens
     • encapsulamento das propriedades estéticas e comportamentais em
       uma unidade básica (ator) favorece
        ∗ reuso (instanciação) em diferentes animações
        ∗ existe apenas um autômato (e diversas fitas de entrada)
     • independência da estrutura comportamental (programa) do
       conteúdo das imagens/sons
        ∗ modificações na estrutura comportamental
        ∗ não influem no conteúdo das imagens/sons (e vice-versa)
     • facilidade
        ∗ criação e manutenção de atores e animações
        ∗ criação de ator/animação sobre algum já existente
     • interface gráfica simples e direta (AF como diagrama)
     • implementação trivial
Linguagens Formais e Autômatos - P. Blauth Menezes                  55
◆    Importante vantagem (animações complexas)
            buscas de informações sobre a ocorrência de determinadas
                      condições ao longo de uma animação

     • usando
        ∗ estrutura de estados
        ∗ algumas informações adicionais




Linguagens Formais e Autômatos - P. Blauth Menezes                     56
◆    Comparação com modelos usuais quadro-a-quadro
     • importante vantagem: tamanho de arquivo (taxa de transferência)
     • pode montar cada quadro no momento em que é exibido
        ∗ mesma imagem exibida em diferentes momentos da animação
        ∗ sem necessidade de codificar (ou transmitir) novamente

     • o mesmo para
        ∗ diferentes instâncias do mesmo ator
        ∗ diferentes atores que usam o mesmo alfabeto de saída

◆    Casos reais
     • 20% ou menos do espaço usualmente requerido por um GIF




Linguagens Formais e Autômatos - P. Blauth Menezes                       57
◆    Exercício: não-determinismo
     • interpretação no contexto de animações???




Linguagens Formais e Autômatos - P. Blauth Menezes   58
Linguagens Formais e Autômatos
                                                     P. Blauth Menezes

                      1       Introdução e Conceitos Básicos
                      2       Linguagens e Gramáticas
                      3       Linguagens Regulares
                      4       Propriedades das Linguagens Regulares
                      5       Autômato Finito com Saída
                      6       Linguagens Livres do Contexto
                      7       Propriedades e Reconhecimento das Linguagens
                              Livres do Contexto
                      8       Linguagens Recursivamente Enumeráveis e
                               Sensíveis ao Contexto
                      9       Hierarquia de Classes e Linguagens e Conclusões

Linguagens Formais e Autômatos - P. Blauth Menezes                              59
Linguagens Formais e
                       Autômatos
                                            P. Blauth Menezes
                                                     blauth@inf.ufrgs.br

                   Departamento de Informática Teórica
                     Instituto de Informática / UFRGS




Linguagens Formais e Autômatos - P. Blauth Menezes                         60

More Related Content

What's hot

Mise en place d’un serveur de messagerie sous Windows
Mise en place d’un serveur de messagerie sous WindowsMise en place d’un serveur de messagerie sous Windows
Mise en place d’un serveur de messagerie sous WindowsJeff Hermann Ela Aba
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsArnaud Bouchez
 
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQueryXML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQueryRachid NID SAID
 
[Product Launch] Jedox 7 - What's New
[Product Launch] Jedox 7 - What's New [Product Launch] Jedox 7 - What's New
[Product Launch] Jedox 7 - What's New Jedox
 
Microsoft Azure Overview Class 1
Microsoft Azure Overview Class 1Microsoft Azure Overview Class 1
Microsoft Azure Overview Class 1MH Muhammad Ali
 
Alphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm
 
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm
 
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...Alphorm
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web ServicesFabio Leal
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Chris Richardson
 
[Telme]Air Gate User Guide Esp
[Telme]Air Gate User Guide Esp[Telme]Air Gate User Guide Esp
[Telme]Air Gate User Guide EspDavid Rodriguez
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultasjulianaveregue
 
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm
 

What's hot (20)

Mise en place d’un serveur de messagerie sous Windows
Mise en place d’un serveur de messagerie sous WindowsMise en place d’un serveur de messagerie sous Windows
Mise en place d’un serveur de messagerie sous Windows
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side Notifications
 
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQueryXML Avancé : DTD, XSD, XPATH, XSLT, XQuery
XML Avancé : DTD, XSD, XPATH, XSLT, XQuery
 
[Product Launch] Jedox 7 - What's New
[Product Launch] Jedox 7 - What's New [Product Launch] Jedox 7 - What's New
[Product Launch] Jedox 7 - What's New
 
Plano de Ensino - Bando de Dados
Plano de Ensino - Bando de DadosPlano de Ensino - Bando de Dados
Plano de Ensino - Bando de Dados
 
Marzouk jsp
Marzouk jspMarzouk jsp
Marzouk jsp
 
Microsoft Azure Overview Class 1
Microsoft Azure Overview Class 1Microsoft Azure Overview Class 1
Microsoft Azure Overview Class 1
 
Alphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau InitiationAlphorm.com Formation PowerShell : Niveau Initiation
Alphorm.com Formation PowerShell : Niveau Initiation
 
Scaling DNS
Scaling DNSScaling DNS
Scaling DNS
 
Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11 Alphorm.com Formation VMware Workstation 11
Alphorm.com Formation VMware Workstation 11
 
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
Alphorm.com Formation Mettre en oeuvre Cisco MPLS (CCNP SP et CCIE SP) : L'es...
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
 
Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)Developing event-driven microservices with event sourcing and CQRS (phillyete)
Developing event-driven microservices with event sourcing and CQRS (phillyete)
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
[Telme]Air Gate User Guide Esp
[Telme]Air Gate User Guide Esp[Telme]Air Gate User Guide Esp
[Telme]Air Gate User Guide Esp
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
Alphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancéAlphorm.com Formation Hacking et Sécurité , avancé
Alphorm.com Formation Hacking et Sécurité , avancé
 
Banco de Dados 2: Controle de Concorrência
Banco de Dados 2: Controle de ConcorrênciaBanco de Dados 2: Controle de Concorrência
Banco de Dados 2: Controle de Concorrência
 
Azure Hub spoke v1.0
Azure Hub spoke v1.0Azure Hub spoke v1.0
Azure Hub spoke v1.0
 

More from Computação Depressão

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídosComputação Depressão
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saídaComputação Depressão
 

More from Computação Depressão (20)

Sd08 (si) sistemas de arquivos distribuídos
Sd08 (si)   sistemas de arquivos distribuídosSd08 (si)   sistemas de arquivos distribuídos
Sd08 (si) sistemas de arquivos distribuídos
 
Sd06 (si) exclusão mútua
Sd06 (si)   exclusão mútuaSd06 (si)   exclusão mútua
Sd06 (si) exclusão mútua
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sd04 (si) comunicação em sd
Sd04 (si)   comunicação em sdSd04 (si)   comunicação em sd
Sd04 (si) comunicação em sd
 
Sd03 (si) conceitos básicos de sd
Sd03 (si)   conceitos básicos de sdSd03 (si)   conceitos básicos de sd
Sd03 (si) conceitos básicos de sd
 
Sd02 (si) gerenciamento de entrada e saída
Sd02 (si)   gerenciamento de entrada e saídaSd02 (si)   gerenciamento de entrada e saída
Sd02 (si) gerenciamento de entrada e saída
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Ufbamat2013
Ufbamat2013Ufbamat2013
Ufbamat2013
 
Ufbaingles2013
Ufbaingles2013Ufbaingles2013
Ufbaingles2013
 
Ufbagab mat 2013
Ufbagab mat 2013Ufbagab mat 2013
Ufbagab mat 2013
 
Ufbagab ingles2013
Ufbagab ingles2013Ufbagab ingles2013
Ufbagab ingles2013
 
Ufbagab fis 2013
Ufbagab fis 2013Ufbagab fis 2013
Ufbagab fis 2013
 
Ufbafisqui2013
Ufbafisqui2013Ufbafisqui2013
Ufbafisqui2013
 
Ufbagab qui 2013
Ufbagab qui 2013Ufbagab qui 2013
Ufbagab qui 2013
 
Questesdetecnologia ano2002
Questesdetecnologia ano2002Questesdetecnologia ano2002
Questesdetecnologia ano2002
 
Questesdematemtica ano2003
Questesdematemtica ano2003Questesdematemtica ano2003
Questesdematemtica ano2003
 
Questesdematemtica ano2002
Questesdematemtica ano2002Questesdematemtica ano2002
Questesdematemtica ano2002
 
Questesdefundamentos ano2003
Questesdefundamentos ano2003Questesdefundamentos ano2003
Questesdefundamentos ano2003
 
Questesdefundamentos ano2002
Questesdefundamentos ano2002Questesdefundamentos ano2002
Questesdefundamentos ano2002
 

05 automato finito com saida

  • 1. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1
  • 2. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 2
  • 3. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 3
  • 4. 5 – Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 4
  • 5. 5 Autômato Finito com Saída ◆ Conceito básico de autômato finito • aplicações práticas restritas • informação de saída limitada à lógica binária aceita/rejeita ◆ Geração de uma palavra de saída • estende a definição de Autômato Finito • mesma classe de linguagens reconhecidas ◆ As saídas podem ser associadas • às transições: Máquina de Mealy • aos estados Máquina de Moore Linguagens Formais e Autômatos - P. Blauth Menezes 5
  • 6. A saída não pode ser lida: não é memória auxiliar • definida sobre um alfabeto especial: alfabeto de símbolos de saída ∗ pode ser igual ao alfabeto de entrada • saída: fita de saída, independente da de entrada • cabeça da fita de saída ∗ move uma célula para a direita a cada símbolo gravado • resultado do processamento ∗ estado final (condição de aceita/rejeita) ∗ informação contida na fita de saída Linguagens Formais e Autômatos - P. Blauth Menezes 6
  • 7. Máquinas de Mealy e Moore • modificações sobre o AFD • exercício ∗ não-determinismo ∗ movimentos vazios ◆ Aplicações dos autômatos finitos com saída • tradicionais ∗ analisador léxico ∗ processador de textos … • WWW (World Wide Web) ∗ hipertexto e hipermídia ∗ animação quadro-a-quadro Linguagens Formais e Autômatos - P. Blauth Menezes 7
  • 8. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 8
  • 9. 5.1 Máquina de Mealy ◆ Para cada transição da máquina • gera uma palavra de saída (pode ser vazia) Linguagens Formais e Autômatos - P. Blauth Menezes 9
  • 10. Def: Máquina de Mealy M = (Σ, Q, δ, q0, F, Δ) • Σ - alfabeto (de símbolos) de entrada • Q - conjunto de estados (finito) • δ - função programa ou função de transição (função parcial) δ: Q × Σ → Q × Δ* • q 0 - elemento distinguido de Q: estado inicial • F - subconjunto de Q: conjunto de estados finais • Δ - alfabeto (de símbolos) de saída ◆ Máquina de Mealy × AFD • Σ, Q, q0 e F são como no AFD Linguagens Formais e Autômatos - P. Blauth Menezes 10
  • 11. Computação, para entrada w • sucessiva aplicação da função programa • para cada símbolo de w (da esquerda para a direita) • até ocorrer uma condição de parada ◆ Palavra vazia como saída • nenhuma gravação é realizada • não move a cabeça da fita de saída ◆ Se todas as transições geram saída vazia • processa como se fosse um AFD ◆ Definição formal da função programa estendida • exercício Linguagens Formais e Autômatos - P. Blauth Menezes 11
  • 12. Exp: Máquina de Mealy: Diálogo Aplicação comum e recomendada para os autômatos com saída • projeto de diálogo entre um programa e o seu usuário • determina, eventualmente, ações internas ao sistema Diálogo pode ser de dois tipos • comandado pelo programa • comandado pelo usuário Linguagens Formais e Autômatos - P. Blauth Menezes 12
  • 13. Exp: ...Máquina de Mealy: Diálogo Exemplo de diálogo que cria e atualiza arquivos • 〈…〉 entrada fornecida pelo usuário (em um teclado, por exemplo) • "…" saída gerada pelo programa (em um vídeo, por exemplo) • […] ação interna ao programa (sem comunicação com o usuário) • (…) resultado de ação interna ao programa (entrada no diagrama) Máquina de Mealy M = (Σ, { q0, q1, …, q8, qf }, δ, q0, { qf }, Δ) • Σ e Δ: símbolos (palavras do português) de entrada/saída válidos Linguagens Formais e Autômatos - P. Blauth Menezes 13
  • 14. 〈qualquer info〉 〈fim〉 "ação?" "fim programa" q0 qf q1 〈cria arq〉 〈atu arq〉 "nome?" "nome?" q2 q4 〈nome〉 〈nome〉 [existe?] [existe?] (sim) (não) "erro" "erro" q3 q5 (não) (sim) "ação?" "ação?" 〈fim〉 "operação q6 abandonada" 〈inclui info〉 "info..." q7 〈inclui info〉 "info..." 〈fim infos〉 "salva arq?" 〈sim〉 〈não〉 "arq salvo" q8 "arq não salvo" [salva arq] [abandona arq] Linguagens Formais e Autômatos - P. Blauth Menezes 14
  • 15. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 15
  • 16. 5.2 Máquina de Moore ◆ Possui uma segunda função • gera uma palavra de saída (pode ser vazia) • para cada estado da máquina Linguagens Formais e Autômatos - P. Blauth Menezes 16
  • 17. Def: Máquina de Moore M = (Σ, Q, δ, q0, F, Δ, δS) • Σ - alfabeto (de símbolos) de entrada • Q - conjunto de estados (finito) • δ - função programa ou função de transição (função parcial) δ: Q × Σ → Q • q 0 - elemento distinguido de Q: estado inicial • F - subconjunto de Q: conjunto de estados finais • Δ - alfabeto (de símbolos) de saída • δS - função de saída (função total) δS: Q → Δ* Linguagens Formais e Autômatos - P. Blauth Menezes 17
  • 18. Máquina de Moore × AFD & Mealy • Σ, Q, δ, q0 e F são como no AFD • Δ é como na Máquina de Mealy ◆ Computação, para entrada w • sucessiva aplicação da função programa ∗ para cada símbolo de w (da esquerda para a direita) ∗ até ocorrer uma condição de parada • juntamente com a sucessiva aplicação da função de saída ∗ cada estado atingido Linguagens Formais e Autômatos - P. Blauth Menezes 18
  • 19. Palavra vazia como saída • nenhuma gravação é realizada • não move a cabeça da fita de saída ◆ Se todas as transições geram saída vazia • processa como se fosse um AFD ◆ Definição formal da função programa estendida • exercício Linguagens Formais e Autômatos - P. Blauth Menezes 19
  • 20. Exp: Máquina de Moore: Análise Léxica Analisador Léxico • autômato finito (em geral, determinístico) • identifica os componentes básicos da linguagem ∗ números, identificadores, separadores, etc Máquina de Moore como Analisador Léxico • cada estado final ∗ associado a uma unidade léxica ∗ a saída descreve ou codifica a unidade léxica identificada • estados não-finais ∗ em geral, saída vazia Linguagens Formais e Autômatos - P. Blauth Menezes 20
  • 21. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 21
  • 22. 5.3 Equivalência das Máquinas de Moore e de Mealy ◆ Equivalência • não é válida para a entrada vazia (por quê?) • demais casos ∗ pode ser facilmente verificada Linguagens Formais e Autômatos - P. Blauth Menezes 22
  • 23. Teorema: Máquina de Moore → Máquina de Mealy Toda Máquina de Moore pode ser simulada por uma Máquina de Mealy, para entradas não vazias Prova: (por indução) Supondo a1 (q0,u0) (q1,u1) a0 Correspondente Mealy ??? Linguagens Formais e Autômatos - P. Blauth Menezes 23
  • 24. a1 (q0,u0) (q1,u1) a0 qe (a1,u0u1) (a0,u0u0) q1 (a1,u1) q0 (a0,u0) Linguagens Formais e Autômatos - P. Blauth Menezes 24
  • 25. M = (Σ, Q, δ, q0, F, Δ, δS), Máquina de Moore qualquer Correspondente Mealy ME = (Σ, Q ∪ { qe }, δME, qe, F, Δ) Estado qe • referenciado somente na primeira transição executada • garante a geração da saída referente ao estado inicial q0 de Moore Função programa δME • δME(qe, a) = (δ(q0, a), δS(q0) δS(δ(q0, a))) • δME(q, a) = (δ(q, a), δS(δ(q, a))) Linguagens Formais e Autômatos - P. Blauth Menezes 25
  • 26. Indução em n > 0 prova que, de fato, ME (Mealy) simula M (Moore) • ao reconhecer a entrada a1…an • se M passa pelos estados q0, q1, …, qn • e gera as saídas u0, u1, …, un, • então ME passa pelos estados qe, q0, q1, …, qn • e gera as saídas u0u 1, …, un Linguagens Formais e Autômatos - P. Blauth Menezes 26
  • 27. Teorema: Máquina de Mealy → Máquina de Moore Toda Máquina de Mealy pode ser simulada por uma Máquina de Moore Prova: (por indução) (a1,u1) ... (ai,ui) (b,v) q p ... (an,un) Correspondente Moore ??? Linguagens Formais e Autômatos - P. Blauth Menezes 27
  • 28. (a1,u1) ... (ai,ui) (b,v) q p ... (an,un) a1 b (〈q,u1〉,u1) ... ... ai b (〈q,ui〉,ui) (〈p,v〉,v) ... ... an b (〈q,un〉,un) Linguagens Formais e Autômatos - P. Blauth Menezes 28
  • 29. Correspondente Máquina de Moore • em geral, mais estados que Mealy • transições com saídas diferentes atingem um mesmo estado ∗ simulado por diversos estados (um para cada saída) ∗ estado é um par ordenado 〈estado, saída〉 Linguagens Formais e Autômatos - P. Blauth Menezes 29
  • 30. M = (Σ, Q, δ, q0, F, Δ), Mealy qualquer. Correspondente Moore MO = (Σ, (Q × S(δ)) ∪ { 〈q0, ε〉 }, δMO, 〈q0, ε〉, F × S(δ), Δ, δS) • S(δ): imagem de δ, restrita à componente saída ∗ conjunto de saídas possíveis de M • se δ(q0, a) = (q, u) δMO(〈q0, ε〉, a) = 〈q, u〉 • se δ(q, b) = (p, v), então, 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 Autômatos - P. Blauth Menezes 30
  • 31. Indução em n prova que, ao reconhecer a entrada a1…an • se M passa pelos estados q0, q1, …, qn • e gera as saídas u1, …, un • então MO passa pelos estados 〈q0, ε〉, 〈q1, u1〉, …, 〈qn, un〉 • e gera as saídas ε, u1, …, un Linguagens Formais e Autômatos - P. Blauth Menezes 31
  • 32. Exp: Máquina de Mealy → Máquina de Moore M = ({ a, β }, { q, p }, δ, q, { q, p }, { a, β }) Máquina de Mealy • compacta brancos de um texto (a,a) q p (β,β) (a,a) (β,ε) Linguagens Formais e Autômatos - P. Blauth Menezes 32
  • 33. MO = ({ a, β }, Q, δMO, 〈q, ε〉, F, { a, β }, δS) Máquina de Moore • Q = F = { q, p } × { ε, a, β } (〈p,β〉,β) β β (〈q,ε〉,ε) β a (〈p,ε〉,ε) β a a (〈q,a〉,a) a Linguagens Formais e Autômatos - P. Blauth Menezes 33
  • 34. Obs: Máquina de Mealy × Máquina de Moore Mealy possui, em geral • menos estados que a correspondente Moore Em aplicações práticas, sempre que possível, • usar Mealy preferencialmente a Moore Em experimentos reais, significativa preferência das pessoas • associar as saídas aos estados (e não às transições). • sugere-se especial atenção a este fato Linguagens Formais e Autômatos - P. Blauth Menezes 34
  • 35. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 35
  • 36. 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída ◆ Hipertexto • ponteiros ou links entre diversas páginas • texto possui “âncoras” que apontam para páginas do documento ◆ Hipermídia • extensão desta noção para recursos multimídia ∗ imagens, animações e sons Linguagens Formais e Autômatos - P. Blauth Menezes 36
  • 37. Noção de hipertexto • proposta por Vannevar Bush em 1945, objetivando ∗ armazenar uma grande quantidade de documentos ∗ interligados de acordo com uma semântica de associação ∗ flexibilizando/otimizando tempos de recuperação de informações ◆ Associação hipertexto/hipermídia à WWW • documentos com ponteiros fisicamente codificados nas páginas • tal solução compromete ∗ reusabilidade e atualização dos recursos usados ◆ Idealmente, hipertexto (hipermídia) deve possuir • estrutura navegacional independente dos dados sobre a qual é construído Linguagens Formais e Autômatos - P. Blauth Menezes 37
  • 38. Hipertextos (hipermídias) vistos como AF com saída • alfabeto de entrada: conjunto de rótulos dos ponteiros ∗ modificações no alfabeto? • função programa: estrutura navegacional ∗ determina a estruturação lógica ∗ modificações na função programa? • alfabeto de saída: conjunto de recursos hipertexto/hipermídia ∗ armazenados na base de dados ∗ modificações no alfabeto de saída? • palavra de saída: uma página, composta por símbolos do alfabeto de saída (recursos hipertexto/hipermídia) “concatenados” ∗ modificações nas saídas? Linguagens Formais e Autômatos - P. Blauth Menezes 38
  • 39. Resultado • páginas e ponteiros de um hipertexto/hipermídia em um sítio • cada autômato com saída: visão da mesma base de dados ◆ Hipermídia vista como um autômato finito com saída • pode possuir restrições nos tempos/sincronizações entre mídias ∗ decorrentes das limitações de expressividade das LR ∗ limitações sobre o que os autômatos finitos podem computar Linguagens Formais e Autômatos - P. Blauth Menezes 39
  • 40. Exp: Hiperdocumento como Autômato Finito com Saída Hipertexto com objetivo de disponibilizar um Curso sobre Autômatos com Saída na WWW, usando Máquina de Moore Alfabeto de entrada: { próxima, exercício, anterior, resumos, saída } Alfabeto de saída: { A, B, C, D, E, F, G, H, I, J, K, L, M } • A - Introdução AF H - Exercício Máquina de Mealy • B - Definição AFD I - Definição Máquina de Moore • C - Exemplo AFD J - Exemplo Máquina de Moore • D - Exercício AFD K - Exercício Máquina de Moore • E - Introdução AF com Saída L - Conclusões • F - Definição Máquina de Mealy M - Fim • G - Exemplo Máquina de Mealy Linguagens Formais e Autômatos - P. Blauth Menezes 40
  • 41. Autômatos Finitos A ... pr ó x i ma Definição AFD ... Exemplo AFD próxima ... Exercício AFD BC exercício D pr ó x i ma    ex er c í c i o s ... anterior anterior Aut. Finitos com Saída próxima ... pr ó x i ma E Definição Mealy próxima ... Exemplo Mealy Exercício Mealy FG exercício H ... ... pr ó x i ma    ex er c í c i o s anterior anterior próxima Definição Moore Exercício Moore IJ exercício K ... ... Exemplo Moore anterior ... anterior pr ó x i ma    ex er c í c i o s próxima L Definição AFD resumos BFI ... Conclusões Máquina de Mealy ... anterior ... saída resumos Máquina de Moore saída ... M anterior Fim Linguagens Formais e Autômatos - P. Blauth Menezes 41
  • 42. Observe • fragmentos de hipertextos são concatenados, compondo páginas • mesmos fragmentos são usados em mais de uma página ∗ reuso de fragmentos de hipertextos • se um fragmento for alterado na base de dados ∗ todas referências são automaticamente alteradas no autômato • símbolos do alfabeto de entrada são rótulos de ponteiros ◆ Exercício • Máquina de Mealy Linguagens Formais e Autômatos - P. Blauth Menezes 42
  • 43. Vantagens • base de dados ∗ alto grau de modularização dos recursos ∗ facilidade de reuso desses recursos • independência da estrutura navegacional (programa) do conteúdo ∗ modificações na estrutura navegacional ∗ não influem no conteúdo (e vice-versa) • facilidade ∗ criação/manutenção de hipertextos/hipermídias ∗ criação de hipertexto/hipermídia sobre algum já existente • interface gráfica simples e direta (AF como diagrama) • implementação trivial Linguagens Formais e Autômatos - P. Blauth Menezes 43
  • 44. Exercício: não-determinismo • interpretação no contexto de hipertextos/hipermídias na WWW?? Linguagens Formais e Autômatos - P. Blauth Menezes 44
  • 45. 5 – Autômato Finito com Saída 5.1 Máquina de Mealy 5.2 Máquina de Moore 5.3 Equivalência das Máquina de Moore e Mealy 5.4 Hipertexto e Hipermídia como Autômato Finito com Saída 5.5 Animação como Autômato Finito com Saída Linguagens Formais e Autômatos - P. Blauth Menezes 45
  • 46. 5.5 Animação como AF com Saída ◆ Sistemas de animação para • criação • apresentação de animações ◆ Podem ser • Tempo real ∗ imagem exibida é computada no momento da visualização • Quadro-a-quadro ∗ imagem exibida é previamente computada e armazenada Linguagens Formais e Autômatos - P. Blauth Menezes 46
  • 47. World Wide Web • sistemas de animação são especialmente importantes • grande parte de seu conteúdo contém animações ◆ Questões importantes • taxa de transmissão • espaço de armazenamento • tempo de processamento Linguagens Formais e Autômatos - P. Blauth Menezes 47
  • 48. Sistemas de animação quadro-a-quadro na WWW • AVI - Audio Video Interleave • MPEG - Moving Picture Expert Group • QuickTime • GIF - Graphics Interchange Format ◆ Características desejáveis de um sistema de animação • reutilização ∗ seqüências de imagens ∗ partes específicas de imagens ∗ para compor animações a partir de animações existentes • busca de informações (principamente em animações complexas) ∗ ocorrência de determinadas condições ao longo da animação Linguagens Formais e Autômatos - P. Blauth Menezes 48
  • 49. Animações quadro-a-quadro vistas como AF c/ saída • cada autômato: um ator • composição de atores em camadas: animações ◆ Cada ator • fita de entrada independente • alfabeto de saída: conjunto de imagens e sons elementares do ator • palavra de saída ∗ imagem / som do ator ∗ a cada instante da animação • alfabeto de entrada: conjunto de ações possíveis • função programa: comportamento do ator Linguagens Formais e Autômatos - P. Blauth Menezes 49
  • 50. Desejável estender o modelo com facilidades específicas para animações • controle de tempos • transformações aplicadas a imagem ou som ◆ Uma solução: célula de fita de entrada é uma tripla • símbolo do alfabeto de entrada • tempo de processamento da transição (exibição da imagem) • transformação aplicada ∗ imagem: posicionamento, rotação, etc. ∗ som: volume, equalização, etc. Linguagens Formais e Autômatos - P. Blauth Menezes 50
  • 51. Exp: Animação como AF com Saída Atores • cobra capaz de se movimentar, abocanhar e rir • maçã que pode estar ou não mordida Animação • cobra eventualmente abocanha a maçã (Máquina de Mealy) Linguagens Formais e Autômatos - P. Blauth Menezes 51
  • 52. • imagens dos atores: camadas, compondo quadros das animações Linguagens Formais e Autômatos - P. Blauth Menezes 52
  • 53. • sincronização dos atores: controle de tempos Linguagens Formais e Autômatos - P. Blauth Menezes 53
  • 54. Observe que • alteração algum símbolo do alfabeto de saída (imagem elementar) ∗ todas referências são automaticamente alteradas • ator pode ser reusado na composição de uma outra animação • mesmo ator pode ser usado diversas vezes em uma animação ∗ exemplo: animação com diversas cobras independentes Exercício • Máquina de Moore Linguagens Formais e Autômatos - P. Blauth Menezes 54
  • 55. Vantagens • encapsulamento das propriedades estéticas e comportamentais em uma unidade básica (ator) favorece ∗ reuso (instanciação) em diferentes animações ∗ existe apenas um autômato (e diversas fitas de entrada) • independência da estrutura comportamental (programa) do conteúdo das imagens/sons ∗ modificações na estrutura comportamental ∗ não influem no conteúdo das imagens/sons (e vice-versa) • facilidade ∗ criação e manutenção de atores e animações ∗ criação de ator/animação sobre algum já existente • interface gráfica simples e direta (AF como diagrama) • implementação trivial Linguagens Formais e Autômatos - P. Blauth Menezes 55
  • 56. Importante vantagem (animações complexas) buscas de informações sobre a ocorrência de determinadas condições ao longo de uma animação • usando ∗ estrutura de estados ∗ algumas informações adicionais Linguagens Formais e Autômatos - P. Blauth Menezes 56
  • 57. Comparação com modelos usuais quadro-a-quadro • importante vantagem: tamanho de arquivo (taxa de transferência) • pode montar cada quadro no momento em que é exibido ∗ mesma imagem exibida em diferentes momentos da animação ∗ sem necessidade de codificar (ou transmitir) novamente • o mesmo para ∗ diferentes instâncias do mesmo ator ∗ diferentes atores que usam o mesmo alfabeto de saída ◆ Casos reais • 20% ou menos do espaço usualmente requerido por um GIF Linguagens Formais e Autômatos - P. Blauth Menezes 57
  • 58. Exercício: não-determinismo • interpretação no contexto de animações??? Linguagens Formais e Autômatos - P. Blauth Menezes 58
  • 59. Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 59
  • 60. Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 60