Caixa Postal 3167 CEP Criciúma, SC, Brasil

Documentos relacionados
Linguagens Regulares. Prof. Daniel Oliveira

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Linguagens Formais e Autômatos P. Blauth Menezes

AgaStudio: Ambiente de Criação e Manipulação de Animações Baseadas em Autômatos Finitos

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

Linguagens Formais e Autômatos P. Blauth Menezes

Autómatos Finitos Determinísticos (AFD)

Estudos de Caso Sistema de Sincronização dos Dados Acadêmicos do SAU e do AulaNet

Circuitos sequenciais Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture

Linguagens Formais e Autômatos P. Blauth Menezes

Implementação do Analisador Léxico

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação Aula 02 Introdução

Linguagens Livres do Contexto. Adaptado de H. Brandão

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Teoria da Computação Aula 01 Revisão de Conjuntos

Organização e Arquitetura de Computadores I

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

2 O Modelo: SetModel. 2.1 Modelo de Informação

É neste ponto que entra o conceito de lógica de programação.

Linguagens Formais e Autômatos P. Blauth Menezes

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ

Características da Teoria das Categorias e sua Importância para a Ciência da Computação

Universidade Federal do Pampa - UNIPAMPA

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Autômatos Finitos com Saída: Um Ambiente de Criação e Manipulação das Máquinas de Moore e Mealy no AFLAB

Teoria da Computação

Daniel Wildt

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

Teoria da Computação. Máquinas de Turing: variações

Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido O PROGRAMA OTB

Linguagens Formais e Autômatos P. Blauth Menezes

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Padrão para Especificação de Requisitos de Produto de Multimídia

Análise e Projeto de Circuitos Combinacionais e Sequenciais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Autômatos de Pilha (AP)

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

UNIVERSIDADE FEDERAL DE PELOTAS Instituto de Física e Matemática Departamento de Informática Curso de Bacharelado em Ciência da Computação

Mapeamento de Rotas Turísticas Inerentes a Analise da Complexidade de Algoritmos

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

Análise de Sistemas 4º Bimestre (material 3)

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Universidade Federal de Alfenas

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Universidade Federal de Alfenas

Autômatos finitos não-determinísticos

Matemática Discreta para Ciência da Computação

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

Universidade Federal de Alfenas

Propriedades de Fecho de Linguagens Regulares.

Introdução a Programação

Professor: Rogério Benedito de Andrade. Formação:

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

DIAGRAMAS DE CLASSE UML

Linguagens Formais e Autômatos P. Blauth Menezes

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

SCC 205 Teoria da Computação e Linguagens Formais

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Autômatos Finitos Não Determinís5cos (AFN)

Aula 3: Autômatos Finitos

Anterior Sumário Próximo CONJUNTOS, INTERVALOS E INTRODUÇÃO A FUNÇÕES E GRÁFICOS

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

Padrões contexto problema solução

Aula 3: Autômatos Finitos

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

BCC242. Auômato Finito Determinístico

Linguagens Formais e Autômatos

Tutorial para o uso do aplicativo TransCal 1.1

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Conceitos básicos de Teoria da Computação

SIMULADOR DE AUTÔMATOS FINITOS DETERMINÍSTICOS - AUTOMATOGRAPH 1 DETERMINISTIC FINITE AUTOMATA SIMULATOR - AUTOMATOGRAPH

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Prof. Jorge Cavalcanti

DESENVOLVIMENTO DE UM SIMULADOR PARA CONTROLE DE VAGAS DE ESTACIONAMENTO UTILIZANDO AUTÔMATOS FINITOS E ARDUINO

Figura 28: Tela da aplicação Demo

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

6 Aplicações Detalhes da Implementação

UNIVERSIDADE DA BEIRA INTERIOR

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Matemática Discreta - 01

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

Universidade Federal de Alfenas

Transcrição:

