Calculadora de Teoria das Filas
Analise filas M/M/1, M/M/c e de capacidade finita com avisos de congestionamento.
Os resultados são calculados automaticamente conforme você informa os dados.
▼ Veja explicações e dicas abaixo ▼
Calculadoras relacionadas
O que é o desempenho estacionário de uma fila?
O desempenho estacionário de uma fila descreve como um sistema de espera se comporta depois de funcionar tempo suficiente para que suas médias de longo prazo se estabilizem. Em vez de perguntar o que acontece com o próximo cliente, ele faz perguntas como: qual é a ocupação média dos servidores? Quanto tempo um trabalho típico espera? Quantos trabalhos costumam estar na fila? Qual é a probabilidade de o sistema estar vazio ou cheio?
A teoria das filas é útil sempre que chegadas competem por uma capacidade de atendimento limitada. Os “clientes” podem ser pessoas, chamadas, pedidos, pacotes de dados, máquinas que precisam de reparo, veículos ou tarefas de software. Os “servidores” podem ser atendentes, máquinas, técnicos, processadores, faixas, guichês ou qualquer outro recurso que conclua o trabalho.
Os modelos abordados aqui são modelos de filas markovianos:
- M/M/1: um servidor, sala de espera ilimitada.
- M/M/c: \(c\) servidores paralelos, sala de espera ilimitada.
- M/M/c/K: \(c\) servidores paralelos com capacidade finita do sistema \(K\).
Na notação, o primeiro M representa chegadas aleatórias modeladas por um processo de Poisson, e o segundo M representa tempos de atendimento distribuídos exponencialmente. O número ou a letra final descreve a quantidade de servidores e, quando presente, o número máximo de clientes ou trabalhos permitidos no sistema.
Por que a teoria das filas é importante
Uma fila geralmente é sintoma de um desequilíbrio de capacidade. Se o trabalho chega mais rápido do que pode ser atendido, o acúmulo cresce. Se há capacidade de atendimento ociosa demais, pode ser caro operar o sistema. A teoria das filas ajuda a analisar o equilíbrio entre a qualidade do atendimento e o custo dos recursos.
Pequenas mudanças na utilização podem ter grandes efeitos sobre a espera. Um sistema ocupado em 50% normalmente tem capacidade de sobra para absorver picos aleatórios. Um sistema ocupado em 95% pode parecer eficiente, mas até um pequeno agrupamento de chegadas pode criar uma fila longa. Por isso, a teoria das filas é amplamente usada em centrais de atendimento, clínicas, oficinas de reparo, sistemas computacionais, manufatura, transporte e operações de serviço.
A principal lição prática é que a demanda média não basta. Mesmo quando a capacidade média de atendimento é maior que o número médio de chegadas, a aleatoriedade ainda pode gerar espera. Quanto mais a demanda se aproxima da capacidade, mais grave a espera pode se tornar.
Termos fundamentais
- Taxa de chegada \(\lambda\): o número médio de chegadas por unidade de tempo escolhida.
- Taxa de atendimento \(\mu\): o número médio de atendimentos concluídos por servidor na mesma unidade de tempo.
- Servidores \(c\): o número de canais de atendimento paralelos.
- Capacidade do sistema \(K\): o número máximo de clientes ou trabalhos no sistema, incluindo os que estão sendo atendidos e os que aguardam.
- Intensidade de tráfego \(\rho\): uma medida da carga oferecida em relação à capacidade. Para uma fila M/M/c, \(\rho = \lambda/(c\mu)\).
- Probabilidade de ociosidade \(P_0\): a probabilidade de o sistema não ter clientes ou trabalhos.
- Probabilidade de bloqueio \(P_K\): em um sistema de capacidade finita, a probabilidade de uma chegada encontrar o sistema cheio e não poder entrar.
- Taxa de chegada efetiva \(\lambda_\text{eff}\): a taxa de chegadas admitidas depois que as chegadas bloqueadas são removidas.
- \(W\): tempo total esperado no sistema, incluindo espera e atendimento.
- \(W_q\): tempo esperado de espera na fila antes do início do atendimento.
- \(L\): número esperado de clientes ou trabalhos no sistema.
- \(L_q\): número esperado de clientes ou trabalhos aguardando na fila.
Como funcionam os modelos de filas estacionários
Um modelo de filas começa com três entradas básicas: com que frequência o trabalho chega, quão rápido cada servidor consegue concluir o trabalho e quantos servidores estão disponíveis. Nas filas markovianas, o estado \(N\) é o número de clientes ou trabalhos no sistema. Probabilidades de estado, como \(P(N=0)\) ou \(P(N=5)\), descrevem com que frequência se espera que o sistema esteja em cada estado no longo prazo.
A relação mais importante é a lei de Little:
Considerando apenas a fila, a mesma ideia fica:
Quando as chegadas podem ser bloqueadas, a taxa de chegada na lei de Little deve ser a taxa efetiva de chegadas admitidas:
M/M/1: um servidor
Para um sistema com um servidor, a utilização é:
Uma fila M/M/1 estável e de capacidade infinita exige \(\rho < 1\), ou, de forma equivalente, \(\lambda < \mu\). Quando essa condição é satisfeita, as fórmulas estacionárias usuais são:
À medida que \(\rho\) se aproxima de 1, o denominador \(1-\rho\) fica muito pequeno. Por isso, o tempo de espera pode aumentar rapidamente mesmo antes de a taxa de chegada se igualar exatamente à taxa de atendimento.
M/M/c: vários servidores
Para \(c\) servidores paralelos idênticos, a utilização é:
A carga oferecida costuma ser escrita como:
Uma fila M/M/c estável e de capacidade infinita exige \(\rho < 1\). A probabilidade de ociosidade é:
A probabilidade Erlang C, isto é, a probabilidade de uma chegada precisar esperar porque todos os servidores estão ocupados, é:
O tamanho esperado da fila e o tempo de espera são então normalmente escritos como:
Adicionar servidores pode reduzir a espera drasticamente, mas o efeito depende da taxa de chegada, da taxa de atendimento e da utilização atual.
M/M/c/K: vários servidores com capacidade finita
Uma fila M/M/c/K de capacidade finita permite apenas os estados \(0\) a \(K\). Se o sistema já estiver no estado \(K\), uma nova chegada será bloqueada. Isso impede que a fila cresça sem limite, mas também significa que parte da demanda é rejeitada.
Uma forma de calcular as probabilidades de estado é formar pesos de nascimento e morte:
Em seguida, normalize os pesos:
A probabilidade de bloqueio é a probabilidade do estado cheio:
O número esperado no sistema e o tamanho esperado da fila podem ser obtidos a partir das probabilidades de estado:
Em seguida, a lei de Little usa as chegadas admitidas:
A capacidade finita pode fazer a espera exibida parecer menor porque as chegadas excedentes são recusadas. Para fins de planejamento, a probabilidade de bloqueio deve ser analisada junto com o tempo de espera.
Exemplos práticos da teoria das filas
Exemplo 1: um balcão de atendimento
Suponha que clientes cheguem a um balcão de atendimento a uma taxa de \(4\) por hora e que um atendente consiga atender \(6\) clientes por hora.
A utilização é:
O tempo total esperado no sistema é:
Isso corresponde a cerca de 30 minutos, incluindo o atendimento. A espera esperada na fila é:
Isso corresponde a cerca de 20 minutos de espera antes do atendimento. O tamanho esperado da fila é:
Portanto, em média, cerca de 1,33 clientes estão esperando na fila.
Exemplo 2: três atendentes de suporte
Suponha que uma equipe de suporte receba \(18\) chamados por hora. Cada atendente consegue concluir \(7\) chamados por hora, e há \(3\) atendentes.
A utilização é:
Isso significa que cerca de 85,7% da capacidade total de atendimento está ocupada. Sob as hipóteses M/M/c, a espera esperada na fila é de cerca de \(0.2475\) horas, ou aproximadamente 14,9 minutos. O tempo total esperado no sistema é de cerca de \(0.3904\) horas, ou aproximadamente 23,4 minutos.
Se um quarto atendente idêntico for acrescentado, a utilização cai para cerca de 64,3% e a espera esperada na fila cai para cerca de \(0.0344\) horas, ou aproximadamente 2,1 minutos. Este exemplo mostra por que os sistemas de filas podem melhorar muito quando uma pequena reserva de capacidade é adicionada perto de um ponto de congestionamento.
Exemplo 3: a capacidade finita pode ocultar a demanda perdida
Agora suponha que o mesmo sistema tenha \(3\) atendentes, \(18\) chegadas por hora e \(7\) conclusões por hora por atendente, mas possa comportar apenas \(5\) trabalhos no total, incluindo os trabalhos em atendimento.
Como a capacidade é finita, algumas chegadas são bloqueadas. Neste exemplo, a probabilidade de bloqueio é de aproximadamente 14,6% e a taxa efetiva de chegadas admitidas é de cerca de \(15.37\) trabalhos por hora:
A espera esperada na fila é de apenas cerca de 1,8 minuto, mas isso não significa que o sistema esteja atendendo bem toda a demanda. Uma espera curta pode ocorrer porque muitas chegadas nunca entram no sistema. Em modelos de capacidade finita, a probabilidade de bloqueio é tão importante quanto o tempo de espera.
Como interpretar o resultado
Percentual de ocupação mostra quanto da capacidade dos servidores está ocupada. Um percentual baixo significa que o sistema tem capacidade de sobra. Um percentual muito alto significa que há pouco espaço para absorver picos aleatórios de chegadas, então a espera pode aumentar rapidamente.
Probabilidade de ociosidade \(P_0\) é a probabilidade de o sistema estar vazio. Um \(P_0\) alto significa que a unidade de atendimento costuma estar ociosa. Um \(P_0\) baixo significa que normalmente há pelo menos um cliente ou trabalho presente.
Espera esperada \(W\) é o tempo total no sistema. Ela inclui tanto a espera na fila quanto o tempo de atendimento. Espera na fila \(W_q\) inclui apenas o tempo antes do início do atendimento.
Fila esperada \(L_q\) é uma contagem, não um tempo. Ela informa quantos clientes ou trabalhos se espera que estejam aguardando, não quanto tempo cada um espera.
Probabilidade de bloqueio \(P_K\) aplica-se apenas a sistemas M/M/c/K de capacidade finita. É a probabilidade de longo prazo de o sistema estar cheio quando ocorre uma chegada. Um tempo de espera baixo com bloqueio alto pode indicar que o sistema está rejeitando demanda em vez de atendê-la de forma adequada.
O gráfico da distribuição de probabilidade mostra \(P(N=n)\), a probabilidade de haver exatamente \(n\) clientes ou trabalhos no sistema. O estado \(0\) corresponde à probabilidade de ociosidade. Estados mais altos representam condições mais cheias e congestionadas.
A tabela de comparação de servidores é uma verificação de sensibilidade. Ela compara a quantidade selecionada de servidores com quantidades próximas e viáveis. Para M/M/c/K, a capacidade do sistema (K) permanece fixa, e qualquer linha que exija mais servidores do que a capacidade total é omitida. A tabela deve ser usada como auxílio ao planejamento, não como uma otimização completa de custos.
A unidade de tempo de \(W\) e \(W_q\) segue as unidades usadas para \(\lambda\) e \(\mu\). Se ambas as taxas forem por hora, os tempos de espera estarão em horas. Se ambas forem por minuto, os tempos de espera estarão em minutos.
Erros comuns e conceitos equivocados
Misturar unidades de tempo. A taxa de chegada e a taxa de atendimento devem usar a mesma base de tempo. Não informe chegadas por hora e atendimentos por minuto sem converter uma delas.
Informar o tempo de atendimento em vez da taxa de atendimento. Se um atendimento leva 10 minutos em média, a taxa de atendimento não é 10. Ela é \(6\) por hora ou \(0.1\) por minuto, dependendo da unidade de tempo usada.
Tratar \(W\) e \(W_q\) como contagens. Os resultados de espera são valores de tempo. Resultados de tamanho da fila, como \(L_q\), são contagens de clientes ou trabalhos.
Confundir o tamanho da fila com o tamanho do sistema. \(L_q\) conta apenas os que estão esperando. \(L\) conta todos no sistema, inclusive os que estão sendo atendidos.
Esquecer que \(K\) inclui clientes em atendimento. Em um modelo M/M/c/K, a capacidade não corresponde apenas à sala de espera. Se \(c=3\) e \(K=5\), há apenas dois lugares de espera disponíveis, pois três lugares podem estar ocupados por clientes em atendimento.
Ignorar a instabilidade em modelos de capacidade infinita. Se \(\lambda \ge c\mu\), uma fila M/M/c com sala de espera ilimitada não terá medidas estacionárias finitas de espera. É necessária mais capacidade de atendimento, uma taxa de chegada menor ou outro modelo.
Interpretar esperas de capacidade finita sem considerar o bloqueio. Em um sistema cheio, as chegadas rejeitadas não esperam. Isso pode fazer os tempos de espera dos clientes admitidos parecerem aceitáveis mesmo quando a experiência geral de atendimento é ruim.
Quando usar a teoria das filas
Use estes modelos quando as chegadas forem aleatórias, os tempos de atendimento variarem e você precisar de uma primeira estimativa analítica do congestionamento. Usos comuns incluem:
- estimar a espera de clientes em balcões ou guichês;
- comparar níveis de pessoal em centrais de atendimento ou equipes de suporte;
- planejar a capacidade de reparo de máquinas ou equipamentos;
- estimar o congestionamento de servidores ou processadores em sistemas computacionais;
- entender como uma sala de espera ou um buffer finito altera a vazão;
- ensinar pesquisa operacional, processos estocásticos ou planejamento de sistemas de atendimento.
Os modelos M/M são especialmente úteis para aprendizado e planejamento inicial porque são simples o suficiente para calcular, mas ainda mostram os principais efeitos das filas: utilização, aleatoriedade, espera, bloqueio e compromissos de capacidade.
Limitações e pontos importantes
Estes modelos pressupõem chegadas de Poisson, tempos de atendimento exponenciais, clientes ou trabalhos independentes, servidores idênticos e comportamento estacionário. Sistemas reais podem ter chegadas programadas, picos que variam com o tempo, chegadas em lotes, prioridades de clientes, diferentes classes de atendimento, servidores não idênticos ou tempos de atendimento menos ou mais variáveis que uma distribuição exponencial.
Os modelos M/M/1 e M/M/c de capacidade infinita exigem utilização abaixo de 100% para produzir resultados estacionários finitos. Se a taxa de chegada for pelo menos tão grande quanto a capacidade de atendimento, o tamanho matemático da fila estacionária e o tempo de espera serão ilimitados.
Os sistemas M/M/c/K de capacidade finita permanecem limitados porque não podem comportar mais de \(K\) clientes ou trabalhos. No entanto, isso não significa que o processo de atendimento esteja saudável. Um bloqueio alto significa que a demanda está sendo recusada.
As entradas devem ser tratadas como estimativas. Se as taxas de chegada e de atendimento vierem de dados limitados, o resultado poderá ser sensível a erros de medição. No planejamento prático, muitas vezes é útil testar várias taxas de chegada, taxas de atendimento e quantidades de servidores, em vez de depender de um único cenário.
Alguns comportamentos detalhados não são representados por estes modelos, incluindo tempos de atendimento determinísticos, distribuições gerais de chegada ou atendimento, classes prioritárias, várias classes de clientes, populações de fonte finita, recusa de entrar na fila, abandono, novas tentativas, servidores não idênticos e variação da demanda ao longo do dia.
A calculadora usa valores de exibição arredondados. Os principais percentuais, probabilidades, tempos de espera e rótulos do gráfico podem ser reduzidos a um número prático de casas decimais. Diferenças muito pequenas podem ficar ocultas pelo arredondamento.
As entradas são validadas sem normalização silenciosa. A quantidade de servidores deve ser um número inteiro de (1) a (20), a capacidade finita deve ser um número inteiro de (1) a (200) e (K\ge c). A taxa de chegada pode ser zero, enquanto a taxa de atendimento deve ser positiva. Se uma combinação válida exceder o intervalo numérico do navegador, a calculadora informará esse resultado em vez de exibir métricas não numéricas. Para decisões operacionais importantes, confirme as hipóteses com dados reais e consulte um profissional qualificado.
Como usar esta calculadora
- Escolha o modelo de fila: M/M/1, M/M/c ou M/M/c/K de capacidade finita.
- Informe a taxa de chegada não negativa \(\lambda\) usando uma unidade de tempo consistente, como chegadas por hora. Em \(\lambda=0\), o sistema está vazio e o atraso na fila é zero.
- Informe a taxa de atendimento por servidor \(\mu\) usando a mesma unidade de tempo, como atendimentos por hora por servidor.
- Nos modelos com vários servidores, informe a quantidade de servidores \(c\).
- No modelo de capacidade finita, informe a capacidade do sistema \(K\), incluindo os clientes ou trabalhos em atendimento e em espera.
- Revise o percentual de ocupação, a probabilidade de ociosidade, \(W\), \(W_q\), \(L_q\), o gráfico de probabilidades de estado e a tabela de comparação de servidores. Os resultados de capacidade finita também mostram a taxa de chegada efetiva e a probabilidade de bloqueio.
- Use a opção de exemplo para carregar um cenário M/M/c de amostra com \(\lambda=18\), \(\mu=7\), \(c=3\) e \(K=12\).
- Use a opção de download do gráfico se quiser salvar a distribuição de probabilidade como PNG.
Perguntas frequentes
O que significa M/M/c?
M/M/c é uma fila com vários servidores, chegadas de Poisson, tempos de atendimento exponenciais e \(c\) servidores paralelos. Ela pressupõe uma sala de espera ilimitada e exige \(\lambda/(c\mu) < 1\) para resultados estacionários finitos de espera.
Qual é a diferença entre \(W\) e \(W_q\)?
\(W\) é o tempo total esperado no sistema, incluindo espera e atendimento. \(W_q\) é apenas o tempo esperado de espera antes do início do atendimento. A diferença entre eles é o tempo médio de atendimento, \(1/\mu\).
Por que o tempo de espera aumenta tão rapidamente perto da utilização total?
As chegadas aleatórias não ocorrem em intervalos uniformes. Mesmo quando a taxa média de chegada está um pouco abaixo da capacidade, podem ocorrer agrupamentos de chegadas. Quando a utilização é alta, há pouca capacidade disponível para processar esses agrupamentos, então a fila pode crescer rapidamente.
O que significa a probabilidade de bloqueio?
A probabilidade de bloqueio é a chance de uma chegada encontrar cheio um sistema de capacidade finita. Em um modelo M/M/c/K, ela é \(P_K\). Uma chegada bloqueada não entra no sistema, portanto os resultados de capacidade finita devem sempre ser interpretados considerando tanto o tempo de espera quanto a probabilidade de bloqueio.
A taxa de atendimento é igual ao tempo de atendimento?
Não. O tempo de atendimento é a duração média de um atendimento. A taxa de atendimento é a quantidade de atendimentos que um servidor conclui por unidade de tempo. Se o tempo médio de atendimento for de 15 minutos, a taxa de atendimento será de \(4\) atendimentos por hora.
O que devo fazer se um modelo de capacidade infinita for instável?
Um resultado instável de M/M/1 ou M/M/c significa que a taxa de chegada oferecida é pelo menos tão grande quanto a capacidade de atendimento disponível. Para obter estimativas estacionárias finitas de espera, reduza a taxa de chegada, aumente a taxa de atendimento, adicione servidores ou considere um modelo de capacidade finita se chegadas bloqueadas forem realistas.
Fontes e referências
Livros
- János Sztrik. Basic Queueing Theory: Foundations of System Performance Modeling. GlobeEdit, OmniScriptum GmbH & Co. KG, 2016. Seções relevantes: medidas de desempenho e notação de Kendall; lei de Little; fórmulas M/M/1, M/M/c e M/M/c/K.
- John F. Shortle, James M. Thompson, Donald Gross e Carl M. Harris. Fundamentals of Queueing Theory. 5ª ed., Wiley, 2018. Capítulos relevantes: introdução, fundamentos de processos estocásticos, lei de Little e modelos simples de filas markovianos.
- Mor Harchol-Balter. Performance Modeling and Design of Computer Systems: Queueing Theory in Action. Cambridge University Press, 2013. Capítulo relevante: “Little’s Law and Other Operational Laws.”
Fontes online e educacionais
- Manuele Leonelli. “Queuing Notation”, “Measures of Performance” e “Steady-State Behavior of the M/M/1 Model”. Simulation and Modelling to Understand Change, bookdown. Acessado em 4 de julho de 2026.