Como funciona o mecanismo de simulação
Entenda o mecanismo de simulação
O ProcessMind usa um mecanismo de simulação de eventos discretos (DES) para modelar seus processos. Entender como esse mecanismo funciona ajuda você a configurar simulações com mais eficiência e interpretar os resultados com precisão.
O que é simulação de eventos discretos?
Na simulação de eventos discretos, o estado do sistema muda apenas em eventos específicos: o relógio avança de um evento para outro e nada acontece entre eles. Essa abordagem é ideal para processos de negócio porque:
- As atividades têm horários distintos de início e término
- Os recursos são alocados e liberados em momentos específicos
- Os casos chegam e são concluídos em pontos definidos
Por que eventos discretos?
Ao contrário da simulação contínua, usada em física ou dinâmica de fluidos, os processos de negócio não precisam ser modelados momento a momento. Uma solicitação de empréstimo não passa gradualmente de “enviada” para “aprovada”: ela muda de estado em eventos específicos.
O ciclo central de eventos
O mecanismo de simulação segue um ciclo simples:
1. Initialize: Set up starting conditions
2. Get Next Event: Find the earliest scheduled event from the priority queue
3. Advance Time: Move simulation clock to that event's time
4. Process Event: Handle the event (start activity, complete activity, etc.)
5. Schedule New Events: Based on what happened, add new events
6. Repeat: Continue until end time or max events reached (5,000,000)
7. Output: Generate the complete event log Tipos de eventos
A simulação gera e processa vários tipos de eventos:
| Tipo de evento | O que acontece |
|---|---|
| Chegada de caso | Um novo caso entra no processo em um evento de início |
| Início de atividade | Um caso começa a executar uma atividade, e os recursos são alocados |
| Conclusão de atividade | Um caso termina uma atividade, e os recursos são liberados |
| Avaliação de Gateway | Um ponto de decisão determina qual caminho ou quais caminhos seguir |
| Conclusão de caso | Um caso chega a um evento de fim |
Geração e chegada de casos
Os casos entram na simulação por meio dos Start Events no seu modelo BPMN. O padrão de chegada é controlado pela distribuição de geração de casos.
Padrão de chegada padrão
Por padrão, os casos chegam seguindo uma distribuição de Poisson, com uma taxa de 1 caso por hora. Isso cria intervalos realistas e aleatórios entre chegadas, comuns em muitos processos de negócio.
Personalização das chegadas
Você pode configurar diferentes padrões de chegada usando as distribuições descritas na documentação de Distribuições.
Fluxo do caso pelo processo
Sequence Flows
Quando um caso conclui um elemento, ele segue imediatamente o Sequence Flow de saída. Se houver apenas um caminho de saída, o caso o seguirá automaticamente.
Comportamento do Gateway
Os Gateways controlam como os casos se dividem e se unem:
| Tipo de Gateway | Comportamento |
|---|---|
| XOR (Exclusivo) | Exatamente um caminho de saída é selecionado por uma seleção aleatória ponderada por probabilidade. As probabilidades são tratadas como pesos relativos e normalizadas automaticamente. |
| AND (Paralelo) | Todos os caminhos de saída são seguidos simultaneamente. O caso se divide em tokens paralelos. |
| OR (Inclusivo) | Seleção aleatória de caminhos, com a garantia de que pelo menos um caminho será seguido. |
| Baseado em eventos | Seleção aleatória entre os eventos disponíveis. |
Definição de probabilidades
Para Gateways XOR, você atribui probabilidades a cada fluxo de saída. Elas são pesos relativos:
- Se você definir os fluxos como 70, 20 e 10, eles serão normalizados para 70%, 20% e 10%
- Se você definir os fluxos como 7, 2 e 1, obterá o mesmo resultado
- Os fluxos sem atribuição usam o percentual restante
Execução de atividades
Quando um caso chega a uma Task, ou atividade, o mecanismo segue esta sequência:
1. Verificar a disponibilidade de recursos
O recurso necessário tem capacidade disponível?
2. Colocar na fila, se necessário
Se os recursos não estiverem disponíveis, o caso entra na fila de espera. Por padrão, o ProcessMind usa a ordenação FIFO (First In, First Out): os casos são processados na ordem em que chegaram.
3. Alocar recursos
Quando ficam disponíveis, as unidades de recurso necessárias são reservadas para este caso.
4. Amostrar o tempo de processamento
O mecanismo extrai um valor da distribuição de tempo de processamento configurada. Isso determina quanto tempo a atividade levará.
5. Programar o evento de conclusão
Um evento de conclusão é adicionado à fila de eventos em current_time + processing_time.
6. Liberar recursos
Quando o evento de conclusão é acionado, os recursos retornam ao pool para serem usados por outros casos.
Tempo mínimo de processamento
Para garantir timestamps exclusivos e um comportamento realista, todas as atividades têm duração mínima de 1 segundo. Mesmo com uma distribuição de duração zero, as atividades levam pelo menos esse tempo.
Chance de pular
As atividades podem ser configuradas com uma chance de pular, de 0% a 100%. Quando uma atividade é pulada:
- O caso avança imediatamente para o próximo elemento
- Nenhum recurso é consumido
- Nenhum tempo passa, exceto o mínimo de 1 segundo
- A atividade aparece no log com duração mínima
Isso modela cenários reais em que algumas etapas são ocasionalmente ignoradas.
Tratamento do tempo
O relógio da simulação
A simulação mantém um relógio virtual que avança discretamente de um evento para outro. Se o próximo evento ocorrer às 10h35 e o horário atual for 10h30, o relógio avança diretamente para 10h35.
Unidades de tempo
Internamente, todos os horários são convertidos para unidades consistentes. Você pode especificar durações em:
- Segundos
- Minutos
- Horas
- Dias
As taxas de chegada são definidas separadamente, por hora, dia, semana, mês ou ano.
Periodicidade e intervalos de tempo
Os parâmetros podem variar conforme o horário da simulação. Por exemplo:
- Taxas de chegada diferentes para dias úteis e fins de semana
- Tempos de processamento diferentes para os turnos da manhã e da tarde
- Capacidade de recursos diferente durante os horários de pico
Consulte a documentação de Periodicidade para obter detalhes de configuração.
Gerenciamento de recursos
Pools de recursos
Cada recurso tem uma capacidade definida: o número de casos que pode atender simultaneamente.
Gerenciamento de filas
Quando a demanda excede a capacidade, os casos aguardam em uma fila. Por padrão, o ProcessMind usa a ordenação FIFO (First In, First Out), garantindo que os casos sejam processados na ordem de chegada.
Geração do Event Log
Enquanto a simulação é executada, cada execução de atividade é registrada no Event Log de saída:
| Campo | Descrição |
|---|---|
| ID do caso | Identificador exclusivo de cada caso, gerado sequencialmente |
| Atividade | Nome do elemento BPMN |
| Timestamp de início | Quando a atividade começou |
| Timestamp de conclusão | Quando a atividade terminou |
| Recurso | Qual recurso executou a atividade |
| Atributos | Quaisquer atributos do caso naquele momento |
Esse log segue formatos padrão de Event Log e pode ser analisado com todas as ferramentas do ProcessMind.
Limites da simulação
| Limite | Valor | Finalidade |
|---|---|---|
| Máximo de eventos | 5.000.000 | Evita simulações sem fim |
| Duração mínima | 1 segundo | Garante timestamps exclusivos |
Comece pequeno e depois aumente
Ao configurar uma nova simulação, comece com um período curto, de alguns dias ou semanas, para validar sua configuração. Quando tiver certeza de que o modelo se comporta corretamente, aumente para períodos mais longos.