Simulador de uma "Coke Machine" utilizando Coke Machine Simulator

Slides:



Advertisements
Apresentações semelhantes
Decidibilidade e Indecidibilidade
Advertisements

Introdução a Algoritmos
Linguagem de Montagem Visão geral.
Identificando requisitos
Teorias de Sistemas de Informação
Sistema para Criação e Testes de Modelos Formais
TEORIA DA COMPUTAÇÃO Parte III  Máquina de Turing
Teoria da Computação Unipac – Computação
Disciplina: Serviços de Rede Apresentação da Disciplina Prof. M.Sc. João Paulo de Brito Gonçalves Campus Cachoeiro Curso Técnico em Informática.
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Projeto de Sistemas de Software Leandra Mara da Silva
Os Sistemas Multi-agente Viviane Torres da Silva
Máquina De Turing Disciplina: Teoria da Computação
Modelagem e simulação de sistemas
UNIVERSIDADE FEDERAL DE SANTA CATARINA - UFSC PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA E GESTÃO DO CONHECIMENTO EGC – GESTÃO DO CONHECIMENTO E FERRAMENTAS.
Paradigmas da Programação – Semestre 1 – Aula 5
Linguagens de Programação
Flávio de Oliveira Alves
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Algoritmos Prof. Kelly E. Medeiros.
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
TÉCNICAS DE PROGRAMAÇÃO II
JAVA: Conceitos Iniciais
Agentes inteligentes e sistemas multiagentes
Simulador de um“Caça-níquel"utilizando Teoria dos autômatos
Rodrigo Cristiano Silva
Princípios de Orientação à Objetos
1 - Lafayette B. Melo – Análise e Projeto de Sistemas para a Internet – COINFO – CEFET-PB 12. Estados Objetivo: compreender a notação do diagrama de estados.
Informática Teórica Engenharia da Computação
Luiz Augusto da Silva Alves Professo Luís Henrique Maciel Kosmalski Costa Professor Otto Carlos Muniz Bandeira Duarte Redes 2 Novembro 2010.
Linguagem de Programação II Parte IX
Tópicos de Sistemas de Informação A
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
Métodos de Construção de Software: Orientação a Objetos
Algoritmos e Programação de Computadores
Introdução a Desenvolvimento de Sistemas
Matemática e Computação
Disciplina: Inteligência Artificial
Orientação a Objetos Parte I
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
PADRÃO COMMAND João Paulo Paschoal Arnaldo Correia Eric Carvalho.
SISTEMAS DISTRIBUIDOS Aula 4
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Geração de Código Equipe de Monitores Teoria e Implementação de Linguagens Computacionais – IF688.
Engenharia de Software
OMNeT++.
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Técnicas e Projeto de Sistemas
Recursividade Bruno Silva.
Linguagens de Programação
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos Professor: Cheli Mendes Costa Introdução a Programação Orientada.
Algoritmos e Programação I
Desenvolvimento de Software Dirigido a Modelos
WSDL Web Services Description Language. Tecnologias Relacionadas Web Services SOAP (Simple Object Access Protocol) HTTP (HyperText Markup Language) UDDI.
Computabilidade e Linguagens Formais
Objetos Distribuídos Frameworks Orientados a Objetos.
Introdução a Orientação a Objetos
MÁQUINAS DE TURING Acadêmicos: Karen Juliani Tosta Tomaz RA – 47566
SISTEMAS DE INFORMAÇÃO
Sistemas de Controle III N8SC3
Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 2 Professor: Italo Rodrigues Castro.
Introdução à Inteligência Artificial
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE
UEZO - CURSO DE CIÊNCIA DA COMPUTAÇÃO Primeiro semestre de 2013_2.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Transcrição da apresentação:

Simulador de uma "Coke Machine" utilizando Coke Machine Simulator Teoria dos Autômatos Anderson de Rezende Rocha, Flávio Luiz Alves, Júlio César Alves, Rodrigo Nazaré da Silva Leite Disciplina: Linguagens Formais e Autômatos Prof.: Jones Oliveira Albuquerque Coke Machine Simulator

Introdução  Aplicando os conceitos básicos da Teoria dos Autômatos, procuramos simular, neste trabalho, uma "Coke Machine”.  O funcionamento tanto da máquina física quanto da máquina simulada seguem a mesma premissa: receber moedas, disponibilizar refrigerantes e voltar troco.

O problema Representação da máquina como um autômato:  O problema consiste em traduzir as operações e os estados de uma máquina real para um autômato, mais precisamente uma Máquina de Moore.  Dado que um autômato consiste de um conjunto de estados, um alfabeto e uma função de transição, partimos para a representação da Máquina de Coca-Cola neste contexto.

A ligação da teoria com a prática O alfabeto consiste em todas as ações que o usuário pode realizar na máquina, tais como: inserção de moedas, requisição de troco e de refrigerantes, bem como, a ação de pegar os mesmos. Os estados consistem nos estados reais que a máquina pode assumir, tais como: quantidade de dinheiro, falta de dinheiro, liberação de refrigerantes, etc. A função de transição consiste na relação entre cada ação que o usuário pode executar com cada estado que máquina pode assumir.

Um exemplo:

Uma primeira abstração... Partindo do que foi dito, pensamos, primeiramente, em solucionar o problema de modo direto, com a utilização de uma matriz estados por alfabeto. Por um lado, esta seria uma boa abstração, uma vez que, a matriz seria completa, ou seja, todo estado tem produção para qualquer símbolo do alfabeto. Entretanto, esta seria uma solução dependente deste problema, o que limitaria a reusabilidade do trabalho.

A idéia implementada Deste modo, resolvemos implementar um autômato finito genérico, ou seja, um autômato útil para qualquer problema inerente a ele. A solução do problema está, então, numa aplicação especializada que utilizaria o autômato desenvolvido.

A idéia implementada A nível de implementação pensamos na representação de um autômato por um conjunto de estados e pela função delta (consumir um símbolo). O estado, seria representado por uma mensagem de saída (Máquina de Moore), um conjunto de ligações para outros estados e uma identificação de estado final ou não. Já a ligação entre um estado e outro teria um símbolo a ser consumido e uma referência ao estado de destino. E, por fim, o autômato é template em relação ao alfabeto, ou melhor, o alfabeto pode ser definido pelo usuário da classe autômato.

A idéia implementada Partimos, então, para a implementação da Máquina de Coca-Cola® propriamente dita. Para isso criamos uma classe clSimbolo (representação do Alfabeto) que abstrai as ações de um usuário em relação à máquina. Além de, é claro, modificarmos a base de dados para este problema.

Interface do programa

Conclusões Concluímos que o mais interessante neste trabalho foi a implementação do autômato genérico, uma vez que a Máquina de Coca-Cola® é apenas uma instância do mesmo. Vimos, então que nosso trabalho é reutilizável para outros fins, bastando mudar as classe de aplicação e de definição do alfabeto, além da base de dados.

Sugestões para trabalhos futuros: Implementação de um autômato que unifique a abordagem das máquinas de Mealy e de Moore, diminuindo o número de estados (espelhos). O autômato poderia ser modificado de modo que as mensagens de saída (Moore) fossem templates, permitindo maior liberdade de representação das saídas

Referências i) MENEZES, Paulo Blauth. "Linguagens Formais e Autômatos", ed. Sagra Luzatto, RS - Brasil. ii) SUDKAMP, Thomas. "Languagens and Machines", ed. Addison Wesley, USA. iii) Documentação da biblioteca wxWindows [www.wxwindows.org]