Construindo o fluxo de processos do modelo

O AnyLogic possui diversas paletas com blocos de comandos que são arrastados para a área central de modelagem.

Nesta primeira etapa do exercício, construiremos uma fila M/M/1 composta, basicamente, por:

  • Um processo de chegadas de clientes, com intervalos entre chegadas sucessivas exponencialmente distribuído e valor médio de 2.0 clientes/min;

  • Um processo de uso do caixa eletrônico, com duração média de 0.4 min/cliente e distribuição exponencial, equivalente a uma taxa de atendimento de 2.5 clientes/min (= 1/0.4);

  • Um único servidor (apenas 1 caixa eletrônico, por exemplo).

O bloco Source é o responsável por gerar entidades (ou, na nomenclatura do AnyLogic, gerar agentes) num fluxo de processos. Clique, segure e arraste o bloco Source, a partir da paleta, para o meio da tela! [Repare, na região de Properties à direita, como o menu sensitivo se altera].

A fila M/M/1 tem apenas um servidor, então faremos um fluxo bem simples com elementos do AnyLogic:

  • Um bloco Source para gerar agentes;

  • Um bloco Queue que representa a fila de espera;

  • Um bloco Delay que representa o processo de atendimento;

  • Um bloco Sink que finaliza o agente criado no source.

O “arrastar e ligar” do AnyLogic é beeeeeeeem fácil: se você aproximar o mouse do bloco, ele já cria o conector que representa a ligação lógica entre os blocos.

Mas, se você apagar ou não criar um conector automaticamente, chore apenas dê um duplo clique numa ponta verde do bloco de origem e una à outra ponta verde do bloco de destino.

Construído o fluxo dos processos, vem a etapa de configuração das propriedades de cada bloco. Clique no bloco source:

  • Altere o nome do bloco para algo mais empolgante como: chegadas;

  • O processo de chegadas será definido por uma Rate (= intervalos entre chegadas exponencialmente distribuídos);

  • Para este exemplo, vamos considerar que a taxa de chegadas de clientes é de 2.0 clientes/min.

Clicando no bloco Queue, você notará que a capacidade da fila está limitada a 100. Contudo, por definição, a fila M/M/1 tem capacidade ilimitada. Assim, devemos clicar em Maximum capacity nas propriedades do bloco Queue, para que a fila seja ilimitada em capacidade:

Importante: no que, por default, as filas do AnyLogic nunca são criadas com capacidade infinita, mas sempre com uma capacidade limitada em 100 agentes. Caso seu valor não seja alterado para capacidade máxima e a fila extrapole sua capacidade durante a simulação, o AnyLogic apresentará uma mensagem de erro um tanto quanto espalhafatosa.

Para o bloco Delay, responsável por executar o processo de atendimento, vamos considerar que a taxa média de atendimento é de 2.5 clientes/min, com distribuição exponencial.

Para facilitar o processo de preenchimento de distribuições probabilísticas, o AnyLogic tem uma ferramenta específica para a seleção de distribuições, o Choose Probability Distributions:

  • Selecione o bloco Delay e a seguir o campo Delay time;

  • Quando um campo que permite receber distribuições de probabilidades é aberto, ele ativa um botão na barra de comandos do AnyLogic (um jotinha com uma varinha de mágico):

  • Clique no botão para surgir o Choose Probability Distributions:

Muitas distribuições, hein?

Importante: o AnyLogic considera o parâmetro lambda ou taxa de ocorrência do fenômeno da distribuição (como usualmente fazem os livros de estatística). Por este motivo, devemos informar ao AnyLogic a taxa média atendimento de 2.5 clientes/min (que é basicamente o inverso do tempo médio de atendimento, e, se você quiser, pode digitar diretamente assim: 1/0.4).

Pronto!

Pronto?

Simule!

Sim, agora é executar o seu modelo primeiro modelo no AnyLogic utilizando o botão verde da barra de menu superior:

Note que o AnyLogic executou seu modelo como um aplicativo Java e isto é importante: o AnyLogic é um construtor de aplicativos de simulação.

Na versão Profissional - e apenas nela - existe a opção de se exportar esse app, gerando um arquivo executável independente do AnyLogic, que você pode distribuir para terceiros ou executar em máquinas que sequer possuam o AnyLogic instalado.

Quando você clica no botão Run, a mágica acontece. Note que o bloco do queue ganha um preenchimento azul escuro conforme mais clientes aguardam na fila.

Clique nos blocos azuis, eles são cheios de surpresas:

Se você simular por um tempo muito longo, em algum momento o limite de 50.000 agentes da versão PLE será ultrapassado e o AnyLogic apresentará uma tela branca, informando o erro.

Para evitar este tipo de erro (não que ele vá ocorrer muito, já que 50.000 agentes é muita coisa), podemos configurar melhor o nosso Experimento de Simulação.

Usando a tela da esquerda, selecione a aba Projects. Você visualizará um navegador com ícones empilhados, como pastas: os botões vermelhos com o símbolo de um bonequinho representam Agentes; e o ícone azul com um xis, lembrando um distintivo dos x-men, representa um Experimento.