Desenvolvimento e Implementação de Animações Computacionais Baseadas em Autômatos Finitos com Saída utilizando a Teoria das Categorias Daniel da Silva Fernandes 1, Christine Vieira Scarpato 1 1 Universidade do Extremo Sul Catarinense (UNESC) Caixa Postal 3167 CEP. 88806-000 Criciúma, SC, Brasil daniel007@brturbo.com.br, cvi@unesc.net Resumo: Este trabalho aborda as pesquisas acerca da aplicação das operações categoriais de Produto, Coproduto, Produto Fibrado e Soma Amalgamada sobre animações computacionais baseadas em autômatos finitos com saída. O presente trabalho resultou em um software, denominado AgaCategory, onde essas operações categoriais são implementadas. O software é definido de tal forma que os autômatos originais possam gerar novas animações sem que outros autômatos precisem ser gerados. Esses novos atores podem ser gerados apenas com a aplicação das operações categoriais, sem que sejam perdidos os atores originais, os quais podem ser utilizados quantas vezes se desejar. A implementação se torna simples devido à utilização das operações matemáticas categoriais. Palavras-chave: Teoria das Categorias, Animação Computacional, Teoria dos Autômatos. 1 Introdução Cada vez mais, estudos em áreas pouco exploradas (a saber, Teoria das Categoriais) vêm sendo feitos, motivando pesquisadores a descobrirem novas abordagens de estudo acerca de teorias até então desconhecidas, aplicando-as à Ciência da Computação. Esse é um ponto importante de abordagem dessa pesquisa, isto é, o estudo da Teoria das Categorias, e conseqüentemente, a aplicação de Operações Categoriais sobre animações computacionais. As informações visuais estão cada vez mais presentes no cotidiano das pessoas. Isto gera a necessidade de desenvolvimento de figuras e animações em formatos computacionais mais robustos e de rápida execução. Muitos estudos são desenvolvidos nessa área buscando soluções computacionais rápidas e eficientes. E utilizando as características específicas da Teoria das Categorias, é possível, portanto, criar animações computacionais baseadas em autômatos de forma simples, mesmo em animações mais complexas. 2 Modelo AGA O modelo AGA, desenvolvido por (Accorsi, 2002) especifica um ator a partir de uma estrutura baseada em autômatos finitos com saída. Cada um dos atores na animação é especificado a partir de uma extensão proposta para o autômato, a qual

vincula as variações estéticas do ator à saída do autômato (cada transição é associada a uma imagem do ator). Pode-se fazer uma comparação com a Máquina de Mealy *. Assim, os atores da animação podem ser comparados a um Autômato Finito Determinístico (AFD) com saídas associadas às transições. O comportamento do ator durante a animação é decorrente dos símbolos contidos na fita de entrada. Essa fita de entrada contém todos os símbolos que irão provocar as transições do autômato, gerando as imagens de saída. A animação é estruturada em camadas que, quando juntas, formam uma imagem resultante que a descreve naquele instante. Cada camada é coordenada por um autômato com fita independente. Deste modo, quando os autômatos são simulados, as transições entre seus estados controlam a animação dos atores. Com a utilização das Operações Categoriais, é possível gerar novas animações, sem que as mesmas precisem ser redefinidas ou refeitas. Essas animações são conseguidas com a aplicação das Operações categoriais sobre os atores originais, sendo que os mesmos podem ser recuperados a qualquer momento. 3 Operações Categoriais Para compreender o que são as operações categoriais, é necessário compreender antes o que é a Teoria das Categorias. Segundo Menezes e Haeusler (2001), uma Categoria é uma estrutura abstrata, constituída de objetos e setas entre os objetos, com uma propriedade fundamental, que é a composicionalidade das setas. Essa abordagem Categorial permite que idéias complexas possam ser expressas de forma simples, característica importante para a Ciência da Computação. As operações categoriais utilizadas nas animações são todas aplicadas à grafos, uma vez que cada ator da animação é representado por um grafo, com as saídas das imagens relacionadas às transições. 3.1 Produto A operação categorial de Produto é uma generalização de Produto Cartesiano da Teoria dos Conjuntos. Produto Cartesiano, na Teoria dos Conjuntos, pode ser definido como segue: A x B = {<a, b> a Α e b Β} Nesse contexto, observa-se que um produto cartesiano entre dois conjuntos é um par ordenado <a,b>, tal que o elemento a pertence ao conjunto A, e o elemento b pertence ao conjunto B. Uma importante propriedade do produto cartesiano é que ele é uma operação reversível, ou seja, é possível retornar os dois conjuntos originais. Uma outra abordagem importante é o Produto de grafos reflexivos, em que o objeto resultante é composto pelas combinações dos pares de transições dos grafos componentes. * Máquina de Mealy: é um autômato finito modificado de forma a gerar uma palavra de saída para cada transição desse autômato, formando assim, um alfabeto de saída.

