Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Amazonas ICOMP – Instituto de Computação FT - Faculdade de Tecnologia Modelagem de uma Vending Machine utilizando um Autômato Finito com Saída Manaus-AM Fevereiro de 2022 Aluno: Thiago Rodrigo Monteiro Salgado; Matrícula: 21954456; Professor: Pio; Disciplina: Sistemas de Eventos Discretos; Engenharia da Computação. • Resumo: No presente trabalho está descrito a modelagem de uma máquina destinada a venda de produtos (vending machine) utilizando um Autômato Finito com Saída. O modelo utilizado neste trabalho foi a Máquina de Mealy pois ele possui características fundamentais que usaremos. Na modelagem da máquina, considerou-se um conjunto finito de estados que a mesma pode assumir de acordo com as diferentes ações que podem ser realizadas pelo usuário. Algumas destas ações permitem a mudança entre distintos estados e correspondem à inserção de moedas ou à escolha dos produtos ou categorias de produtos disponíveis. A máquina modelada permite a venda de produtos em três diferentes categorias de preço e ainda permite a devolução de troco ao usuário, sendo estes importantes diferenciais propostos neste trabalho em relação às máquinas de venda de produtos mais comuns disponíveis hoje no mercado, que não possuem estas funcionalidades. • Introdução: As máquinas feitas para vendas automáticas têm ficado cada vez mais populares. Elas podem vender de tudo e sem necessariamente precisar de um vendedor, basta inserir o dinheiro escolher o que deseja e então você vai receber no mesmo instante. É mais rápido, não precisa de funcionários e evita dores de cabeça. As máquinas mais comuns possuem dois problemas: Elas não possuem preços ajustáveis, por exemplo: Comprar uma batata de R$ 2,00 e um outro salgadinho por R$ 3,00 na mesma máquina, possuindo sempre um preço fixo. Outro problema que podemos visualizar nestas máquinas é que elas não devolvem troco e, visando resolver este problema, têm-se esse modelo de Vending Machine no presente trabalho. • Modelagem: Como solicitado pelo professor, simplificaremos o uso da máquina modelada neste trabalho onde ela aceita apenas moedas de R$ 0,25, R$ 0,50, e R$ 1,00, ela ainda permite a venda permite a venda de produtos de três categorias(doces) diferentes. Poderíamos estender os Alfabetos de entrada e saída tanto quanto desejássemos, contudo nos limitamos ao que o professor solicitou. Colocar uma moeda significa uma entrada feita pelo usuário, e, cada uma das ações que ele tomar até mesmo a de escolha do produto, darão forma ao alfabeto de entrada. Cada uma das ações pode fazer a máquina mudar ou não de estado. Cada estado deve representar qual o valor total das moedas que já foram inseridas na máquina pelo usuário, ou qual a categoria de produto que o mesmo escolheu, sendo que no último caso (caso final), após a compra, o troco já estará salvo na saída, pois, o usuário não vai mais inserir moedas na máquina. Além do troco, a saída da Máquina de Mealy que usaremos para modelar o sistema, guarda informações que são utilizadas para detectar qual produto dentro de uma categoria deve ser liberado de acordo com a opção feita pelo usuário. Para comprar algo, o usuário vai colocar dinheiro o suficiente para compra. O mínimo valor que é R$ 0,25 já possibilita que se compre pelo menos um brigadeiro (que é o mais barato custando o valor de entrada mais barato). São oferecidas três categorias diferentes de produtos apresentadas num menu da máquina, sendo que a uma delas são associados os estados <CBr> e <FBr>, e à outra os estados <CCo> e <FCo> e última associa-se os estados <CQu> e <FQu>. Os produtos oferecidos dentro de uma categoria têm os mesmos preços. Os produtos da categoria Br custam R$ 0,25, os da categoria Co custam R$ 0,75 e os da categoria Qu custam R$1,25. Depois de escolhida a categoria, o usuário receberá o seu produto (como possuímos apenas um produto para cada categoria ele logo será retirado. Caso houvessem mais produtos dentro da mesma categoria poderíamos, por exemplo, adicionar a opção de escolha de qual produto de R$0,25 o usuário desejaria, o que não é o caso). Considerou-se também que o valor máximo que a máquina pode acumular é o equivalente a R$ 1,50, pois se o usuário ordenar logicamente as suas ações de inserção de moedas, não há situação em que ele necessite depositar uma quantia maior do que esta, além de que o número de estados que a máquina pode assumir deve ser finito. Desta forma, os valores inseridos na máquina que excederem esta quantia são perdidos. • Modelagem do Sistema com uma Máquina de Mealy A Máquina de Mealy (6-upla) proposta para a solução do problema é a descrita a seguir: • Alfabeto de entrada - ∑: é um conjunto de símbolos, onde cada um destes símbolos está associado à uma ação realizada pelo usuário. ∑ = {25, 75, 100, Br, Co, Qu, Pc} • Alfabeto de símbolos de Saída - ∆: Aqui os símbolos representam a saída que terá o programa no estado final. Símbolo de Alfabeto de Saída Significado <Tr> Diz respeito ao troco <Tp> Diz respeito ao tipo escolhido pelo usuário ∆ = {Tr, Tp} • Conjunto de estados possíveis do sistema - Q: Os elementos deste conjunto correspondem aos diferentes estados que a máquina pode assumir a medida em que o usuário realiza ações. Q = {<0c>, <25c>, <50c>, <75c>, <100c>, <125c>, <150c>, <CBr>, <Fbr >, <CCo>, <FCo>, <CQu>, <FQu} Estado Significado <0c> Estado inicial onde ainda não foram inseridas moedas. <25c> Estado para quando o usuário colocar uma moeda de R$ 0,25 <50c> Estado onde o usuário inseriu R$ 0,50 em moedas através de qualquer combinação. Símbolo do Alfabeto de entrada Ação 25 inserção de moeda de R$ 0,25. 75 inserção de moeda de R$ 0,50. 100 inserção de moeda de R$ 1,00. Br escolha da categoria de produtos a cujo preço é de R$ 0,25 Co escolha da categoria de produtos a cujo preço é de R$ 0,75 Qu escolha da categoria de produtos a cujo preço é de R$ 1,25 Pc (Pode Comprar) = Escolha do tipo do produto, sendo que a categoria já deve ter sido previamente escolhida. <75c> Estado onde o usuário inseriu R$ 0,75 em moedas através de qualquer combinação. <100c> Estado onde o usuário inseriu R$ 1,00 em moedas através de qualquer combinação. <125c> Estado onde o usuário inseriu R$ 1,25 em moedas através de qualquer combinação. <150c> Estado onde o usuário inseriu R$ 1,50 em moedas através de qualquer combinação. Neste estado também a máquina atinge o valor máximo o qual pode-se acumular. <CBr> (Compra Br) =Estado onde o usuário já tiver inserido a quantidade suficiente de moedas para realizar compra do produto da categoria Br, mas ainda não escolheu qual doce ele deseja. <Fbr> (Final Br) = Estado final da categoria Br e acontece quando o usuário escolhe um dos produtos da categoria Br do estado <CBr> descrito anteriormente <CCo> (Compra Co) =Estado onde o usuário já tiver inserido a quantidade suficiente de moedas para realizar compra do produto da categoria Cor, mas ainda não escolheu qual doce ele deseja. <FCo> (Final Co) = Estado final da categoria Br e acontece quando o usuário escolhe um dos produtos da categoria Co do estado <CCo> descrito anteriormente <CQu> (Compra Qu) = Estado onde o usuário já tiver inserido a quantidade suficiente de moedas para realizar compra do produto da categoria Cor, mas ainda não escolheu qual doce ele deseja. <FQu> (Final Qu) = Estado final da categoria Br e acontece quando o usuário escolhe um dos produtosda categoria Qu do estado <CQu> descrito anteriormente • Estado inicial – 0c: O estado inicial deste sistema é o estado <0c>, que representa a situação onde o usuário da máquina ainda não realizou a inserção qualquer moeda na mesma. • Conjunto de estados finais - F: O conjunto de estados finais sempre ocorrerá sendo um subconjunto dos estados onde o usuário já inseriu moedas o suficiente para realizar a compra e selecionou o doce que deseja comprar. F = {<FBr>, <FCo>, <FQu>} • Função programa - δ: Esta função leva um par formado por um estado e uma ação (uma entrada) do usuário para um novo estado e escreve uma palavra na saída. Esta palavra escrita na fita de saída deve ser um elemento do fechamento completo do alfabeto de saída (lembrando que este inclui a palavra vazia - representada por ε). Esta saída é a importante diferença que existe entre um Autômato Finito Determinístico (AFD) e uma Máquina de Mealy, neste trabalho foi feita a opção por esta pelo fato da palavra de saída pode trazer informações importantes a serem consideradas para determinar o valor do troco que o usuário deve receber (guardando informações do usuário e enviando para ele posteriormente), e o produto escolhido quando o sistema atingir um estado final. As transições realizadas por esta função nesta modelagem estão representadas no diagrama de transições da Figura 1. Figura 1 - Diagrama de Transições do sistema modelado. • Bibliografia: ➢ Modelagem de uma Vending Machine utilizando um Autômato Finito com Saída Ailton Sérgio Bonifácio e Yandre Maldonado e Gomes da Costa; ➢ https://www.youtube.com/watch?v=N32B21nH5pM&ab_channel=Circuitos eSistemasDigitais-UFSC; ➢ https://www.inf.ufsc.br/~j.guntzel/ine5406/SD_aula6T.pdf
Compartilhar