Modelagem de processos no AnyLogic
pt_br
pt_br
  • Introdução
  • Premissa
  • O que você precisa para este tutorial
  • Etapas
  • Parte I: instalação, abrir, fechar e uso do mouse
    • Download e instalação da versão PLE
    • Tela de boas vindas
  • Abrindo um modelo
  • Parte II: criar um modelo, mais um pouco de mouse e blocos construtores
    • Exercício: fila bancária
  • Criando um modelo
  • Construindo o fluxo de processos do modelo
  • O que é um experimento?
  • Criando resultados de saída da simulação
  • Comando de cópia de elementos Ctrl+arraste do elemento
  • Semente do gerador de números aleatórios
  • Parte III: recursos, parâmetros e variáveis
    • Um novo fluxo de processos no modelo
    • Resource Pool: criando recursos
  • Parâmetros
  • Coleta de resultados da simulação: tempo de permanência no sistema
  • Variáveis no AnyLogic
  • Saídas por gráfico: Histogram Data
  • Saídas por gráfico: Histogram
  • Saídas por gráfico: Time Plot
  • Análise dos resultados
  • Parte IV: nuvem
    • Enviando o modelo para a nuvem
  • Experimento: Parameters Variation
  • Epílogo
    • Como aprender o AnyLogic a partir daqui
  • Apêndice ou coisas que deixariam o tutorial ainda maior
    • Simulação com Replicações
  • Tempo de warm-up
  • Comunicação com planilhas Excel
  • Leitura/Gravação em arquivos txt
  • Entidades, agentes, atributos & variáveis
  • Animação
  • Navegação de agente, funções, objetos etc.
  • Blocos essenciais da paleta Process Modeling Library
  • Timeout e preemption no bloco Queue
  • Resposta do desafio
  • Como citar esta obra e ficha catalográfica (ISBN)
Powered by GitBook
On this page

Was this helpful?

Entidades, agentes, atributos & variáveis

PreviousLeitura/Gravação em arquivos txtNextAnimação

Last updated 4 years ago

Was this helpful?

Embora o termo “atributo” não tenha aparecido neste tutorial, ele é usual em livros de simulação de eventos discretos. Na simulação baseada em agentes, em que se baseia o AnyLogic, o atributo é representado como uma variável que pertence ao agente.

Imagine, por exemplo, que queiramos criar um atributo que representa a hora de entrada do cliente que entra na agência. Neste caso, precisamos, inicialmente, criar um Agente que represente o cliente. No AnyLogic, criar um agente é tarefa para a paleta Agent. Clique nela e arraste o ícone vermelho para dentro da área do modelo:

O AnyLogic vai abrir um wizard para criação de agentes, populações ou tipos de agentes. Com a prática, você descobrirá diversas maneiras de criar agentes, mas o wizard sempre será a mais didática.

Queremos criar um tipo de agente, chamado Cliente, não estamos preocupados com uma população (com tamanho limitado, por exemplo), então nossa escolha deve recair na 3ª opção, Agent type only:

  • Clique em Agent type only;

  • No Agent type name coloque o nome Cliente com a primeira letra em maiúscula, pois é uma convenção adotada pelos usuários;

  • Clique no botão Next >;

  • Como não queremos utilizar animação, selecione None e, a seguir, o botão Finish.

O AnyLogic criou um novo tipo de agente chamado Cliente. Note que ele já abriu a tela do agente para que você possa modelá-lo como quiser. O agente também aparece na aba Projects:

Queremos criar um atributo tempoEntrada, que vai marcar a hora exata em que o cliente entrou no banco. Basta criar uma variável com o nome tempoEntrada:

Agora, volte ao Main e informe ao bloco chegadas (que é um bloco do tipo Source) que o agente a ser criado é do tipo Cliente, usando os seguintes passos:

  • Selecione o elemento chegadas;

  • Em Properties abra a barra (o menu) Agent;

  • Em New agent substitua para a opção Cliente.

Para atribuir o valor da hora atual de simulação a cada cliente que entra na agência, o AnyLogic dispõe da função time(). Assim, vamos atribuir o tempo de entrada logo no bloco chegadas:

  • Procure a barra Actions na janela Properties do elemento chegadas;

  • Em On exit, digite:

agent.tempoEntrada = time()

Observações:

  • agent é o nome genérico do agente que está passando no bloco. Como ele é do tipo Cliente, o AnyLogic sabe que ele possui a variável (atributo) tempoEntrada;

  • Todo bloco do AnyLogic possui as opções Actions onde você pode acrescentar comandos que são executados no momento que o agente entra no bloco, sai, é destruído etc;

  • Assim, se você quiser, por exemplo, calcular o tempo que o cliente ficou na fila do caixa eletrônico, basta acrescentar ao campo On exit do bloco queue, a linha de comando:

agent.tempoEntrada = time() - agent.tempoEntrada;

ou

agent.tempoEntrada -= time();