3.2 Coproduto O Coproduto pode ser interpretado como a união disjunta da Teoria dos Conjuntos. O objeto resultante do Coproduto é um grafo distribuído, ou seja, é a composição de dois grafos justapostos lado a lado (um após o outro). Formalmente, pode-se afirmar que, seja C uma categoria e A e B objetos dessa categoria, o Coproduto de A e B é composto por um objeto A+B e dois morfismos distintos (q 1 : A A+B e q 2 : B A+B), tal que, para todo objeto de C e também para todos os morfismos f 1 : A C e f 2 : B C, existe um único morfismo h: A+B C. Relacionando o Coproduto com as aplicações que serão feitas nas animações, pode-se dizer que o objeto resultante (a animação) será um novo ator, composto pelos atores originais justapostos lado a lado. A ordem em que eles serão apresentados na área de animação é escolhida de modo aleatório, podendo ser feita pelo usuário ou pela própria máquina. 3.3 Produto Fibrado Um Produto Fibrado é um Limite de um diagrama constituído por dois morfismos com um mesmo objeto destino (MENEZES; HAEUSLER, 2001). Em outras palavras, o Produto Fibrado pode ser interpretado como uma restrição do Produto, uma vez que uma parte do sistema é restringida (pelos limites) e a outra parte é mantida. A idéia básica do Produto Fibrado é restringir o sistema, satisfazendo apenas determinadas condições. Isso pode ser utilizado em Herança, que é o aproveitamento de código de parte de um sistema existente (o que é comum na programação orientada a objetos, por exemplo). Uma outra interpretação que pode ser dada ao Produto Fibrado, é a sua utilização como sincronizador, fazendo com que determinadas partes de um sistema (nesse caso, as animações) estejam em sincronismo. 3.4 Soma Amalgamada De acordo com Menezes e Haeusler (2001), Soma Amalgamada é um colimite de um diagrama constituído por dois morfismos com um mesmo objeto origem. A Soma Amalgamada pode ser interpretada como sendo uma forma de somar dois objetos, identificando neles, partes em comum, formando uma espécie de composição de composição de sistemas. Tendo dois morfismos f: A B e g: A C, uma Soma Amalgamada é uma forma de somar os objetos B e C identificando partes comuns em A. O Produto Fibrado e a Soma Amalgamada generalizam os conceitos de união e de intersecção da Teoria dos Conjuntos, respectivamente. Porém, apresentam maior expressividade. 4 Operações Categoriais sobre o modelo AGA Cada operação categorial, quando aplicada aos atores originais, gera um novo ator, resultado da aplicação dessas operações categoriais. Porém, os atores originais não são alterados. Em outras palavras, o autômato desse novo ator é obtido pelo resultado matemático da operação categorial aplicada. Estes se mantêm inalterados, podendo ser reutilizados.

