Lista de Documentos
Nesta Página

Como Funciona o Motor de Simulação

Entendendo o Engine de Simulação

A ProcessMind usa um engine de simulação por eventos discretos (DES) para modelar seus processos. Entender como esse motor funciona ajuda a configurar simulações de forma eficiente e interpretar os resultados corretamente.


O que é Simulação por Eventos Discretos?

Na simulação por eventos discretos, o estado do sistema muda só em eventos específicos — o relógio salta de um evento para outro e, entre eles, nada acontece. Isso é ideal para processos de negócio porque:

  • As activities têm tempos definidos de início e fim
  • Recursos são alocados e liberados em momentos certos
  • Cases chegam e terminam em pontos definidos

Por que Eventos Discretos?

Diferente de simulação contínua (como física), processos de negócio não precisam ser modelados minuto a minuto. Um pedido de empréstimo não vai de “enviado” a “aprovado” aos poucos — a mudança acontece em eventos pontuais.


Loop Central de Eventos

O engine de simulação segue um loop simples e eficiente:

1. Initialize: Define condições iniciais
2. Get Next Event: Busca o evento mais próximo na fila de prioridades
3. Advance Time: Avança o relógio para o horário do evento
4. Process Event: Processa o evento (início ou fim de activity, etc.)
5. Schedule New Events: Com base no ocorrido, adiciona novos eventos
6. Repeat: Continua até o fim do tempo ou o máximo (2.000.000)
7. Output: Gera o event log completo

Tipos de Eventos

A simulação gera e processa vários tipos de eventos:

Tipo de EventoO que acontece
Case ArrivalUm novo case entra no processo pelo start event
Activity StartUm case inicia a execução de uma activity (recursos alocados)
Activity CompleteUm case finaliza uma activity (recursos liberados)
Gateway EvaluationUm ponto de decisão define o(s) caminho(s) a seguir
Case CompleteUm case chega ao end event

Geração e Chegada de Cases

Os cases entram na simulação por meio dos Start Events no seu modelo BPMN. O padrão de chegada é definido pela case generation distribution.

Padrão de Chegada Default

Por padrão, os cases chegam seguindo uma Poisson distribution com taxa de 1 case por hora. Isso gera intervalos reais e aleatórios, comuns em processos de negócio.

Personalizando as Chegadas

Você pode configurar padrões de chegada diferentes usando as distribuições explicadas na documentação de Distributions .


Fluxo do Case no Processo

Sequence Flows

Quando um case finaliza um elemento, ele segue automaticamente o sequence flow de saída. Se houver só um caminho, o case segue direto.

Comportamento dos Gateways

Gateways controlam como os cases se ramificam e unem:

Gateway TypeComportamento
XOR (Exclusive)Apenas um caminho de saída é escolhido por sorteio ponderado por probabilidade. As probabilidades são tratadas como pesos relativos e normalizadas automaticamente.
AND (Parallel)Todos os caminhos de saída são seguidos ao mesmo tempo. O case se divide em tokens paralelos.
OR (Inclusive)Caminhos são escolhidos aleatoriamente, sendo garantido ao menos um deles.
Event-BasedSeleção aleatória entre events disponíveis.

Definindo Probabilidades

Para gateways XOR, você atribui probabilidades a cada flow de saída — são pesos relativos:

  • Se colocar 70, 20 e 10, terá 70%, 20% e 10%
  • Usando 7, 2 e 1, o resultado é o mesmo
  • Todos os flows devem ter probabilidade; flows sem valor ficam com o restante

Execução da Atividade

Quando um case chega a uma task (atividade), o engine segue esta sequência:

1. Verificar Disponibilidade de Recursos

O recurso necessário tem capacidade disponível?

2. Entrar em Fila, se necessário

Se não houver recursos disponíveis, o case entra na fila de espera. A ProcessMind utiliza FIFO (First In, First Out) — os cases são processados na ordem em que chegaram.

3. Alocar Recursos

Quando disponíveis, as unidades de recurso são reservadas para o case.

4. Amostrar Tempo de Processamento

O engine sorteia um valor da distribuição configurada do tempo de processamento. Isso define quanto tempo a activity vai durar.

5. Agendar Evento de Conclusão

É adicionado um evento de conclusão na fila de eventos em current_time + processing_time.

6. Liberar Recursos

Quando o evento de conclusão acontece, os recursos voltam para o pool e podem ser usados por outros cases.

Duração Mínima de Processamento

Para garantir timestamps únicos e um comportamento realista, toda activity tem duração mínima de 1 segundo. Mesmo com distribuição configurada em zero, a activity terá pelo menos esse tempo.


Skip Chance

As activities podem ser configuradas com uma skip chance (0-100%). Quando uma activity é pulada:

  • O case segue direto para o próximo elemento
  • Nenhum recurso é consumido
  • Nenhum tempo é gasto (exceto o mínimo de 1 segundo)
  • A activity aparece no log com a menor duração possível

Isso representa situações reais em que etapas podem ser ignoradas.


Gestão do Tempo

O Relógio da Simulação

A simulação mantém um relógio virtual que avança de evento para evento. Se o próximo evento for às 10:35 e agora for 10:30, o relógio vai direto para 10:35.

Unidades de Tempo

Todos os tempos são convertidos para unidades consistentes internamente. Você pode especificar durações em:

  • Segundos
  • Minutos
  • Horas
  • Dias
  • Semanas
  • Meses

Periodicidade e Faixas de Tempo

Os parâmetros podem mudar ao longo da simulação. Por exemplo:

  • Taxas de chegada diferentes em dias úteis e finais de semana
  • Tempos de processamento diferentes no turno da manhã e da tarde
  • Capacidade de recursos variável no horário de pico

Veja a documentação de Periodicity  para saber como configurar.


Gestão de Recursos

Resource Pools

Cada recurso possui uma capacity definida — quantos cases pode atender ao mesmo tempo.

Gestão de Filas

Quando a demanda passa da capacidade, os cases esperam na fila. A ProcessMind utiliza FIFO (First In, First Out) e garante o processamento pela ordem de chegada.


Geração do Event Log

Durante a simulação, cada execução de activity é gravada no event log de saída:

FieldDescription
Case IDIdentificador único de cada case (gerado sequencialmente)
ActivityNome do elemento BPMN
Start TimestampQuando a atividade iniciou
Complete TimestampQuando a atividade terminou
ResourceQual recurso executou a atividade
AttributesAtributos do case naquele momento

Esse log segue padrões de event log e pode ser analisado com todas as ferramentas ProcessMind.


Limites de Simulação

LimiteValorFinalidade
Max Events2.000.000Evita simulações sem controle
Min Duration1 segundoGarante timestamps únicos

Comece Pequeno e Escale Depois

Ao configurar uma nova simulação, comece com um período curto (alguns dias ou semanas) para validar sua configuração. Depois de garantir que o modelo está correto, aumente o tempo da simulação.


Próximos Passos

Resources
Entenda como modelar recursos e restrições de capacidade.