AGENTES – EXERCÍCIO COMPUTACIONAL 5

REDES DE AGENTES – SNTOOL – PIZZA DELIVERY

 

 

Luiz Felipe S. Peixoto , lfsp@iname.com, 05-Dezembro-2002

 

Objetivo: O objetivo deste trabalho é representar um processo organizacional do mundo real, através de um modelo de rede de agentes utilizando o software SNTool.

 

Processo:

 

O processo organizacional escolhido foi uma pizzaria delivery, com a seguinte rotina:

 

 

Modelo:

 

Para representar o processo acima, foi desenvolvido um modelo utilizando rede de agentes, representado graficamente abaixo, usando o software SNTool :

 

 

Configuração inicial da rede

 

Para tanto foram criadas as seguintes classes de objetos:

 

 

 

 

 

 

 

 

 

 

 

E as seguintes classes de agentes:

 

 

 

 

 

 

 

 

 

 

Resultados:

 

O modelo apresentado nos permite simular diversas situações variando alguns parâmetros:

 

1.      Número de Agentes:

 

Alterando o número de agentes em cada função pode-se verificar os gargalos no processamento dos pedidos.

 

Nas figuras abaixo podemos verificar algumas destas situações:

 

 

 

Ligações aguardando atendimento pelo call center e

processamento dos pedidos acumulado

 

 

 

Pedidos prontos aguardando entrega

 

 

2.      Probabilidade dos Pedidos:

 

Na classe Customer, na função makePhoneCall, a freqüência com que um cliente realiza pedidos é aleatória. Para isso é gerado um número aleatório entre 0 e 1.0, caso este número esteja abaixo de um parâmetro fornecido o cliente efetua uma ligação. Logo, quanto mais próximo de 1.0 maior é a freqüência com que o cliente efetua novos pedidos.

 

 

Clientes com probabilidade 0,9 de solicitar pedidos

(19 clientes de 20 emitiram pedidos)

 

 

 

 

Clientes com probabilidade 0,3 de solicitar pedidos

(7 clientes de 20 emitiram pedidos)

 

 

3.      Ponto de Reabastecimento do Estoque:

 

O objeto da classe Ingredients possui um estado interno (sStock) que indica o número de pizzas que é possível fazer com os ingredientes disponíveis. Na classe Supplier, a função deliveryIngredients verifica o valor deste estado interno e caso esteja abaixo deste nível reabastece a pizzaria. Com a mudança deste parâmetro pode-se ajustar a freqüência de reabastecimento da pizzaria. Como em uma mesma iteração apenas um dos agentes consegue acessar o estoque (Supplier ou Cooker), uma freqüência de abastecimento muito alta pode causar o aumento na fila de pizzas a serem fabricadas.

 

 

 

Reabastecimento com estoque menor que 5

 

 

 

Reabastecimento com estoque menor que 2

 

 

4.      Opções de Pizzas e Bebidas do Menu:

 

O objeto da classe Menu possui 2 estados internos (sPizzas e sDrinks) que são formados por vetores de elementos da classe Pizza e Drink respectivamente. Quando um objeto da classe Menu é inicializado ele adiciona as opções de pizzas e bebidas que estarão disponíveis para o cliente. Na configuração atual, são oferecidas as seguintes opções de pizza: 1 – Pepperoni, 2 – Muzzarela, 3 – Champignon, 4 – Presunto e 5 – Alho e de bebida: 1 – Coke, 2 – Diet Coke, 3 – Pepsi, 4 – Diet Pepsi e 5 – Cerveja.