4.1 Aplicação do Produto É possível aplicar a operação categorial de Produto sobre os atores de uma animação AGA. O objeto resultante (animação resultante) é um novo ator formado pelos pares dos nodos e arcos dos atores originais, ou seja, um produto entre os atores originais. A figura 1 representa o produto de dois atores. Figura 1: Produto entre atores de uma animação O objeto resultante é uma animação que contém todas as combinações possíveis entre os estados dos atores originais. Com a aplicação da operação categorial de Produto, os dois atores trabalharão ao mesmo tempo, sincronizados. Para que se implemente essa operação categorial, o sincronismo entre os atores no momento da aplicação da operação categorial é atingido por meio das definições de tempo contidas em cada célula da fita de entrada correspondente à operação categorial citada. Esse tempo deve ser igual para haver sincronismo entre os atores. 4.2 Aplicação do Coproduto O objeto resultante da aplicação de Coproduto entre dois atores resulta em dois atores justapostos lado a lado. A escolha do ator que será apresentado na tela de animação é aleatória, isto é, ela pode ser feita pelo usuário ou pela própria máquina, podendo inclusive, mostrar os dois atores da animação (um seguido do outro). Na figura 2, é possível observar o Coproduto dos atores anteriormente utilizados como exemplo (figura 1). Ator1+Ator2 Figura 2: Coproduto entre atores de uma animação

Quando a leitura da fita é realizada, apenas um dos atores é apresentado na tela de animação, sendo a escolha aleatória, isto é, cada vez que a fita for lida, uma imagem diferente pode ser mostrada na tela de animação. 4.3 Aplicação do Produto Fibrado A operação categorial de produto fibrado define uma restrição. Pela figura 3, é possível observar que o sistema está restringido da seguinte maneira: Na animação só deverá aparecer os dois atores (caminhão e carro) no mesmo estado, ou seja, só deverão aparecer ambos batidos ou ambos em perfeito estado. Nunca um deles pode estar batido se o outro não estiver. Figura 3: Produto fibrado entre atores de uma animação A tabela de restrição seria a seguinte: <a,x> e <b,y>, ou seja, apenas seria mostrado o par ordenado <carro em perfeito estado, caminhão em perfeito estado> ou então <carro batido, caminhão batido>. Para implementar essa operação, no instante da leitura da fita de entrada, se a célula lida não é igual a uma das restrições definidas na tabela de restrições, a imagem não é mostrada na área de animação e a próxima célula é lida ignorando o tempo de espera da célula anterior. Uma outra interpretação que se pode dar à operação categorial de Produto Fibrado é a utilização desta como sincronizador de sistemas, isto é, sincronizar imagens de duas ou mais animações distintas. Como exemplo, será utilizado os atores da figura 4, que representam dois atores baseados em grafos reflexivos. Figura 4: Atores de uma animação

Nesse caso, por exemplo, é desejado que se sincronize a imagem do homem chutando a bola (b) no mesmo instante em que o goleiro se joga no chão para agarrá-la (y), ou seja, essas imagens devem ocorrer ao mesmo tempo. As demais figuras, (a) e (x), podem ocorrer livremente. A Tabela de sincronização para esse caso, seria a seguinte: <b,y> <a,اx>,<a,اy>,<اa,x>,<a,x>,<a,اy>,<اb,x> Obedecendo a tabela de restrições, onde o primeiro elemento de cada célula se refere ao ator 1 e o segundo, ao ator 2, uma restrição do sistema pode ser obtida conforme as propriedades do Produto Fibrado, vistas anteriormente. 4.4 Aplicação da Soma Amalgamada A operação categorial de Soma Amalgamada foi explorada como composição de um sistema, identificando partes em comum. Ela identifica partes em comum dos autômatos envolvidos na operação, podendo ou não identificar também a saída. Os dois exemplos foram implementados e demonstrados. A Figura 5 ilustra os autômatos utilizados como exemplo para demonstrar a operação categorial de soma amalgamada sem identificação da saída. Figura 5: Soma amalgamada entre dois atores de uma animação Para os dois atores, as partes que podem ser consideradas comum, são as transições w e a transição 4 (w,4). Quando se fala em partes em comum, não significa dizer que são imagens de saída iguais, e sim que essas transições devem aparecer simultaneamente na área de animação. Uma outra abordagem da Soma Amalgamada é a composição de um sistema com identificação da saída. A Figura 6 ilustra os dois atores que foram utilizados para demonstrar tal operação.

