> For the complete documentation index, see [llms.txt](https://tutorial.anylogicbrasil.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tutorial.anylogicbrasil.com.br/parte-iii-recursos-parametros-e-variaveis/um-novo-fluxo-de-processos-no-modelo.md).

# Um novo fluxo de processos no modelo

Nesta Parte III, acrescentaremos o serviço de atendimento pessoal à nossa agência bancária. O objetivo aqui é:

* Identificar se **3 caixas de atendimento presencial são suficientes para atender a demanda**.&#x20;

A taxa de chegada de clientes na agência é a mesma da etapa anterior, mas alguns destes clientes preferem o atendimento presencial. Os parâmetros de entrada utilizados nesta etapa do exercício são:

* 40% dos clientes preferem o atendimento no caixa eletrônico;
* O restante (60%) é atendido por um dos **3 caixas disponíveis**;&#x20;
* A duração média de atendimento presencial é de **5 min** (em cada caixa), e a distribuição das durações também é exponencial.

A novidade nesta etapa do exercício é, além do processo de decisão do cliente quanto ao tipo de serviço desejado, a existência de 3 caixas que prestam o mesmo serviço (diferentemente da Parte II do tutorial, em que a fila bancária é atendida por um único caixa eletrônico). Usualmente, a representação de caixas de atendimento é feita por **Recursos** ou, na nomenclatura do AnyLogic, **Resource Pool**, pelos motivos que esclareço a seguir.

Quando se modela algum recurso escasso do sistema por meio do bloco **Resource Pool**, o AnyLogic encarrega-se da lógica de ocupar e desocupar o recurso, da coleta de estatísticas de ocupação e da geração de paralisações por quebras e/ou manutenções. Para aqueles já familiarizados com a simulação de agentes, o AnyLogic ainda permite configurar o **Resource Pool** como um **Agente** criado pelo usuário - com esta abordagem, o céu é o limite.

Um **Resource Pool** pode ser selecionado e ocupado pelo bloco **Seize** e liberado pelo bloco **Release**, ou isso tudo pode ser feito de maneira compacta pelo bloco Service, que já incorpora a sequência **Seize-Delay-Release** num único bloco.&#x20;

Com o tempo, você vai notar que muitos blocos do AnyLogic são mera junção de outros ou mesmo herdeiros de outros blocos. Note, por exemplo, a similaridade entre os blocos da **Process Modeling Library** com os blocos da **Pedestrian Library** (biblioteca de pedestres):

![](https://lh4.googleusercontent.com/2i0ph2TuMv3DWk9xmAn3E6tNJ_bkA7qF0_lvc7KbwSv-7fuN8lsQwOJylw9dBfemLngWzWRKy3hBBQnG5CsXLFhEUGrw179kJL_iVbYAC1rK12oOAjTtI7ax5Sdxk1YSBrHAekFt)

Antes de começarmos, vamos abrir um espaço nos blocos, caso contrário ficará difícil visualizar alguma coisa (clique e arraste com o mouse a seleção de objetos):

![](https://lh3.googleusercontent.com/MrtWxEz5MGFZrD2B8ReqTylED4mAIzRc9cOrZJvg8E7WBRTUTXFES1iwmCqxcZp3puPKVi6ChSxQIUmj60a_5T70442KeBKanO7Pg-ya-qZU8hNufaGoopphv-olOuNWESPhDwo_)

Quando um cliente entra no banco, deve decidir se vai ao caixa eletrônico ou aos caixas normais. O bloco **Select Output** representa o processo de tomada de decisão:

![](https://lh3.googleusercontent.com/oSoLXVFdXmHZeDMmeNXpZ5hpL_34I4IZ5wE05COupCmia9WXz4nqwDYqY-PzwXj1lZgU3rx5t74IvW_8nNDhLqcFIwctezixH4L_I5rJc-uvKVVAXyUqZNcyVBT8R0IS-SWQDOz7)

Agora vamos representar o processo de atendimento dos caixas normais. Um modo compacto de fazer isso é utilizar o bloco **Service.**

O bloco **Service** possui as regras de ocupação e desocupação do **Resource Pool** (caixas) ou, em termos mais comuns para quem profissionais de simulação, o bloco é uma sequência "*Entrar em Fila-Ocupar Recurso-Passar o tempo de Processo-Desocupar Recurso*" (**Queue-Size-Delay-Release)**. Lembre-se de conectá-lo ao fluxo de clientes:

![](https://lh4.googleusercontent.com/dMp2JPSYCLF4F7Eo8kFLyWWGXTb-_N1hdSqR7m3YjDCwzL0DWkKZQD9jlpqYdD1B3yLEZ1aBC5MFFTPwJrZaIphAoQ8S20kJRN2NZIt3AxTyIaD8W_yN8a5U4O2LWDsuvxOLmSOG)

Não esqueça de preencher as propriedades do **selectOutput**: 40% dos clientes se dirigem ao caixa eletrônico:

![](https://lh3.googleusercontent.com/c3FOVwm-guLJi2XBkQTxE4TgJPs6gC6nw_ATAnT6lpD2z5Jw8_z80YXIrVpyuOZ-LDbR_aVf9c-Y2KdvjwMQpYpRdPuDG5bnAHPdx_rdok2dVj71Kz0hGsPW5Noj9mkEIRkxRM18)

{% hint style="success" %}
**Dica**

Além do bloco **Select Output,** que permite apenas duas saídas, o AnyLogic possui o **Select Output5,** que permite até 5 saídas. Você precisa mais do que 5 saídas ou mesmo os conectores ficaram confusos e embaralhados? Neste caso, o AnyLogic tem um comando bem legal e genérico explicado [aqui](https://help.anylogic.com/topic/com.anylogic.help/html/processmodeling/selectoutputin.html?cp=2_0_1_37_1).
{% endhint %}
