Aula 11 automato finitocomsaida

  • 1,778 views
Uploaded on

 

More in: Education , Travel , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,778
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
62
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Curso: Ciência da ComputaçãoAspectos Teóricos da Computação Aula 10 Autômato Finito com Saída
  • 2. Notas de AulaAspectos Teóricos da Computação 2/23
  • 3. Autômato Finito com SaídaÉ possível estender a definição de AutômatoFinito, incluindo-se a geração de uma palavra desaída.As saídas podem ser associadas:● às transições (Máquina de Mealy);● aos estados (Máquina de Moore).Em ambas as máquinas, a saída não pode serlida, ou seja, não pode ser usada como memóriaauxiliar. Aspectos Teóricos da Computação 3/23
  • 4. Autômato Finito com SaídaUm máquina com saída é como segue:● É definida sobre um alfabeto especial, denominado alfabeto de símbolos de saída, o qual pode ser igual ao alfabeto de entrada;● A saída é armazenada em uma fita de saída independente da entrada;● a cabeça da fita de saída move uma célula para a direita a cada símbolo gravado;● o resultado do processamento do autômato finito é o seu estado final (condição de aceita/rejeita) e a informação contida na fita de saída. 4/23 Aspectos Teóricos da Computação
  • 5. Máquina de MealyA Máquina de Mealy é um autômato finito modificado de forma a gerar umapalavra de saída, que pode ser vazia, para cada transição da máquina.Uma Máquina de Mealy M é um autômato finito determinístico com saídasassociadas às transições. É representada por uma 6-upla:M=(∑, Q, δ,q0, F, ∆)a) ∑ é um alfabeto de símbolos de entrada, ou simplesmente alfabeto de entrada;b) Q é um conjunto de estados possíveis do autômato o qual é finito;c) δ é uma função programa ou função de transição δ: Q x ∑ → Q x ∆*d) q0 é um elemento distinguido de Q denominado estado inicial;e) F é um subconjunto de Q, denominado conjunto de estados finais;f) ∆ é um alfabeto de símbolos de saída, ou simplesmente alfabeto de saída. Aspectos Teóricos da Computação 5/23
  • 6. Máquina de MealyA computação de uma Máquina de Mealy, para uma palavrade entrada w, consiste na sucessiva aplicação da funçãoprograma para cada símbolo de w (da esquerda para adireita) até ocorrer uma condição de parada. A palavra vaziacomo saída da função programa indica que nenhumagravação é realizada e, obviamente, não se move a cabeçada fita de saída. Se todas as transições geram saída vazia,então a Máquina de Mealy processa como se fosse umautômato finito. Aspectos Teóricos da Computação 6/23
  • 7. Exemplo: Máquina de MealyUma aplicação comum e frequentemente recomendada para os autômatos com saída é o projeto dediálogo entre um programa e o seu usuário, gerando, eventualmente, ações internas aos sistema.Basicamente um diálogo pode ser de dois tipos: ● Comandado pelo programa; ● Comandado pelo usuário.Em qualquer caso, uma das principais dificuldades do projetista é a visualização do conjunto deeventos e ações que definam um diálogo adequado para as diversas situações possíveis.O exemplo que segue é uma Máquina de Mealy que trata algumas situações típicas de um diálogoque cria e atualiza arquivos. A seguinte simbologia é adotada no diagrama da função de transição:(…) entrada fornecida pelo uauá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 uma ação interna ao programa; é usado com entrada no diagrama.A Máquina de Mealy:M=(∑, {q0, q1, ..., q8, qf}, δ,q0, {qf}, ∆)é ilustrada no próximo slide. 7/23 Aspectos Teóricos da Computação
  • 8. q0 (qualquer info) qf (fim) “ação?” “fim progama” q1 (cria arq) (atu arq) “nome?” “nome?” q2 q4 (não) (sim) “erro” “erro” (fim) (nome) “operação (nome) [existe?] [existe?] abandonada” (sim) q3 q5 (não)“arq salvo” “arq não salvo”[salva arq] (não) (sim) [abandona arq] “ação?” “ação?” q6 (inclui info) “info...” (inclui info) q7 “info...” (fim infos) “salva arq?” q8 Aspectos Teóricos da Computação 8/23
  • 9. Máquina de MooreA máquina de Moore possui uma segundafunção, que gera uma palavra de saída, que podeser vazia, para cada estado da máquina. Aspectos Teóricos da Computação 9/23
  • 10. Máquina de MooreUma máquina de Moore é um autômato finito determinístico com saídasassociadas aos estados. É representada por um 7-upla:M= (∑, Q, δ,q0, F, ∆, δS)Na qual: a) Som é um alfabeto de símbolos de entrada, ou simplesmente alfabeto de entrada; b) Q é o conjunto de estados possíveis do autômato o qual é finito; c) δ é uma função programa ou função de transição: δ: Q x som → Q A qual é uma função parcial. d) Q0 é um elemento distinguido de Q, denominado estado inicial; e) F é um subconjunto de Q, denominado conjunto de estados finais; f) Δ é um alfabeto de símbolos de saída ou simplesmente alfabeto de saída; g) δS é uma função de saída: δS: Q → ∆* que é uma função total. Aspectos Teóricos da Computação 10/23
  • 11. Máquina de MooreA computação de uma Máquina de Moore, para uma palavra de entradaw, consiste na sucessiva aplicação de uma função programa para cadasímbolo de w (da esquerda para a direita) até ocorrer uma condição deparada, juntamente com a sucessiva aplicação da função de saída acada estado atingido. A palavra vazia como resultado da função de saídaindica que nenhuma gravação é realizada e não se move a cab eça dafita de saída. Se todos os estados geram saída vazia, então a Máquinade Moore processa como se fosse um autômato finito. Aspectos Teóricos da Computação 11/23
  • 12. Exemplo: Máquina de MooreUm exemplo comum de aplicação do conceito de Máquina de Moore é odesenvolvimento de analisadores léxicos de compiladores ou tradutoresde linguagem em geral. Basicamente um analisador léxico é umautômato finito que identifica os componentes básicos da linguagemcomo, por exemplo, números, identificadores, separadores etc.Uma Máquina de Moore como analisador léxico é como segue:● Um estado final é associado a cada unidade léxica;● Cada estado final possui uma saída (definida pela função de saída) que descreve ou codifica a unidade léxica identificada;● Para os demais estados (não finais), em geral, a saída gerada é a palavra vazia. Eventualmente pode ser não-vazia, se alguma informação adicional à codificação da unidade léxica é necessária. Aspectos Teóricos da Computação 12/23
  • 13. Hipertexto e Hipermídia como Autômato Finito com SaídaUm hipertexto é um texto cuja principal característica é a existência deponteiros ou links entre suas diversas páginas. Assim, certas páginas de textopossuem âncoras as quais apontam para outras páginas do documento.Hipermídia é a extensão dessa noção para recursos multimídias como imagens,animação e sons.A noção de hipertexto foi proposta por Vannevar Bush em 1945, com o objetivode armazenar uma grande quantidade de documentos interligados de acordocom uma semântica de associação, objetivando flexibilizar e otimizar o tempode recuperação de informações.A associação dos conceitos de hipertexto e de hipermídia à WWW (World WebWide) resultou em documentos nos quais, em geral, os ponteiros sãofisicamente codificados nas páginas. Entretanto, a solução, compromente areusabilidade e a atualização dos recursos utilizados na composição dohiperdocumento. De fato idealmente, um hipertexto, deve possuir estruturanavegacional independente da base de dados sobre a qual é construído. Aspectos Teóricos da Computação 13/23
  • 14. Hipertexto e Hipermídia como Autômato Finito com SaídaNesse contexto, hipertextos e hipermídias pode ser vistos como autômatosfinitos com saída, nos quais:a) O alfabeto de entrada corresponde ao conjunto de rótulos dos ponteiros;b) A função programa corresponde a estrutura navagacional;c) O alfabeto de saída corresponde ao conjunto de recursos hipertexto/hipermídia armazenados na base de dados;d) Cada palavra de saída gerada corresponde a uma página, composta por símbolos do alfabeto de saída (recursos hipertexto/hipermídia) “concatenados”.Assim cada autômato define um hipertexto/hipermídia o qual consiste de umconjunto de recursos independentes disponibilizados na base de dados.Mesmos recursos podem ser utilizados em diferentes hipertextos e hipermídias.A função transição determina a estrutura lógica, e as palavras de saída geradascontituem as páginas. O resultado é a estrutura de páginas e ponteiros de umhipertexto/hipermídia em um sítio na WWW. Cada autômato com saídacorresponde a uma diferente visão da mesma base de dados. Aspectos Teóricos da Computação 14/23
  • 15. Hipertexto e Hipermídia como Autômato Finito com SaídaUma hipermídia vista como um autômato finito com saída pode possuirrestrições nos controles de tempos e/ou sincronização entre diversas mídias,decorrente das limitações de expressividade das linguagens regulares (e,consequentemente, nas limitações sobre o que os autômatos finitos podemcomputar) Aspectos Teóricos da Computação 15/23
  • 16. Exemplo: Hiperdocumento como Autômato Finito com Saída.Suponha um hipertexto com objetivo de disponibilizar um Curso sobre autômatos com saída naWWW. Seguindo a abordagem de hipertextos vistos como autômatos finitos com saída é ilustradono próximo slide um exemplo de Máquina de Moore com tal objetivo, na qual:a) o alfabeto de entrada é o seguinte conjunto: {próxima, exercício, anterior, resumos, saída}b) o alfabeto de saída é o seguinte conjunto: {A,B,C,D,E,F,G,H,I,J,K,L,M}sendo que cada letra corresponde ao seguinte fragmento de hipertexto na base de dadosA Introdução aos Autômatos FinitosB Definição Autômato Finito DeterminísticoC Exemplo de Autômato Finito DeterminísticoD Exercício sobre Autômato FInito DeterminísticoE Introdução aos Autômatos FInitos com SaídaF Definição de Máquina de MealyG Exemplo de Máquina de MealyH Exercício sobre Máquina de MealyI Definição de Máquina de MooreJ Exemplo de Máquina de MooreK Exercício de Máquina de MooreL ConclusõesM Fim Aspectos Teóricos da Computação 16/23
  • 17. Exemplo: Hiperdocumento como Autômato Finito com Saída.Observe que:os fragmentos de hipertextos são concatenados, compondo páginas;mesmo fragmentos são usados em mais de uma página, facilitando o reuso de fragmentos dehipertextos;se um fragmento for alterado na base de dados, todas as suas referências são automaticamentesalteradas no autômato;símbolos do alfabeto de entrada são rótulos de ponteirosA estrutura de um hipertexto/hipermídia como um autômato finito com saída possui as seguintesvantagens:alto grau de modularização dos recursos que constituem a base de dados;facilidade de reuso desses recursos;independência da estrutura navegacional do conteúdo das páginas. Assim, modificações naestrutura navegacional não influem no conteúdo das páginas e vice-versa.facilidade de criação e de manutenção de hipertextos/hipermídias;facilidade de criação de hipertextos/hipermídias sobre um hipertexto/hipermídia já existente;interface gráfica simples e direta (decorrente da representação de um autômato finito como umdiagrama);facilidade de implementação (lembre-se de que a implementação de um simulador de autômatos étrivial). Aspectos Teóricos da Computação 17/23
  • 18. Autômatos Finitos Definição AFD … … A próxima Exemplo AFD ... próxima exercícios BC próxima Exercício AFD … exercício D anteriorAut. Finitos com Saída anterior… próximapróxima E Definição Mealy próxima Exercício Mealy … … Exercícios H anterior Exemplo Mealy FG ... Anterior próxima exercícios próxima Exercício Moore Exercícios … Definição Moore K anterior … IJ Anterior Exemplo Moore ... próxima próxima exercícios Definição ADF … resumos Máquina de Mealy Conclusões L BFI … … anterior Máquina de Moore saída resumos ... saída anterior Fim M Aspectos Teóricos da Computação 18/23
  • 19. Animação como Autômato Finito com SaídaOs sistemas de animação usados para criação e apresentação de animações podem serclassificados em dois tipos a saber:a) tempo real, no qual cada imagem a ser exibida é computada no momento de suavisualização.b) Quadro a quadro, no qual cada imagem a ser exibida é previamente computada earmazenada.COrretamente, sistema de animação são especialmente importantes no contexto daWorld Wide Web, pois grande parte de seu conteúdo contém animações. Portantoquestões como taxa de transmissão , espaço de armazenamento e tempo deprocessamento são importantesEntre os sistemas de animação quadro-a-quadro encontrados na WWW, destacam-se:● AVI - Audio Vídeo Interleave;● MPEG - Moving Picture Expert Group;● Quicktime;● GIF - Graphics Interchange Format. Aspectos Teóricos da Computação 19/23
  • 20. Animação como Autômato Finito com SaídaEntre as características desejáveis de um sistema de animação , destacam-se:reutilização de uma sequência de imagens ou de partes específicas de imagens paracompor animações a partir de animações existentes;busca de informações sobre a ocorrência de determinadas condições ao longo daanimação. Trata-se de uma característica especialmente importante em animações maiscomplexas.Analogamente aos hipertextos e hipermídias, animações quadro-a-quadro podem servistas como autômatos finitos com saída. Neste contexto, cada autômato corresponde aum ator, e a composição de atores em camadas constituem animações. Cada ator possuiuma fita de entrada independente. Assim, para cada ator:a) o alfabeto de saída corresponde ao conjunto de imagens e sons elementares do ator;b) Cada palavra de saída gerada corresponde a uma imagem e/ou som do ator a cadainstante da animação;c) o alfabeto de entrada corresponde ao conjunto de ações possíveis;d) A função programa corresponde ao comportamento do ator. Aspectos Teóricos da Computação 20/23
  • 21. Animação como Autômato Finito com SaídaÉ desejável estender o modelo de autômatos com saída, prevendo facilidadesespecíficas para animaç~eos, como controle de tempos e transformações aplicadas aimagem ou som. Uma soluação é prever que cada célula de fita de entrada é compostapor uma tripla ordenada contendo: ● um símbolo do alfabeto de entrada; ● o tempo de processamento da transição (e consequetemente da exibição da correspondente imagem) ● a transformação aplica à imagem (posicionamento, rotação etc) e/ou ao som (volume, equalização etc) de saída. Aspectos Teóricos da Computação 21/23
  • 22. Exemplo: Animação como Autômato Finito com Saída.Considere os seguintes atores: ● uma cobra capaz de se movimentar, abocanhar e rir; ● uma maça que pode estar ou não mordida. ;Suponha que é desejada uma animação composta pelos dois atores, na qual acobra eventualmente abocanha a maça.Olhar figuras 5.7 e 5.8 do livro textoObserve que:as imagens dos atores são organizadas em camadas, compondo quadros deanimações;a sincronização dos atores é dada por controle de tempos;se algum símbolo do alfabeto de saída (imagem elementar) de um dos atoresfor alterado, todas as suas referências são automaticamente alteradas;cada um dos atores pode ser reusado diversas vezes em uma mesmaanimação. Por exemplo uma animação com diversas cobras agindoindependentemente.Mais detalhes na página 112, capítulo 5.5 do livro texto. Aspectos Teóricos da Computação 22/23
  • 23. Exercícios1. Desenvolva uma: (a) Máquina de Mealy; (b) Máquina de Moore; sobre o alfabeto de entrada {x,β,●}. O objetivo é tratar brancos (β) corretamente em um texto. Assim, a máquina deve analisar um texto (palavra sobre o alfabeto, garantindo que: ● Não existam brancos contíguos; ● o texto deve iniciar por x e terminar por ● ● sejam eliminados eventuais β antes de um ● ● antes do ● exista x.Note-se que o autômato somente pode alterar os brancos no texto.Caso o resto do texto não esteja de acordo, deve ser rejeitado(neste caso a saída pode ser qualquer). Por exemplo: ● a entrada ββxxββxxββxxββ●βββ deve ser aceita e gera a saída xxβxxβxxβ● ● a entrada ●x deve ser rejeitada. Aspectos Teóricos da Computação 23/23