Figura 6: Soma amalgamada identificando as saídas Para o exemplo apresentado, é necessário que se identifiquem quais partes dos dois autômatos serão consideradas comuns, identificando a saída. Para os atores da figura 6, as transições 3 e c (3,c), e as transições 4 e d (4,d), podem ser consideradas comuns. Portanto, na fita de entrada, pode-se escolher qualquer símbolo, pois as imagens vinculadas na saída serão iguais. Todas as operações categoriais descritas foram implementadas em um software denominado AgaCategory, podendo dessa maneira serem visualizadas. 5 AgaCategory O sistema foi criado com o objetivo de mostrar na prática, os resultados das operações categoriais, quando aplicadas sobre os atores, especificados de acordo com o modelo AGA no qual, para criar uma nova animação, é necessário criar um novo autômato. Na implementação que foi desenvolvida isso não acontece. Uma nova animação pode ser obtida apenas com a aplicação das operações categoriais sobre os atores originais, sendo possível recuperar os atores originais a qualquer momento. A implementação foi feita com base nas sugestões de implementação de cada uma das operações categoriais. A maneira como o sistema foi desenvolvido permite que o usuário escolha qual operação categorial deseja aplicar sobre os atores. O usuário pode também escolher a fita de entrada a ser usada. Essa fita de entrada é escolhida em uma listra pré-definida. Para desenvolvimento do sistema proposto, foi utilizado o ambiente de programação Delphi. A Figura 7 mostra a tela principal do software. Atores Fita de entrada Escolha da Operação Categorial Definição das restrições Autômatos dos atores Figura 7 Tela principal do software

6 Conclusão A pesquisa desenvolvida, a qual resultou no software AgaCategory, explorou as características e fundamentações matemáticas da Teoria das Categorias e mostra, por meio de uma interface, o resultado das operações categoriais de Produto, Coproduto, Produto Fibrado e Soma Amalgamada, aplicadas entre atores de uma animação baseada em autômatos finitos com saída (modelo AGA). Apesar de existirem várias alternativas para prover esse tipo de animação, observou-se que a implementação das operações categoriais trouxe algumas vantagens que foram refletidas no resultado final do trabalho. Entre essas vantagens pode-se destacar o fato de que não há necessidade de criar outros autômatos para gerar novas animações, bastando apenas trabalhar com os autômatos originais, aplicando sobre eles as operações categoriais, podendo até mesmo, utilizar um ator quantas vezes for necessário. Isso diminui significativamente a necessidade de refazer, ou seja, redefinir um ator sempre que se deseja utilizá-lo, gerando dessa forma, um código fonte mais limpo, melhor e com descrições formais mais simples. Sendo assim, o sistema proposto neste trabalho mostra que é possível conseguir uma nova alternativa para prover animações bidimensionais. A reutilização do código é umas das características da Teoria das Categorias, contribuindo em vários aspectos com os resultados obtidos, facilitando significativamente a implementação. Referências ACCORSI, Fernando. Animação Bidimensional para World Wide Web Baseada em Autômatos Finitos. Dissertação (Mestrado em Ciência da Computação) Instituto de Informática, Universidade Federal do Rio Grande do Sul, Porto Alegre, 2002. ACCORSI, Fernando; MENEZES, Paulo Blauth. Animação Gráfica Baseada na Teoria de Autômatos. In: WMF Workshop on Formal Methods, 2000, João Pessoa, Paraíba. WMF 2000 3 rd Workshop on Formal Methods, SBC, 2000. MENEZES, Paulo Blauth; HAEUSLER, Edward Hermann. Teoria das Categorias para Ciência da Computação. Instituto de Informática da UFRGS. Porto Alegre: Sagra Luzzato, 2001. MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Instituto de Informática da UFRGS. 4 ed. Porto Alegre: Sagra Luzzato, 2002.