Teoria das Filas
O simulador gratuito mais completo do mercado: 5 modelos analíticos (M/M/1, M/M/c, Erlang-B/C), Simulação de Eventos Discretos (DES), NHPP, filas com prioridade, redes de filas e animação em tempo real — direto no navegador, sem instalação.
Cenários prontos
Escolha um cenário típico ou configure seus próprios parâmetros abaixo.
Modelo e parâmetros
Modele múltiplos tipos de cliente com proporções e prioridades distintas. Com disciplina PRIO, clientes de prioridade maior passam à frente da fila — o sistema calcula Wq e Lq separado por tipo.
| Tipo | Proporção % | Prioridade | μ próprio? |
|---|
Todo sistema começa em regime transiente — a fila ainda está convergindo para o equilíbrio. Defina o período de warm-up para descartá-lo das métricas e ver o badge 🟢 Estacionário ou 🟡 Transiente.
Teoria das Filas: Guia Completo com Exemplos Práticos
A Teoria das Filas (Queueing Theory) é o ramo da matemática aplicada que modela sistemas onde entidades — clientes, pacientes, pacotes de dados, peças industriais — chegam, aguardam quando todos os servidores estão ocupados e depois são atendidas. Criada em 1909 pelo engenheiro dinamarquês Agner Krarup Erlang para dimensionar as centrais telefônicas de Copenhagen, tornou-se em um século a base de decisões em:
- Engenharia de produção: balanceamento de linhas, dimensionamento de docas, gargalos industriais
- Saúde: capacidade de UTI, triagem hospitalar, filas de consulta
- Tecnologia: servidores web, bancos de dados, gateways de API, impressoras de rede
- Telecom: ramais PABX, call centers, buffers de redes
- Varejo e logística: check-in de aeroportos, caixas de supermercado, pedágios, postos de gasolina
Softwares como Arena (Rockwell Automation), Simul8 e AnyLogic usam simulação de eventos discretos (DES) para os casos mais complexos. Para a grande maioria dos problemas reais, porém, as fórmulas analíticas desta ferramenta entregam resultados exatos — e em milissegundos.
Por que este é o melhor simulador de filas online gratuito
Nenhuma outra ferramenta gratuita combina, sem instalação e sem cadastro, os recursos que este simulador oferece:
| Recurso | UtiliQueue | Calculadoras web gratuitas | Arena / Simul8 |
|---|---|---|---|
| M/M/1, M/M/c, M/D/1, M/M/1/K, Erlang-B | ✅ | parcial | ✅ |
| M/G/c (Weibull, Lognormal, Erlang-k…) | ✅ | ❌ | ✅ |
| Simulação de Eventos Discretos (DES) | ✅ | ❌ | ✅ |
| Animação em tempo real da fila | ✅ | ❌ | ✅ |
| NHPP — λ variável por hora | ✅ | ❌ | ✅ |
| Filas com prioridade (VIP, urgência) | ✅ | ❌ | ✅ |
| Redes de filas — série, paralelo, condicional | ✅ | ❌ | ✅ |
| Ajuste de distribuição com teste KS | ✅ | ❌ | ❌ |
| Tabela comparativa multi-servidor | ✅ | ❌ | ❌ |
| Tutorial guiado de 24 passos | ✅ | ❌ | ❌ |
| Gratuito, sem instalação, sem login | ✅ | ✅ | ❌ |
| Funciona no celular | ✅ | parcial | ❌ |
Arena e Simul8 custam milhares de reais por ano e exigem instalação em Windows. JaamSim e SimPy são gratuitos, mas exigem programação. Este simulador entrega 24 das 24 características avaliadas em comparação com 10 ferramentas do mercado — pontuação máxima entre todas as ferramentas gratuitas e empatando ou superando as comerciais em acessibilidade.
Quando usar este simulador vs. Arena/Simul8
Use este simulador quando você precisa:
- Dimensionar rapidamente call centers, filas de banco, guichês, leitos de UTI, pedágios
- Validar com DES se o sistema tem distribuições não-exponenciais ou carga variável
- Modelar uma rede de produção com etapas em série, paralelo ou roteamento condicional
- Ensinar teoria das filas — os 22 cenários pré-configurados e o tutorial de 24 passos são ideais para sala de aula
Use Arena/Simul8 quando você tem: sistemas com centenas de filas interligadas com feedback loops complexos, modelagem 3D de fábricas ou lógica de negócio altamente customizada que exige scripting avançado.
Breve história — de Copenhagen ao século XXI
1909 — Erlang e o telefone
Agner Krarup Erlang era engenheiro da Copenhagen Telephone Company quando formulou o problema: quantos circuitos são necessários para atender as chamadas de uma cidade sem que o sinal de ocupado apareça com frequência inaceitável? Sua resposta — a fórmula de Erlang-B — calculou pela primeira vez a probabilidade de bloqueio em sistemas de perda pura. Em 1917, estendeu o trabalho para sistemas com fila (Erlang-C).
A unidade de tráfego Erlang (E) leva seu nome até hoje: 1 Erlang = 1 circuito ocupado durante 1 hora completa = λ/μ.
1950s–1970s — Expansão para manufatura e computação
Com o advento dos computadores mainframe, David Kendall (1953) propôs a notação A/S/c que padronizou a área. John Little (1961) provou o teorema que leva seu nome — válido para qualquer sistema estável. Jackson (1963) estendeu a teoria para redes de filas, abrindo o caminho para modelagem de sistemas de produção, computadores e telecomunicações.
1970s–1980s — Call centers e sistemas M/G/c
Erlang-C se tornou o padrão da indústria para dimensionamento de call centers. A fórmula de Pollaczek-Khinchine (P-K) e a aproximação de Kingman tornaram tratável o caso M/G/c com distribuição geral de serviço. Computadores permitiram calcular tabelas de Erlang para c até 100+ servidores.
1990s–2000s — Simulação de Eventos Discretos (DES)
Ferramentas como Arena (Siman/1982, Arena/1993) popularizaram a Simulação de Eventos Discretos — capacidade de modelar sistemas com rotas, prioridades, recursos múltiplos e distribuições arbitrárias, muito além do que as fórmulas fechadas suportam. Empresas passaram a simular fábricas inteiras antes de construí-las.
2010s–hoje — Web, microsserviços e IA
A teoria das filas ressurgiu em engenharia de software: dimensionamento de thread pools, análise de latência de microserviços, auto-scaling em nuvem (AWS CloudWatch, GCP Load Balancer) e circuit breakers todos têm raízes nos modelos M/M/c e M/G/c. O conceito de Little’s Law virou pilar do movimento DevOps para medir lead time e WIP.
O que você encontra neste guia — mapa de conteúdo
| Seção | Quando ler |
|---|---|
| Notação de Kendall | Sempre — é o vocabulário base |
| M/M/1 | Filas com 1 servidor, variabilidade aleatória |
| M/M/c | Call centers, caixas, guichês — múltiplos servidores |
| M/D/1 | Linhas de produção, pedágio eletrônico, tempo fixo |
| M/M/1/K | Sistemas com capacidade física limitada |
| M/M/c/c (Erlang-B) | Sem fila — PABX, leitos, licenças de software |
| Lei de Little | Quando você sabe 2 das 3 grandezas (L, W, λ) |
| Ajuste de distribuição | Antes de escolher o modelo — validar seus dados |
| Comparação de Cenários | Análise de trade-off entre configurações |
| Simulação DES | Validar analítico; ver distribuição de Wq; regime transiente |
| NHPP | λ varia ao longo do dia (call center, restaurante) |
| Warm-up | Simular sem distorção do estado inicial |
| Prioridades | Clientes VIP, urgências, SLAs diferenciados |
| Roteamento | Fluxos bifurcados, triagem, abandono parcial |
| Turnos & Falhas | Capacidade real com plantões e manutenção |
| M/G/1 / M/G/c | Weibull, Lognormal, Erlang — além da exponencial |
Dica de leitura rápida: se o seu único objetivo é calcular Wq e Lq para um sistema simples, vá direto ao modelo adequado (M/M/1, M/M/c ou M/D/1) e use os exemplos como referência. Os outros tópicos são para refinamento progressivo.
Notação de Kendall — como descrever qualquer fila
Todo sistema de filas é descrito pela notação compacta A/S/c/K:
| Posição | O que representa | Símbolos comuns |
|---|---|---|
| A | Processo de chegada | M (Poisson/aleatório), D (fixo/determinístico) |
| S | Distribuição do tempo de serviço | M (exponencial), D (determinístico/fixo) |
| c | Número de servidores em paralelo | 1, 2, 3… |
| K | Capacidade máxima do sistema | número ou ∞ (omitido = ilimitado) |
Exemplos de leitura da notação
| Sistema real | Notação | Leitura |
|---|---|---|
| Guichê de triagem hospitalar | M/M/1 | Chegadas aleatórias, serviço variável, 1 enfermeiro |
| Agência bancária com 2 caixas | M/M/2 | Chegadas aleatórias, serviço variável, 2 caixas paralelos |
| Linha de montagem cadenciada | M/D/1 | Chegadas aleatórias, tempo de ciclo fixo, 1 estação |
| Estacionamento com 15 vagas | M/M/1/15 | Chegadas aleatórias, 1 “servidor”, capacidade máxima 15 |
| PABX com 4 ramais | M/M/4/4 | Erlang-B: 4 servidores, sem fila, excesso é perdido |
Como estender a notação — A/S/c/K/N/D completo
A notação completa é A/S/c/K/N/D:
| Posição | O que representa | Padrão quando omitido |
|---|---|---|
| A | Processo de chegada | — (obrigatório) |
| S | Distribuição de serviço | — (obrigatório) |
| c | Servidores paralelos | — (obrigatório) |
| K | Capacidade máxima do sistema | ∞ (fila ilimitada) |
| N | Tamanho da população de origem | ∞ (infinita) |
| D | Disciplina da fila | FIFO |
Quando K = c (capacidade = número de servidores), chegadas em excesso são bloqueadas imediatamente sem formar fila — é o modelo Erlang-B (M/M/c/c).
Populações finitas (N finito): em sistemas onde há N máquinas e c técnicos de manutenção, ao parar uma máquina ela sai da “população geradora de chamados”. O modelo M/M/c//N (máquina de reparo de Engset) captura esse efeito — a taxa de chegada efetiva cai à medida que mais máquinas ficam paradas. Para esses casos, use a simulação DES da ferramenta.
Processos de chegada além do Poisson
O processo de Poisson (M) implica: (a) chegadas independentes entre si, (b) taxa constante λ no tempo, (c) no máximo uma chegada por instante infinitesimal. É uma excelente aproximação quando há muitas fontes pequenas e independentes — clientes distribuídos por uma cidade, requisições HTTP de milhares de usuários.
Quando o Poisson não se aplica:
| Situação | Processo mais adequado | Impacto |
|---|---|---|
| Chegadas em lotes (grupos, famílias, ônibus de turistas) | M[X]/M/c — batch arrivals | Lq pode ser 2–5× maior |
| λ varia ao longo do dia | NHPP (configure com ⏱ λ variável) | Pico até 10× o vale |
| Fontes em número finito (N máquinas) | Engset / M/M/c//N | λ efetivo decresce com ocupação |
| Chegadas correlacionadas (rajadas de rede, burst traffic) | MMPP (Markov-Modulated Poisson) | Filas muito maiores que Poisson |
| Chegadas periódicas (ciclos de produção, takt time) | D/M/c (chegadas determinísticas) | Fila menor que Poisson |
Para fins práticos, o Poisson é robusto: erros de modelagem tipicamente causam desvios menores do que a própria incerteza na estimativa de λ e μ a partir de dados reais.
Os três parâmetros fundamentais
λ — Taxa de chegada
Número médio de entidades que chegam por unidade de tempo. É sempre obtido de observação real ou histórico.
| Cenário | λ | Unidade |
|---|---|---|
| Agência bancária (horário de pico) | 20 | clientes/hora |
| Servidor web em produção | 120 | requisições/segundo |
| Pronto-socorro | 15 | pacientes/hora |
| Pedágio (por pista) | 120 | carros/hora |
| Check-in de aeroporto | 180 | passageiros/hora |
Como medir λ: conte o número de chegadas durante um período representativo (e.g., 1 hora) e divida pelo tempo. Repita em dias e horários diferentes para capturar a variabilidade.
μ — Taxa de serviço de um servidor
Número médio de atendimentos que um único servidor realiza por unidade de tempo. O tempo médio de atendimento é 1/μ.
| Cenário | μ | Tempo médio de atendimento |
|---|---|---|
| Caixa de agência bancária | 15 /h | 4 minutos |
| Médico em consultório | 4 /h | 15 minutos |
| Farmácia hospitalar (dispensação) | 80 /h | 45 segundos |
| Técnico de manutenção | 2 /h | 30 minutos |
| Worker de banco de dados | 250 /s | 4 ms |
Dica: se o tempo de serviço for altamente variável (CV > 1), prefira o modelo M/M/c. Se for praticamente constante (CV < 0,15), use M/D/1 ou M/D/c para resultados mais precisos.
ρ — Utilização por servidor
ρ representa a fração do tempo em que cada servidor está ocupado. Para sistemas estáveis: ρ < 1. Quando ρ ≥ 1, a fila cresce sem limite.
O efeito exponencial da utilização
A relação entre ρ e o tempo de espera não é linear — é explosiva. No modelo M/M/1:
ρ Wq (múltiplos de 1/μ) 50% 1× 70% 2,3× 80% 4× 90% 9× 95% 19× 99% 99× Passar de 80% para 90% de utilização mais que dobra o tempo de espera.
A zona operacional ideal e o custo da ociosidade
Existe uma tensão fundamental na gestão de capacidade:
- Muita folga (ρ baixo): servidores ociosos, custo fixo elevado, subutilização de investimento
- Pouca folga (ρ alto): filas longas, clientes insatisfeitos, risco de colapso em picos transientes
A zona de operação recomendada depende do custo relativo de espera vs. servidor ocioso:
| Setor | ρ típico operacional | Justificativa |
|---|---|---|
| UTI / emergência hospitalar | 60–70% | O custo de não ter leito disponível é vida humana |
| Servidor web crítico | 60–75% | Picos súbitos são comuns; latência mata conversão |
| Call center premium (SLA rígido) | 70–80% | SLA de 80% atendidos em 20 s |
| Agência bancária | 75–85% | Cliente aguarda até ~5 min sem reclamar |
| Linha de produção | 80–90% | Demanda mais previsível, estoque amortece picos |
| Pedágio / check-in | 85–92% | Picos são conhecidos e planejados |
| Call center de baixo custo | 88–93% | SLA mais flexível, custo por atendente é dominante |
A fórmula para o custo total por unidade de tempo equilibra os dois lados:
onde = custo horário de um servidor (salário + encargos + infra) e = custo horário de um cliente esperando (produtividade perdida, churn, penalidade contratual). O número ótimo de servidores minimiza essa função.
Como estimar ρ antes de ter dados precisos
Se você ainda não mediu λ e μ, use estas heurísticas para estimar rapidamente:
- λ (chegadas): divida o volume total do período pelo tempo do período. Para horário de pico, use apenas os dados de pico.
- μ (serviço): cronometre 20–30 atendimentos em condições normais. Use a média como 1/μ. Calcule o CV — se > 0,5, o M/M/c é mais adequado que o M/D/1.
- ρ preliminar: use λ/(c·μ). Se der > 0,95, o sistema está em risco independentemente do modelo escolhido.
Modelo M/M/1 — o caso fundamental
Quando usar: sistema com um único servidor, chegadas aleatórias e tempo de serviço variável.
Fórmulas
Exemplo: Pronto-socorro (triagem)
15 pacientes chegam por hora a um posto de triagem com 1 enfermeiro. Tempo médio de triagem: 3 minutos (μ = 20/h).
O enfermeiro está ocupado 75% do tempo. Se o fluxo subir para 18/h (ρ = 0,90), Wq salta para 27 minutos. Com 2 enfermeiros (M/M/2), Wq cai para menos de 2 minutos.
Exemplo: Servidor web (thread única)
120 req/s, processamento médio de 6 ms (μ = 167 req/s).
Para latências abaixo de 10 ms totais, é necessário múltiplas threads (M/M/c). Com 2 threads, Wq cai para ~2 ms.
Exemplo: Portaria de condomínio
8 visitantes chegam por hora a uma portaria com 1 porteiro. Cadastro demora em média 5 minutos (μ = 12/h).
Se o porteiro agilizar o cadastro para 3 minutos (μ = 20/h, ρ = 40%), Wq cai para 2 minutos — sem contratar ninguém.
Exemplo: Médico em consultório
3 pacientes chegam por hora. Consulta dura em média 15 min (μ = 4/h).
Com agenda (λ determinístico, D/M/1), o Wq cai para ~22 min. Com sistema de agendamento online que elimina no-shows, λ efetivo cai para ~2,5/h (ρ = 0,625 → Wq ≈ 25 min) e a agenda passa a ser cumprida.
Exemplo: Worker de processamento de imagens (microserviço)
Pipeline de IA recebe 5 imagens/segundo. O modelo de inferência demora em média 150 ms (μ = 6,67/s).
Adicionando uma 2ª GPU (M/M/2, ρ = 0,375), Wq cai para < 5 ms. O custo da GPU se paga em evitar violações do SLA.
Interpretação conjunta das métricas M/M/1
| Métrica | Fórmula | Interpretação operacional |
|---|---|---|
| ρ | λ/μ | Fração do tempo em que o servidor está ocupado |
| P₀ | 1 − ρ | Probabilidade de encontrar o sistema vazio (sem espera) |
| L | ρ/(1−ρ) | Número médio no sistema (fila + atendimento) |
| Lq | ρ²/(1−ρ) | Número médio aguardando (não em atendimento) |
| W | 1/(μ−λ) | Tempo médio total no sistema (espera + serviço) |
| Wq | λ/[μ(μ−λ)] | Tempo médio apenas esperando na fila |
A Lei de Little conecta tudo: L = λW e Lq = λWq. Se você medir qualquer dois, calcula o terceiro.
--- — múltiplos servidores paralelos (Erlang-C)
Quando usar: vários servidores idênticos atendem a mesma fila — call centers, caixas de banco, guichês de aeroporto, bancos de threads.
Fórmula de Erlang-C
onde é o tráfego em Erlangs e .
Exemplo: Agência bancária com 2 caixas
20 clientes/hora, cada caixa atende 15 clientes/hora. Modelo M/M/2.
Erlang-C → P(esperar) ≈ 17,5% → Wq ≈ 22 segundos
Com apenas 1 caixa (ρ = 1,33): sistema instável — fila infinita. O segundo caixa é essencial. O terceiro reduziria Wq para ~5 segundos.
Exemplo: Call center — dimensionamento por SLA
90 ligações/hora, atendimento de 4 minutos (μ = 15/h). SLA: 80% das ligações atendidas em ≤ 20 segundos.
| Atendentes (c) | ρ | P(esperar) | P(Wq ≤ 20s) |
|---|---|---|---|
| 7 | 85,7% | 35,1% | ~52% ❌ |
| 8 | 75,0% | 18,4% | ~81% ✅ |
| 9 | 66,7% | 8,4% | ~95% |
| 10 | 60,0% | 3,6% | ~99% |
Com 8 atendentes o SLA é atingido por margem mínima. Na prática, recomenda-se 9 para absorver ausências e picos.
Exemplo: Check-in de aeroporto
180 passageiros/hora, atendimento de 2 minutos (μ = 30/h), 8 guichês.
Se um guichê fechar (c=7, ρ = 85,7%), Wq sobe para ~5,6 min — passageiros podem perder voos em dias de pico.
Exemplo: Banco de dados — dimensionamento do pool de workers
200 queries/s, execução média 4 ms (μ = 250/s). Pool de 4 workers.
Com ρ = 20%, o sistema está muito folgado. Wq < 0,1 ms. Com 2 workers (ρ = 40%), ainda excelente. O pool de 4 garante headroom para picos de até 480 queries/s sem degradação.
Exemplo: Posto de gasolina
20 carros/hora chegam, abastecimento médio de 4 minutos (μ = 15/h), 3 bombas.
P(esperar) ≈ 2,4%. Wq ≈ 13 segundos. Sistema bem dimensionado. Com 2 bombas (ρ = 0,667), Wq já subiria para ~1,5 min.
Exemplo: Equipe de manutenção
3 chamados por hora chegam a uma equipe de 2 técnicos. Cada reparo dura 30 min em média (μ = 2/h).
P(esperar) ≈ 34,5%. Wq ≈ 34 minutos de espera antes do técnico chegar. O custo de máquina parada durante esse tempo justifica a análise de adicionar um 3º técnico (que reduziria Wq para ~5 min).
Exemplo: Atendimento de suporte de TI (help desk)
12 tickets chegam por hora. Resolução média: 20 min (μ = 3/h). Equipe de 5 analistas.
Erlang-C: C(5, 4) ≈ 34,7% → Wq ≈ 6,9 min. Com 6 analistas (ρ = 0,667): Wq ≈ 1,9 min. O 6º analista custa menos que o impacto de 5 min adicionais de espera para 12 tickets/hora.
Exemplo: Farmácia de hospital público (dispensação de medicamentos)
60 receitas chegam por hora, 4 farmacêuticos, cada um atende 20 receitas/h.
C(4, 3) ≈ 17,3% → Wq ≈ 52 segundos — aceitável para uma farmácia hospitalar. No pico de entrega de alta (λ = 90/h): ρ = 1,125 → instável → necessário 5º farmacêutico ou triagem de urgência.
Exemplo: Impressora de rede compartilhada (servidor de impressão)
8 usuários enviam trabalhos a uma fila de impressão. Em média, 3 trabalhos/min chegam, impressão leva 15 s (μ = 4/min), 1 impressora.
Com 2 impressoras (M/M/2, ρ = 0,375): Wq ≈ 4 s. Para uma equipe que imprime relatórios críticos, a segunda impressora elimina frustração.
Dimensionamento ótimo com tabela comparativa
A tabela de servidores exibida abaixo do resultado M/M/c mostra automaticamente c−1, c, c+1, c+2:
| c | ρ | C(c,a) | Wq | L | Custo/hora |
|---|---|---|---|---|---|
| 3 | 1,00 | instável | ∞ | ∞ | 3 × |
| 4 | 0,75 | 17,3% | 52 s | 0,87 | 4 × |
| 5 | 0,60 | 5,5% | 14 s | 0,23 | 5 × |
| 6 | 0,50 | 1,5% | 3,6 s | 0,06 | 6 × |
A decisão entre c=4 e c=5 exige comparar o custo de 1 farmacêutico adicional com o custo de 38 s extras de espera para 60 receitas/hora.
--- — serviço de tempo fixo (Pollaczek-Khinchine)
Quando usar: o tempo de atendimento é constante — linha de produção cadenciada, impressora de rede, farmácia com protocolo padronizado, pedágio eletrônico.
Fórmula P-K para variância zero
Conclusão chave: com tempo fixo, a fila é exatamente metade do caso M/M/1 equivalente.
Exemplo: Farmácia hospitalar
40 pedidos/hora chegam. Dispensação padronizada em 45 segundos fixos (μ = 80/h).
Com tempo variável (M/M/1, mesma média): Wq ≈ 45 segundos. Padronizar o processo de dispensação cortou o tempo de espera à metade.
Exemplo: Caixa de supermercado (tempo padronizado)
15 clientes/hora, tempo fixo de 3 min por cliente (μ = 20/h).
Treinar caixas para atingir um tempo padronizado de atendimento reduz a espera percebida pela metade — sem contratar ninguém.
Exemplo: Pedágio com pagamento eletrônico
120 carros/hora por pista. Passagem leva sempre 20 segundos (μ = 180/h).
Se o sistema caísse para cobrança manual (tempo variável, mesma média), Wq dobraria para ~40 s. Em horários de pico com λ = 160 carros/h (ρ = 0,889), o M/D/1 dá Wq ≈ 2,5 min; o M/M/1 daria ~10 min.
Exemplo: Linha de montagem cadenciada
25 peças/hora chegam a uma estação com tempo de ciclo fixo de 2 minutos (μ = 30/h).
A estação está operando a 83% de capacidade. Se a demanda subir para 28 peças/h (ρ = 0,933), Wq do M/D/1 já vai para 14 min — gargalo crítico.
Por que o M/D/1 tem exatamente metade da fila do M/M/1?
A fórmula P-K geral é:
Para M/M/1: → termo extra = ρ² → soma fica 2ρ² → Lq = ρ²/(1−ρ).
Para M/D/1: → só o primeiro termo → Lq = ρ²/[2(1−ρ)].
A variabilidade zero do serviço elimina metade da fila. Isso explica por que protocolos padronizados (scripts de atendimento, automação, takt time industrial) reduzem filas sem aumentar a velocidade média de serviço.
Como verificar se o serviço é “suficientemente fixo” para usar M/D/1
Meça o CV do tempo de serviço a partir de uma amostra:
| CV medido | Erro ao usar M/D/1 em vez do modelo correto |
|---|---|
| CV < 0,15 | < 2% — M/D/1 é preciso |
| 0,15 ≤ CV < 0,4 | 5–20% — M/D/1 subestima levemente a fila |
| 0,4 ≤ CV < 0,7 | 20–50% — use Erlang-k ou M/G/1 |
| CV ≥ 0,7 | > 50% — use M/M/1 ou M/G/1 com Lognormal |
--- — capacidade máxima finita
Quando usar: o sistema tem um limite físico — vagas de estacionamento, assentos de sala de espera, buffer de chamadas, quantidade de pedidos em processamento.
Fórmulas
Exemplo: Estacionamento com 15 vagas
10 carros/hora chegam. Permanência média: 2 horas (μ = 0,5/h). Capacidade: 15 vagas.
P(K=15) ≈ 0,1% — praticamente não há bloqueio. Se a demanda triplicar (λ = 30), bloqueio sobe drasticamente e carros ficam esperando na rua.
Exemplo: Buffer de chamadas (M/M/1/5)
50 chamadas/hora chegam a 1 atendente com μ = 20/h. Fila máxima: 5 posições.
Quase metade das chamadas é bloqueada. Para bloqueo < 5%: aumentar K para ~20 ou adicionar 2 atendentes (M/M/2, ρ = 1,25 — ainda instável!) ou 3 atendentes (M/M/3, ρ = 0,833 — estável, Wq ≈ 2 min).
Exemplo: Sistema de pedidos online com limite de concurrent orders
Plataforma de e-commerce aceita no máximo K = 100 pedidos simultâneos em processamento. λ = 80 pedidos/min, μ = 1 pedido/min (processamento de pagamento + estoque). 1 “worker” lógico.
Apesar de ρ >> 1, o sistema é estável com capacidade finita. P(bloqueio) = P_K ≈ 1% — pedidos raramente são rejeitados. Wq é alto (dezenas de minutos), mas o sistema não colapsa. Aumentar para 5 workers paralelos (M/M/5/100): Wq cai para < 2 min e P(bloqueio) ≈ 0%.
Dimensionamento de K versus c
Para sistemas M/M/1/K, há dois alavancas independentes: aumentar K (mais espaço de espera) ou aumentar c (mais servidores):
| Ação | Efeito em P(bloqueio) | Efeito em Wq |
|---|---|---|
| Aumentar K | ↓ Bloqueio | ↑ Wq (mais gente espera) |
| Aumentar c | ↓ Bloqueio | ↓↓ Wq (atende mais rápido) |
Moral: aumentar K sem aumentar c reduz perdas mas aumenta a espera dos que entram. Em aplicações onde o custo de espera é alto (saúde, tempo real), c é a alavanca certa.
Exemplo: UPA — sala de espera com capacidade limitada
20 cadeiras na sala de espera. 10 pacientes chegam por hora, 1 médico com μ = 3/h. K = 21 (20 cadeiras + 1 em atendimento).
Quase 1 em 3 pacientes encontra a sala cheia e vai para outra unidade. Com 2 médicos (M/M/2/21, ρ = 1,67, sistema estável): P(bloqueio) ≈ 2,5%. O segundo médico é decisivo.
--- (sem fila, perda pura)
Quando usar: chegadas em excesso são perdidas, não esperadas — ramais PABX, leitos hospitalares por especialidade, mesas de restaurante, licenças de software concurrent users.
Fórmula de Erlang-B
Exemplo: Ramais PABX
Escritório com 4 ramais. 30 chamadas/hora, duração média 5 min (μ = 12/h). a = 2,5 Erlangs.
| Ramais (c) | Bloqueio |
|---|---|
| 3 | 22,1% |
| 4 | 9,4% |
| 5 | 3,5% |
| 6 | 1,1% |
| 7 | 0,3% |
Com 4 ramais, 1 em cada 10 chamadas cai no “ocupado”. Para ≤ 2% de bloqueio (padrão comercial): 5 ramais.
Exemplo: Leitos de UTI
10 leitos. 2 internações/dia chegam. Permanência média 5 dias (μ = 0,2/dia). a = 10 Erlangs.
| Leitos | Bloqueio |
|---|---|
| 10 | 34,2% |
| 14 | 10,2% |
| 18 | 2,5% |
| 22 | 0,5% |
Com 10 leitos, 1 em 3 pacientes críticos não encontra vaga. Para bloqueio < 5%: 18 leitos. Este cálculo é a base do planejamento de capacidade hospitalar pelo Ministério da Saúde.
Exemplo: Mesas de restaurante no horário de pico
20 mesas. 40 grupos chegam/hora no pico. Refeição média: 45 min (μ = 1,33 grupos/hora/mesa). a ≈ 30 Erlangs.
B(20, 30) ≈ 54% dos grupos não encontram mesa.
Para ≤ 10% de bloqueio: ~28 mesas. Alternativa prática: sistema de reservas reduz a chegada aleatória (Poisson → determinístico), cortando drasticamente o excesso.
Exemplo: Licenças concurrent de software
Empresa tem 4 licenças floating de um ERP. 10 usuários tentam acessar/hora, cada sessão dura 20 min (μ = 3/h). a = 10/3 ≈ 3,33 Erlangs.
B(4, 3,33) ≈ 23% dos acessos bloqueados. Com 6 licenças: bloqueio cai para ~5%. Com 8: ~0,6%.
Como a fórmula de Erlang-B é calculada iterativamente
A recursão de Jagerman é numericamente estável para c grande:
Isso evita o overflow de para valores grandes de e — relevante em dimensionamento de redes com dezenas de circuitos.
Regra prática de Erlang-B para planejamento rápido
Para bloqueio ≤ 2% (padrão comercial telecom):
| Tráfego (Erlangs) | Circuitos necessários | Margem sobre a |
|---|---|---|
| 1 | 4 | 4× |
| 5 | 10 | 2× |
| 10 | 16 | 1,6× |
| 50 | 62 | 1,24× |
| 100 | 115 | 1,15× |
Efeito de economia de escala: ao dobrar o tráfego, o número de circuitos necessários cresce menos que o dobro — sistemas maiores são mais eficientes em termos de utilização por circuito.
Erlang-B vs Erlang-C — quando usar cada um
| Critério | Erlang-B (M/M/c/c) | Erlang-C (M/M/c) |
|---|---|---|
| Chegadas em excesso | São perdidas | Aguardam em fila |
| Exemplos | PABX, leitos, licenças, mesas | Call center, guichês, caixas |
| Métrica de interesse | Probabilidade de bloqueio | Tempo de espera (Wq) |
| SLA típico | Bloqueio ≤ 2% | Wq ≤ T segundos com P ≥ 80% |
| Consequência do excesso | Cliente desiste/vai embora | Cliente espera (pode abandonar depois) |
--- — a ligação universal
Válida para qualquer sistema estável, independente do modelo ou distribuição:
Exemplo prático: Em uma linha de montagem, há em média 8 peças no sistema. O tempo de ciclo total (do início ao fim) é 12 minutos. Taxa de saída = L/W = 8/12 = 0,667 peças/min = 40 peças/hora.
A Lei de Little permite medir qualquer grandeza (L, W ou λ) a partir das outras duas — sem depender de modelo matemático.
Aplicações práticas da Lei de Little
1. Medir throughput real de uma fábrica
Há 40 ordens em andamento (L = 40). O lead time médio é 5 dias (W = 5). Portanto λ = L/W = 8 ordens concluídas por dia — mesmo sem medir λ diretamente.
2. Estimar WIP necessário para atingir um throughput
Uma linha deve processar 200 peças/dia (λ = 200). O tempo de ciclo (W) é 4 horas = 0,5 dia. Logo o WIP médio deve ser L = 200 × 0,5 = 100 peças em processo simultâneo.
3. Medir o lead time de uma pipeline de software (DevOps)
Há 15 cards ativos no Kanban (L = 15). A equipe fecha 3 cards por dia (λ = 3). Lead time médio = L/λ = 5 dias — métrica central do DORA e do Fluxo.
4. Dimensionamento de inventário em trânsito
Empresa exporta 500 contêineres/mês. Tempo médio de trânsito: 18 dias = 0,6 mês. Inventário médio em trânsito = 500 × 0,6 = 300 contêineres imobilizados.
5. Filas hospitalares — relação entre espera e ocupação
UTI com 10 leitos (c = 10). Taxa de internação: 2/dia. Permanência média: 4 dias. L = 2 × 4 = 8 leitos ocupados em média → ρ = 80%.
Teorema de Jackson — redes de filas
Para redes de filas com servidores M/M/c e roteamento probabilístico (Jackson networks), o teorema de Jackson afirma que cada nó se comporta como uma fila M/M/c independente em regime estacionário, com λ efetivo calculado pela equação de equilíbrio de fluxo:
onde é a taxa de chegada externa ao nó j e é a fração de entidades que vão do nó i ao nó j.
Isso permite calcular Wq, Lq e ρ de cada etapa independentemente usando as fórmulas M/M/c — e somar os Wq para obter o tempo total em uma rede em série. A ferramenta de rede de filas desta calculadora usa exatamente este princípio.
Antes de escolher o modelo, determine se suas chegadas e tempos de serviço seguem Poisson/Exponencial. A seção “Ajuste de distribuição” analisa automaticamente sua amostra:
Coeficiente de Variação (CV = σ/média)
| CV medido | Distribuição sugerida | Modelo indicado |
|---|---|---|
| CV < 0,15 | Quase constante | M/D/1 ou M/D/c |
| 0,15 ≤ CV < 0,65 | Erlang-k (k ≈ 1/CV²) | M/Ek/c (use simulação) |
| 0,65 ≤ CV < 1,35 | Exponencial (Markoviana) | M/M/c |
| CV ≥ 1,35 | Hiper-exponencial | Simulação DES recomendada |
Teste de Kolmogorov-Smirnov
Para CV ≈ 1, o KS testa formalmente se os dados são compatíveis com exponencial a 95% de confiança — exibindo D observado vs. D crítico.
Como usar
- Colete tempos entre chegadas sucessivas (ou tempos de serviço)
- Cole os valores no campo (vírgula, ponto-e-vírgula ou quebra de linha)
- Clique “Analisar” — a ferramenta retorna CV, histograma, sugestão e KS
- Clique “Aplicar λ/μ” para preencher o parâmetro e recalcular
Comparação de Cenários — Process Analyzer com IC 95%
O Process Analyzer (seção “Comparação de Cenários”) permite avaliar múltiplas configurações do sistema em paralelo — o equivalente ao Process Analyzer do Arena e ao Scenario Manager do Simul8.
O que é um cenário?
Um cenário é uma variação dos parâmetros atuais com overrides específicos: você define a configuração base (formulário principal) e cada cenário aplica alterações pontuais — ex: aumentar λ em 20%, adicionar 1 servidor, melhorar μ em 10%.
Campos configuráveis por cenário:
| Parâmetro | Significado |
|---|---|
| λ | Taxa de chegada do cenário (substitui a global) |
| μ | Taxa de serviço do cenário |
| c | Número de servidores do cenário |
| modelo | Herdado da configuração base |
Replicações e Intervalo de Confiança
Cada cenário é rodado vezes (replicações), cada uma com entidades. As estatísticas de saída (, , ) variam entre réplicas por causa da aleatoriedade. O IC 95% é calculado via t-Student com df = R − 1:
onde é o desvio padrão amostral entre réplicas.
Parâmetros recomendados:
- Réplicas R: 10–20 para exploração inicial; 30–50 para decisões de investimento
- Entidades N: 300–500 para IC estreito; aumentar se o CV for alto (>25%)
Quando usar
- Dimensionamento de capacidade: comparar c=2 vs c=3 com os ICs — se os ICs não se sobrepõem, a diferença é estatisticamente significativa
- Análise de sensibilidade: quanto o Wq piora se λ crescer 20%? E se μ cair 10%?
- Planejamento de pico: simular o cenário “Pico de demanda” com λ×1.3 e verificar se ρ < 1
- Business case: exportar o CSV e comparar custo de servidores vs. redução de Wq
Interpretação da tabela
- Fundo vermelho: ρ ≥ 1 — sistema instável, fila cresce indefinidamente
- Fundo amarelo: ρ ≥ 0.9 — risco de saturação em picos transientes
- IC estreito (CV < 10%): estimativa confiável — poucas réplicas são suficientes
- IC largo (CV > 25%): aumente o número de réplicas ou de entidades
Dica: Use o analítico (fórmulas fechadas) para triagem rápida e o simulador (replicações) para validar e obter ICs reais — especialmente quando ρ > 0.8, onde as fórmulas M/M/c superestimam a estabilidade.
Simulação de Eventos Discretos (DES)
O botão 🎲 Simular abre uma simulação DES completa — o mesmo princípio do Arena e Simul8, executado no navegador.
Como funciona
- Chegadas homogêneas: intervalo entre chegadas = −ln(U)/λ (transformada inversa da exponencial)
- Chegadas não-homogêneas (NHPP): método de Lewis-Shedler (thinning) — gera candidatos com λ_max e aceita cada um com probabilidade λ(t)/λ_max, respeitando o perfil de chegada por período
- Serviço exponencial: amostra por transformada inversa
- Erlang-k: soma de k amostras exponenciais de taxa k·μ
- Weibull, Lognormal, Normal, Triangular, Uniforme: amostras por transformada inversa ou aceitação-rejeição
- Alocação: servidor mais cedo disponível; se todos ocupados → fila virtual
- Bloqueio: M/M/1/K rejeita quando cheio; M/M/c/c rejeita quando todos os servidores ocupados
O que os resultados mostram
| Saída | Significado |
|---|---|
| Simulação vs Analítico | Valida as fórmulas para os parâmetros dados |
| Histograma de Wq | Distribuição completa da espera (percentis reais) |
| Fila × tempo | Evolução dinâmica — identifica rajadas e períodos de folga |
| Taxa de bloqueio simulada | Proporção real de entidades rejeitadas |
Para análises críticas, use N = 500 entidades. Concordância dentro de ±10% com o analítico confirma que os parâmetros estão corretos.
Taxas de chegada variáveis no tempo (NHPP)
Em muitos sistemas reais, λ não é constante ao longo do dia — call centers têm pico na manhã, restaurantes no almoço, servidores web pico em horário comercial. A ferramenta implementa um Processo de Poisson Não-Homogêneo (NHPP) via o botão ⏱ λ variável no tempo no painel de parâmetros.
Como configurar o perfil de chegada
- Clique em ⏱ λ variável no tempo abaixo do campo λ
- No modal, defina períodos com rótulo, duração e taxa λ — os períodos são cíclicos (ex.: 24h se repetem a cada dia)
- O mini gráfico de barras atualiza em tempo real (largura ∝ duração do período)
- Clique ✓ Aplicar perfil — o badge
λ̄ = X.XX/haparece ao lado do botão confirmando a ativação
Cálculo analítico vs simulação NHPP
| Modo | O que usa | Quando usar |
|---|---|---|
| Fórmulas (analítico) | λ médio ponderado λ̄ = Σ(λᵢ·dᵢ)/Σ(dᵢ) | Estimativa rápida de dimensionamento |
| 🎲 Simular | NHPP via Lewis-Shedler thinning | Análise precisa do impacto do perfil horário |
O λ médio ponderado é exato para dimensionamento em regime estacionário. A simulação NHPP revela o impacto dinâmico: nos períodos de pico, a fila cresce; nos vales, esvazia. A diferença entre o Wq máximo de pico e o Wq médio pode ser 3–10× dependendo do perfil.
Exemplo: call center com perfil diário
Perfil: 08h–10h (λ=80/h), 10h–12h (λ=50/h), 12h–14h (λ=30/h), 14h–18h (λ=60/h), restante (λ=10/h). μ=15/h, c=6 atendentes.
- λ médio ponderado ≈ 46/h → ρ ≈ 51% → Wq analítico ≈ 12 s (parece confortável)
- Simulação NHPP no pico 08h–10h: ρ ≈ 89% → Wq de pico ≈ 3,5 min
A análise com λ constante subestima dramaticamente o impacto do pico. Com NHPP + simulação, descobre-se que são necessários 7 atendentes para manter Wq < 30 s durante o pico matutino.
Método de Lewis-Shedler (thinning)
O algoritmo gera um processo de Poisson homogêneo com taxa λ_max = max(λ₁, λ₂, …, λₙ) e, para cada evento candidato no instante t, aceita-o com probabilidade λ(t)/λ_max:
O resultado é um processo não-homogêneo exato. O tempo t é avaliado módulo o período total do ciclo, tornando o perfil cíclico e compatível com simulações de múltiplos dias.
Período de Warm-up — Regime Transiente vs. Estacionário
Todo sistema de filas real passa por uma fase inicial chamada regime transiente: logo após a abertura (ou reinicialização), a fila começa vazia e o comportamento ainda não reflete o padrão de longo prazo. À medida que o sistema opera, as estatísticas convergem para o regime estacionário — o equilíbrio estatístico descrito pelas fórmulas de M/M/1, M/M/c etc.
Por que isso importa?
Se você mede Lq, Wq e ρ incluindo o período de aquecimento, os valores aparecem artificialmente melhores do que a realidade operacional. Um caixa de supermercado medido nos primeiros 10 minutos após a abertura terá fila quase zero — mas esse dado não representa o meio do dia.
Como a ferramenta trata o warm-up
Nos Parâmetros de Simulação, acima do botão Calcular, você define:
| Campo | O que representa |
|---|---|
| Duração total | Janela de tempo da operação (ex.: 480 min = turno de 8h) |
| Warm-up | Período inicial descartado das estatísticas (ex.: 60 min) |
A ferramenta exibe automaticamente: “KPIs calculados sobre X min (pós warm-up)”.
Curva de convergência Lq(t)
O gráfico “Lq ao longo do tempo” mostra a evolução teórica do comprimento médio da fila usando a aproximação:
onde α = μ · c · (1 − ρ) é a taxa de convergência do sistema. Quanto maior α (servidores rápidos, utilização baixa), mais rápida a estabilização.
A área amarela representa o período de warm-up. A linha tracejada horizontal marca Lq∞ (valor estacionário).
Badge de regime
| Badge | Significado |
|---|---|
| 🟢 Estacionário | O warm-up definido é suficiente para cobrir 95% da convergência |
| 🟡 Transiente | O warm-up é curto — as estatísticas ainda carregam influência do estado inicial |
A fronteira é o tempo t₉₅ = −ln(0,05) / α, que representa o instante em que o sistema já atingiu 95% do valor estacionário de Lq.
Regra prática
Para sistemas com ρ > 0,8, o tempo de estabilização pode ser longo. Uma heurística comum em simulações industriais é usar 10–20% da duração total como warm-up — ou até a primeira vez em que a fila esvazia completamente após a abertura.
Filas com Prioridade — Disciplina PRIO e Tipos de Entidade
O que é disciplina de fila?
Em sistemas reais, nem todo cliente espera a mesma coisa na mesma fila. A disciplina de fila define a ordem de atendimento:
| Disciplina | Sigla | Comportamento |
|---|---|---|
| Primeiro a chegar, primeiro a ser atendido | FIFO | Ordem de chegada — todos os tipos têm o mesmo Wq |
| Prioridade (não-preemptiva) | PRIO | Clientes de maior prioridade ficam à frente; quem está em atendimento não é interrompido |
| Último a chegar, primeiro a ser atendido | LIFO | Útil para modelar pilhas (stacks) — ex.: inventário em armazém |
Múltiplos tipos de entidade
Quando o sistema atende clientes de diferentes tipos (Regular, VIP, Urgente), cada tipo possui:
- Proporção (%) — fração do fluxo total de chegadas:
- Prioridade — nível 1 a 5 (maior = atendido primeiro no modo PRIO)
- μ próprio (opcional) — taxa de serviço específica para o tipo (ex.: VIP com atendimento mais rápido)
Fórmula de Kleinrock (M/M/1, PRIO não-preemptiva)
Para uma fila M/M/1 com classes de prioridade ordenadas de maior para menor, defina:
O tempo médio de espera na fila para a classe é:
onde é o tempo residual de serviço ponderado.
O número médio na fila por tipo segue pela Lei de Little: .
Para M/M/c (c > 1): a ferramenta escala o resultado acima pelo ratio — uma aproximação conservadora. Para precisão máxima, use a simulação (🎲 Simular).
Condição de estabilidade com prioridades
O sistema é estável se .
Atenção: para as classes mais baixas o denominador pode se aproximar de zero, fazendo antes mesmo do sistema global ficar instável — é o fenômeno de starvation (inanição).
Exemplo
Banco com λ = 30 clientes/hora, μ = 15/hora, 2 servidores (M/M/2):
| Tipo | Proporção | λₖ | Prioridade | Wq estimado |
|---|---|---|---|---|
| Regular | 70% | 21/h | 1 — padrão | ~4,2 min |
| VIP | 20% | 6/h | 2 — alto | ~1,8 min |
| Urgente | 10% | 3/h | 3 — crítico | ~0,9 min |
O VIP espera ~57% menos que o Regular; o Urgente ~78% menos.
Quando usar PRIO vs. FIFO
- FIFO: quando todos os clientes têm o mesmo valor e justiça é prioritária
- PRIO: call centers com SLA diferenciado, urgências hospitalares, sistemas de TI com tickets críticos, logística com entregas prioritárias
- LIFO: modelagem de estoques LIFO, buffers de rede com descarte de pacotes mais antigos
Roteamento Condicional — Como as Entidades Escolhem o Próximo Estágio
Em uma rede de filas real, nem toda entidade percorre todos os estágios. Um paciente pode ser liberado após a triagem sem passar pela consulta; 30% dos pedidos podem ir para o depósito A e 70% para o B. Isso é roteamento condicional.
Três tipos de roteamento
| Tipo | Símbolo | Quando usar |
|---|---|---|
| Serial | → 100% | Todas as entidades passam para o próximo estágio — fluxo obrigatório |
| Probabilístico | → p% | Cada entidade tem probabilidade fixa p de entrar no estágio — independente de atributos |
| Regra (atributo) | → se attr op val | A decisão depende de um atributo da entidade (prioridade, classe, etc.) |
Probabilístico — divisão de fluxo
Se o roteamento entre estágio e estágio tem fração , o λ efetivo do estágio é:
onde .
Exemplos: triagem hospitalar onde 40% são liberados sem consulta; call center onde 60% são resolvidos no nível 1 e 40% escalam para especialista; e-commerce com depósitos paralelos.
Regra (atributo)
A entidade carrega um atributo (prioridade, peso, classe) e, ao sair de um estágio, a condição é avaliada: se verdadeira, entra no próximo estágio; caso contrário, sai do sistema ou vai para rota alternativa.
Para o cálculo analítico, usa-se uma fração estimada — a proporção de entidades que satisfaz a condição. O modelo trata como probabilístico com .
Exemplo numérico: banco com 100 clientes/hora, 20% VIP (prioridade ≥ 2). O caixa VIP recebe /hora; o regular, /hora.
Quando usar cada tipo
- Serial: fluxo obrigatório, todas as entidades percorrem todas as etapas (linha de produção sequencial, pipeline de microserviços)
- Probabilístico: fluxo aleatório sem distinção por tipo — abandono espontâneo, round-robin, amostragem aleatória para QA
- Regra: fluxo diferenciado por tipo de entidade — triagem médica (urgente/não-urgente), SLA diferenciado (VIP/standard), filas de suporte por nível de complexidade
Atenção: Com roteamento probabilístico, o λ total do sistema se reduz. Verifique a condição de estabilidade de cada estágio separadamente — o gargalo pode mudar com o roteamento.
Recursos com Turnos, Breaks e Falhas (Downtime)
Em sistemas reais, servidores não ficam disponíveis 24 h por dia com capacidade constante. Uma linha de produção opera em três turnos com equipes diferentes; um call center tem menos atendentes à noite; uma máquina para periodicamente para manutenção. Ignorar isso superestima a capacidade real e subestima o tempo de espera.
Turnos de trabalho
Um turno define um intervalo de tempo (início–fim, em minutos desde meia-noite ou desde o início da simulação) e quantos servidores estão ativos nesse período. A tabela de turnos é cíclica — ao fim do último turno o ciclo reinicia automaticamente.
| Conceito | Significado |
|---|---|
| Início / Fim | Limite do turno em minutos dentro de um ciclo diário (0 = meia-noite) |
| Servidores ativos | Número de servidores disponíveis durante o turno |
Regra prática: não deixe turnos com gap (horário sem cobertura) a não ser que seja intencional — entidades que chegam nesse período encontram 0 servidores e ficam bloqueadas.
O número efetivo de servidores no instante da simulação é:
onde é a duração total do ciclo de turnos.
Falhas e Manutenção
Falhas são modeladas por dois parâmetros:
| Parâmetro | Significado |
|---|---|
| MTBF (Mean Time Between Failures) | Tempo médio entre falhas — quanto tempo o servidor opera sem parar. Amostrado por distribuição exponencial. |
| MTTR (Mean Time To Repair) | Tempo médio de reparo — quanto tempo o servidor fica indisponível após uma falha. Também exponencial. |
Durante um evento de falha, o servidor afetado fica indisponível por um período MTTR e as entidades que chegariam a ele precisam esperar ou migrar para outro servidor disponível.
Disponibilidade teórica do recurso (sem considerar turnos):
O downtime percentual exibido na interface é . Por exemplo, MTBF = 240 min e MTTR = 30 min resultam em — 11 % do tempo o servidor está em reparo.
Impacto nas métricas
Com turnos e falhas, a utilização efetiva do servidor aumenta mesmo sem mudar ou , porque a capacidade disponível diminui. Um sistema estável em teoria pode se tornar instável na prática se a disponibilidade for baixa:
Para sistemas com turnos, a ferramenta usa Simulação de Eventos Discretos para calcular , e — as fórmulas analíticas M/M/c supõem capacidade constante e não se aplicam diretamente.
Quando usar
- Turnos: linhas de produção, call centers, supermercados com abertura/fechamento, hospitais com plantões
- Falhas: máquinas industriais, equipamentos médicos, servidores de TI, guichês sujeitos a lentidão sistêmica
Distribuições não-exponenciais — M/G/1 e M/G/c
Na prática, nem sempre o tempo de serviço segue uma distribuição exponencial. A ferramenta permite selecionar sete distribuições no campo “Distribuição do tempo de serviço”, todas com resultados analíticos via fórmulas P-K e Kingman:
| Distribuição | Parâmetros | CV típico | Quando usar |
|---|---|---|---|
| Exponencial | μ | 1,00 | Padrão M/M/c — alta variabilidade aleatória |
| Erlang-k | k fases, μ | 1/√k | Serviços com k etapas sequenciais de duração igual |
| Weibull | α (forma), β (escala) | depende de α | Vida útil de equipamentos, tempos de reparo |
| Lognormal | μln, σln | depende de σln | Tarefas cognitivas, atendimentos com cauda longa |
| Normal truncada | μ, σ | baixo (< 1) | Processos bem treinados com pequena variabilidade |
| Triangular | mín, moda, máx | baixo | Estimativas por especialista sem dados históricos |
| Uniforme | a, b | 1/√3 ≈ 0,58 | Serviços com tempo garantidamente entre a e b |
Coeficiente de Variação (CV = σ/média)
O CV é o indicador-chave. A ferramenta exibe o CV = valor ao lado do seletor em tempo real.
- CV < 1: tempos mais previsíveis que o exponencial → fila menor que M/M/c
- CV = 1: equivalente ao exponencial → resultados idênticos ao M/M/c
- CV > 1: tempos mais variáveis → fila maior que M/M/c
Fórmula Pollaczek-Khinchine (M/G/1)
Para 1 servidor e qualquer distribuição com média E[S] = 1/μ e variância Var[S]:
Quando CV = 1 (exponencial), a fórmula P-K reproduz exatamente o M/M/1.
Aproximação de Kingman VCA (M/G/c)
Para c servidores paralelos, a aproximação de Kingman corrige o M/M/c pelo CV:
O fator (1 + CV²)/2 vale exatamente 1 para CV = 1 (exponencial) e reduz para 0,5 quando CV → 0 (tempo constante, equivalente a M/D/c). Esta aproximação tem erro tipicamente < 5% para ρ < 0,90.
Exemplo: call center com tempos de atendimento lognormais
80 chamadas/hora, 4 atendentes, μ = 15/h. Dados históricos mostram CV = 1,8 (cauda longa típica de chamadas técnicas).
| Modelo | Lq | Wq |
|---|---|---|
| M/M/c (CV = 1) | 0,174 | 7,8 s |
| M/G/c com CV = 1,8 (Kingman) | 0,312 | 14,0 s |
A variabilidade real quase dobra o tempo de espera. Com 5 atendentes (ρ = 1,07 → instável com c=4 neste exemplo; cf. valores reais na ferramenta), Wq cai drasticamente.
Exemplo: linha de montagem com Erlang-4
25 peças/hora, 1 estação, cada operação tem 4 etapas iguais em série de ~30 s cada (μ = 30/h, k = 4 → CV = 0,5).
Com a distribuição Erlang-4 a fila é 37,5% menor do que o M/M/1 estimaria. Modelar corretamente a distribuição pode mudar significativamente a decisão sobre adicionar servidores.
Guia rápido: qual modelo usar?
Há fila física possível?
├── NÃO → M/M/c/c (Erlang-B) ramais, leitos, mesas, licenças
└── SIM
├── Há capacidade máxima K?
│ └── SIM → M/M/1/K estacionamento, buffer, sala de espera finita
└── NÃO (fila ilimitada)
├── Distribuição do tempo de serviço
│ ├── Exponencial (CV ≈ 1)
│ │ ├── 1 servidor → M/M/1
│ │ └── c servidores → M/M/c (Erlang-C)
│ ├── Fixo/constante (CV = 0) → M/D/1
│ └── Geral (Erlang, Weibull, Lognormal, Normal, Triangular, Uniforme)
│ ├── 1 servidor → P-K formula (M/G/1)
│ └── c servidores → Kingman VCA (M/G/c)
Como coletar dados para modelagem — passo a passo
A qualidade do modelo depende da qualidade dos dados. Fórmulas perfeitas com parâmetros errados geram resultados inúteis.
Passo 1 — Definir o escopo do sistema
Antes de medir, responda:
- O que é uma entidade? (cliente, pedido, peça, requisição)
- Onde ela entra no sistema? (porta, API endpoint, início da linha)
- Onde ela sai? (atendimento concluído, entrega, resposta enviada)
- Quem são os servidores? (atendentes, máquinas, threads)
Passo 2 — Medir λ (taxa de chegada)
Método direto: registre o horário de cada chegada durante o período de análise. Divida o total pelo tempo.
Ferramentas: planilha com timestamp, log de sistema (grep + awk), vídeo com contador, catracas automáticas.
Cuidados:
- Meça em diferentes dias e horários — λ varia (use o modo NHPP se variar > 2×)
- Identifique sazonalidades (semana vs. fim de semana, mês do ano)
- Descarte períodos atípicos (feriados, promoções, incidentes)
- Amostra mínima recomendada: 30 períodos do mesmo tipo (30 picos de segunda-feira, por exemplo)
Passo 3 — Medir μ (taxa de serviço)
Método direto: cronometre o tempo de início e fim de cada atendimento. μ = 1 / média dos tempos.
Atenção: meça o tempo de serviço puro (não incluindo espera). Em sistemas com log, é departure_time − service_start_time.
Cuidados:
- Amostras mínimas: 30–50 atendimentos para CV estável
- Meça por servidor se houver diferença de velocidade (μ₁ ≠ μ₂)
- Identifique bimodalidades (atendimentos simples vs. complexos) — se CV > 1,5, considere separar em dois tipos ou usar M/G/1 com Lognormal
- Exclua interrupções (pausa do atendente, sistema travado) do tempo de serviço
Passo 4 — Validar com Kolmogorov-Smirnov
Com a amostra coletada, use o botão 🔬 Análise de distribuição para:
- Verificar se os tempos entre chegadas seguem Poisson (KS test)
- Verificar se os tempos de serviço seguem exponencial
- Obter o CV real e a distribuição mais adequada
Interpretação do KS:
- D < D_crítico (p > 0,05): hipótese de exponencial não rejeitada — use M/M/c
- D > D_crítico: a distribuição é diferente da exponencial — use M/G/1/M/G/c com o CV medido
Passo 5 — Calibrar e validar o modelo
Após configurar a ferramenta com os parâmetros medidos:
- Rode a simulação com N = 300 entidades
- Compare o Wq simulado com o Wq medido no sistema real
- Se o erro for < 15%, o modelo está calibrado — use as fórmulas para análise de cenários
- Se o erro for > 15%, revise: (a) λ medido no período certo? (b) há multiservidor não modelado? (c) há prioridades ignoradas?
Referência rápida de tamanho de amostra
| Parâmetro | Mínimo aceitável | Ideal | Por quê |
|---|---|---|---|
| Chegadas (para λ) | 100 chegadas | 500+ | CV de λ decai como 1/√n |
| Tempos de serviço (para μ e CV) | 30 observações | 100+ | Estabilidade do CV e do KS test |
| Períodos de medição (para NHPP) | 5 períodos | 15+ | Média horária estável |
| Réplicas de simulação (para IC 95%) | 10 | 30 | IC proporcional a 1/√R |
Retorno sobre Investimento (ROI) — quando vale adicionar um servidor?
A decisão de aumentar c (mais servidores/atendentes) é essencialmente uma análise de custo-benefício. A ferramenta fornece todos os inputs para esse cálculo.
Modelo de custo total
Defina:
- = custo horário de um servidor (salário + encargos + equipamento)
- = custo horário de uma entidade esperando (produtividade perdida, custo de oportunidade, penalidade por SLA, risco de abandono)
- λ = taxa de chegada (entidades/hora)
O custo total por hora é:
O número ótimo de servidores minimiza C(c). Calcule C(c) para c = c_min até c_max usando os valores de Wq da tabela comparativa.
Exemplo: central de atendimento de seguros
λ = 50 ligações/hora, μ = 6/h, = Rh_e 80/h (cliente esperando = custo de churn + NPS)
| Atendentes | ρ | Wq (min) | Custo servidores/h | Custo espera/h | Total/h |
|---|---|---|---|---|---|
| 9 | 92,6% | 15,2 | R$ 315 | R$ 1.013 | R$ 1.328 |
| 10 | 83,3% | 4,3 | R$ 350 | R$ 287 | R$ 637 |
| 11 | 75,8% | 1,5 | R$ 385 | R$ 100 | R$ 485 |
| 12 | 69,4% | 0,6 | R$ 420 | R$ 40 | R$ 460 |
| 13 | 64,1% | 0,25 | R$ 455 | R$ 17 | R$ 472 |
O ponto ótimo neste exemplo é 12 atendentes (custo mínimo de R 152/h — o 11º atendente se paga em minutos.
Custo de abandono (impatient customers)
Em sistemas reais, clientes que esperam muito abandonam. A taxa de abandono aumenta com Wq. Uma aproximação simples:
onde R é a receita média por atendimento e P(abandono) cresce com Wq. Se o Wq simulado (use a aba de simulação) revelar que 15% dos clientes saem antes de 3 minutos e cada atendimento vale R$ 200:
Esse valor, somado ao custo de espera, justifica facilmente a contratação do atendente adicional.
Payback de automação (redução de μ)
Se a automação reduz o tempo de serviço de 5 min para 3 min (μ sobe de 12/h para 20/h), o impacto no Wq é equivalente a adicionar vários servidores — com custo fixo e sem variabilidade de RH. Compare o investimento em automação com o payback em redução de custo de espera e/ou redução de headcount necessário.
Erros mais comuns — e como evitá-los
Erro 1: Usar λ médio quando há sazonalidade forte
Problema: λ = 60/h no pico e λ = 10/h no vale. A média ponderada de 35/h leva a um dimensionamento que funciona bem no vale mas colapsa no pico.
Solução: configure o perfil NHPP com ⏱ λ variável no tempo e simule para ver o Wq em cada período. Dimensione para o pico que você se dispõe a absorver.
Erro 2: Medir o tempo de espera incluindo o tempo de serviço
Problema: o cronômetro começa na chegada e para na saída → obtém W (tempo total), não Wq (tempo de espera puro).
Solução: registre separadamente arrival_time, service_start_time e departure_time. Wq = service_start − arrival. W = departure − arrival.
Erro 3: Usar M/M/1 quando há múltiplos servidores paralelos
Problema: calcular ρ = λ/(c·μ) e aplicar a fórmula M/M/1 com esse ρ reduzido. Subestima dramaticamente a fila — o M/M/c concentra o efeito da variabilidade de forma diferente.
Solução: use sempre M/M/c com o c correto. Para c = 1 ambos coincidem.
Erro 4: Ignorar o período de warm-up na simulação
Problema: a simulação começa com fila vazia. As primeiras 50–100 entidades têm Wq = 0 artificialmente, puxando a média para baixo.
Solução: ative o warm-up nas configurações de simulação. Regra: warm-up ≥ 5 / (μc − λ) em unidades de tempo.
Erro 5: Confundir bloqueio com abandono
Problema: o M/M/c supõe que clientes esperam indefinidamente. Na realidade, clientes com paciência finita abandonam a fila. Ignorar isso subestima a taxa de perda real.
Solução: use a simulação com NHPP e adicione lógica de abandono (impaciência). Como aproximação, note que o Wq simulado sem abandono é um limite superior — a fila real é menor porque alguns clientes saem.
Erro 6: Usar as fórmulas com ρ ≥ 1 e interpretar os resultados
Problema: quando ρ ≥ 1, as fórmulas retornam resultados negativos ou infinitos. Não há interpretação válida.
Solução: leia o alerta vermelho “sistema instável” e dimensione para ρ < 1 primeiro. Somente depois refine os parâmetros.
Erro 7: Comparar Wq analítico com lead time medido no sistema real
Problema: o lead time medido inclui retrabalho, interrupções, múltiplas filas encadeadas. O Wq analítico é apenas para uma fila isolada.
Solução: use o modo de rede de filas para modelar múltiplos estágios encadeados. Some os Wq de cada etapa para o tempo total de espera.
1. Como converter entre unidades de tempo?
Mantenha λ e μ na mesma unidade. Se λ = 90/hora e quiser trabalhar em minutos: λ = 1,5/min, μ = 15/60 = 0,25/min. Todos os resultados de W e Wq ficam na unidade escolhida. A ferramenta exibe automaticamente em s, min ou h conforme a magnitude.
2. Qual distribuição de serviço escolher?
Use o ajuste automático de distribuição (botão 🔬): cole uma amostra de tempos de serviço e a ferramenta calcula o CV e sugere a distribuição. Referência rápida:
| CV medido | Distribuição sugerida |
|---|---|
| CV ≈ 0 (< 0,15) | Determinístico → use M/D/1 |
| 0,15–0,65 | Erlang-k com k ≈ 1/CV² |
| 0,65–1,35 | Exponencial → M/M/c |
| > 1,35 | Hiper-exponencial ou Lognormal → use distribuição Lognormal na ferramenta |
Para qualquer distribuição escolhida, a ferramenta calcula automaticamente os KPIs analíticos via P-K (c=1) ou Kingman (c>1) e permite simular para validar.
3. O sistema é instável (ρ ≥ 1). O que fazer?
Três opções: (1) Aumentar μ — reduzir o tempo de atendimento; (2) Aumentar c — servidores em paralelo; (3) Reduzir λ — agendamento, triagem ou roteamento. A tabela comparativa de servidores (resultado M/M/c) mostra quantitativamente o impacto de adicionar cada servidor.
4. Qual a diferença entre Erlangs e ρ?
Erlangs (a = λ/μ) é o tráfego total oferecido — pode ser > 1. ρ (= a/c) é a utilização por servidor, entre 0 e 1. O Erlang-B usa a; o Erlang-C usa ambos.
5. Quando usar simulação em vez de fórmulas?
Use simulação quando: (a) quer validar os resultados analíticos; (b) o sistema tem múltiplas etapas encadeadas (rede de filas); (c) há prioridades ou roteamento complexo; (d) λ e μ variam ao longo do dia; (e) quer ver a distribuição completa de Wq (percentis), não apenas a média. Para os modelos cobertos pelas fórmulas, os resultados analíticos e de simulação convergem com N ≥ 300 — o que valida a modelagem.
6. Como o Arena se relaciona com esta ferramenta?
Arena e Simul8 usam DES para casos arbitrariamente complexos. A simulação integrada nesta ferramenta usa o mesmo princípio para os modelos básicos. Para os modelos cobertos por fórmulas fechadas, os resultados analíticos e de simulação convergem com N suficiente — o que valida a modelagem antes de levar para ferramentas mais complexas.
7. Como dimensionar uma equipe de manutenção?
Use M/M/c com λ = taxa de chamados e μ = taxa de atendimento por técnico. A tabela comparativa exibe Wq para c-1, c, c+1, c+2. Compare o custo marginal de um técnico com o custo horário de máquina parada: custo_parada × Wq × λ = custo de máquina parada por hora.
8. Como calcular SLA de tempo de espera para M/M/c?
Para encontrar o menor c que garante 80% dos clientes com Wq ≤ 20 s, use a tabela comparativa e identifique o menor c em que essa probabilidade supera 80%.
9. Quando usar λ variável no tempo (NHPP)?
Use o perfil NHPP sempre que λ variar significativamente ao longo do dia ou da semana — call centers, restaurantes, servidores web, pedágios, prontos-socorros. Regra prática: se o λ do pico for mais de 2× o λ médio, as fórmulas com λ constante subestimam o tempo de espera de pico. Configure o perfil com ⏱ λ variável no tempo e use 🎲 Simular para ver Wq em cada período.
Glossário de Teoria das Filas
| Termo | Símbolo | Definição |
|---|---|---|
| Taxa de chegada | λ | Número médio de chegadas por unidade de tempo. Unidade: entidades/tempo. |
| Taxa de serviço | μ | Número médio de atendimentos que um servidor realiza por unidade de tempo. |
| Número de servidores | c | Servidores paralelos idênticos atendendo a mesma fila. |
| Tráfego oferecido | a | a = λ/μ (em Erlangs). Tráfego que o sistema recebe, independentemente de c. |
| Utilização por servidor | ρ | ρ = λ/(c·μ). Fração do tempo que cada servidor fica ocupado. Estável se ρ < 1. |
| Número médio na fila | Lq | Entidades aguardando atendimento (não incluindo as em serviço). |
| Número médio no sistema | L | Entidades aguardando + em atendimento. L = Lq + λ/μ. |
| Tempo médio na fila | Wq | Tempo médio que uma entidade espera antes de ser atendida. |
| Tempo médio no sistema | W | Tempo médio total (espera + serviço). W = Wq + 1/μ. |
| Lei de Little | L = λW | Válida para qualquer sistema estável, independente do modelo. |
| Erlang (unidade) | E | 1 E = 1 circuito ocupado durante 1 hora. a = λ/μ em Erlangs. |
| Erlang-B | B(c,a) | Probabilidade de bloqueio em sistema M/M/c/c (sem fila). |
| Erlang-C | C(c,a) | Probabilidade de ter que esperar em sistema M/M/c (com fila). |
| Coeficiente de variação | CV | CV = σ/média do tempo de serviço. CV = 1 para exponencial. |
| Regime estacionário | — | Estado de equilíbrio estatístico após warm-up. As fórmulas descrevem este estado. |
| Regime transiente | — | Estado inicial, antes da estabilização. Estatísticas dependem do tempo. |
| Processo de Poisson | M | Chegadas com intervalos exponenciais independentes. A = M na notação de Kendall. |
| NHPP | — | Non-Homogeneous Poisson Process — Poisson com λ variando no tempo. |
| DES | — | Discrete Event Simulation — simulação que avança de evento em evento. |
| FIFO | — | First In, First Out — disciplina padrão de atendimento por ordem de chegada. |
| PRIO | — | Priority — entidades de maior prioridade são atendidas antes. |
| Warm-up | — | Período inicial descartado das estatísticas para evitar distorção do regime transiente. |
| Bloqueio | P_K | Probabilidade de uma entidade ser rejeitada por falta de capacidade. |
| Intervalo de confiança | IC 95% | Intervalo que contém o verdadeiro valor com 95% de probabilidade, calculado via t-Student. |
| MTBF | — | Mean Time Between Failures — tempo médio de operação sem falha. |
| MTTR | — | Mean Time To Repair — tempo médio de reparo após falha. |
| Disponibilidade | A | A = MTBF / (MTBF + MTTR). Fração do tempo em que o recurso está operacional. |
| Starvation | — | Fenômeno em sistemas com prioridade: entidades de baixa prioridade esperam indefinidamente. |
| Kingman VCA | — | Variational-Coefficient Approximation de Kingman para M/G/c. |
| P-K | — | Fórmula de Pollaczek-Khinchine para M/G/1 com distribuição geral de serviço. |
| Teorema de Jackson | — | Em redes de filas Jackson, cada nó M/M/c se comporta como fila independente. |
| Roteamento probabilístico | p | Fração p das entidades segue para o próximo estágio. |
| Abandono | — | Entidade sai da fila antes de ser atendida (impaciência). Não modelado pelas fórmulas padrão. |
| Takt time | — | Tempo disponível / demanda. Define o ritmo máximo de produção. = 1/λ_max. |
| WIP | — | Work In Progress — número de itens em processamento simultâneo. WIP = L pela Lei de Little. |
Teoria das Filas: Exercícios Resolvidos Passo a Passo
Esta seção apresenta exercícios clássicos de teoria das filas com resolução completa — do enunciado ao resultado, passando por cada fórmula aplicada. Ideal para estudantes de pesquisa operacional, engenharia de produção e administração.
Exercício 1 — M/M/1: Caixa de supermercado (nível básico)
Enunciado: Um supermercado tem 1 caixa. Chegam em média 18 clientes por hora (processo de Poisson). O atendimento demora em média 2,5 minutos por cliente. Calcule: (a) utilização do caixa, (b) tempo médio de espera na fila, (c) número médio de clientes aguardando.
Dados:
- λ = 18 clientes/hora
- μ = 60/2,5 = 24 clientes/hora
- Modelo: M/M/1
Resolução:
(a) Utilização:
O caixa está ocupado 75% do tempo.
(b) Tempo médio de espera na fila (Wq):
(c) Número médio aguardando (Lq):
Conclusão: Com utilização de 75%, o cliente espera em média 7,5 min antes de ser atendido. Se o fluxo subir para 22 clientes/hora (ρ = 91,7%), Wq dispara para 27,5 minutos — o efeito exponencial da utilização.
Verifique com a ferramenta: configure λ = 18, μ = 24, servidores = 1 e confirme os valores. O gráfico de Sensibilidade Wq × λ mostrará visualmente o ponto de colapso.
Exercício 2 — M/M/c: Call center com múltiplos atendentes (nível intermediário)
Enunciado: Um call center recebe 48 ligações por hora. Cada atendente resolve uma ligação em 6 minutos em média. Quantos atendentes são necessários para que no máximo 15% das ligações esperem mais de 30 segundos? (SLA: P(Wq > 30s) ≤ 15%)
Dados:
- λ = 48 ligações/hora
- μ = 10 ligações/hora por atendente
- a = λ/μ = 4,8 Erlangs
- Alvo: P(Wq > 30s) ≤ 15%
Resolução:
Trafego em Erlangs:
Testando c = 6 atendentes:
Erlang-C(6; 4,8) ≈ 0,428 → P(esperar) = 42,8%
❌ Com 6 atendentes o SLA não é atingido.
Testando c = 7 atendentes:
Erlang-C(7; 4,8) ≈ 0,191
Testando c = 8 atendentes: → P(Wq > 30s) ≈ 6,1% ✅
Resposta: 7 atendentes atingem quase exatamente o SLA; 8 atendentes garantem folga segura.
Configure na ferramenta: λ = 48, μ = 10, varie c de 6 a 8. Use a aba “Comparação de Cenários” para ver a tabela lado a lado.
Exercício 3 — M/M/c/c (Erlang-B): Dimensionamento de ramais PABX (nível intermediário)
Enunciado: Uma empresa gera 3,5 Erlangs de tráfego telefônico. Qual o número mínimo de ramais para que a probabilidade de bloqueio (sinal de ocupado) seja menor que 1%?
Dados:
- a = 3,5 Erlangs
- Modelo: M/M/c/c (Erlang-B) — sem fila, chamadas bloqueadas são perdidas
- Alvo: B(c, 3,5) < 0,01
Tabela de Erlang-B:
| Ramais (c) | B(c, 3,5) |
|---|---|
| 4 | 11,0% ❌ |
| 5 | 5,0% ❌ |
| 6 | 1,9% ❌ |
| 7 | 0,6% ✅ |
| 8 | 0,2% |
Resposta: 7 ramais garantem P(bloqueio) < 1%.
Na ferramenta: selecione modelo Erlang-B (M/M/c/c), configure a = 3,5 e veja a tabela de bloqueio por número de ramais.
Exercício 4 — Lei de Little: medição inversa (nível básico)
Enunciado: Um banco observa que, em horário de pico, há em média 12 clientes no sistema (fila + atendimento). O tempo médio total (espera + atendimento) é de 18 minutos. Qual é a taxa de chegada de clientes?
Aplicando a Lei de Little:
Interpretação: Sem cronometrar chegadas diretamente, basta contar clientes presentes e medir o tempo médio que ficam — a Lei de Little fornece λ. Útil para auditoria de sistemas existentes.
Exercício 5 — M/D/1: Linha de produção cadenciada (nível intermediário)
Enunciado: Uma estação de montagem recebe peças a uma taxa Poisson de 20 peças/hora. O tempo de processamento é fixo: exatamente 2,5 minutos por peça. Calcule Lq e compare com o modelo M/M/1.
Dados:
- λ = 20 peças/hora
- Tempo fixo: 2,5 min → μ = 24 peças/hora
- ρ = 20/24 = 0,833
- Modelo: M/D/1 (tempo de serviço determinístico)
Fórmula de Pollaczek-Khinchine para M/D/1:
Comparação com M/M/1:
Conclusão: o tempo fixo (M/D/1) gera metade da fila do tempo variável (M/M/1) com a mesma utilização. Padronizar tempos de serviço é uma das intervenções de maior impacto na redução de filas sem adicionar capacidade.
Exercício 6 — Análise de sensibilidade: interpretando o gráfico Wq × λ
Enunciado: Um sistema M/M/3 tem μ = 10/hora por servidor. Trace mentalmente a curva Wq em função de λ e identifique o ponto de colapso.
Ponto de colapso: quando λ → c·μ = 30, o denominador de Wq → 0 e a fila cresce sem limite.
| λ (chegadas/h) | ρ | Wq aproximado |
|---|---|---|
| 10 | 0,33 | ~0,5 min |
| 20 | 0,67 | ~3 min |
| 25 | 0,83 | ~10 min |
| 27 | 0,90 | ~25 min |
| 29 | 0,97 | ~97 min |
| 30 | 1,00 | ∞ |
Essa curva é exatamente o gráfico Sensitivity Wq × λ exibido na ferramenta — o ponto vermelho indica sua configuração atual, e a curva revela quanto espaço existe até o colapso. Use este gráfico para identificar a margem de segurança operacional.
Exercício prático: configure λ = 25, μ = 10, c = 3 na ferramenta. Observe o ponto vermelho no gráfico de sensibilidade. Depois arraste λ para 28 e veja o ponto subir na curva exponencial.
Queueing Theory: Fundamentals, Formulas and Free Online Calculator
This section provides a concise reference for queueing theory fundamentals — covering the core models, key formulas, and worked examples used in operations research, computer science, and industrial engineering courses worldwide. All results can be verified instantly with the free simulator above.
What is Queueing Theory?
Queueing theory is the mathematical study of waiting lines (queues). It provides analytical formulas to predict:
- Wq — average waiting time in queue
- Lq — average number of customers waiting
- ρ — server utilization
- P(Wq > t) — probability of waiting longer than a given threshold
Originally developed by A.K. Erlang in 1909 for telephone network dimensioning, queueing theory is now applied in call centers, hospitals, manufacturing, web servers, and cloud infrastructure.
Core Models — Quick Reference
| Model | When to use | Key formula |
|---|---|---|
| M/M/1 | Single server, random arrivals and service | |
| M/M/c | Multiple parallel servers (Erlang-C) | |
| M/D/1 | Fixed service time (assembly lines, toll booths) | |
| M/M/1/K | Finite capacity — customers turned away | |
| M/M/c/c | No queue (Erlang-B) — PBX, ICU beds |
Little’s Law — The Universal Formula
Valid for any stable queue, regardless of arrival distribution, service distribution, or number of servers. If you know any two of L (average in system), λ (arrival rate), W (average time in system), you can calculate the third.
Example: A web application has 150 concurrent requests (L = 150) with a throughput of 300 req/s (λ = 300). By Little’s Law: W = L/λ = 150/300 = 0.5 seconds average response time.
Sensitivity Analysis: Reading the Wq × λ Chart
The Sensitivity: Wq × λ chart (shown above) plots average waiting time against arrival rate, holding all other parameters fixed. Key insights:
- The red dot marks your current operating point
- Flat region (low λ): system has ample capacity — small λ changes barely affect Wq
- Steep region (high λ): system is near saturation — a 5% increase in λ can double Wq
- The knee of the curve is your maximum safe operating point — typically ρ ≈ 0.80–0.85
Use this chart to answer: “How much headroom do I have before performance degrades?”
Reading the P(N) Distribution Chart
The Distribution P(N) chart shows the probability of finding exactly N entities in the system at a random moment. For a well-dimensioned system (ρ < 0.75), the distribution is roughly geometric with most probability mass at low N values. As ρ approaches 1, the distribution flattens — high N values become probable and the system becomes unpredictable.
Reading the P(WAIT > T) Chart
The P(WAIT > T) chart shows the complementary CDF of waiting time — the probability that a random arrival waits more than T time units. This is directly used to verify SLAs: if your SLA is “80% of customers served within 20 seconds”, find T = 20s on the x-axis and check that P(WAIT > 20s) ≤ 0.20.
Worked Examples for Common Textbook Problems
M/M/1 — Bank teller: λ = 12 customers/hour, μ = 15/hour → ρ = 0.80, Wq = 16 min, Lq = 3.2 customers.
M/M/2 — Two cashiers: λ = 20/hour, μ = 15/hour, c = 2 → a = 1.33 Erlang, ρ = 0.667, Wq ≈ 22 seconds.
Erlang-C — Call center SLA: λ = 60/hour, μ = 10/hour, c = 8 → ρ = 0.75, P(wait) ≈ 18%, P(Wq > 20s) ≈ 12% — meets an 80/20 SLA.
Little’s Law inverse: L = 8 jobs in a print queue, W = 4 minutes average → λ = 8/4 = 2 jobs/minute throughput.
All examples above can be reproduced exactly in the simulator. Select the appropriate model, enter λ, μ and c, and the tool returns all metrics instantly — including the sensitivity chart, P(N) distribution and P(WAIT > T) curve.
Buscas relacionadas e intenção de uso
Esta página foi reforçada para atender buscas como teoria das filas, mantendo o foco em uso prático, cálculo rápido e interpretação direta do resultado em teoria-das-filas.
Termos com maior prioridade editorial
- teoria das filas
Como aproveitar melhor a ferramenta
Use teoria-das-filas para validar cenários, comparar resultados e entender rapidamente a lógica do cálculo sem depender de planilhas ou conversões manuais.
Para encontrar outras calculadoras e simuladores úteis para produtividade, estudos e pesquisa operacional, veja o mapa de ferramentas online gratuitas do Utilibox.
Buscas relacionadas e intenção de uso
Esta página foi reforçada para atender buscas como teoria das filas pesquisa operacional, teoria das filas exercicios resolvidos, teoria das filas exercicios resolvidos, mantendo o foco em uso prático, cálculo rápido e interpretação direta do resultado em teoria-das-filas.
Termos com maior prioridade editorial
- teoria das filas pesquisa operacional
- teoria das filas exercicios resolvidos
- teoria das filas exercicios resolvidos
- teoria das filas pesquisa operacional
Como aproveitar melhor a ferramenta
Use teoria-das-filas para validar cenários, comparar resultados e entender rapidamente a lógica do cálculo sem depender de planilhas ou conversões manuais.
Essa ferramenta foi útil?
Seu feedback é anônimo e ajuda a melhorar essa e outras ferramentas da Utilibox.
Encontrou algum erro?