Buscar

trabalhoSISTEMAS A EVENTOS DISCRETOS completo Thiago Rodrigo Montero Salgado

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

Continue navegando