P. 1
po

po

|Views: 11,980|Likes:
Published by Bruno Brinatti

More info:

Published by: Bruno Brinatti on Apr 03, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/16/2013

pdf

text

original

Sections

  • 1.1 O problema do Fluxo Máximo
  • 1.2 Formulação como um modelo clássico de P.Linear
  • 1.3 Técnica da Rotulação
  • 1.4 Fluxo máximo em redes com arcos não direcionados
  • 1.4.1 Adaptação para uso da Técnica de Rotulação
  • 1.5 O problema do caminho mínimo
  • 1.5.1 Formulação como um modelo clássico de P.Linear
  • 1.6 Etapas do algorítimo de Dijkstra
  • 1.7 Árvore de Tamanho Mínimo
  • 1.7.1 Etapas do algorítimo para encontrar a árvore do tama- nho mínimo
  • 1.8 Exercícios
  • 1.8.1 Respostas dos exercícios
  • PERT/CPM
  • 2.1 Construção da Rede
  • 2.1.1 Representação gráfica da Rede
  • 2.1.2 Representação das Atividades
  • 2.1.3 Complicação na Construção da Rede
  • 2.2 Determinação do Caminho Crítico
  • 2.3 O Modelo PERT
  • 2.3.1 Problemas do modelo PERT
  • 2.4 O Modelo CPM
  • 2.4.1 Relação entre Durações/Custos Normal e Acelerado
  • 2.4.2 Compressão da Rede
  • 2.4.3 Duração ótima para o projeto
  • 2.4.4 Resolvendo por Programação Linear
  • 2.5 Exercícios
  • 2.5.1 Respostas dos exercícios
  • Teoria das Filas
  • 3.1 Porque as filas são “estudadas”
  • 3.2 Componentes básicos de um processo de fila
  • 3.2.1 A População
  • 3.2.2 O Processo de Chegada
  • 3.2.3 A Disciplina da Fila
  • 3.2.4 O Mecanismo de Serviço
  • 3.3 O Teste de Aderência
  • 3.4 O Processo de Poisson
  • 3.5 Notação de Kendall
  • 3.5.1 Convenção para textos de Filas
  • 3.5.2 Estado transiente e de regime (ou estacionário)
  • 3.6 O Modelo I: M/M/1
  • 3.6.1 Sumário das fórmulas do modelo M/M/1
  • 3.7 Modelo II: M/M/s (s > 1)
  • 3.8 Modelo III: M/M/1: Fila finita
  • 3.9 Modelo IV: M/M/s: Fila finita (s > 1)
  • 3.10 Modelo V: M/M/s: População finita
  • 3.11 Modelo VI: M/G/1
  • 3.12 Modelo VII: M/Ek/1
  • 3.13 Exercícios
  • 3.13.1 Solução dos exercícios
  • Introdução à Simulação
  • 4.1 Vantagens e Desvantagens da Simulação
  • 4.2 Áreas de aplicação
  • 4.3 Componentes de um Sistema
  • 4.4 Tipos de Modelos
  • 4.5 Modelos Discretos e Contínuos
  • 4.6 Exemplos de modelos de Simulação
  • 4.6.1 Quebra de rolamentos
  • 4.6.2 Fila com uma estação de serviço
  • 4.7 A geração de Números Aleatórios
  • 4.7.2 Métodos para a geração de números aleatórios
  • 4.9 O gerador RANDU e a formação de treliças
  • 4.10 O gerador RAND1
  • 4.11 O gerador RAND2
  • 4.12 Métodos com períodos maiores
  • 4.13 Geradores de números aleatórios embutidos
  • 4.13.1 O gerador do Turbo Pascal
  • 4.13.2 O gerador do Excel
  • 4.14.1 Variáveis aleatórias contínuas
  • 4.14.2 Variáveis aleatórias discretas
  • 4.15 Testes estatísticos
  • 4.16 Alguns modelos elementares de Simulação
  • 4.16.1 Jogo de Dados (“Craps Game”)
  • 4.16.2 Cálculo de Integrais Definidas
  • 4.17 Variáveis aleatórias não uniformes
  • 4.17.1 O Método da Transformação Inversa
  • 4.17.2 Simulação Direta
  • 4.17.3 O Método da Rejeição
  • 4.18 Simulação de um pequeno posto bancário
  • 4.19 Um software mais versátil
  • 4.19.1 Alguns exemplos usando o programa “Simulação”
  • 4.20 O software ARENA
  • 4.20.1 Simulação de um pequeno posto bancário
  • 4.20.2 Simulação de um check-in
  • 4.20.3 Simulação de um processo de produção
  • 4.20.4 Enfeitando o modelo
  • 4.21 Exercícios
  • Tabela Normal
  • Tabela do χ2
  • Tabelas para modelos com população finita

PESQUISA OPERACIONAL

Mauricio Pereira dos Santos
Departamento de Matemática Aplicada
Instituto de Matemática e Estatística
UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO
ii
Copyright c 2.003 por Mauricio Pereira dos Santos
Editoração: O autor, criando arquivo texto no format LaTex.
Compilador LaTex: Miktex
Compiladores dos programas: Turbo Pascal e Visual Basic
Fluxos e figuras: Visio e SmartDraw, incluídos no texto como EPS (Encapsulated
Postscript File).
090826
iii
Prefácio
O objetivo deste trabalho é fornecer aos alunos da cadeira de Pesquisa Operacional
da UERJ um referencial que os auxilie no estudo e acompanhamento da matéria.
Os tópicos básicos da cadeira, contemplados neste trabalho, incluem o estudo dos
3 problemas clássicos de Redes quais sejam o do fluxo máximo possível de ser le-
vado entre 2 nós de uma rede, o de encontrar o menor caminho entre 2 nós de uma
rede e o de encontrar a árvore de tamanho mínimo em uma rede; a técnica de con-
trole de projetos, genericamente chamada de PERT/CPM, que é apresentada em
seus conceitos básicos; o estudo das filas de espera e de seus modelos básicos, cuja
importância nos dias de hoje é marcante e fundamental e por fim mas não menos
importante, a Simulação e suas aplicações nos problemas do dia a dia.
Agradecemos a todos aqueles que nos ajudaram nesta tarefa, especialmente os alu-
nos que foram cobaias no uso dos rascunhos deste trabalho.
Um agradecimento especial ao ex-aluno do curso de Estatística, Leonardo Barroso
Gonçalves que, quando cursou a cadeira em 1993, resolveu, detalhadamente, todos
os exercícios do capítulo de Filas. Incorporamos suas soluções neste trabalho.
De antemão agradeço desde já a todos aqueles que puderem apontar imperfeições
e erros que possam ser corrigidos.
O Autor
iv
Conteúdo
1 Redes 1
1.1 O problema do Fluxo Máximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Formulação como um modelo clássico de P.Linear . . . . . . . . . . . . . . . . . . . 2
1.3 Técnica da Rotulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Fluxo máximo em redes com arcos não direcionados . . . . . . . . . . . . . . . . . . 12
1.4.1 Adaptação para uso da Técnica de Rotulação . . . . . . . . . . . . . . . . . . 12
1.5 O problema do caminho mínimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.1 Formulação como um modelo clássico de P.Linear . . . . . . . . . . . . . . . . 14
1.6 Etapas do algorítimo de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Árvore de Tamanho Mínimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.1 Etapas do algorítimo para encontrar a árvore do tamanho mínimo . . . . . . . 21
1.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8.1 Respostas dos exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2 PERT/CPM 35
2.1 Construção da Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.1 Representação gráfica da Rede . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.2 Representação das Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.1.3 Complicação na Construção da Rede . . . . . . . . . . . . . . . . . . . . . . . 39
2.2 Determinação do Caminho Crítico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.3 O Modelo PERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3.1 Problemas do modelo PERT . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.4 O Modelo CPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.4.1 Relação entre Durações/Custos Normal e Acelerado . . . . . . . . . . . . . . 55
2.4.2 Compressão da Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.4.3 Duração ótima para o projeto . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.4.4 Resolvendo por Programação Linear . . . . . . . . . . . . . . . . . . . . . . . 63
2.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.5.1 Respostas dos exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3 Teoria das Filas 75
3.1 Porque as filas são “estudadas” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2 Componentes básicos de um processo de fila . . . . . . . . . . . . . . . . . . . . . . 77
3.2.1 A População . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.2 O Processo de Chegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.2.3 A Disciplina da Fila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.2.4 O Mecanismo de Serviço . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.3 O Teste de Aderência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.4 O Processo de Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.5 Notação de Kendall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.5.1 Convenção para textos de Filas . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.5.2 Estado transiente e de regime (ou estacionário) . . . . . . . . . . . . . . . . . 87
3.6 O Modelo I: M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.6.1 Sumário das fórmulas do modelo M/M/1 . . . . . . . . . . . . . . . . . . . . . 92
3.7 Modelo II: M/M/s (s > 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.8 Modelo III: M/M/1: Fila finita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
vi CONTEÚDO
3.9 Modelo IV: M/M/s: Fila finita (s > 1) . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.10 Modelo V: M/M/s: População finita . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.11 Modelo VI: M/G/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
3.12 Modelo VII: M/E
k
/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.13 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.13.1 Solução dos exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4 Introdução à Simulação 141
4.1 Vantagens e Desvantagens da Simulação . . . . . . . . . . . . . . . . . . . . . . . . 141
4.2 Áreas de aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.3 Componentes de um Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.4 Tipos de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.5 Modelos Discretos e Contínuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.6 Exemplos de modelos de Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.6.1 Quebra de rolamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.6.2 Fila com uma estação de serviço . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.7 A geração de Números Aleatórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4.7.1 Propriedades desejáveis de um gerador de números aleatórios . . . . . . . . . 153
4.7.2 Métodos para a geração de números aleatórios . . . . . . . . . . . . . . . . . 154
4.8 Números Aleatórios uniformemente distribuídos em [0,1) . . . . . . . . . . . . . . . 155
4.9 O gerador RANDU e a formação de treliças . . . . . . . . . . . . . . . . . . . . . . . 156
4.10 O gerador RAND1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.11 O gerador RAND2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
4.12 Métodos com períodos maiores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.13 Geradores de números aleatórios embutidos . . . . . . . . . . . . . . . . . . . . . . 164
4.13.1 O gerador do Turbo Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
4.13.2 O gerador do Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.14 Números aleatórios com outras distribuições uniformes . . . . . . . . . . . . . . . . 166
4.14.1 Variáveis aleatórias contínuas . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.14.2 Variáveis aleatórias discretas . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.15 Testes estatísticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
4.16 Alguns modelos elementares de Simulação . . . . . . . . . . . . . . . . . . . . . . . 169
4.16.1 Jogo de Dados (“Craps Game”) . . . . . . . . . . . . . . . . . . . . . . . . . . 169
4.16.2 Cálculo de Integrais Definidas . . . . . . . . . . . . . . . . . . . . . . . . . . 171
4.17 Variáveis aleatórias não uniformes . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
4.17.1 O Método da Transformação Inversa . . . . . . . . . . . . . . . . . . . . . . 174
4.17.2 Simulação Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
4.17.3 O Método da Rejeição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
4.18 Simulação de um pequeno posto bancário . . . . . . . . . . . . . . . . . . . . . . . . 193
4.19 Um software mais versátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
4.19.1 Alguns exemplos usando o programa “Simulação” . . . . . . . . . . . . . . . . 200
4.20 O software ARENA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.20.1 Simulação de um pequeno posto bancário . . . . . . . . . . . . . . . . . . . . 205
4.20.2 Simulação de um check-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
4.20.3 Simulação de um processo de produção . . . . . . . . . . . . . . . . . . . . . 222
4.20.4 Enfeitando o modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
4.21 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
A Tabela Normal 239
B Tabela do χ
2
241
C Tabelas para modelos com população finita 243
Capítulo 1
Redes
Grafo
Denomina-se grafo um conjunto de pontos, chamados nós, conectados entre si por
linhas chamadas arcos, como exemplificado no desenho abaixo:
1
2
3
4
5
6
Os círculos são denominados nós e as linhas são denominadas de arcos.
Rede
É um grafo com algum tipo de fluxo fluindo entre os nós através dos arcos.
Ex: Uma rede de estradas (arcos) unindo várias cidades (nós). O conjunto de veí-
culos andando nas estradas é o fluxo que flui na rede.
1.1 O problema do Fluxo Máximo
Um dos problemas mais comuns a serem resolvidos em redes é determinar o fluxo
máximo que pode fluir em determinada rede.
O exemplo a seguir ilustra este tipo de problema.
A rede a seguir ilustra a captação de água de um determinado manancial até um
grande reservatório de distribuição.
2 Redes
1
2
3
4
5
6
6
8
2
4
3
4
5
1
8
9
O nó inicial 1 é chamado de nó origem ou nó fonte. O nó final 6 é chamado de nó
destino ou nó sumidouro. Existem 10 arcos na rede sendo que podemos representar
os arcos de 2 formas diferentes:
• (nó inicial, nó final): (1, 2); (1, 3); (2, 3); etc... ou
• (nó inicial–nó final): (1 – 2); (1 – 3); etc...
Os números em cima de cada arco dão a Capacidade do arco, ou seja, o fluxo
máximo que pode passar no arco. Assim, por exemplo, no arco (3 – 4), o n
o
5 é
a indicação de que sua capacidade é de 5 litros/segundo sendo esta, a quantidade
máxima de água que pode passar naquele trecho de encanamento (arco).
O problema que queremos resolver é achar o fluxo máximo, em litros/seg, que pode
ser levado do nó 1 ao nó 6.
Antes de começarmos a ver como resolver o problema vamos estabelecer pré-requisitos
que, embora normalmente não explicitados, fazem parte do problema. São eles:
• Todos os arcos são direcionados, ou seja, no arco (2 – 3), por exemplo, o fluxo
só pode passar no sentido 2 ⇒3.
• Assume-se conservação de fluxo, ou seja, todo fluxo que chega a um nó, sairá
dele.
Antes de prosseguir vamos definir o que vem a ser um caminho em uma rede:
Caminho é uma sequência de arcos em uma rede que vão do nó origem ao nó
destino. Por exemplo, na rede acima, (1 – 2), (2 – 4), (4 – 6) é um caminho.
1.2 Formulação como um modelo clássico de P.Linear
Este tipo de problema pode ser equacionado como um modelo de Programação Li-
near.
Como variáveis de decisão teríamos:
f ⇒fluxo que vai passar do nó 1 ao nó 6.
f
ij
⇒fluxo que vai passar no arco (i – j).
1.3 Técnica da Rotulação 3
O modelo fica como:
(MAX)Z = f
s.a.
f
12
+f
13
= f (nó 1)
f
46
+f
56
= f (nó 6)
f
12
= f
23
+f
24
+f
25
(nó 2)
f
13
+f
23
= f
34
+f
35
(nó 3)
f
46
= f
24
+f
34
+f
54
(nó 4)
f
35
+f
25
= f
54
+f
56
(nó 5)
f
12
≤ 6 f
13
≤ 8
f
23
≤ 2 f
24
≤ 4
f
25
≤ 1 f
34
≤ 5
f
35
≤ 3 f
46
≤ 8
f
54
≤ 4 f
56
≤ 9
f, f
ij
≥ 0
Poderíamos usar o Simplex, mas existem algorítimos mais rápidos para se resolver
este tipo de problema.
1.3 Técnica da Rotulação
O algorítimo chamado de “Técnica da Rotulação” é um dos mais usados para resol-
ver problemas de fluxo máximo.
As etapas do algorítimo baseado no quadro que veremos mais adiante, são:
Seja g
ij
a capacidade mostrada no quadro para o arco (i – j). No quadro inicial g
ij
vai ser exatamente a capacidade do arco.
1. No estágio 1, começando pela 1
a
linha do quadro, ou seja a que representa o nó
origem, procuramos as colunas que tem g
ij
≥ 0. Para estas colunas fazemos,
nas linhas correspondentes, δ
j
= g
ij
e γ
j
= 1.
γ
j
vai representar sempre o nó de onde se veio para chegar a j.
2. Começando pelo menor nó rotulado no estágio anterior, procuramos os g
ij
nas
quais a linha j ainda não tenha sido rotulada. Fazemos então:
δ
j
= Min(g
ij
, δ
i
)
γ
j
= i
Após esta etapa ter sido feita para todos os nós rotulados no estágio i −1 encer-
ramos o estágio i. Passamos então ao estágio i + 1 e repetimos esta etapa 2.
Esta etapa 2 será encerrada por uma de 2 condições:
a) ou o nó destino foi rotulado.
b) ou é impossível prosseguir com a etapa 2 e o nó destino não foi rotulado.
3. Se é impossível prosseguir (caso b) ir para a etapa 7.
4. Se o nó destino foi rotulado, existe um caminho onde é possível passar fluxo do
nó origem ao nó destino. O fluxo que é possível passar é igual ao δ
nó destino
.
4 Redes
5. Usando os γ
i
é possível encontrar este caminho.
Para os arcos (i – j) do caminho, subtrair δ
nó destino
de g
ij
.
Para os arcos inversos (j – i) somar δ
nó destino
à g
ij
.
Os g
ij
não modificados são mantidos.
6. Com o novo quadro construído voltar a etapa 1.
7. O fluxo máximo é a soma dos g
ij
da linha do nó destino. O fluxo que passa em
cada arco (i – j) é a diferença entre os g
ij
dos quadros inicial e final.
Exemplo de aplicação da Técnica de Rotulação
Vamos aplicar o algorítimo ao nosso exemplo da rede de captação de água.
O quadro inicial é construído colocando-se em cada arco (i – j) a capacidade dele
quando o arco existe e zero quando não existe. Temos então:
1 2 3 4 5 6 Rótulos Estágio
1 – 6 8 0 0 0 δ γ —-
2 0 – 2 4 1 0
3 0 0 – 5 3 0
4 0 0 0 – 0 8
5 0 0 0 4 – 9
6 0 0 0 0 0 –
Na etapa 1 começamos “varrendo” a linha correspondente ao nó origem (1 no exem-
plo) procurando g
ij
maiores que zero. Encontramos o nó 2 comg
12
= 6 e o nó 3 com
g
13
= 8. Na linha 2, correspondente ao nó 2, fazemos δ
2
= 6 e γ
2
= 1. Gama (γ)
sempre indica de onde viemos para chegar aquele nó. Na linha 3, correspondente
ao nó 3, fazemos δ
3
= 8 e γ
3
= 1. Como “varremos” a linha 1 (nó origem), estamos
no estágio 1. O nosso quadro, fica como:
1 2 3 4 5 6 Rótulos Estágio
1 – 6 8 0 0 0 δ γ —-
2 0 – 2 4 1 0 6 1 1
3 0 0 – 5 3 0 8 1 1
4 0 0 0 – 0 8
5 0 0 0 4 – 9
6 0 0 0 0 0 –
Devemos agora passar para o estágio i + 1 ou seja para o estágio 2. Neste estágio
vamos “varrer” todos os nós rotulados no estágio 1, ou seja as linhas 2 e 3 corres-
pondentes aos nós 2 e 3.
Iniciando pela linha 2, podemos observar que pode-se passar fluxo para o nó 3 pois
g
23
= 2. No entanto o nó 3 já está rotulado e não podemos rotulá-lo novamente.
Pode-se também passar fluxo para o nó 4 pois g
24
= 4. Para rotular a linha (nó)
4 temos: δ
4
= Min(g
24
, δ
2
) = Min(4, 6) = 4. O γ
4
é 2 (nó de onde vim) e o
estágio igual a 2. Do nó 2 podemos ainda rotular o nó 5 pois g
25
= 1. Temos
1.3 Técnica da Rotulação 5
δ
5
= Min(g
25
, δ
2
) = Min(1, 6) = 1. O γ
5
é 2 (nó de onde vim) e continuamos no
estágio 2.
Repare que não acabamos o estágio 2 pois ainda não “varremos” a linha (nó) 3 que
também foi rotulada no estágio 1. Umestágio só acaba quando todas as linhas
(nós) rotuladas no estágio anterior forem “varridas”.
Varrendo a linha 3 observamos que poderíamos rotular as linhas (nós) 4 e 5 mas
ambas já foram rotuladas. Acabamos o estágio 2 e o nó destino não foi ainda rotu-
lado. Temos que ir para o estágio 3 e o nosso quadro tem agora a seguinte aparên-
cia:
1 2 3 4 5 6 Rótulos Estágio
1 – 6 8 0 0 0 δ γ —-
2 0 – 2 4 1 0 6 1 1
3 0 0 – 5 3 0 8 1 1
4 0 0 0 – 0 8 4 2 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 0 0 –
Começamos o estágio 3 varrendo o nó (linha) 4. Do nó 4 Podemos ir para o nó 6
sendo que o δ
6
será igual ao Min(g
46
, δ
4
) ou seja o Min(8, 4) = 4. Como viemos do
nó 4, o γ
6
é igual a 4 e o estágio 3.
Nosso quadro tem agora a seguinte forma:
1 2 3 4 5 6 Rótulos Estágio
1 – 6 8 0 0 0 δ γ —-
2 0 – 2 4 1 0 6 1 1
3 0 0 – 5 3 0 8 1 1
4 0 0 0 – 0 8 4 2 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 0 0 – 4 4 3
Como rotulamos o nó destino (6), existe um caminho para passar uma quantidade
de fluxo. Que quantidade é esta ? É o valor do δ
6
, ou seja, do δ
nó destino
.
Para encontrar este caminho vamos do nó destino para trás usando os γ
i
para
encontrar os arcos do caminho. Assim se γ
6
é igual a 4, significa que chegamos ao
nó 6 vindo do nó 4. Na matriz vamos subtrair 4 (= δ
6
) do arco (4 – 6) e somar este
valor ao arco inverso (6 – 4).
Para chegar ao nó 4, olhamos o γ
4
. Como ele é igual a 2 significa que viemos do nó
2. Subtraímos então 4 (= δ
6
) do arco (2 – 4) e somamos no arco inverso (4 – 2).
Para chegar ao nó 2 viemos do nó 1 (veja o γ
2
). Subtraímos 4 (= δ
6
) do arco (1 – 2)
e somamos este valor ao arco inverso (2 – 1).
Os valores que sofreram alteração estão marcados e os demais ficam inalterados.
Nosso quadro, pronto para começar a 2
a
iteração, fica como:
6 Redes
1 2 3 4 5 6 Rótulos Estágio
1 – 2 8 0 0 0 δ γ —-
2 4 – 2 0 1 0
3 0 0 – 5 3 0
4 0 4 0 – 0 4
5 0 0 0 4 – 9
6 0 0 0 4 0 –
Começamos a 2
a
iteração varrendo o nó origem (nó 1) procurando g
ij
maiores que
0. Vemos que podemos ir para o nó 2 com 2. Logo fazemos δ
2
= 2, γ
2
= 1 e estágio
igual a 1.
Ainda no estágio 1, podemos ir do nó 1 para o nó 3 e rotulamos este nó fazendo
δ
3
= 8, γ
3
= 1 e estágio igual a 1.
Como do nó origem não podemos rotular mais nenhum nó, acabamos o estágio 1.
Nosso quadro está como:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 8 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 0 0 – 5 3 0 8 1 1
4 0 4 0 – 0 4
5 0 0 0 4 – 9
6 0 0 0 4 0 –
No estágio 2 temos que varrer os nós rotulados no estágio 1. Assim, começamos
examinando o nó 2. Deste nó podemos ir para o nó 1 mas ele já está rotulado (δ e γ
também são rótulos). Podemos ir para o nó 3 mas ele também já está rotulado.
Podemos, no entanto, ir para o nó 5. Os rótulos no nó 5 serão:
δ
5
= Min(g
25
, δ
2
) = Min(1, 2) = 1.
γ
5
= 2 e estágio = 2.
Como do nó 2 não podemos ir para mais lugar algum vamos examinar o nó 3 que
também foi rotulado no estágio 1. Do nó 3 podemos ir para o nó 4 sendo que os
rótulos dele serão:
δ
4
= Min(g
34
, δ
3
) = Min(5, 8) = 5.
γ
4
= 3 e estágio = 2.
Como não podemos ir para mais lugar algum encerramos o estágio 2 e vamos co-
meçar o estágio 3. Nosso quadro está como:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 8 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 0 0 – 5 3 0 8 1 1
4 0 4 0 – 0 4 5 3 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 4 0 –
1.3 Técnica da Rotulação 7
Vamos iniciar o estágio 3 varrendo os nós rotulados no estágio 2 (nós 4 e 5). No
passo anterior (estágio 2) o nó 5 foi rotulado antes do que o nó 4. Temos que manter
esta sequência na varredura deles no estágio ? Não. Devemos fazer a varredura
sempre na ordem numérica dos nós.
Desta forma começamos examinando o nó 4. Do nó 4 podemos rotular o nó 2 mas
ele já está rotulado. Podemos também rotular o nó 6 que terá os seguintes rótulos:
δ
6
= Min(g
46
, δ
4
) = Min(4, 5) = 4.
γ
6
= 4 e estágio = 3.
Como rotulamos o nó destino, terminamos a 2
a
iteração e nosso quadro se apresenta
como:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 8 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 0 0 – 5 3 0 8 1 1
4 0 4 0 – 0 4 5 3 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 4 0 – 4 4 3
Temos que achar o caminho em que foi possível passar 4 (= δ
6
) de fluxo. Mais uma
vez, usando os γ
i
podemos encontrar este caminho.
Para chegar ao nó 6 viemos do nó 4 (= γ
6
). Subtraímos então 4 (= δ
6
) do arco
(4 – 6) e somamos no arco inverso (6 – 4).
Para chegar ao nó 4 viemos do nó 3 (= γ
4
). Subtraímos 4 (= δ
6
) do arco (3 – 4) e
somamos no arco (4 – 3).
Para chegar ao nó 3 viemos do nó 1 (= γ
3
). Subtraímos 4 (= δ
6
) do arco (1 – 3) e
somamos no arco (3 – 1).
Mantendo os demais valores inalterados temos o quadro pronto para começar a 3
a
iteração:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 4 0 0 0 δ γ —-
2 4 – 2 0 1 0
3 4 0 – 1 3 0
4 0 4 4 – 0 0
5 0 0 0 4 – 9
6 0 0 0 8 0 –
No estágio 1 podemos, do nó 1, rotular os nós 2 e 3. Os rótulos ficam como:
δ
2
= 2 e γ
2
= 1.
δ
3
= 4 e γ
3
= 1.
Temos então:
8 Redes
1 2 3 4 5 6 Rótulos Estágio
1 – 2 4 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0
5 0 0 0 4 – 9
6 0 0 0 8 0 –
No estágio 2, do nó 2 só podemos rotular o nó 5. Seus rótulos serão:
δ
5
= Min(g
25
, δ
2
) = Min(1, 2) = 1.
γ
5
= 2 e estágio = 2.
Do nó 3 podemos rotular o nó 4 como:
δ
4
= Min(g
34
, δ
3
) = Min(1, 4) = 1.
γ
4
= 3 e estágio = 2.
Temos então:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 4 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0 1 3 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 8 0 –
No estágio 3, não podemos rotular ninguém a partir do nó 4 mas do nó 5, podemos
rotular o nó 6. Seus rótulos são:
δ
6
= Min(g
56
, δ
5
) = Min(9, 1) = 1.
γ
6
= 5 e estágio = 3.
Temos:
1 2 3 4 5 6 Rótulos Estágio
1 – 2 4 0 0 0 δ γ —-
2 4 – 2 0 1 0 2 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0 1 3 2
5 0 0 0 4 – 9 1 2 2
6 0 0 0 8 0 – 1 5 3
Como rotulamos o nó destino, temos que encontrar o caminho onde se passou 1
(= δ
6
) de fluxo.
Para chegar a 6, viemos do nó 5. Subtraímos 1 do arco (5 – 6) e somamos em
(6 – 5). Para chegar a 5 viemos do nó 2. Subtraímos 1 de (2 – 5) e somamos em
(5– 2). Para chegar ao nó 2 viemos do nó 1, logo subtraímos 1 de (1 – 2) e somamos
a (2 – 1).
Mantendo os demais valores, temos o quadro pronto para a 4
a
iteração:
1.3 Técnica da Rotulação 9
1 2 3 4 5 6 Rótulos Estágio
1 – 1 4 0 0 0 δ γ —-
2 5 – 2 0 0 0
3 4 0 – 1 3 0
4 0 4 4 – 0 0
5 0 1 0 4 – 8
6 0 0 0 8 1 –
No estágio 1, os nós 2 e 3 são rotulados ficando como:
1 2 3 4 5 6 Rótulos Estágio
1 – 1 4 0 0 0 δ γ —-
2 5 – 2 0 0 0 1 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0
5 0 1 0 4 – 8
6 0 0 0 8 1 –
No estágio 2 do nó 2 não podemos rotular qualquer outro nó mas do nó 3 podemos
rotular o nó 4 com:
δ
4
= Min(g
34
, δ
3
) = Min(1, 4) = 1.
γ
4
= 3 e estágio = 2.
Também do nó 3 podemos rotular o nó 5:
δ
5
= Min(g
35
, δ
3
) = Min(3, 4) = 3.
γ
5
= 3 e estágio = 2.
1 2 3 4 5 6 Rótulos Estágio
1 – 1 4 0 0 0 δ γ —-
2 5 – 2 0 0 0 1 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0 1 3 2
5 0 1 0 4 – 8 3 3 2
6 0 0 0 8 1 –
No estágio 3, do nó 4 não se rotular ninguém mas do nó 5 podemos rotular o nó 6
como:
δ
6
= Min(g
56
, δ
5
) = Min(8, 3) = 3.
γ
6
= 5 e estágio = 3.
1 2 3 4 5 6 Rótulos Estágio
1 – 1 4 0 0 0 δ γ —-
2 5 – 2 0 0 0 1 1 1
3 4 0 – 1 3 0 4 1 1
4 0 4 4 – 0 0 1 3 2
5 0 1 0 4 – 8 3 3 2
6 0 0 0 8 1 – 3 5 3
10 Redes
Conseguimos passar 3 de fluxo (= δ
6
). Fazemos o procedimento mais uma vez para
encontrar o caminho. Para chegar a 6 viemos do nó 5. Assim sendo, subtraímos 3
de (5 – 6) e somamos 3 a (6 – 5). Para chegar a 5 viemos do nó 3. Subtraímos 3
de (3 – 5) e somamos a (5 – 3). Para chegar a 3 viemos do nó 1. Subtraímos 3 de
(1 – 3) e somamos a (3 – 1).
Mantendo inalterados os demais valores temos o quadro para começar a 5
a
iteração.
1 2 3 4 5 6 Rótulos Estágio
1 – 1 1 0 0 0 δ γ —-
2 5 – 2 0 0 0
3 7 0 – 1 0 0
4 0 4 4 – 0 0
5 0 1 3 4 – 5
6 0 0 0 8 4 –
No estágio 1 rotulamos os nós 2 e 3.
1 2 3 4 5 6 Rótulos Estágio
1 – 1 1 0 0 0 δ γ —-
2 5 – 2 0 0 0 1 1 1
3 7 0 – 1 0 0 1 1 1
4 0 4 4 – 0 0
5 0 1 3 4 – 5
6 0 0 0 8 4 –
No estágio 2 do nó 2 não rotulamos ninguém mas do nó 3 podemos rotular o nó 4
como:
δ
4
= Min(g
34
, δ
3
) = Min(1, 1) = 1.
γ
4
= 3 e estágio = 2.
1 2 3 4 5 6 Rótulos Estágio
1 – 1 1 0 0 0 δ γ —-
2 5 – 2 0 0 0 1 1 1
3 7 0 – 1 0 0 1 1 1
4 0 4 4 – 0 0 1 3 2
5 0 1 3 4 – 5
6 0 0 0 8 4 –
No estágio 3, tenho o nó 4 para varrer mas do nó 4 não consigo rotular mais nin-
guém. O algorítimo chegou ao final pois não conseguimos em uma iteração (5
a
no
exemplo) rotular o nó destino (nó 6).
Qual o fluxo máximo que pode ser levado do nó 1 ao nó 6 ? É a soma dos valores
que aparecem no último quadro na linha do nó 6, ou seja 8 + 4 = 12.
1.3 Técnica da Rotulação 11
A resposta acima leva, imediatamente, a outra pergunta: Como este fluxo máximo
se distribui pelos arcos da rede ?
O fluxo que passa em cada arco é igual a diferença entre o valor da capacidade
do arco (valor que aparece no quadro inicial) e o valor que aparece para o arco no
último quadro do algorítimo. Temos então:
Arco Fluxo que passa
1 – 2 6 −1 = 5
1 – 3 8 −1 = 7
2 – 4 4 −0 = 4
2 – 5 1 −0 = 1
3 – 4 5 −1 = 4
3 – 5 3 −0 = 3
4 – 6 8 −0 = 8
5 – 6 9 −5 = 4
2 – 3 2 −2 = 0
5 – 4 4 −4 = 0
Pode-se observar que nos arcos (2 – 3) e (5 – 4) não passa qualquer fluxo.
O esquema da passagem do fluxo pode ser visto a seguir:
1
2
3
4
5
6
5
7
4
3
4
1
8
4
12
12 Redes
1.4 Fluxo máximo em redes com arcos não direcionados
Um arco (i – j) é dito ser não direcionado se o fluxo pode passar no sentido i ⇒j ou
no sentido j ⇒i.
Matematicamente, se k é a capacidade do arco, temos:
f
ij
≤ k
f
ji
≤ k
f
ij
×f
ji
= 0 (pelo menos um dos dois é zero!)
Exemplo: Achar o fluxo máximo que pode ser levado do nó 1 ao nó 6 na rede abaixo:
1
2
3
4
5
6
40
30
30
50
25
50
30
25 15
Os arcos (2 – 3), (2 – 5) e (4 – 5) são não direcionados.
1.4.1 Adaptação para uso da Técnica de Rotulação
Cada arco não direcionado é dividido em 2, com sentidos opostos e capacidade igual
a k.
1
2
3
4
5
6
40
30
30
50
25
50
30
25
15
15
25
25
Aplica-se normalmente a técnica da rotulação na rede modificada.
No final do algorítimo teremos o fluxo que passa em cada arco. Vamos supor que
para o não direcionado (2 – 3) tenhamos encontrado:
1.5 O problema do caminho mínimo 13
(2 – 3) =⇒5
(3 – 2) =⇒12
Como o fluxo que passa no sentido 3 ⇒2 é maior isto significa que o fluxo fluirá
neste sentido. E quanto de fluxo passará ? a diferença, 12 −5 = 7.
Aplica-se o mesmo raciocínio e cálculo para todos os arcos não direcionados.
Em redes com arcos não direcionados, pode acontecer que a diferença entre os
quadros inicial e final, ou seja no cálculo do fluxo que passa no arco, dê um valor
negativo. Neste caso o fluxo que passa no arco é igual a zero.
1.5 O problema do caminho mínimo
Um outro problema clássico de redes é o de achar o menor caminho entre 2 nós da
rede.
Exemplo: Achar o menor caminho entre os nós 1 e 6 na rede abaixo:
1
2
3
4
5
6
4
3
3
7
2
1
9
6
3
3
O número que aparece no arco dá o comprimento dele.
14 Redes
1.5.1 Formulação como um modelo clássico de P.Linear
Variáveis de decisão:
x
ij
⇒arco (i – j) presente no caminho mais curto.
Se x
ij
= 0, ele não pertence ao caminho. Se igual a 1, pertence.
(MIN Z = 3x
12
+ 7x
13
+ 4x
14
+ 2x
23
+x
34
+ 9x
26
+ 6x
36
+ 3x
35
+ 3x
45
+ 3x
56
s.a.
x
12
+x
13
+x
14
= 1 (nó origem)
x
26
+x
36
+x
56
= 1 (nó destino)
x
12
= x
23
+x
26
(nó 2)
x
13
+x
23
= x
34
+x
35
+x
36
(nó 3)
x
14
+x
34
= x
45
(nó 4)
x
35
+x
45
= x
56
(nó 5)
x
ij
= 0 ou 1
Como no problema do fluxo máximo, existem muitos algorítimos para resolver este
tipo de problema de uma forma mais rápida do que o Simplex.
Veremos o chamado Algorítimo de Dijkstra, que é também uma técnica de rotu-
lação.
1.6 Etapas do algorítimo de Dijkstra
1. Atribuir um rótulo igual a zero para o nó origem. Os rótulos dos outros nós,
são iguais a distância do nó origem ao nó em questão. Quando não há ligação, o
rótulo é igual a ∞. Rotule o nó origem como permanente (colocando um *).
2. Suponha que o nó k foi o último a receber rótulo permanente. Calcule para cada
nó, não rotulado permanentemente, a soma do rótulo do nó k mais a distância
de k ao nó em questão. O novo rótulo do nó em questão, será o mínimo entre o
seu rótulo anterior e a soma acima.
3. Selecione o nó com o menor rótulo não permanente. Rotule-o como permanente
(colocando um *). Em caso de empate a escolha é arbritária. Se o nó que acabou
de ser rotulado é o nó destino, o algorítimo chegou ao fim, em caso contrário
voltar à etapa 2.
Vamos aplicar o algorítimo para encontrar o caminho mais curto entre os nós 1 e 6
na rede acima.
Vamos trabalhar com um quadro com o seguinte aspecto:
Iteração 1 2 3 4 5 6 Nó Rotulado
0
1
2
3
4
5
1.6 Etapas do algorítimo de Dijkstra 15
Começamos (iteração 0) atribuindo um rótulo igual a 0 para o nó origem (nó 1). O
rótulo do nó 2 vai ser igual a distância do nó 1 a ele, ou seja 3. Da mesma forma o
rótulo do nó 3 será 7 (distância do nó origem a ele). Idem para o nó 4 que terá rótulo
igual a 4. Os rótulos dos nós 5 e 6 será igual a ∞pois não há arco ligando a origem
(nó 1) a eles. Como todos os nós já tem rótulo, escolhemos o que tem menor rótulo e
o rotulamos de forma permanente, ou seja imutável. Nesta iteração o nó rotulado
vai ser o nó 1 a quem atribuímos um rótulo igual a 0. A marcação de permanente é
feita colocando-se um “*” no rótulo.
Nosso quadro fica então como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1
2
3
4
5
Podemos começar a iteração 1. O nó 1 foi o último (e único até agora) nó rotulado
permanentemente. Para os outros não rotulados de forma permanente temos que
calcular o novo rótulo. Este novo rótulo será o mínimo entre 2 valores. O primeiro é
a soma do rótulo do último nó rotulado de forma permanente com a distância deste
nó ao nó em questão. O 2
o
valor é o rótulo anterior do nó em questão.
Como nesta iteração o último nó rotulado foi o nó 1 que tem rótulo igual a 0, a soma
do rótulo do nó 1 com a distância do nó 1 ao nó em questão dará sempre a própria
distância do nó 1 a cada um dos nós da rede. Como o rótulo anterior já era a própria
distância ao nó 1, teremos o mínimo entre 2 quantidades iguais, ou seja a distância
do nó origem (1) a cada um dos nós.
Assim sendo a linha da iteração 1 é exatamente igual a linha da iteração 0. Como
o menor valor não rotulado de forma permanente é 3, o nó 2 recebe rótulo perma-
nente e nosso quadro fica como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1 0

3

7 4 ∞ ∞ 2
2
3
4
5
Vamos começar a iteração 2 lembrando que o último nó rotulado de forma perma-
nente foi o nó 2 com rótulo igual a 3.
Vamos calcular o novo rótulo do nó 3. Inicialmente devemos calcular a soma do
rótulo do nó 2 (= 3) mais a distância do nó 2 ao nó 3 que é igual 2. Logo, 3 +2 = 5.
O novo rótulo do nó 3 será o mínimo entre 5 e o rótulo anterior de 3 (=7). Assim o
novo rótulo de 3 será igual a 5.
16 Redes
Para o nó 4 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 4 que
é igual a ∞pois não existe ligação entre eles. O novo rótulo do nó 4 será o mínimo
entre ∞e o rótulo anterior de 4 (= 4). Logo o novo rótulo do nó 4 é 4.
Para o nó 5 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 5 que
é igual a ∞pois não existe ligação entre eles. O novo rótulo do nó 5 será o mínimo
entre ∞e o rótulo anterior de 5 (= ∞). Logo o novo rótulo do nó 5 é ∞.
Para o nó 6 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 6 que
é igual a 9, ou seja 3 + 9 = 12. O novo rótulo do nó 6 será o mínimo entre 12 e o
rótulo anterior de 6 (= ∞). Logo o novo rótulo do nó 6 é 12.
O menor rótulo não permanente é 4 que corresponde ao nó 4 que é então rotulado
de forma permanente.
Nosso quadro fica como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1 0

3

7 4 ∞ ∞ 2
2 0

3

5 4

∞ 12 4
3
4
5
Começamos a iteração 3 recordando que o nó 4 foi o último a receber rótulo perma-
nente e que seu rótulo é 4.
Assim sendo, para o nó 3 calculamos a soma entre o rótulo do nó 4 (= 4) mais a
distância do nó 3 ao nó 4 que é igual a 1. Logo a soma dá 4 + 1 = 5. O novo rótulo
do nó 3 é o mínimo entre o 5 e o rótulo anterior de 3 que também era 5. O rótulo
continua igual a 5.
Para o nó 5 temos a soma do rótulo de 4 mais a distância do nó 4 ao nó 5 que é
igual a 3. Logo a soma dá 4 + 3 = 7. O novo rótulo do nó 5 será o mínimo entre o
resultado da soma (7) e o rótulo anterior do nó 5 (∞). Logo o novo rótulo será igual
a 7.
Finalmente para o nó 6 temos a soma do rótulo do nó 4 mais a distância do nó 4 ao
nó 6 dando 4 + ∞ = ∞. O novo rótulo do nó 6 é o mínimo entre ∞e o seu rótulo
anterior, ou seja 12.
Como o menor rótulo é igual a 5, o nó 3 recebe rótulo permanente e o quadro tem o
seguinte aspecto:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1 0

3

7 4 ∞ ∞ 2
2 0

3

5 4

∞ 12 4
3 0

3

5

4

7 12 3
4
5
1.6 Etapas do algorítimo de Dijkstra 17
Passamos para a iteração 4 guardando que o nó 3 foi o último a receber rótulo
permanente e seu rótulo é igual a 5.
Para o nó 5 calculamos a soma do rótulo do nó 3 mais a distância do nó 3 ao nó
5 dando 5 + 3 = 8. O novo rótulo do nó 5 é o mínimo entre este 8 e o seu rótulo
anterior (= 7). Assim 7 é o novo rótulo do nó 5.
Para o nó 6 calculamos a soma do rótulo do nó 3 mais a distância do nó 3 ao nó 6
dando 5 + 6 = 11. O novo rótulo do nó 6 é o mínimo entre este 11 e o seu rótulo
anterior (= 12). Assim 11 é o novo rótulo do nó 6.
Como o menor rótulo é 7, correspondente ao nó 5, ele recebe o rótulo permanente e
o quadro fica como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1 0

3

7 4 ∞ ∞ 2
2 0

3

5 4

∞ 12 4
3 0

3

5

4

7 12 3
4 0

3

5

4

7

11 5
5
Para a iteração 5, o último nó rotulado de forma permanente foi o 5 e seu rótulo é
7.
Para o nó 6, calculamos a soma do rótulo do nó 5 (= 7) mais a distância do nó 5 ao
nó 6, dando 7 + 3 = 10. O novo rótulo do nó 6 é o mínimo entre este 10 e o seu
rótulo anterior (= 11). Seu novo rótulo é igual a 10. Como ele é o único ainda não
rotulado ele recebe o rótulo permanente e nosso quadro final como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

3 7 4 ∞ ∞ 1
1 0

3

7 4 ∞ ∞ 2
2 0

3

5 4

∞ 12 4
3 0

3

5

4

7 12 3
4 0

3

5

4

7

11 5
5 0

3

5

4

7

10

6
Como o nó destino (6) foi rotulado, chegamos ao final do algorítimo.
Qual o comprimento do menor caminho entre os nós 1 e 6 da rede ? É exatamente
o rótulo do nó destino, ou seja 10.
Neste momento, surge imediatamente a pergunta: Qual o caminho que tem com-
primento 10 ?
Esta pergunta pode ser respondida através da seguinte propriedade: O nó i pre-
cede o nó j se a diferença entre os rótulos permanentes dos nós j e i for
igual a distância i – j.
Começando do nó destino e voltando podemos, aplicando aquela propriedade, achar
o caminho de comprimento igual a 10.
Temos então:
18 Redes
Nó 6
Arco Diferença Distância
5 – 6 10 −7 = 3 3 ⇐
3 – 6 10 −5 = 5 6
2 – 6 10 −3 = 7 9
(5 – 6) é um arco do caminho.
Nó 5
Arco Diferença Distância
3 – 5 7 −5 = 2 3
4 – 5 7 −4 = 3 3 ⇐
(4 – 5) é um arco do caminho.
Nó 4
Arco Diferença Distância
3 – 4 4 −5 = −1 1
1 – 4 4 −0 = 4 4 ⇐
(1 – 4) é um arco do caminho.
O caminho com comprimento igual a 10 (menor caminho da rede) é:
(1 – 4), (4 – 5), (5 – 6).
Vamos ver um novo exemplo para ilustrar o caso onde existe mais de 1 caminho
mínimo na rede.
Seja o seguinte exemplo: Achar o menor caminho entre o nó 1 e o nó 6 na rede
abaixo:
1
2
3
4
5
6
4
3
8
1
9
3
6
12
3
8
1.6 Etapas do algorítimo de Dijkstra 19
Aplicando o algorítimo visto anteriormente, o nosso quadro final fica como:
Iteração 1 2 3 4 5 6 Nó Rotulado
0 0

8 1 4 ∞ ∞ 1
1 0

8 1

4 ∞ ∞ 3
2 0

8 1

4

9 13 4
3 0

8 1

4

7

13 5
4 0

8

1

4

7

10 2
5 0

8

1

4

7

10

6
Para encontrar o menor caminho vamos começar do nó final e voltar:
Nó 6
Arco Diferença Distância
2 – 6 10 −8 = 2 6
3 – 6 10 −1 = 9 12
5 – 6 10 −7 = 3 3 ⇐
(5 – 6) é um arco do caminho.
Nó 5
Arco Diferença Distância
3 – 5 7 −1 = 6 8
4 – 5 7 −4 = 3 3 ⇐
(4 – 5) é um arco do caminho.
Nó 4
Arco Diferença Distância
3 – 4 4 −1 = 3 3 ⇐1
a
opção
1 – 4 4 −0 = 4 4 ⇐2
a
opção
(3 – 4) e (1 – 4) são arcos do caminho.
Temos 2 opções o que implica em termos, no mínimo, 2 caminhos ótimos. Temos
que prosseguir, em cada opção, até encontrar a nó origem.
Pode ser visto acima que a 2
a
opção já atingiu o nó origem. Temos que continuar
pela outra opção.
Nó 3
Arco Diferença Distância
1 – 3 1 −0 = 1 1 ⇐
2 – 3 1 −8 = −7 4
(1 – 3) é um arco do caminho e chegamos ao nó origem.
Temos 2 caminhos com comprimento 10:
(1 – 3) (3 – 4),(4 – 5), (5 – 6) e
(1 – 4), (4 – 5), (5 – 6).
Uma observação importante no algorítimo é que ele para quando o nó destino
for rotulado permanentemente mesmo que algum outro nó não tenha recebido
rótulo permanente.
20 Redes
1.7 Árvore de Tamanho Mínimo
Árvore
É um grafo constituído de p nós, estando todos interligados por p −1 arcos.
Exemplo:
1
2
3
4
1
2
3
4
Como podemos ver, dados por exemplo 4 nós, podemos construir várias árvores,
cada uma delas com arcos diferentes.
O objetivo é encontrar àquela cujo comprimento total seja o menor possível.
Podemos, por exemplo, querer encontrar a árvore de tamanho mínimo da rede a
seguir:
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
Como a rede possui 10 nós, qualquer árvore extraída dela tem que ter 9 arcos.
1.7 Árvore de Tamanho Mínimo 21
1.7.1 Etapas do algorítimo para encontrar a árvore do tama-
nho mínimo
1. Selecione qualquer nó e identifique o nó mais perto dele. Faça a ligação entre
os 2 (no caso de empate, a escolha é arbritária).
2. Identifique o nó não ligado que esteja mais perto de um dos ligados. (Em caso
de empate a escolha é arbritária). Faça a ligação entre os 2.
3. Repita a etapa 2 até todos os nós estarem ligados.
Aplicando o algorítimo e escolhendo o nó 1 para começar (poderia-se escolher qual-
quer outro nó da rede). Identificamos o nó não “ligado” mais perto dele. No caso é o
nó 2 com distância igual a 7. Ligamos os 2 nós que passam assim a ser considerados
como “ligados”. Usamos um * para marcar nó ligado.
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
Temos 2 nós ligados (1 e 2). Identificamos o nó não ligado que esteja mais perto
dos 2 ligados. É o nó 5 com distância igual a 5 para o nó 2. Ligamos o nó 5. Temos
então:
22 Redes
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
Identificamos agora o nó não ligado mais perto de um dos 3 ligados. É o nó 6 com
distância igual a 5 para o nó 5. Ligamos ele.
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
Neste instante, o nó não ligado mais perto de um ligado é o nó 7 com distância de 4
para o nó 6.
1.7 Árvore de Tamanho Mínimo 23
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
Temos agora um empate: os nós 3 e 9 estão a mesma distância (= 6) de nó ligado.
A escolha é arbritária. Vamos escolher o nó 3 para ficar ligado. Temos então:
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
*
Agora o mais perto de um ligado é o nó 9 que está a distância de 6 do nó 5. Ligando
o nó 9, temos:
24 Redes
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
*
*
Neste ponto temos novamente um empate. Os nós 4 e 10 estão a mesma distância
(= 7) de nós ligados. Escolhemos, arbritariamente, o nó 4 para ligar:
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
*
*
*
O não ligado mais perto de um ligado neste instante é o nó 10. Tornando ele ligado,
temos:
1.7 Árvore de Tamanho Mínimo 25
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
*
*
*
*
Finalmente o último não ligado é o nó 8 que está mais perto do nó 10 com distância
igual a 6. Temos então:
2
1
3
4
5
6
7
8
9
10
7
8
14
5
10
7
12
6
10
7
8
6
5
6
4
7
9
9
11
*
*
*
*
*
*
*
*
*
*
A árvore de tamanho mínimo, com seus 9 arcos, foi encontrada:
26 Redes
2
1
3
4
5
6
7
8
9
10
7
5
7
6
7
6
5
6
4
Seu comprimento é igual a:
Z

= 7 + 5 + 7 + 6 + 5 + 6 + 4 + 7 + 6 = 53
1.8 Exercícios 27
1.8 Exercícios
Para ajudar na resolução dos exercícios a seguir, poderá ser usado o programa PO
que pode ser encontrado na página www.mpsantos.com.br
Na própria página podem ser encontradas as explicações de como “baixar” e insta-
lar o aplicativo. Ele é para o ambiente Windows e roda em qualquer versão a partir
do Windows 95, inclusive.
Principalmente nos exercícios de fluxo máximo e caminho mínimo, a saída do pro-
grama permite a comparação com o que foi feito manualmente na aplicação dos
algorítimos.
1) Qual o fluxo máximo que pode ser levado do nó 1 ao nó 7 na rede abaixo:
2
1
3
4
5
6
7
2
6
4
1
4
4
4
9
3
2
1
3
2) Qual o fluxo máximo que pode ser levado do nó 1 ao nó 9 na rede abaixo:
2
1
3
4
5
6
7
8
9
8
5
6
7
4
4
3
11
12
3
3
7
7
4
5
6
2
3
28 Redes
3) Um certo produto deve ser enviado de 3 depósitos para 4 lojas. As disponibilida-
des dos depósitos são 20, 20 e 100 unidades respectivamente. As necessidades
das lojas são 20, 20, 60 e 20 unidades respectivamente. A tabela abaixo dá as
capacidades das rotas entre os depósitos e as lojas:
Lojas
(Depósitos) 1 2 3 4
1 30 10 0 40
2 0 0 10 50
3 20 10 40 5
Uma capacidade igual a zero indica que não existe rota entre o depósito e a loja.
O problema é determinar se é possível atender a todas as necessidades das lojas
com o disponível nos depósitos.
a) Mostre que o problema acima é equivalente a achar o fluxo máximo de uma
fonte para um destino.
b) Qual a resposta para o problema ?
4) Qual o menor caminho entre os nós 1 e 7 na rede abaixo:
2
1
3
4
5
6
7
8
4
5
1
6
2
7
7
5
4
1
6
1.8 Exercícios 29
5) Qual o menor caminho entre os nós 1 e 11 na rede abaixo:
1
1
2
3
4
5
6
7
8
9
10
11
4
3
3
4
7
5
2 2
2
2
2
6 5
8
4
5
6 5
4
3
2
6) Ache a árvore de tamanho mínimo para a rede do problema 4.
7) Ache a árvore de tamanho mínimo para a rede do problema 5.
8) Uma empresa madeireira tem que ligar entre si 8 bosques em uma determinada
região. Tem que ser construídas estradas de modo que os 8 bosques fiquem
interligados. A distância, em kms, entre cada par de bosques está mostrado na
tabela abaixo:
1 2 3 4 5 6 7 8
1 – 1,3 2,1 0,9 0,7 1,8 2,0 1,5
2 1,3 – 0,9 1,8 1,2 2,6 2,3 1,1
3 2,1 0,9 – 2,6 1,7 2,5 1,9 1,0
4 0,9 1,8 2,6 – 0,7 1,6 1,5 0,9
5 0,7 1,2 1,7 0,7 – 0,9 1,1 0,8
6 1,8 2,6 2,5 1,6 0,9 – 0,6 1,0
7 2,0 2,3 1,9 1,5 1,1 0,6 – 0,5
8 1,5 1,1 1,0 0,9 0,8 1,0 0,5 –
O problema é determinar entre que pares de bosques deve-se construir estradas
conectando todos os bosques e fazendo-se o mínimo de kms de estrada. Encontre
a resposta
30 Redes
9) A figura abaixo mostra a rede de encanamento existente entre um determinado
manancial de captação de água e um depósito onde a água é armazenada para
ser tratada. O número em cima de cada trecho de encanamento dá a vazão má-
xima, em litros por segundo, que pode passar no trecho.
Qual a quantidade máxima, em litros por segundo, de água que pode ser trans-
portada entre o manancial e a estação de tratamento ? Que vazão de água
passará em cada trecho da rede ?
7
1
2
3
4
5
6 8
2
7
10
11
1
4
5
7
9
8
6
4
3
10) Usando a técnica da rotulação determine o fluxo máximo que pode ser levado do
nó 1 ao nó 11 na rede abaixo:
1
2
3
4
5
6
7
8
9
10
11
9
4
6
5
6
7
7
5
15
4
7
4
5
3
5
8
1.8 Exercícios 31
11) Usando o algorítimo de Dijkstra, encontre o menor caminho entre os nós 2 e 11
na rede a seguir:
13
1
2
3
4
5
6
7
8
9
10
11
12
2
1
1
1
1
1
1
1
1
2
2
2
2
3
3
3
8
5
4
7
7
5
6
9
8
12) Encontre o menor caminho entre os nós 2 e 12 na rede a seguir:
1
2
3
4
5
6
7
8
9
10
11
12
150
380
2000
700
450
200 800
500
700
6000
1000
600
500
8500
2000
1500
150
600
300 400
270
400
100
200
300
32 Redes
13) A rede abaixo é a representação de um conjunto de 11 prédios residenciais cons-
truídos em uma área afastada da cidade. As linhas ligando os prédios são os
canos que foram instalados para a passagem de toda a fiação elétrica, telefô-
nica, etc..., sendo também mostrado o comprimento destes encanamentos, em
metros. O esquema de segurança a ser colocado pelo condomínio implica na co-
locação de telefones interligando as portarias de todos os prédios. Como deve ser
instalada a fiação destes telefones de segurança de maneira que a quantidade
de fio gasto seja a mínima possível ? Quantos metros de fio serão gastos ?
B
A
C
D
F
E
G
H
I
J
K
210
120
170
40
78
105
90
70
135
70
50
40
80
90
60
100
65
30
30
165
1.8 Exercícios 33
1.8.1 Respostas dos exercícios
1) Z

= 9
2) Z

= 19
3) Z

= 110
(1 – 1) ⇒5
(1 – 2) ⇒10
(1 – 4) ⇒5
(2 – 3) ⇒10
(2 – 4) ⇒10
(3 – 1) ⇒15
(3 – 2)⇒10
(3 – 3) ⇒40
(3 – 4) ⇒5
1
I
F
2
3
1
2
3
4
20
20
20
20
20
60
100
10
10
10
10
5
40
40
20
30
4) Z

= 16
5) Z

= 17
6) Z

= 18
7) Z

= 26
8) Z

= 5, 2
9) Z

= 18 litros/seg
10) Z

= 12
11) Z

= 7
12) Z

= 1070
13) Z

= 603
34 Redes
Capítulo 2
PERT/CPM
No final da década de 50, um dos maiores projetos realizados foi o chamado pro-
jeto POLARIS. Este projeto, realizado pelos E.Unidos, consistia na fabricação do 1
o
submarino com capacidade de lançar mísseis estando submerso. Este projeto en-
volvia a participação de 250 grandes empresas e 9.000 empresas sub-contratadas
diferentes. Além de milhares de peças comuns já usadas em outros projetos, nada
menos que 70.000 novos tipos de peças diferentes tinham que ser fabricadas.
Embora os problemas técnicos fossem difíceis, o maior de todos era controlar todo
o projeto, dado o gigantesco número de atividades a serem realizadas, principal-
mente porque havia grande pressão de se fazer o projeto no menor tempo possível.
Com a finalidade de controlar o projeto que, como vimos era o maior problema a
ser enfrentado, foi desenvolvido por uma equipe mista da Lockheed, Booz Allen e
Marinha dos E.Unidos um sistema para controle de projetos que recebeu o nome
de PERT (Program Evaluation and Review Technique). Poderíamos traduzir por
Técnica de Avaliação e Controle de Projetos. O projeto Polaris teve sua duração
reduzida dos 5 anos previstos para apenas 3. Grande parte desta redução foi atri-
buída ao uso do PERT.
É importante realçar os pontos básicos que serviram de base ao desenvolvimento
do PERT:
a) Projeto pioneiro com muitas atividades de duração real desconhecida.
b) Controlar a duração do Projeto era o objetivo principal.
Na mesma época (1957) a Dupont apresentou um sistema de controle de Projetos,
similar ao PERT, mas tendo como enfoque principal o controle dos custos de um
projeto. O nome dado a este sistema era CPM (Critical Path Method) ou Método
do Caminho Crítico em português.
O sucesso do PERT no projeto Polaris e do CPM na Dupont, provocaram a partir
de 1960, uma “corrida” ao uso destas ferramentas que passaram a ser conhecidas
pela sigla PERT/CPM. Com o passar dos anos o nome CPM deixou de ser usado e o
uso deste tipo de técnica passou a ser conhecida como Rede PERT.
Pode-se dizer, sem medo de errar, que este tipo de ferramenta é usada pela maioria
das empresas de médio e grande porte.
36 PERT/CPM
2.1 Construção da Rede
Dá-se o nome de Rede PERT a representação gráfica de um projeto.
Através desta representação gráfica é possível visualizar a sequência lógica do pro-
jeto, com as interdependências das atividades que compõem o projeto.
Posteriormente são colocadas na Rede, as durações (custos) das atividades, permi-
tindo com isto uma análise da duração (custos) do projeto.
Na terminologia usada no PERT, um projeto é constituído de atividades e eventos.
ATIVIDADE: É a execução efetiva de uma operação.
São consumidos tempo e recursos. Ex: Assistir aula de P.Operacional, fazer uma
laje de concreto, etc...
EVENTO: É um marco que caracteriza um determinado instante em um projeto.
Não são consumidos tempo ou recursos. Ex: Início da aula de P.Operacional, fim
da aula de P.Operacional, início de fazer a laje de concreto, etc...
Para se construir a rede PERT de um determinado projeto precisamos conhecer:
a) As atividades, ou seja, a lista de tarefas que compõem o projeto.
b) A ordem das atividades, isto é, quais as atividades antecedentes e quais as sub-
sequentes à cada atividade.
c) A duração prevista para cada atividade.
OBS: No caso do CPM, precisamos conhecer também o custo de cada atividade.
2.1.1 Representação gráfica da Rede
1. Método Americano (original)
Evento
Inicial
Evento
Final
Identificação da Atividade
Duração da Atividade
1
2
Assistir aula de PO
1 hora
As setas representam as atividades e os nós representam os eventos.
2.1 Construção da Rede 37
2. Método Francês
Assistir aula
de PO
Intervalo
1 2
As setas representam a ordem de ligação das atividades e os blocos as atividades.
OBS: O método francês é mais fácil mas durante muitos anos, por tradição, o mé-
todo americano foi usado embora seja muito mais complicado desenhar uma rede
por ele do que pelo método francês.
Nos últimos anos no entanto, com o aparecimento de programas de computador
que fazem o desenho da rede, o método francês passou a dominar o cenário, já que
é o usado pelos pacotes de computador.
Exemplo
Vamos imaginar que a área financeira de uma pequena empresa, que produz e
vende determinado produto, precisa fazer a previsão orçamentária para o próximo
exercício fiscal.
Como a confecção deste orçamento envolve áreas diferentes da empresa, foi deci-
dido usar o PERT para controle e acompanhamento do projeto. As atividades do
projeto bem como a interdependência entre elas além da suas durações, está mos-
trado na tabela a seguir:
Duração Antecessoras
Identificação Atividade em dias Imediatas
a Previsão das unidades 14 –
a serem vendidas
b Determinar o preço de 3 a
venda do produto
c Levantar material necessá- 7 a
rio na produção
d Levantar custos 4 c
de produção
e Fazer o 10 b, d
Orçamento
Para deixar claro o conceito, vemos que a atividade b tem como antecessora imedi-
ata a atividade a, ou seja ela só pode ser iniciada depois que a atividade a termine.
Da mesma forma, a atividade e só pode começar após a conclusão das atividades b
e d.
38 PERT/CPM
No método americano o desenho da rede fica como:
5
1
2
3
4
e
a
b
c
d
10
7
14
3
4
No método francês teríamos:
Início
Fim
e
a
b
c
d
10
7
14
3
4
Devemos reparar que, em ambos os casos, a interdependência das atividades fica
clara e perfeitamente visível.
2.1.2 Representação das Atividades
Normalmente, no método americano, as atividades são representadas por:
(nó inicial – nó final)
Assim no nosso projeto, teríamos:
a ⇒(1 – 2)
b ⇒(2 – 4)
c ⇒(2 – 3)
d ⇒(3 – 4)
e ⇒(4 – 5)
A vantagem deste tipo de representação é que não é necessário se olhar o desenho
da rede para se conhecer a interdependência das atividades. Assim, por exemplo,
as atividades que tenha nó inicial igual a 2 só podem ser iniciadas depois que todas
que tenham nó final igual a 2 tenham terminado.
2.1 Construção da Rede 39
2.1.3 Complicação na Construção da Rede
Vamos supor que antes de se estabelecer o preço de venda do produto, seja feito um
estudo do preço dos concorrentes. O quadro de atividades passaria a ser:
Duração Antecessoras
Identificação Atividade em dias Imediatas
a Previsão das unidades 14 –
a serem vendidas
a’ Estudar preço 3 –
dos concorrentes
b Determinar o preço de 3 a, a’
venda do produto
c Levantar material necessá- 7 a
rio na produção
d Levantar custos 4 c
de produção
e Fazer o 10 b, d
Orçamento
Como a atividade b depende das atividades a e a’, temos dificuldade para construir
a rede no método americano. Poderíamos pensar em 2 opções:
Opção 2 Opção 1
3
1
1
2
2
c
a
a
a
a’
a’
b
c
b
Na opção 1, c não depende de a’ e na opção 2, temos 1 atividade aparecendo mais
de 1 vez o que, em redes grandes, causaria enorme confusão.
A solução é criar uma atividade, não existente, que recebe o nome Atividade Fan-
tasma. Sua duração e custo são sempre iguais a zero.
6
1
2
3
4
5
e
a
a’
f
c
b
d
3
14
0
3
7
4
10
40 PERT/CPM
A atividade b depende das atividades f e a’. Mas como f depende de a, a interde-
pendência fica correta.
A atividade fantasma é sempre representada por uma linha tracejada.
Uma das vantagens do método francês é o fato dele nunca precisar de atividades
fantasma, como podemos ver a seguir:
Início Fim
10
a
a’
b
c
d
e
14
3
7
3
4
Temos agora a seguinte questão: Como reconhecer que o desenho da rede necessita
de atividades fantasma ?
Há necessidade de atividades fantasma quando o projeto contém grupos de 2 ou
mais atividades que tem algumas, mas não todas, antecessoras imediatas comuns.
No nosso exemplo, b e c tem uma antecessora comum (a), mas não todas.
Exercício: Construir a rede PERT para o projeto abaixo:
Atividade Antecessoras Imediatas
a –
b –
c –
d a, b
e b, c
2.1 Construção da Rede 41
Método americano
2 1
3
4
5
a
b
c
d
e
f
1
f
2
Método francês
Início
Fim
a
b
c
d
e
Exercício: Construir a rede PERT para o projeto abaixo:
Atividade Antecessoras Imediatas
a –
b –
c –
d a, b
e a, c
f a, b, c
42 PERT/CPM
Método americano
2
1
3
4
5
6
a
b
c
d
e
f
f
1
f
2
f
3
f
4
f
5
Método francês
Início
Fim
a
b
c
d
e
f
2.2 Determinação do Caminho Crítico
Uma vez reduzido o projeto a uma rede de atividades e eventos e estimadas as
durações das atividades, estamos em condições de determinar o tempo mínimo ne-
cessário para a execução do projeto.
Para isto é preciso achar o caminho mais longo da rede. Este caminho é conhecido
como Caminho Crítico e o seu comprimento determina a duração do projeto. Para
achar o caminho crítico precisamos definir algumas variáveis que serão necessárias
à sua determinação:
2.2 Determinação do Caminho Crítico 43
Data de Início do projeto: É a data em que o projeto inicia. Como teremos que
fazer contas com datas, o que é trabalhoso e enfadonho, vamos trabalhar com datas
absolutas. Desta forma, daqui para a frente, esta data será sempre igual a 0.
Data mais cedo de início de uma atividade: É a data mais cedo possível em
que uma atividade pode começar. Em inglês é usada a sigla E.S, que é a abreviação
de Early Start.
Data mais cedo de fim de uma atividade: É a data mais cedo em que uma
atividade pode acabar. Em inglês é usada a sigla E.F, que é a abreviação de Early
Finish.
Vamos voltar ao nosso exemplo:
6
1
2
3
4
5
e
a
a’
f
c
b
d
3
14
0
3
7
4
10
Queremos encontrar a data mínima para o projeto estar pronto. Para isto é neces-
sário achar o maior caminho da rede.
Vamos usar o chamado quadro PERT para determinar este caminho.
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14
1 – 4 3
2 – 4 0
2 – 3 7
4 – 5 3
3 – 5 4
5 – 6 10
Para as atividades sem antecessoras, (1 – 2) e 1 – 4), a data mais cedo de início é
a própria data de início do projeto (0).
A data mais cedo de fim da atividade (1 – 2) é igual a data do seu início (0) mais a
sua duração, ou seja 14.
Da mesma forma, a atividade (1 – 4) tem data mais cedo de início igual a 0 e data
mais cedo de fim igual a 3, como podemos ver no quadro:
44 PERT/CPM
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3
2 – 4 0
2 – 3 7
4 – 5 3
3 – 5 4
5 – 6 10
A atividade (2 – 4) só pode começar quando a atividade (1 – 2) acabar. Logo sua
data mais cedo de início é 14. A sua data mais cedo de fim é a soma da data mais
cedo de início mais a sua duração, ou seja 14. Esta é uma atividade fantasma com
duração igual a 0.
De maneira análoga, a atividade (2 – 3) também só pode começar quando terminar
(1 – 2). Sua data mais cedo de início é 14 e a de fim é igual a 14 + 7 = 21.
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3
2 – 4 0 14 14
2 – 3 7 14 21
4 – 5 3
3 – 5 4
5 – 6 10
A atividade (4 – 5) tem como antecessoras imediatas as atividades (1 – 4) e (2 – 4),
ou seja ela só pode começar quando estas 2 atividades tiverem acabado. A data
mais cedo que a atividade (1 – 4) pode acabar é 3 mas o mais cedo que a atividade
(2 – 4) pode acabar é 14. Assim sendo, o mais cedo que podemos começar (4 – 5) é
14. Como sua duração é de 3 dias, a sua data mais cedo de fim é 14 + 3 = 17.
A atividade (3 – 5) só pode começar após o fim da atividade (2 – 3). Sua data mais
cedo de início será a data mais cedo de fim de (2 – 3), ou seja 21. Sua data mais
cedo de fim será esta data mais a sua duração (4), ou seja 25.
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3
2 – 4 0 14 14
2 – 3 7 14 21
4 – 5 3 14 17
3 – 5 4 21 25
5 – 6 10
2.2 Determinação do Caminho Crítico 45
Finalmente a atividade (5 – 6) só pode iniciar após o término das atividades (4 – 5)
e (3 – 5). Como as datas mais cedo destas atividades são 17 e 25, respectivamente,
a atividade (5 – 6) só pode começar em 25. Sua data mais cedo de fim será igual a
25 mais a sua duração, ou seja 35, como vemos a seguir.
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3
2 – 4 0 14 14
2 – 3 7 14 21
4 – 5 3 14 17
3 – 5 4 21 25
5 – 6 10 25 35
A menor duração para o projeto é a maior das datas mais cedo. Logo, a duração do
projeto será de 35 dias.
Para preencher as demais colunas do quadro, vamos ver novas definições:
Data mais tarde de início de uma atividade: É a data mais tarde em que uma
atividade pode começar sem comprometer a duração do projeto. Em inglês é usada
a sigla L.S, que é a abreviação de Latest Start.
Data mais tarde de fim de uma atividade: É a data mais tarde em que uma
atividade pode acabar sem comprometer a duração do projeto. Em inglês é usada a
sigla L.F, que é a abreviação de Latest Finish.
Começamos agora das atividades terminais, ou seja sem sucessoras para trás. A
única atividade terminal neste projeto é (5 – 6), logo a data mais cedo de fim dela
é a própria duração do projeto, 35.
A sua data mais tarde de início é a diferença entre a data mais tarde de fim e a sua
duração. ou seja 35 −10 = 25.
As atividades (3 – 5) e (4 – 5) tem como sucessora (5 – 6). Como a data mais
tarde que (5 – 6) pode começar é 25, esta será a data mais tarde que aquelas 2
atividades poderão acabar. A data mais tarde de início será a diferença entre 25 e
as respectivas durações.
O quadro, neste instante, estará como:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3
2 – 4 0 14 14
2 – 3 7 14 21
4 – 5 3 14 17 22 25
3 – 5 4 21 25 21 25
5 – 6 10 25 35 25 35
46 PERT/CPM
A Atividade (2 – 3) tem como sucessora a atividade (3 – 5) cuja data mais tarde
de início é 21. Logo esta será a data mais tarde de fim da atividade (2 – 3). A mais
tarde de início será 21− sua duração = 14.
As atividades (2 – 4) e (1 – 4) tem como sucessora a atividade (4 – 5) que tem
data mais tarde de início igual a 22. Logo esta será a data mais tarde de fim das
2 atividades. Para obter a data mais tarde basta subtrair de 22 as respectivas
durações. Temos então:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14
1 – 4 3 0 3 19 22
2 – 4 0 14 14 22 22
2 – 3 7 14 21 14 21
4 – 5 3 14 17 22 25
3 – 5 4 21 25 21 25
5 – 6 10 25 35 25 35
Finalmente a atividade (1 – 2) tem como sucessoras as atividades (2 – 3) e (2 – 4).
A data mais tarde de início de (2 – 3) é 14 e a da (2 – 4) é igual a 22. Assim sendo
a data mais tarde que (1 – 2) pode acabar é 14 para que (2 – 3) possa ser iniciada.
Como antes a data mais tarde de início é obtida subtraindo a sua duração desta
data, ou seja 14 −14 = 0.
Temos então:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14 0 14
1 – 4 3 0 3 19 22
2 – 4 0 14 14 22 22
2 – 3 7 14 21 14 21
4 – 5 3 14 17 22 25
3 – 5 4 21 25 21 25
5 – 6 10 25 35 25 35
Para preencher a última coluna (Folga Total) vamos esclarecer que Folga Total é
quanto uma atividade pode ser atrasada sem atrasar a data de fim do projeto.
Seu cálculo pode ser feito usando-se:
Folga Total = Data mais tarde de fim – Data mais cedo de fim
ou
Data mais tarde de início – Data mais cedo de início.
Em inglês é usada a sigla T.S, que é a abreviação de Total Slack.
Fazendo-se as contas, temos o quadro completo:
2.2 Determinação do Caminho Crítico 47
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 14 0 14 0 14 0
1 – 4 3 0 3 19 22 19
2 – 4 0 14 14 22 22 8
2 – 3 7 14 21 14 21 0
4 – 5 3 14 17 22 25 8
3 – 5 4 21 25 21 25 0
5 – 6 10 25 35 25 35 0
As atividades com folga total igual a zero são as chamadas atividades críticas e
formam o chamado caminho crítico.
Qualquer atraso em uma dessas atividades implicará em atraso na duração do
projeto.
No nosso exemplo o caminho crítico é (1 – 2), (2 – 3), (3 – 5) e (5 – 6). Qual-
quer atraso em uma destas atividades atrasará o projeto.
Podemos formalizar agora os cálculos que fizemos na construção do quadro:
d(a) ⇒ duração da atividade a.
Atividades iniciais ⇒ Atividades sem antecessoras.
Atividades terminais ⇒ Atividades sem sucessoras.
Data mais cedo de início das atividades iniciais = Data de início do projeto.
Data mais cedo de início da atividade a = Maior das datas mais cedo de fim de
todas as antecessoras imediatas de a.
Data mais cedo de fim da atividade a = Data mais cedo de início de a +d(a).
Duração do projeto = Maior data mais cedo de fim de todas as atividades.
Data mais tarde de fim das atividades terminais = Duração do projeto.
Data mais tarde de fim da atividade a = Menor das datas mais tarde de início de
todas as sucessoras imediatas da atividade a.
Data mais tarde de início da atividade a = Data mais tarde de fim de a −d(a).
Folga total da atividade a = Data mais tarde de início de a − Data mais cedo de
início de a ou Data mais tarde de fim de a − Data mais cedo de fim de a.
48 PERT/CPM
Exemplo: Construir o quadro PERT para um projeto constituído das seguintes ati-
vidades:
Atividade Duração (dias)
1 – 2 3
2 – 3 4
2 – 5 3
2 – 4 2
4 – 5 4
3 – 5 3
5 – 6 2
3 – 6 6
Calculando-se o quadro chegamos a:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
2 – 3 4 3 7 3 7 0
2 – 5 3 3 6 8 11 5
2 – 4 2 3 5 5 7 2
4 – 5 4 5 9 7 11 2
3 – 5 3 7 10 8 11 1
5 – 6 2 10 12 11 13 1
3 – 6 6 7 13 7 13 0
Caminho Crítico: (1 – 2), (2 – 3) e (3 – 6).
Exemplo: Construir o quadro PERT para o projeto anterior considerando que o
prazo contratual para o fim do projeto é a data 10.
Temos então:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 3 0 3 –3 0 –3
2 – 3 4 3 7 0 4 –3
2 – 5 3 3 6 5 8 2
2 – 4 2 3 5 2 4 –1
4 – 5 4 5 9 4 8 –1
3 – 5 3 7 10 5 8 –2
5 – 6 2 10 12 8 10 –2
3 – 6 6 7 13 4 10 –3
Como temos o aparecimento de atividades com folga negativa, podemos garantir
que o projeto não conseguirá ser feito no prazo estipulado (10 dias). O prazo terá
que ser renegociado.
2.2 Determinação do Caminho Crítico 49
Exemplo: Construir o quadro PERT para um projeto com as seguintes atividades:
Atividade Duração (dias)
1 – 2 2
1 – 3 3
2 – 5 5
3 – 5 4
3 – 4 2
3 – 6 3
4 – 6 1
4 – 7 3
5 – 8 3
6 – 7 2
7 – 8 2
8 – 9 5
Calculando-se o quadro PERT chegamos a:
Data mais cedo Data mais tarde Folga
Atividade Duração Inicio Fim Inicio Fim Total
1 – 2 2 0 2 0 2 0
1 – 3 3 0 3 0 3 0
2 – 5 5 2 7 2 7 0
3 – 5 4 3 7 3 7 0
3 – 4 2 3 5 3 5 0
3 – 6 3 3 6 3 6 0
4 – 6 1 5 6 5 6 0
4 – 7 3 5 8 5 8 0
5 – 8 3 7 10 7 10 0
6 – 7 2 6 8 6 8 0
7 – 8 2 8 10 8 10 0
8 – 9 5 10 15 10 15 0
Em um projeto, podemos ter mais de 1 caminho crítico e podemos ter até todos,
como no exemplo acima.
O que vimos até agora é o que se denomina “Determinação do Caminho Crítico”.
Na prática é o que se usa em mais de 90% dos projetos que são controlados por
este tipo de ferramenta. Veremos a seguir o que vem a ser o PERT e o CPM em
si mas enfatizando que sua aplicação, principalmente o PERT, é reduzida.
50 PERT/CPM
2.3 O Modelo PERT
Como vimos anteriormente, o PERT foi desenvolvido para controlar o projeto Po-
laris que era um projeto possuindo inúmeras atividades de duração desconhecida,
simplesmente porque nunca tinham sido feitas. Em resumo havia um alto nível
de incerteza quanto a duração de muitas atividades. Para controlar este fato, os
analistas que desenvolveram o PERT, criaram um modelo probabilístico no qual a
duração de cada atividade é uma variável aleatória de modo que, para cada ativi-
dade, são feitas 3 estimativas de duração:
D
o
⇒ Duração Otimista, ou seja, a duração mais provável se a execução da
atividade não tiver nenhum problema. Em termos estatísticos, é uma estimativa
para o limite inferior da distribuição de probabilidade da duração da atividade.
D
p
⇒ Duração Pessimista, ou seja, a duração mais provável se a execução da
atividade tiver problemas. Em termos estatísticos, é uma estimativa para o limite
superior da distribuição probabilística.
D
m
⇒ Duração Mais Provável, ou seja, a duração provável se a execução da ati-
vidade for realizada em condições normais. É uma estimativa para a moda (ponto
mais alto) da distribuição de probabilidade.
Estudos realizados indicaram que a Distribuição Beta era a que melhor se adap-
tava às durações reais da maioria das atividades de um grande número de projetos
examinados.
Podemos resumir então a premissa básica do modelo PERT:
A duração de uma atividade é uma variável aleatória que segue a chamada Distri-
buição Beta que tem os seguintes parâmetros:
Média = Duração esperada(D
e
) =
D
o
+ 4D
m
+D
p
6
Variância = σ
2
=

D
p
−D
o
6

2
Para exemplificar, vamos usar o modelo PERT no projeto com as seguintes ati-
vidades:
Duração (dias)
Atividade D
o
D
m
D
p
1 – 2 2 2,5 6
2 – 3 1 4 7
2 – 5 2 3 4
2 – 4 1 2 3
4 – 5 1 4 7
3 – 5 2 3 4
5 – 6 1 2 3
3 – 6 2 5 14
2.3 O Modelo PERT 51
Podemos calcular, para cada atividade, a duração esperada e a variância:
Duração (dias)
Atividade D
o
D
m
D
p
D
e
σ
2
1 – 2 2 2,5 6 3 0,444
2 – 3 1 4 7 4 1
2 – 5 2 3 4 3 0,111
2 – 4 1 2 3 2 0,111
4 – 5 1 4 7 4 1
3 – 5 2 3 4 3 0,111
5 – 6 1 2 3 2 0,111
3 – 6 2 5 14 6 4
Com a Duração Esperada (D
e
) podemos calcular o quadro PERT:
Data mais cedo Data mais tarde Folga
Atividade D
e
Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
2 – 3 4 3 7 3 7 0
2 – 5 3 3 6 8 11 5
2 – 4 2 3 5 5 7 2
4 – 5 4 5 9 7 11 2
3 – 5 3 7 10 8 11 1
5 – 6 2 10 12 11 13 1
3 – 6 6 7 13 7 13 0
Caminho Crítico ⇒(1 – 2), (2 – 3) e (3 – 6)
Duração esperada do projeto (D
ep
) = 13 dias
σ
2
p
= variância do projeto
= Σσ
2
das atividades do caminho crítico
= 0, 444 + 1 + 4 = 5, 444
Considerando que a duração de uma atividade é independente da duração de cada
uma das outras atividades do projeto, ou seja, a variável aleatória “duração da ati-
vidade” é uma variável aleatória independente, temos que a duração esperada do
projeto (D
ep
) é a soma das durações das atividades do caminho crítico, ou seja é a
soma de variáveis aleatórias independentes.
Pelo teorema do Limite Central, uma variável aleatória que é a soma de variáveis
aleatórias, segue a Distribuição Normal.
Desta forma, no modelo PERT, a duração do projeto é uma variável aleatória que
segue a Distribuição Normal com:
Média = µ = D
ep
Desvio Padrão = σ
p
=

σ
2
p
52 PERT/CPM
No nosso exemplo, a duração do projeto é uma variável aleatória, normalmente dis-
tribuída, com:
µ = 13 e σ =

5, 444 = 2, 3333
Podemos então responder ao seguinte tipo de perguntas:
a) Qual a probabilidade do projeto demorar mais de 14 dias ?
Trabalhando com a fórmula da normal padronizada, temos:
Z =
X −µ
σ
=
14 −13
2, 333
= 0, 43
P(Duração > 14) = 1 −P(Duração ≤ 14)
P(Duração ≤ 14) = P(Z ≤ 0, 43) = 0, 6664 (tabela normal pág. 240)
P(Duração > 14) = 1 −0, 6664 = 0, 3336 = 33, 36%
b) Qual deve ser a duração do projeto para que o risco de não cumprimento do
prazo seja de 5% ?
Queremos X de modo que P(Duração > X) = 5% = 0, 05
P(Duração ≤ X) = 1 −0, 05 = 0, 95
Na tabela normal (pág. 240) procuramos o valor de Z que corresponde a 0, 95 ⇒ 1, 64.
1, 64 =
X −13
2, 333
X = 16, 97 dias.
Exemplo: Um pequeno projeto é constituído de 7 atividades cujas estimativas de
duração estão dadas abaixo:
Duração (dias)
Atividade D
o
D
m
D
p
1 – 2 1 1 7
1 – 3 1 4 7
1 – 4 2 2 8
2 – 5 1 1 1
3 – 5 2 5 14
4 – 6 2 5 8
5 – 6 3 6 15
2.3 O Modelo PERT 53
Calculando a duração esperada e a variância:
Duração (semanas)
Atividade D
o
D
m
D
p
D
e
σ
2
1 – 2 1 1 7 2 1
1 – 3 1 4 7 4 1
1 – 4 2 2 8 3 1
2 – 5 1 1 1 1 0
3 – 5 2 5 14 6 4
4 – 6 2 5 8 5 1
5 – 6 3 6 15 7 4
Calculando o quadro PERT, temos:
Data mais cedo Data mais tarde Folga
Atividade D
e
Inicio Fim Inicio Fim Total
1 – 2 2 0 2 7 9 7
1 – 3 4 0 4 0 4 0
1 – 4 3 0 3 9 12 9
2 – 5 1 2 3 9 10 7
3 – 5 6 4 10 4 10 0
4 – 6 5 3 8 12 17 9
5 – 6 7 10 17 10 17 0
Caminho Crítico: (1 – 3), (3 – 5) e (5 – 6)
D
ep
= 17 semanas
σ
2
p
= 1 + 4 + 4 = 9 σ =

9 = 3
a) Qual a probabilidade de que o projeto fique pronto em 14 ou menos semanas ?
Z =
14 −17
3
= −1
P(Duração ≤ 14) = P(Z ≤ −1) = 0, 1586 = 15, 86%
b) Se a data contratada para o fim do projeto é de 18 semanas, qual a probabili-
dade do projeto ultrapassar este prazo ?
P(Duração > 18) = 1 −P(Duração ≤ 18)
Z =
18 −17
3
= 0, 333
P(Duração ≤ 18) = P(Z ≤ 0, 333) = 0, 6293
P(Duração > 18) = 1 −0, 6293 = 0, 3707 = 37, 07%
c) Qual é data para o fim do projeto que tem 90% de probabilidade de ser cum-
prida ?
P(Duração ≤ X) = 0, 90 ⇒Z para 0, 90 ⇒1, 29
1, 29 =
X −17
3
X = 20, 87 semanas
54 PERT/CPM
No caso em que se tem mais de 1 caminho crítico, a duração esperada do projeto
(Dep) é única, pois os comprimentos de todos os caminhos críticos são iguais. No
caso da variância do projeto não é tão simples pois, a não ser por coincidência,
cada caminho crítico terá um somatório de variâncias diferente.
Qual deve ser usada para a variância do projeto ? A maior delas.
2.3.1 Problemas do modelo PERT
O modelo PERT é muito pouco utilizado na prática e este fato deve-se aos seguintes
fatores:
1) Estimar, com precisão, durações para atividades de um projeto não é, via de
regra, tarefa das mais simples. Estimar 3 durações para cada atividade é, obvi-
amente, uma tarefa muito mais difícil.
2) O postulado básico no qual o modelo PERT está baseado, ou seja de que as ati-
vidades de um projeto são independentes entre si, é difícil de ser justificado. O
mais comum em um projeto é a execução de uma atividade acabar influenciando
a execução de outras.
3) O outro postulado do modelo PERT de que as durações das variáveis seguem
uma distribuição beta tem sido contestado, com inúmeros exemplos já publica-
dos.
4) Pela própria natureza do modelo PERT, um caminho crítico pode deixar de ser
crítico se, por exemplo, as atividades de um outro caminho começarem, por al-
gum problema, a serem executadas na duração pessimista. Como os resultados,
por exemplo a duração esperada do projeto, foram calculados em cima do cami-
nho crítico “original”, os resultados teriam que ser todos recalculados.
2.4 O Modelo CPM 55
2.4 O Modelo CPM
Como visto anteriormente, o enfoque principal do CPM é controlar os custos do
projeto. Está baseado na idéia de que se colocarmos mais recursos na execução
de uma atividade, conseguiremos fazê-la mais rapidamente, embora aumentando
o seu custo.
É usado em projetos onde a duração das atividades é conhecida com bastante pre-
cisão, como projetos de construção civil, por exemplo.
No CPM, para cada atividade, são feitas 2 estimativas de duração que estão asso-
ciadas a 2 custos:
• Duração Normal (D
n
), que tem associado o chamado Custo Normal (C
n
).
• Duração Acelerada (D
a
), que tem associado o chamado Custo Acelerado
(C
a
).
A Duração Acelerada é a menor duração em que é possível se fazer a atividade.
Devemos notar que, a partir de certo ponto, não adianta colocar mais recursos na
execução de uma atividade que não se conseguirá diminuir sua duração.
2.4.1 Relação entre Durações/Custos Normal e Acelerado
O postulado básico do modelo CPM é que a relação entre duração/custo normal e
duração/custo acelerado é linear.
Seja, por exemplo, uma atividade cuja duração normal é de 6 dias com custo nor-
mal de $4.000. Vamos supor que sua duração acelerada seja de 2 dias e seu custo
acelerado seja de $6.000.
A representação gráfica desta atividade seria:
k
(Dias)
2 6
4.000
6.000
Custo
$
Duração
Coeficiente Angular = tank =
C
a
−C
n
D
n
−D
a
=
6000 −4000
6 −2
= 500
A tangente do ângulo k é chamada de Custo Incremental, ou seja, o que aumenta
(diminue) no custo da execução da atividade se ela é acelerada (desacelerada) de 1
unidade de tempo (1 dia no nosso exemplo).
56 PERT/CPM
2.4.2 Compressão da Rede
Vamos ver o uso do modelo CPM aplicado a um projeto cujos dados estão a seguir:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 6 3 4.000 5.000
1 – 3 6 2 4.000 6.000
2 – 4 7 5 4.000 6.000
3 – 4 5 2 4.000 6.000
2 – 5 5 3 3.000 6.000
4 – 5 9 6 5.000 10.000
4 – 6 6 4 3.000 6.000
5 – 7 4 1 2.000 5.000
6 – 7 2 1 2.000 4.000
Podemos calcular para cada atividade o seu Custo Incremental:
Custo Incremental
Atividade (C
a
−C
n
)/(D
n
−D
a
)
1 – 2 333
1 – 3 500
2 – 4 1.000
3 – 4 667
2 – 5 1.500
4 – 5 1.667
4 – 6 1.500
5 – 7 1.000
6 – 7 2.000
2.4 O Modelo CPM 57
Usando a duração/custo normal, construímos o quadro PERT:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 6 0 6 0 6 0
1 – 3 6 0 6 2 8 2
2 – 4 7 6 13 6 13 0
3 – 4 5 6 11 8 13 2
2 – 5 5 6 11 17 22 11
4 – 5 9 13 22 13 22 0
4 – 6 6 13 19 18 24 5
5 – 7 4 22 26 22 26 0
6 – 7 2 19 21 24 26 5
Duração = 26 semanas
Caminho Crítico: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
Custo = Σ do custo normal de todas as atividades do projeto = $31.000
O objetivo é diminuir a duração do projeto minimizando o aumento no custo.
Para isto será usada uma técnica conhecida como Compressão da Rede.
No processo precisaremos das seguintes definições:
∆t = número de unidades de tempo que a atividade ainda pode ser reduzida.
Folga Mínima = É a menor folga diferente de zero que aparece no quadro PERT.
Como a duração do projeto é o comprimento do caminho crítico, para se reduzir a
sua duração temos que diminuir o caminho crítico, ou seja diminuir a duração de
uma das atividades que o compõe.
Vamos examinar as opções que temos para reduzir o caminho crítico:
Atividade Custo Incremental ∆t
1 – 2 333 3
2 – 4 1.000
4 – 5 1.667
5 – 7 1.000
Folga Mínima = 2
Como podemos observar, a atividade (1 – 2) é a mais barata para ser acelerada.
Surge então a pergunta: Quanto podemos acelerar (1 – 2) ? O máximo que pode
ser acelerado é o mínimo entre o ∆t da atividade e a Folga Mínima.
Logo o máximo que podemos acelerar (1 – 2) é:
Min(∆t, Folga Mínima) = Min(3, 2) = 2 semanas.
58 PERT/CPM
Porque não podemos acelerar mais que a folga mínima? Porque estaría-
mos correndo o risco de estar acelerando uma atividade e aumentando o custo
do projeto, sem garantir que estaríamos diminuindo sua duração.
No exemplo, se acelerássemos a atividade (1 – 2) de 3 semanas poderíamos es-
tar acelerando 1 semana (a 3
a
) sem garantir que a redução seria maior que 2
semanas. Como a Folga Mínima é igual a 2 é provável que exista um caminho y
na rede com folga de 2, ou seja, comprimento igual a 24 . Logo se (1 – 2) fosse re-
duzida de 3 semanas (ficando o caminho crítico original com comprimento igual
a 23 semanas), o caminho y passaria a ser o crítico pois seu comprimento seria
igual a 24 semanas.
Calculando o quadro Pert com a nova duração de (1 – 2) temos:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 4 0 4 0 4 0
1 – 3 6 0 6 0 6 0
2 – 4 7 4 11 4 11 0
3 – 4 5 6 11 6 11 0
2 – 5 5 4 9 15 20 11
4 – 5 9 11 20 11 20 0
4 – 6 6 11 17 16 22 5
5 – 7 4 20 24 20 24 0
6 – 7 2 17 19 22 24 5
Duração: 24 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
Custo = 31.000 + 2 ×333 = $31.666
Agora temos 2 caminhos críticos. Para diminuir a duração do projeto temos que
reduzir o comprimento dos 2 caminhos críticos. As opções são aquelas que reduzem
simultaneamente uma atividade do 1
o
caminho e uma do 2
o
.
Atividade Custo Incremental ∆t
(1 – 2) (1 – 3) 333 + 500 = 833 1 e 4
(1 – 2) (3 – 4) 333 + 667 = 1.000
(2 – 4) (1 – 3) 1.000 + 500 = 1.500
(2 – 4) (3 – 4) 1.000 + 667 = 1.667
(4 – 5) 1.667
(5 – 7) 1.000
Folga Mínima = 5
A opção mais barata é reduzir (1 – 2) e (1 – 3).
2.4 O Modelo CPM 59
Quanto podemos reduzir ?
Min [∆t de (1–2), ∆t de (1–3), Folga Mínima]= Min(1,4,5) = 1 semana.
Construindo novo quadro, temos:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
1 – 3 5 0 5 0 5 0
2 – 4 7 3 10 3 10 0
3 – 4 5 5 10 5 10 0
2 – 5 5 3 8 14 19 11
4 – 5 9 10 19 10 19 0
4 – 6 6 10 16 15 21 5
5 – 7 4 19 23 19 23 0
6 – 7 2 16 18 21 23 5
Duração: 23 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
Custo = 31.666 + 1 ×833 = $32.500
Apesar dos caminhos críticos serem os mesmos do quadro anterior, as opções são
diferentes porque a atividade (1 – 2) já se encontra na sua duração acelerada, ou
seja, não pode ser mais comprimida. Assim as opções passam a ser:
Atividade Custo Incremental ∆t
(2 – 4) (1 – 3) 1.000 + 500 = 1.500
(2 – 4) (3 – 4) 1.000 + 667 = 1.667
(4 – 5) 1.667
(5 – 7) 1.000 3
Folga Mínima = 5
60 PERT/CPM
A opção mais barata é reduzir a atividade (5 – 7) de Min(3, 5) = 3 semanas. O novo
quadro passa a ser:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
1 – 3 5 0 5 0 5 0
2 – 4 7 3 10 3 10 0
3 – 4 5 5 10 5 10 0
2 – 5 5 3 8 14 19 11
4 – 5 9 10 19 10 19 0
4 – 6 6 10 16 12 18 2
5 – 7 1 19 20 19 20 0
6 – 7 2 16 18 18 20 2
Duração: 20 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
Custo = 32.500 + 3 ×1.000 = $35.500
A atividade (5 – 7) também chegou na sua duração acelerada de maneira que
as opções para reduzir a duração do projeto passam a ser:
Atividade Custo Incremental ∆t
(2 – 4) (1 – 3) 1.000 + 500 = 1.500 2 e 3
(2 – 4) (3 – 4) 1.000 + 667 = 1.667
(4 – 5) 1.667
Folga Mínima = 2
A melhor opção é reduzir (2 – 4) e (1 – 3) de Min(2,3,2) = 2 semanas.
O novo quadro passa a ser:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
1 – 3 3 0 3 0 3 0
2 – 4 5 3 8 3 8 0
3 – 4 5 3 8 3 8 0
2 – 5 5 3 8 12 17 9
4 – 5 9 8 17 8 17 0
4 – 6 6 8 14 10 16 2
5 – 7 1 17 18 17 18 0
6 – 7 2 14 16 16 18 2
2.4 O Modelo CPM 61
Duração: 18 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
Custo = 35.500 + 2 ×1.500 = $38.500
Como as atividades (1 – 2), (2 – 4) e (5 – 7) já estão na duração acelerada, te-
mos uma única opção para reduzir os 2 caminhos:
Atividade Custo Incremental ∆t
(4 – 5) 1.667 3
Folga Mínima = 2
Reduzimos então (4 – 5) de Min(3,2) = 2 semanas, obtendo:
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
1 – 3 3 0 3 0 3 0
2 – 4 5 3 8 3 8 0
3 – 4 5 3 8 3 8 0
2 – 5 5 3 8 10 15 7
4 – 5 7 8 15 8 15 0
4 – 6 6 8 14 8 14 0
5 – 7 1 15 16 15 16 0
6 – 7 2 14 16 14 16 0
Duração: 16 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 2) (2 – 4) (4 – 6) (6 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 6) (6 – 7)
Custo = 38.500 + 2 ×1.667 = $41.833
Passamos a ter agora 4 caminhos críticos. Para se reduzir a duração do projeto
temos que reduzir 1 atividade de cada um dos caminhos.
Como as atividades (1 – 2), (2 – 4) e (5 – 7) já estão na duração acelerada nossas
opções são:
Atividade Custo Incremental ∆t
(4 – 5) (4 – 6) 1.667 + 1.500 = 3.167 1 e 2
(4 – 5) (6 – 7) 1.667 + 2.000 = 3.667
Folga Mínima = 7
A melhor opção é reduzir (4 – 5) e (4 – 6) de Min (1,2,7) = 1 semana.
O novo quadro passa a ser:
62 PERT/CPM
Data mais cedo Data mais tarde Folga
Atividade Dur Inicio Fim Inicio Fim Total
1 – 2 3 0 3 0 3 0
1 – 3 3 0 3 0 3 0
2 – 4 5 3 8 3 8 0
3 – 4 5 3 8 3 8 0
2 – 5 5 3 8 9 14 6
4 – 5 6 8 14 8 14 0
4 – 6 5 8 13 8 13 0
5 – 7 1 14 15 14 15 0
6 – 7 2 13 15 13 15 0
Duração: 15 semanas
Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7)
(1 – 2) (2 – 4) (4 – 6) (6 – 7)
(1 – 3) (3 – 4) (4 – 5) (5 – 7)
(1 – 3) (3 – 4) (4 – 6) (6 – 7)
Custo = 41.833 + 1 ×3.167 = $45.000
Neste ponto não podemos reduzir mais a duração do projeto pois o 1
o
caminho
já tem todas as suas atividades na duração acelerada, ou seja, é impossível redu-
zir seu comprimento. Não adiantaria reduzir qualquer outro caminho pois este
continuaria a ser o crítico.
2.4.3 Duração ótima para o projeto
Os custos que vimos até agora são os chamados custos diretos, ou seja, os custos
envolvidos diretamente na execução das atividades.
Em um projeto, além destes custos, temos também os chamados custos indiretos
que afetam todas as atividades do projeto.
Vamos supor que no exemplo visto até aqui, os custos indiretos sejam de $2.000 por
semana, existindo ainda uma multa contratual de $2.000 por semana que o projeto
passar de 20 semanas.
Qual a duração ótima para o projeto ?
Para responder a esta pergunta temos que construir o seguinte quadro:
Duração Custos Custo
(semanas) Diretos Indiretos Multa total
26 31.000 52.000 12.000 95.000
24 31.666 48.000 8.000 87.666
23 32.500 46.000 6.000 84.500
20 35.500 40.000 – 75.500
18 38.500 36.000 – 74.500
16 41.833 32.000 – 73.833
15 45.000 30.000 – 75.000
2.4 O Modelo CPM 63
A curva de Custo Total tem, genericamente, a aparência mostrada abaixo, ou seja
ele começa com um determinado valor, vai diminuindo, passa pelo ponto mínimo,
ou seja, de menor custo e volta a crescer.
$
16
73.833
t
(semanas)
Podemos ver então que a duração ótima para o projeto é de 16 semanas.
Embora o quadro só mostre as durações encontradas no processo de compres-
são da rede, temos facilmente disponível todas as demais durações. Assim, por
exemplo, a passagem de 23 semanas para 20 semanas aconteceu porque se re-
duziu a duração da atividade (5 – 7) de 3 semanas. Para se obter o custo de 22
semanas basta reduzir (5 – 7) de apenas 1 semana. Para se ter o valor de 21
semanas, reduz-se (5 – 7) de 2 semanas.
No ponto onde a curva faz a sua inflexão, temos que calcular todas as durações
pois uma duração não explícita pode ser a ótima. No exemplo, antes de afirmar
que 16 semanas é a duração ótima, teríamos que ver o custo de fazer o projeto
em 17 semanas.
2.4.4 Resolvendo por Programação Linear
A compressão da rede, que acabamos de ver, pode ser equacionada e resolvida atra-
vés da formulação de modelos de Programação Linear. Em projetos muito grandes,
o uso da Programação Linear pode acelerar a obtenção das respostas desejadas em-
bora com um provável aumento de custo pois será necessário o uso de um pacote
para resolução de modelos de P.Linear além da equipe ter que contar com especia-
listas nesta técnica.
64 PERT/CPM
Para apresentarmos como usar a P.Linear, vamos supor que temos, para um deter-
minado projeto, os dados abaixo:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 (a) 14 6 1.400 3.200
1 – 3 (b) 12 8 1.000 4.000
2 – 5 (c) 18 14 1.600 3.000
2 – 4 (d) 6 4 800 4.000
3 – 4 (e) 4 2 400 500
4 – 5 (f) 8 6 400 900
5 – 6 (g) 12 8 800 2.500
6.400
Calculando o Custo Incremental para cada uma das atividades, encontramos:
Atividade Custo Incremental
1 – 2 (a) 225
1 – 3 (b) 750
2 – 5 (c) 350
2 – 4 (d) 1600
3 – 4 (e) 50
4 – 5 (f) 250
5 – 6 (g) 425
Aplicando a compressão na rede (deixado como exercício) as durações e custos, en-
contrados nos passos do algorítimo são:
Duração Custo
44 (Normal) $6.400
40 $7.300
36 $8.200
34 $9.000
32 $9.850
30 $10.700
28 $11.900
A menor duração possível para se fazer o projeto é 28 semanas com o custo ótimo
igual a $11.900.
Para facilitar a compreensão do modelo de P.Linear, vamos ver o desenho da rede:
2.4 O Modelo CPM 65
1
2
3
4
5
6
a
b
c
d
e
f
g
T
1
T
2
T
3
T
4
T
5
T
6
As variáveis T
i
são as datas em que ocorrem os eventos 1, 2, ..., 6. A variável T
6

a duração do projeto.
Vamos definir um outro conjunto de variáveis, y
i
, que significa o quanto a atividade
i vai ser acelerada. Assim, por exemplo, Y
d
é quanto a atividade d ou (2 – 4) vai
ser acelerada.
Um conjunto de restrições é aquele que mostra a aceleração máxima que cada ati-
vidade pode sofrer, ou genericamente y
i
≤ ∆t.
Temos então:
y
a
≤ 8 y
b
≤ 4
y
c
≤ 4 y
d
≤ 2
y
e
≤ 2 y
f
≤ 2
y
g
≤ 4
Podemos agora construir as restrições que limitam os valores (datas) que os even-
tos (T
i
) podem assumir.
T
2
, que só depende da atividade a, tem que ser maior ou igual T
1
mais a diferença
entre 14, que é a sua duração normal, menos y
a
, ou seja quanto ela vai ser acele-
rada. Temos então:
T
2
≥ T
1
+ (14 −y
a
)
Como consideramos normalmente T
1
(início do projeto) como igual a zero, a restri-
ção fica como:
T
2
+y
a
≥ 14
T
3
, que só depende da atividade b, tem que ser maior ou igual T
1
mais a diferença
entre 12, que é a sua duração normal, menos y
b
, ou seja quanto ela vai ser acele-
rada. Temos então:
T
3
≥ T
1
+ (12 −y
b
)
Como T
1
é zero, temos:
T
3
+y
b
≥ 12
Já o evento T
4
depende das atividades d e e. Assim temos 2 restrições. Na 1
a
,
relativa a atividade d, temos:
T
4
≥ T
2
+ (6 −y
d
) ou
T
4
−T
2
+y
d
≥ 6
Na 2
a
(atividade e) temos:
T
4
≥ T
3
+ (4 −y
e
) ou
66 PERT/CPM
T
4
−T
3
+y
e
≥ 4
Restrições semelhantes podemos construir para o evento 5:
T
5
≥ T
2
+ (18 −y
c
) ou
T
5
−T
2
+y
c
≥ 18 e,
T
5
≥ T
4
+ (8 −y
f
) ou
T
5
−T
4
+y
f
≥ 8
Finalmente temos a restrição para o evento 6:
T
6
≥ T
5
+ (12 −y
g
) ou
T
6
−T
5
+y
g
≥ 12
Vamos supor que queremos encontrar o melhor custo para fazer o projeto em 34
semanas. Devemos colocar a restrição T
6
= 34.
A função objetivo é uma função de minimização pois queremos minimizar o valor
correspondente as acelerações que as atividades vão sofrer. Logo a função objetivo
será equivalente a
¸
y
i
×(Custo Incremental)
i
.
Podemos escrever o modelo completo:
(Min) Z = 225y
a
+ 750y
b
+ 350y
c
+ 1600y
d
+ 50y
e
+ 250y
f
+ 425y
g
sujeito a
T
2
+y
a
≥ 14
T
3
+y
b
≥ 12
T
4
−T
2
+y
d
≥ 6
T
4
−T
3
+y
e
≥ 4
T
5
−T
2
+y
c
≥ 18
T
5
−T
4
+y
f
≥ 8
T
6
−T
5
+y
g
≥ 12
T
6
= 34
y
a
≤ 8 y
b
≤ 4
y
c
≤ 4 y
d
≤ 2
y
e
≤ 2 y
f
≤ 2
y
g
≤ 4
T
i
, y
i
≥ 0
Usando-se o módulo de P.Linear, do software PO, para resolver o modelo, a seguinte
solução ótima é encontrada:
T

2
= 6 T

3
= 12 T

4
= 14 T

5
= 22 T

6
= 34
y

a
= 8 o que indica que a atividade a ou (1 – 2) foi acelerada de 8 semanas ficando
com a duração igual a 14 −8 = 6 semanas.
y

c
= 2 ou seja a atividade c ou (2 – 5) ficou na duração 18 −2 = 16 semanas.
y

e
= 2 indicando que a atividade e ou (3 – 4) ficou na duração 4 −2 = 2 semanas.
Os valores ótimos dos demais y
i
ficaram igual a zero indicando que as respectivas
atividades ficaram na duração normal.
O valor ótimo da função objetivo foi igual a $2.600, logo o menor custo para se fazer
o projeto em 34 semanas é o somatório do custo de se fazer todas as atividades na
duração normal ($6.400) mais os $2.600, ou seja $9.000.
Este resultado é exatamente igual ao encontrado, para 34 semanas, quando usa-
mos a técnica de compressão da rede.
2.4 O Modelo CPM 67
Um outro tipo de situação encontrada em projetos é quando se tem uma certa quan-
tia e se deseja conhecer qual o tempo mínimo para se fazer o projeto usando aquela
quantia.
Vamos supor, ainda no nosso exemplo, que se tem disponível $9.850 para fazer o
projeto.
Este valor é $3.450 acima dos $6.400 necessários se usamos as durações normais.
Podemos modificar o nosso modelo colocando no lugar da restrição T
6
= 34 a res-
trição
¸
y
i
×(Custo Incremental)
i
= 3450 ou seja,
225y
a
+ 750y
b
+ 350y
c
+ 1600y
d
+ 50y
e
+ 250y
f
+ 425y
g
= 3450
O objetivo passa a ser minimizar T
6
. Nosso modelo fica então como:
(Min) Z = T
6
sujeito a
225y
a
+ 750y
b
+ 350y
c
+ 1600y
d
+ 50y
e
+ 250y
f
+ 425y
g
= 3450
T
2
+y
a
≥ 14
T
3
+y
b
≥ 12
T
4
−T
2
+y
d
≥ 6
T
4
−T
3
+y
e
≥ 4
T
5
−T
2
+y
c
≥ 18
T
5
−T
4
+y
f
≥ 8
T
6
−T
5
+y
g
≥ 12
y
a
≤ 8 y
b
≤ 4
y
c
≤ 4 y
d
≤ 2
y
e
≤ 2 y
f
≤ 2
y
g
≤ 4
T
i
, y
i
≥ 0
Mais uma vez usando-se o software PO para resolver o modelo, encontramos T

6
=
32 semanas, ou seja o mesmo valor encontrado quando resolvemos usando a téc-
nica de compressão da rede.
A solução também fornece os valores ótimos dos y
i
, o que permite, de forma análoga
a mostrada acima, se determinar as durações das atividades para fazer o projeto
em 32 semanas.
68 PERT/CPM
2.5 Exercícios
Para ajudar na resolução dos exercícios a seguir, poderá ser usado o programa PO
que pode ser encontrado na página www.mpsantos.com.br
Na própria página podem ser encontradas as explicações de como “baixar” e insta-
lar o aplicativo. Ele é para o ambiente Windows e roda em qualquer versão a partir
do Windows 95, inclusive.
Nos exercícios, tanto de PERT como de CPM, a saída do programa permite a com-
paração com o que foi feito manualmente na aplicação dos algorítimos.
1) Os dados abaixo referem-se a atividades de um determinado projeto:
Duração (semanas)
Atividade Otimista Mais provável Pessimista
1 – 2 10 15 20
1 – 3 3 5 10
2 – 4 20 25 40
3 – 5 50 60 80
1 – 6 2 3 10
1 – 7 6 10 20
6 – 7 0 0 0
4 – 7 20 30 35
5 – 7 25 30 35
7 – 8 30 40 50
8 – 9 4 8 10
9 – 10 0 0 0
8 – 10 2 3 5
10 – 11 26 35 45
11 – 12 3 5 10
Qual a probabilidade de que o projeto fique pronto em 180 ou menos semanas ?
2) Para um determinado projeto os seguintes dados estão disponíveis:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 3 1 3.000 10.000
1 – 5 2 1 1.000 2.000
1 – 3 5 3 9.000 18.000
2 – 5 3 1 1.000 5.000
3 – 4 6 3 20.000 50.000
4 – 5 2 1 1.000 3.000
5 – 6 2 1 4.000 9.000
6 – 7 8 6 10.000 15.000
2.5 Exercícios 69
Os custos indiretos são de $5.000 por semana.
Existe uma cláusula contratual que estipula que por cada semana que o projeto
passar de 17 semanas, será paga uma multa de $2.000.
Qual a duração ótima para o projeto ?
3) Para um determinado projeto temos os seguintes dados:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 4 3 100 200
1 – 4 7 5 280 520
1 – 3 3 2 50 100
2 – 4 5 3 200 360
3 – 4 2 2 160 160
2 – 5 10 8 230 350
4 – 5 7 5 200 480
3 – 5 2 1 100 200
Os custos indiretos são dados pela equação 134.t se o projeto dura mais de 12
dias (13,14,...) e pela equação 120.t se o projeto dura menos de 13 dias (12,11,...),
onde t é a duração em dias.
Qual a duração ótima para o Projeto ?
4) Para um determinado projeto temos os seguintes dados:
Duração (semanas)
Atividade Otimista Mais provável Pessimista
1 – 2 0 1 8
1 – 4 5 7 27
1 – 6 0 3 6
1 – 7 1 1 1
2 – 3 3 6 15
3 – 4 1 3 5
4 – 5 0 6 6
5 – 6 1 2 15
6 – 7 2 4 6
7 – 8 0 0 0
6 – 8 2 3 4
8 – 9 3 5 13
5 – 9 3 3 3
9 – 10 1 8 9
7 – 11 2 3 10
Qual a probabilidade do projeto ficar pronto em 35 ou menos dias ?
70 PERT/CPM
5) Para um determinado projeto temos os seguintes dados:
Duração (semanas)
Atividade Otimista Mais provável Pessimista
1 – 2 4 8 12
1 – 3 8 10 12
1 – 4 8 14 24
2 – 5 5 8 10
3 – 4 2 5 8
3 – 5 2 4 8
4 – 5 6 10 14
5 – 6 1 3 6
a) Qual a probabilidade de que o projeto dure mais de 26 semanas para ficar
pronto ?
b) Ao longo do caminho, não crítico, (1 – 4) (4 – 5) (5 – 6), qual a probabilidade
de que ele dure mais de 26 semanas ?
c) Qual a probabilidade de que o caminho (1 – 2) (2 – 5) (5 – 6) dure mais de
26 semanas ?
6) Para um determinado projeto temos os seguintes dados:
Duração (semanas)
Atividade Otimista Mais provável Pessimista
1 – 2 2 2 2
1 – 3 1 3 7
2 – 4 3 7 7
2 – 5 4 7 8
4 – 5 0 0 0
3 – 6 2 6 9
3 – 7 5 9 11
5 – 8 3 6 8
6 – 9 2 6 9
8 – 9 0 0 0
9 – 10 1 3 4
7 – 11 4 8 11
10 – 11 0 0 0
11 – 12 2 5 7
5 – 13 3 5 8
a) Qual a probabilidade de que o projeto termine em 26 ou menos semanas ?
b) Idem para 23 ou menos semanas ?
c) Qual deverá ser a duração estipulada para que se tenha 90% de certeza de
que a data será cumprida ?
2.5 Exercícios 71
7) Uma firma eletrônica assinou um contrato para instalar um equipamento de
controle em um aeroporto. A instalação completa pode ser dividida em 14 ativi-
dades distintas. Os dados referentes à cada atividade estão mostrados a seguir:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 3 2 320 360
1 – 3 6 4 575 700
1 – 4 5 4 500 550
2 – 4 7 5 750 850
2 – 6 4 3 420 490
3 – 5 5 4 475 535
3 – 6 4 4 425 425
4 – 6 2 2 180 180
2 – 5 8 5 850 1060
5 – 7 6 4 650 750
3 – 8 7 5 675 735
6 – 8 6 4 650 750
8 – 9 5 4 525 575
7 – 10 3 2 280 335
O contrato especifica que a instalação deve estar pronta em 18 dias. Há uma
multa diária de $100 por cada dia que o projeto exceder de 18 dias.
Em que prazo deve a firma acabar a instalação de maneira que seu custo seja
mínimo ?
8) Qual o maior caminho entre os nós 1 e 10 na rede abaixo:
1
2
3
4
5
6
7
8
9
10
8
2
5
2
3
9
4
7
5
3
1
2
2
7
1
3
1
1
72 PERT/CPM
9) Qual o maior caminho entre os nós 1 e 7 na rede abaixo:
2
1
3
4
5
6
7
4
6
5
7
1
2
5
8
6
5
4
1
10) Para um determinado projeto temos os seguintes dados:
Duração (semanas) Custo ($)
Atividade Normal Acelerada Normal Acelerado
1 – 2 7 5 100 200
1 – 4 4 3 280 520
1 – 3 5 3 50 100
2 – 4 3 2 200 360
3 – 4 10 8 160 360
2 – 5 2 2 230 230
4 – 5 2 1 200 480
3 – 5 7 5 100 200
Qual o menor custo para se fazer o projeto em 13 semanas ?
11) Para o projeto do exercício 10, formule o modelo de P.Linear cuja solução dê o
custo e as durações das atividades para o projeto ser feito em 13 semanas.
12) Para o projeto do exercício 10, formule um modelo de P.Linear supondo que se
deseja fazer o projeto na menor duração possível tendo disponível $1.570.
2.5 Exercícios 73
2.5.1 Respostas dos exercícios
1) Duração esperada do projeto = 185,5 semanas
P(Dur ≤ 180) = 22%
2) 17 semanas
3) 12 dias
4) Duração esperada do projeto = 38 dias
P(Dur ≤ 35) = 23, 7%
5) Duração esperada do projeto = 28,16 semanas
a) 86,3%
b) 73%
c) 0%
6) Duração esperada do projeto = 24,66 semanas
a) 74,61%
b) 20,4%
c) 27,3 semanas
7) Z

= 18 dias
8) (1 – 2) (2 – 5) (5 – 6) (6 – 9) (9 – 10)
9) (1 – 3) (3 – 4) (4 – 6) (6 – 7)
10) Z

= $1.570
11) (Min) Z = 50y
a
+ 240y
b
+ 25y
c
+ 160y
d
+ 100y
e
+ 280y
g
+ 50y
h
sujeito a
T
2
+y
a
≥ 7
T
3
+y
c
≥ 5
T
4
−T
2
+y
d
≥ 3
T
4
−T
3
+y
e
≥ 10
T
5
−T
2
≥ 2
T
5
−T
4
+y
g
≥ 2
T
5
−T
3
+y
h
≥ 7
T
5
= 13
y
a
≤ 2 y
b
≤ 1
y
c
≤ 2 y
d
≤ 1
y
e
≤ 2 y
g
≤ 1
y
h
≤ 2
T
i
, y
i
≥ 0
74 PERT/CPM
12) (Min) Z = T
5
sujeito a
50y
a
+ 240y
b
+ 25y
c
+ 160y
d
+ 100y
e
+ 280y
g
+ 50y
h
= 250

T
2
+y
a
≥ 7
T
3
+y
c
≥ 5
T
4
−T
2
+y
d
≥ 3
T
4
−T
3
+y
e
≥ 10
T
5
−T
2
≥ 2
T
5
−T
4
+y
g
≥ 2
T
5
−T
3
+y
h
≥ 7
y
a
≤ 2 y
b
≤ 1
y
c
≤ 2 y
d
≤ 1
y
e
≤ 2 y
g
≤ 1
y
h
≤ 2
T
i
, y
i
≥ 0
(*) $1570 - Custo na duração normal ($1320) = $250
Capítulo 3
Teoria das Filas
Esperar em uma fila é uma das ocorrências mais comuns no nosso dia a dia. Nós
esperamos na fila para fazer matrícula, para pagar em um supermercado, para pa-
gar uma conta no banco, para comer um hamburguer, para colocar gasolina, etc...
Opioneiro no estudo das filas de espera foi A.K.Erlang, umengenheiro dinamarquês,
que publicou, na década 1910-1920, vários trabalhos sobre o assunto quando da im-
plantação do serviço telefônico em Copenhague.
Filas podem existir na forma de pessoas ou objetos esperando por algum tipo de
serviço ou podem existir em um sentido abstrato, ou seja não tão visível, como por
exemplo uma “fila” de navios esperando para atracar em um porto.
3.1 Porque as filas são “estudadas”
As filas são estudadas porque em toda fila, embora nem sempre se perceba, existe
embutido um problema econômico. E este problema econômico surge porque em
qualquer fila (mesmo a da padaria da esquina!) existem 2 custos envolvidos: O
Custo da Fila e o Custo do Serviço.
Para que possamos entender o que vem a ser estes 2 custos, vamos examinar um
exemplo clássico de fila: a atracação de navios em um porto.
Em qualquer porto, o do Rio de Janeiro por exemplo, existem os locais onde os na-
vios podem atracar. Estes locais são chamados de “berços”.
Assim o número de berços dá o número máximo de navios que podem estar atraca-
dos em um porto. Por sua vez, a legislação internacional que regulamenta o tráfego
marítimo determina que se ao chegar a um porto (obviamente na data certa) não
houver berço para atracar, a administração do porto tem que indenizar a compa-
nhia, dona do navio, pelo tempo que ele ficar ao largo esperando berço livre para
atracar.
Em resumo quando, por qualquer motivo, todos os berços de um porto estão ocupa-
dos, os navios que chegam formam uma fila (lógica) aguardando a sua vez.
Podemos agora definir os custos da fila e do serviço envolvidos no caso de um porto.
O Custo do Serviço é o custo de construir e manter em funcionamento os ber-
ços de atracação. Quanto mais berços oferecidos, ou seja, quanto maior o nível de
serviço oferecido, maior este custo.
76 Teoria das Filas
O Custo da Fila é o custo que a administração do porto tem pelo pagamento das
indenizações aos navios que esperam na fila.
Este custo é inversamente proporcional ao custo do serviço (número de berços). Se
temos poucos berços o custo do serviço será pequeno mas como a fila será grande,
o custo da fila será grande. Já se tivermos muitos berços, o custo do serviço será
grande mas emcompensação, como a fila será pequena, o custo da fila será pequeno.
Genericamente podemos definir:
Custo do Serviço: É o custo de construir e manter em funcionamento as estações
que prestam determinado serviço.
Custo da Fila: É o custo que se incorre devido ao fato de usuários de um sistema
de fila terem que esperar na fila propriamente dita.
Custo Total: É a soma do Custo da Fila mais o Custo do Serviço.
A figura a seguir é uma representação destes custos:
Nível de Serviço
$
Custo da Fila
Custo do Serviço
Custo Total
(custo do Serviço + custo da Fila)
Nível ótimo
O objetivo em qualquer sistema de filas é achar o ponto ótimo que minimiza a fun-
ção do custo total, ou seja, achar o nível de serviço que minimiza o custo total.
Em quase todos os sistemas de filas é relativamente fácil, embora possa ser traba-
lhoso, achar o custo do serviço. Achar o custo da fila é bem mais complexo. Qual
o custo da fila, por exemplo, em uma agência bancária ? Temos pessoas na fila e
o custo da fila é o equivalente monetário do tempo que as pessoas ficam na fila.
A quantificação disto não é simples até porque na fila de uma agência bancária,
podemos ter pessoas com “valor-hora” bastante diferentes.
3.2 Componentes básicos de um processo de fila 77
3.2 Componentes básicos de um processo de fila
Um sistema de fila pode ser representado como:
Mundo Externo
População
Chegadas
Processo de
Chegada
Fila(s)
Disciplina
da Fila
Serviço
Mecanismo
de Serviço
Mundo Externo
A fila propriamente dita é apenas um dos componentes de um sistema de fila.
3.2.1 A População
É o conjunto de elementos pertencentes ao mundo externo, que, potencialmente,
podem entrar no sistema de fila. Assim no sistema de fila da agência bancária da
UERJ, por exemplo, são todas as pessoas que podem eventualmente usar a agên-
cia: funcionários, professores, alunos, pessoas da vizinhança, etc...
Estatisticamente, a população, em um sistema de filas, pode ser classificada como
infinita ou finita. Ela é considerada ser infinita quando o número de elementos é
tal que a presença de um ou mais elementos na fila não influi no comportamento do
sistema como um todo. Quando a presença no sistema de elementos da população
potencial influi no comportamento do sistema, a fila é dita ser finita.
Um exemplo de fila finita é o caso da fila para conserto de máquinas (poucas) exis-
tentes em uma indústria.
3.2.2 O Processo de Chegada
O processo de chegada descreve como os elementos da população chegam para o
sistema de filas. Na grande maioria dos sistemas de filas, as chegadas são aleató-
rias, ou seja, não ocorrem de maneira ordenada.
Assim para descrever um processo de chegada, precisamos definí-lo através de uma
distribuição probabilística.
Como exemplo, vamos supor que queremos definir a distribuição probabilística que
rege o processo de chegada em uma determinada agência bancária. O passo ini-
cial é fazer uma amostragem das chegadas dos clientes na agência em questão.
Devemos lembrar que, inicialmente, deve ser definido o tamanho da amostra que
garanta, estatisticamente, a confiabilidade dos resultados.
Vamos supor que no nosso exemplo a amostra é coletar, em um único dia, as chega-
das entre 11:00 e 16:00 horas, ou seja 5 horas de amostragem (300 minutos).
Vamos supor que os resultados coletados na amostragem foram os seguintes:
78 Teoria das Filas
Instante da chegada
de cada usuário N
o
de chegadas Intervalo entre
Período Hr:min:seg no período chegadas (seg)
11:00 – 11:01 11:00:28 / 11:00:39 2 28 / 11
11:01 – 11:02 11:01:02/11:01:48/11:01:54 3 23 / 46 / 6
11:02 – 11:03 11:02:48 1 54
11:03 – 11:04 11:03:15 / 11:03:57 2 27 / 42
.
.
.
.
.
.
.
.
.
.
.
.
15:59 – 16:00 15:59:02 / 15:59:27 2 8 / 25
300 períodos 600 chegadas 18.000 seg
Como podemos observar na planilha acima, a amostragem coletou tanto o número
de chegadas por período (no nosso exemplo, 1 minuto) como o intervalo entre che-
gadas, o que não seria necessário. Veremos mais adiante porque só seria necessário
registrar uma delas, lembrando por ora que, se a taxa média for de 2 chegadas por
minuto, por exemplo, o intervalo médio entre chegadas só pode ser de 30 segundos
e vice-versa.
Com os dados coletados podemos construir 2 distribuições de freqüência:
A 1
a
com a distribuição do número de chegadas por minuto:
Chegadas / min N
o
de Observações
(x
i
) f
i
0 41
1 81
2 81
3 54
4 27
5 11
6 3
7 2
Esta distribuição é uma distribuição discreta pois os valores só podem ser inteiros,
ou seja, 0, 1, 2, etc...
Com os dados podemos achar a média e a variância (desvio padrão):
Média = x =
¸
x
i
f
i
¸
f
i
= 2 chegadas/minuto
σ
2
=
¸
x
2
i
f
i

¸
f
i
x
2
¸
f
i
−1
= 2, 02 σ =

2, 02 = 1, 42 chegadas/minuto
3.2 Componentes básicos de um processo de fila 79
A 2
a
com a distribuição do intervalo entre chegadas:
Intervalo entre
chegadas (segundos) N
o
de Observações
0 - 30 387
30 – 60 132
60 – 90 51
90 – 120 19
120 – 150 7
150 – 180 3
180 – 210 1
Esta é uma distribuição contínua pois é a distribuição do intervalo entre chegadas
(tempo), podendo assumir qualquer valor.
Com os dados coletados na amostragem, no caso individuais (não mostrados aqui
na apostila), podemos achar a média e a variância (desvio padrão):
Média = x =
¸
x
i
n
=
18.000
600
= 30 segundos
σ
2
=
¸
x
2
i
n
−x
2
= 900 σ =

900 = 30 segundos
Veremos mais adiante que será fundamental saber se estas distribuições se “en-
quadram” em alguma distribuição teórica.
3.2.3 A Disciplina da Fila
A chamada disciplina da fila trata das questões relativas a fila propriamente dita.
Precisamos ter respostas a perguntas do tipo:
a) Quantas filas existem no sistema ?
b) Como os usuários são escolhidos da(s) fila(s) para receber serviço ?
Podemos ter um esquema FIFO (first in, first out) , ou seja, o primeiro que entra
é o primeiro que sai. Podemos ter LIFO (last in, first out), ou seja, o último a
entrar é o primeiro a sair. Podemos ter uma fila com esquema de prioridade, ou
seja, a chamada para receber serviço obedece a um esquema de prioridade, etc,
etc...
c) Há limite para o tamanho da fila ?
O tamanho da fila pode ser considerado como infinito, ou seja, quando a fila
pode ter qualquer tamanho ou limitado quando a fila só pode acomodar um n
o
determinado de usuários. Neste último caso quando a fila está cheia, os usuários
que chegam vão embora, sem entrar no sistema.
Respostas diferentes para cada uma das perguntas acima mudam o tipo de modelo
a ser estudado.
80 Teoria das Filas
3.2.4 O Mecanismo de Serviço
Um sistema de fila pode ser, genericamente, catalogado em 4 estruturas básicas
conforme o seu esquema de prestação de serviço.
Assim, como podemos ver na figura a seguir, podemos ter:
(A) canal único, fase única;
(B) canais múltiplos, fase única;
(C) canal único, fases múltiplas;
(D) canais múltiplos, fases múltiplas.
(A)
(B)
(C)
(D)
F i l a
F i l a
F i l a
F i l a
Estação de Serviço
Estações de Serviço
Estações de Serviço
Estações de Serviço
O número de canais é simplesmente o número de estações de serviço paralelas que
prestam serviço às chegadas.
O número de fases, por outro lado, indica o número de etapas seqüenciais que cada
chegada individual tem que passar.
Um exemplo da categoria (A) seria um pequeno posto bancário com somente 1 caixa
para atendimento. Um exemplo da categoria (B) seria o caso de uma agência ban-
cária com fila única e várias caixas. Para exemplificar o caso (C) poderíamos citar
um pequeno hospital onde o paciente recebe um atendimento inicial por parte de
um médico residente e a seguir é atendido pelo médico titular. Se tivéssemos vários
residentes e vários médicos teríamos um exemplo do caso (D).
Podemos, sem muito esforço, identificar vários tipos de filas conhecidas que não se
encaixam nas 4 categorias básicas. Isto é esperado pois estas são apenas as cate-
gorias básicas.
Para esquemas de filas mais complexos, a dificuldade em se obter soluções analíti-
cas é imensa e, na maioria das vezes, inviável.
Como no processo de chegada, na grande maioria dos sistemas de filas, a duração
do serviço prestado é aleatória e para descrevê-la precisamos definir uma distribui-
ção probabilística.
3.2 Componentes básicos de um processo de fila 81
Também como no processo de chegada, para se obter uma distribuição probabilís-
tica que descreva o serviço prestado, precisamos fazer uma amostragem no sistema
em questão. Neste caso no entanto, após ter sido definido o tamanho da amostra,
temos um complicador: A distribuição probabilística deve refletir a “capacidade” da
estação de serviço e por isto não tem sentido incluir na amostra os períodos em que
a estação fica ociosa.
As maneiras usuais de se fazer isto são contar somente o tempo em que a estação
não fica ociosa ou, para garantir ocupação, gerar usuários artificiais para serem
servidos no sistema.
A 1
a
forma é geralmente mais usada pois a 2
a
pode provocar distorções por ser ar-
tificial.
Vamos supor, como exemplo, que estamos estudando um posto bancário e para es-
tudarmos o atendimento dado foi feita uma amostragem, em um único dia, das
13:00 às 16:00 horas, ou seja durante 3 horas (180 minutos).
Foram coletados então os seguintes dados:
Instante do fim do serviço
para cada usuário N
o
de serviços Duração do
Período Hr:min:seg prestados no período serviço (seg)
13:00 – 13:01 13:00:22 / 13:00:37 2 22 / 15
13:01 – 13:02 13:01:07/13:01:22/13:01:44 3 30 / 15 / 22
13:02 – 13:03 13:02:47 1 63
13:03 – 13:04 0
.
.
.
.
.
.
.
.
.
.
.
.
15:59 – 16:00 15:59:15 / 15:59:34 2 26 / 19
180 períodos 540 serviços 10.800 seg
Da mesma forma que fizemos no processo de chegada, registramos nesta amostra-
gem tanto a duração de cada serviço prestado (medida contínua pois se trata de
tempo) como o número de serviços prestados por período (também 1 minuto neste
exemplo) que é uma medida discreta pois só pode ser um valor inteiro. Também re-
petindo o citado no processo de chegada, bastava coletar apenas uma das medidas
pois as 2 estão relacionadas e é claro que se a média for de 4 serviços prestados por
minuto, a duração média da prestação de serviço será de 15 segundos.
Com os dados coletados na amostragem podemos construir 2 distribuições probabi-
lísticas.
82 Teoria das Filas
A 1
a
(discreta) vai ser a distribuição do números de serviços prestados por minuto
e apresenta os seguintes valores:
Serviços / min
(x
i
) N
o
de Observações
0 8
1 28
2 40
3 40
4 31
5 18
6 9
7 4
8 2
Sua média e desvio padrão são:
x = 3 serviços/minuto
σ = 1, 71 serviços/minuto
A 2
a
(contínua) vai ser a distribuição da duração do serviço e apresenta os seguintes
valores:
Duração do
serviço (segundos) N
o
de Observações
0 - 30 410
30 – 60 103
60 – 90 19
90 – 120 7
120 – 150 1
x = 20 segundos
σ = 20 segundos
Como no caso do processo de chegada, também estamos interessados em saber se
estas distribuições se “enquadram” em uma distribuição teórica.
A técnica estatística que avalia se uma distribuição empírica se adequa a uma
distribuição teórica é chamada de Teste de Aderência e é o que veremos a seguir.
3.3 O Teste de Aderência
As soluções analíticas, ou seja, através de fórmulas matemáticas, que foram de-
senvolvidas para sistemas de filas estão, com poucas exceções, restritas aos casos
onde as distribuições discretas seguem a distribuição de Poisson e as distribuições
contínuas seguem a Exponencial Negativa.
Assim se, por exemplo, no processo de chegada obtemos uma distribuição para a
taxa de chegada (discreta), estamos interessados em testar se ela é uma Poisson.
Este tipo de teste, chamado de Teste de Aderência, tem várias formas e veremos
3.3 O Teste de Aderência 83
uma delas conhecida como Teste do Qui-Quadrado (χ
2
).
Exemplo: Testar, usando o teste do χ
2
, se a distribuição abaixo, obtida em uma
amostragem, é uma distribuição de Poisson com média λ = 2/min.
Chegadas / min
(x
i
) N
o
de Observações
0 39
1 91
2 67
3 59
4 28
5 10
6 4
7 2
300
Média λ = 2/min
O teste do χ
2
é uma “comparação” entre a freqüência observada e a freqüência teó-
rica. Assim sendo, como já temos a freqüência observada na amostragem, temos
que calcular a freqüência teórica usando a fórmula da distribuição de Poisson:
Probabilidade(n
o
observações= k)=
e
−λ
λ
k
k!
Temos então:
N
o
de chegadas / min P(n
o
obs= k) Freqüência Esperada
0
e
−2
2
0
0!
= 0, 135 300 ×0, 135 = 40, 5
1
e
−2
2
1
1!
= 0, 270 300 ×0, 270 = 81
2 0,270 81
3 0,180 54
4 0,090 27
5 0,036 10,8
6 0,012 3,6
7 0,003 0,9
No teste do χ
2
quando a freqüência esperada é menor que 5, deve-se agrupar
até se tornar maior ou igual a 5.
Assim, no nosso exemplo, as 3 últimas linhas devem ser somadas (0, 9+3, 6+10, 8)
dando o valor de 15, 3. Deve-se fazer o mesmo agrupamento na freqüência 0bser-
vada, ou seja somar 2 + 4 + 10 = 16 em uma única linha.
No teste do χ
2
temos que calcular:
χ
2
calculado
=
¸(Freq. Observada −Freq. Esperada)
2
Freq. Esperada
84 Teoria das Filas
No nosso exemplo temos:
χ
2
calc
=
(39 −40, 5)
2
40, 5
+
(91 −81)
2
81
+· · · +
(16 −15, 3)
2
15, 3
= 4, 24
Teste: Se χ
2
calc
> χ
2
tabelado
rejeitamos a hipótese de que a distribuição é uma Pois-
son.
Para se obter o χ
2
tab
temos que calcular o n
o
de graus de liberdade (ν):
ν = N
o
de pares(Freq.Obs / Freq. Esp) −1− N
o
de parâmetros estimados pela
amostra.
Na Poisson, o único parâmetro estimado pela amostra é a média λ.
Logo temos:
ν = 6 −1 −1 = 4
Outro dado necessário para se obter o χ
2
tab
é o nível de significância α, que é o risco
de que a hipótese seja rejeitada quando deveria ser aceita. No teste de aderência,
o padrão usual é usar 5% para o nível de significância, ou seja, α = 0, 05.
Pesquisando em uma tabela (pág. 241), com ν = 4 e α = 0, 05, obtemos χ
2
tab
=
9, 48.
Como o χ
2
calc
é menor que o χ
2
tab
aceitamos a hipótese, ou seja a distribuição das
chegadas segue uma Poisson.
Vejamos outro exemplo: Testar, usando o teste do χ
2
, se a distribuição a seguir,
obtida em uma amostragem de uma estação de serviço, é uma exponencial com
média 1/µ = 20 segundos ou seja, taxa média de serviço µ = 3/minuto.
Duração do
serviço (segundos) Freq. Observada
0 - 30 480
30 – 60 33
60 – 90 19
90 – 120 7
120 – 150 1
540
Como a distribuição exponencial é uma distribuição contínua, temos:
P(t
1
≤ t ≤ t
2
) =
t
2

t1
µe
−µt
dt
P(t
1
≤ t ≤ t
2
) =

−e
µt

t2
t1
= e
−µt1
−e
−µt2
Podemos calcular então a freqüência esperada (teórica):
Duração do
serviço (segundos) P(x) Freq. Esperada
0 – 30 e
−3×0
−e
−3×0,5
= 0, 7768 540 ×0, 7768 = 419, 47
30 – 60 e
−3×0,5
−e
−3×1
= 0, 1773 540 ×0, 1773 = 93, 58
60 – 90 0,0386 20,84
90 – 120 0,0086 4,64
120 – 150 0,0019 1,02
3.4 O Processo de Poisson 85
Lembrando que temos que juntar em única categoria as 2 últimas linhas da fre-
quencia esperada (4,64 e 1,02), podemos fazer então:
χ
2
calc
=
(480 −419, 47)
2
419, 47
+
(33 −93, 58)
2
93, 58
+· · · +
(8 −5, 66)
2
5, 66
= 49, 08
ν = 4 −1 −1 = 2 (na Exponencial só a média é estimada pela amostra)
Com α = 0, 05 obtemos da tabela (pág. 241): χ
2
tab
= 5, 99.
Como o χ
2
calc
é maior que o χ
2
tab
nós rejeitamos a hipótese de que a distribuição da
duração do atendimento siga uma exponencial.
3.4 O Processo de Poisson
As propriedades do chamado Processo de Poisson se ajustam muito bem aos mode-
los básicos de filas. Este fato fez com que as soluções analíticas para modelos de
filas pudessem ser obtidas para àqueles modelos. A obtenção de soluções analíticas
para modelos que não seguem o Processo de Poisson são, quando viáveis, matema-
ticamente complexas e extremamente trabalhosas.
Vejamos as propriedades fundamentais do Processo de Poisson, já adaptando-as
para sistemas de filas, lembrando que estas propriedades são provadas matemati-
camente:
1. O n
o
de chegadas (ou de serviços completados) em uma unidade de tempo espe-
cificada é independente do n
o
de chegadas (ou término de serviços) em qualquer
outra unidade.
Esta propriedade se adequa perfeitamente a um sistema de filas e para exempli-
ficar vamos imaginar as chegadas de clientes à uma agência bancária. É óbvio
que o n
o
de chegadas no minuto entre 11:34 e 11:35 é independente das chegadas
no minuto entre 14:51 e 14:52.
2. O n
o
médio de chegadas (ou de término de serviços) por unidade de tempo é
proporcional ao tamanho da unidade de tempo.
Assim se na agência bancária a média é de 2 chegadas/min, ela será de 120
chegadas/hora e 720/dia (considerando dia de 6 horas).
3. A probabilidade da ocorrência de 2 chegadas simultâneas (ou término de 2 ser-
viços) em uma unidade de tempo muito pequena (∆t) tende a zero.
Vamos supor que a taxa de chegada a um determinado sistema de fila seja
λ = 5/hora. Se fizermos ∆t muito pequeno, 1 segundo por exemplo, a probabili-
dade de 1 chegada em 1 segundo será igual a λ∆t = 5 ∗ 1/3600 = 0, 0013.
A probabilidade de 2 chegadas em qualquer segundo será igual a 0, 0013 ∗
0, 0013 = 0, 000006, ou seja, praticamente zero.
4. A probabilidade de 1 chegada (ou término de serviço) ocorrer em uma unidade
de tempo muito pequena, ∆t, é sempre a mesma independente do instante de
∆t.
Desta forma se a probabilidade de 1 chegada em 1 segundo é de 0,0013, esta
probabilidade será a mesma em qualquer segundo escolhido.
86 Teoria das Filas
5. Se a distribuição das chegadas (discreta) segue a distribuição de Poisson, então
a distribuição do intervalo entre chegadas (contínua) segue a Exponencial.
Se a distribuição da duração do serviço (contínua) segue a Exponencial, então a
distribuição dos serviços completados (discreta) segue a Poisson.
Esta propriedade é a razão porque dissemos anteriormente, nas amostragens,
que embora tivessem sido coletados tanto os dados discretos como os contínuos,
bastava trabalhar com uma delas, tanto no caso das chegadas como no caso do
serviço, pois provada uma, via teste de aderência, está provada a outra.
Desta forma se as chegadas seguem, por exemplo, uma Poisson, verificado via
teste de aderência, com taxa média de λ = 3/minuto, então o intervalo entre
chegadas segue a Exponencial com média (1/µ) igual a 20 segundos.
Da mesma forma se a duração do serviço segue, por exemplo, uma Exponencial
com média (1/µ) de 30 segundos, então a distribuição dos serviços completados
por unidade de tempo segue uma Poisson com média λ = 2/minuto.
Em filas criou-se uma convenção em que se diz que as chegadas seguem a Pois-
son (claro se passar no teste de aderência), ou seja, se trabalha com a taxa
média de chegadas (discreta) enquanto que para o serviço, trabalha-se com a
sua duração (contínua), ou seja, se diz que ela segue a Exponencial. Mas como
vimos acima, está correto dizer exatamente o inverso. É uma mera con-
venção.
3.5 Notação de Kendall
O professor D.G.Kendall criou, em 1953, uma notação para sistemas de filas que é
hoje largamente usada.
Ela tem, na sua forma simplificada, o seguinte formato: (a/b/c) onde, a repre-
senta a distribuição das chegadas, b representa a distribuição do serviço e c indica
o número de estações de serviço.
Como a distribuição de Poisson inclui as propriedades do processo Markoviano, a
notação usada para a e b é M quando temos um processo de Poisson.
Assim um modelo de fila em que a distribuição das chegadas segue a Poisson, a
distribuição da duração do serviço segue a Exponencial e com 1 estação de serviço,
teria a notação M/M/1.
3.5 Notação de Kendall 87
3.5.1 Convenção para textos de Filas
Outra convenção em filas é que, se nada for dito em contrário, considera-se:
• Tamanho da população: infinito
• Tamanho permitido para a fila : infinito
• Distribuição das chegadas: Poisson
• Distribuição do serviço: Exponencial
• Fila: única
• Seleção para atendimento: FIFO
3.5.2 Estado transiente e de regime (ou estacionário)
Antes de entrarmos em detalhes, devemos observar que todos os modelos, com suas
fórmulas, a serem apresentados tem como pré-requisito o sistema de fila estar em
estado de regime, ou seja, estar com o seu processo de chegadas e atendimento
dentro de condições normais. Para exemplificar vamos considerar uma agência
bancária que tenha grande movimento. Quando a agência abre pela manhã, já
existe normalmente uma grande aglomeração na porta e, obviamente, as chegadas
não obedecem a qualquer padrão. Da mesma forma no início do trabalhos o atendi-
mento não atinge sua velocidade normal pois, de certa forma, os funcionários que
fazem o atendimento ainda não estão “aquecidos”. Até o funcionamento da agência
se normalizar dizemos que o sistema está em regime transiente. O estudo do com-
portamento de sistema de filas em regime transiente é de extrema complexidade e
foge ao escopo deste curso.
88 Teoria das Filas
3.6 O Modelo I: M/M/1
Este é o modelo mais simples de fila, ou seja tamanho população infinito, tamanho
permitido para a fila infinito, chegadas seguindo a Poisson, duração do serviço se-
guindo a Exponencial, fila única com seleção FIFO e 1 estação de serviço.
Vamos desenvolver a seguir, as fórmulas que permitem medir as características
principais deste tipo de modelo.
Fazendo:
λ ⇒ taxa de chegada
µ ⇒ taxa de serviço
∆t ⇒ unidade de tempo muito pequena
λ∆t ⇒ probabilidade de ocorrer 1 chegada durante ∆t
µ∆t ⇒ probabilidade de ocorrer fim de 1 serviço durante ∆t
A condição básica para que um sistema de fila seja estável é que a taxa de chegada
seja menor do que a taxa de serviço , ou seja, λ/µ tem que ser menor do que 1. Caso
isto não aconteça a fila tende ao infinito. Veremos mais adiante que é necessário na
verdade que λ seja razoavelmente menor que µ pois mesmo sendo menor, se tiver
um valor muito próximo de µ, a fila tenderá ao infinito.
Existem 3 eventos possíveis durante ∆t: a entrada de 1 unidade no sistema, a
saída de 1 unidade do sistema ou nenhuma alteração, ou seja, nenhuma chegada
ou nenhum término de serviço.
Se λ∆t é a probabilidade de 1 chegada durante ∆t, então 1−λ∆t é a probabilidade
de nenhuma chegada. De forma semelhante se µ∆t é a probabilidade de fim de 1
serviço, então 1 −µ∆t é a probabilidade de que nenhum serviço seja completado.
A probabilidade conjunta de nenhuma chegada e nenhum término de serviço, du-
rante ∆t, é dada por:
[1 −λ∆t][1 −µ∆t] = 1 −λ∆t −µ∆t +λµ(∆t)
2
Como ∆t é muito pequeno podemos considerar (Λt)
2
como = 0 e desta forma a
probabilidade de nenhuma alteração é 1 −(λ∆t +µ∆t).
Os estados do sistema nos instantes t e t + ∆t com os 3 eventos possíveis durante
∆t são mostrados na tabela a seguir, onde k é o número de unidades no sistema e
P
n
é a probabilidade de existirem n usuários no sistema:
Probabilidade Estado no Probabilidade Estado no Probabilidade
do estado instante t do evento instante t + ∆t do estado
1 −λ∆t k = 0 P
0
(1 −λ∆t)
P
0
k = 0
λ∆t k = 1 P
0
(λ∆t)
µ∆t k = 0 P
1
(µ∆t)
P
1
k = 1 1 −(λ∆t +µ∆t) k = 1 P
1
(1 −λ∆t −µ∆t)
λ∆t k = 2 P
1
(λ∆t)
µ∆t k = 1 P
2
(µ∆t)
P
2
k = 2 1 −(λ∆t +µ∆t) k = 2 P
2
(1 −λ∆t −µ∆t)
λ∆t k = 3 P
2
(λ∆t)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
µ∆t k = n −1 P
n
(µ∆t)
P
n
k = n 1 −(λ∆t +µ∆t) k = n P
n
(1 −λ∆t −µ∆t)
λ∆t k = n + 1 P
n
(λ∆t)
3.6 O Modelo I: M/M/1 89
Quando existem zero unidades no sistema (k = 0) no instante t, somente 2 eventos
podem ocorrer: ou não há nenhuma chegada, com probabilidade 1 − λ∆t ou há
uma chegada com probabilidade λ∆t.
Quando k ≥ 1 no instante t, existem 3 eventos possíveis como mostrado na tabela
para k = 1, k = 2 e k = n.
Voltando a tabela nós vemos que existem 2 maneiras de se ter zero unidades no
sistema no instante t +∆t: Quando k = 0 no instante t e nenhuma chegada ocorre
e quando k = 1 no instante t e uma saída ocorre. A probabilidade de termos zero
unidades no instante t + ∆t é a probabilidade de zero no instante t + ∆t , vezes
a probabilidade de nenhuma chegada, ou seja P
0
(1 − λ∆t), mais a probabilidade
de termos uma unidade no instante t, vezes a probabilidade de uma saída, ou seja
P
1
(µ∆t). Isto dá:
P
0
= P
0
(1 −λ∆t) +P
1
(µ∆t) (Eq. 1)
De forma análoga, a probabilidade de termos 1 unidade no sistema é igual a:
P
1
= P
0
(λ∆t) +P
1
(1 −λ∆t −µ∆t) +P
2
(µ∆t) (Eq. 2)
Para o caso geral, a probabilidade de termos n unidades no sistema no instante
t + ∆t é dada por:
P
n
= P
n−1
(λ∆t) +P
n
(1 −λ∆t −µ∆t) +P
n+1
(µ∆t) (Eq. 3)
Resolvendo a equação (1) para P
1
em função de P
0
, temos:
P
0
= P
0
(1 −λ∆t) +P
1
(µ∆t)
P
1
(µ∆t) = P
0
−P
0
(1 −λ∆t)
P
1
(µ∆t) = P
0
[1 −(1 −λ∆t)
P
1
(µ∆t) = P
0
(λ∆t)
P
1
= P
0
(λ∆t)
(µ∆t)
P
1
= P
0

λ
µ

(Eq. 4)
Resolvendo a equação (3) para P
n+1
em função de P
n
e P
n−1
, temos:
(µ∆t)P
n+1
= P
n
−P
n
(1 −λ∆t −µ∆t) −P
n−1
(λ∆t)
(µ∆t)P
n+1
= P
n
−P
n
+P
n
(λ∆t) +P
n
(µ∆t) −P
n−1
(λ∆t)
(µ∆t)P
n+1
= P
n
(λ∆t) +P
n
(µ∆t) −P
n−1
(λ∆t)
P
n+1
= P
n
λ∆t
µ∆t
+P
n
µ∆t
µ∆t
−P
n−1
λ∆t
µ∆t
P
n+1
= P
n
λ
µ
+P
n
−P
n−1
λ
µ
P
n+1
= P
n

1 +
λ
µ

−P
n−1

λ
µ

P
n+1
= P
n

µ +λ
µ

−P
n−1

λ
µ

Substituindo n por 1, temos:
P
2
= P
1

µ +λ
µ

−P
0

λ
µ

Tirando o valor de P
1
da equação (4) temos:
P
2
= P
0

λ
µ

λ +µ
µ

−P
0

λ
µ

90 Teoria das Filas
= P
0
¸
λ
µ

λ +µ
µ

λ
µ

= P
0
¸
λ
µ

λ +µ
µ
−1

= P
0
λ
2
+λµ −λµ
µ
2
P
2
= P
0

λ
µ

2
Se resolvermos para P
3
vamos obter:
P
3
= P
0

λ
µ

3
Por indução inferimos que:
P
n
= P
0

λ
µ

n
(Eq. 5)
Da teoria da probabilidade nós sabemos que a soma de todas as probabilidades é
igual a 1. Logo,

¸
n=0
P
n
= 1
ou da equação (5):

¸
n=0
P
0

λ
µ

n
= 1 ou
P
0
=
1

¸
n=0

λ
µ

n
O denominador desta expressão é uma série geométrica infinita que converge, se
λ
µ
for menor que 1, para
1

1 −
λ
µ
.
Temos então:
P
0
=
1
1 −
λ
µ
P
0
= 1 −
λ
µ
(Eq. 6)
Das equações (5) e (6) vem:
P
n
=

1 −
λ
µ

λ
µ

n
Eq. (7)
A média de uma variável x é definida como
¸
xP
x
, logo o número médio de uni-
dades no sistema (representado por L) é dado por:
L =

¸
n=0
nP
n
3.6 O Modelo I: M/M/1 91
Substituindo pelo valor de P
n
da equação (7) temos:
L =

¸
n=0
n

1 −
λ
µ

λ
µ

n
=

1 −
λ
µ


¸
n=0
n

λ
µ

n
O somatório da equação acima é uma série geométrica infinita que converge para:
λ
µ

1 −
λ
µ

2
Logo temos:
L =

1 −
λ
µ

λ
µ

1 −
λ
µ

2
¸
¸
¸
¸
¸
Que se reduz a:
L =
λ
µ −λ
(Eq. 8)
Nosso propósito é determinar várias medidas da performance de um sistema de
filas tais como:
L = número médio de unidades no sistema.
L
q
= número médio de unidades na fila.
W = tempo médio que uma unidade fica no sistema.
W
q
= tempo médio que uma unidade fica na fila.
Se nós esperamos λ chegadas por unidade de tempo e se cada unidade gasta, em
média no sistema, W unidades de tempo, então o tempo total gasto no sistema para
λ chegadas é λW. Por exemplo, se chegam em média 2 usuários por hora e cada
chegada passa 3 horas no sistema, então o total de horas gasto pelos 2 usuários no
sistema é 6. Isto implica que existem 6(L = 6) usuários, em média, no sistema
(isto é, usuários 1 e 2 na sua 3
a
hora, usuários 3 e 4 na sua 2
a
hora e usuários 5 e 6
na 1
a
hora). Isto nos dá a relação:
L = λW (Eq. 9)
O mesmo raciocínio pode ser inferido para a relação do número médio de usuários
na fila e o tempo que eles passam na fila:
L
q
= λW
q
(Eq. 10)
O tempo médio gasto no sistema (W) deve ser igual ao tempo médio gasto na fila
mais o tempo de serviço esperado (1/µ). Temos então:
W = W
q
+
1
µ
(Eq. 11)
Logo uma vez que tenhamos obtido o valor de L da equação (8) podemos, da equa-
ção (9), tirar o valor de W:
W =
L
λ
=
1
µ −λ
Podemos com W calcular o valor de W
q
, da equação (11):
W
q
= W −
1
µ
=
1
µ −λ

1
µ
=
λ
µ(µ −λ)
92 Teoria das Filas
Finalmente da equação (10) podemos calcular L
q
:
L
q
= λW
q
= λ
λ
µ(µ −λ)
=
λ
2
µ(µ −λ)
As demais fórmulas não só deste modelo como dos demais que veremos a seguir
são desenvolvidas de forma análoga ao que vimos até aqui, apesar de que para
algumas, a matemática envolvida seja bem mais complexa.
3.6.1 Sumário das fórmulas do modelo M/M/1
λ = taxa média de chegada (1/λ = intervalo médio entre chegadas)
µ = taxa de serviço média (1/µ = duração média do serviço)
n = número de unidades no sistema (inclui as da fila e a sendo servida).
Probabilidade de zero unidades no sistema, ou seja, a probabilidade do sistema es-
tar vazio:
P
0
= 1 −
λ
µ
Probabilidade de existirem n unidades no sistema:
P
n
= P
0

λ
µ

n
Probabilidade de existirem mais de k unidades no sistema:
P(n > k) =

λ
µ

k+1
Número médio (esperado) de unidades no sistema:
L =
λ
µ −λ
Número médio (esperado) de unidades na fila:
L
q
=
λ
2
µ(µ −λ)
Tempo médio (esperado) que cada unidade permanece no sistema:
W =
1
µ −λ
Tempo médio (esperado) que cada unidade permanece na fila:
W
q
=
λ
µ(µ −λ)
Fator de utilização da estação de serviço:
ρ =
λ
µ
Probabilidade de 1 unidade demorar mais de t unidades de tempo no sistema:
P(T > t) = e
−µ(1−ρ)t
Podemos ter ainda as seguintes relações entre as medidas básicas:
L
q
= L −
λ
µ
= λW
q
L = L
q
+
λ
µ
= λW
W
q
= W −
1
µ
=
L
q
λ
W = W
q
+
1
µ
=
L
λ
3.6 O Modelo I: M/M/1 93
Exemplo 1
Clientes chegam a uma barbearia, de um único barbeiro, com uma duração média
entre chegadas de 20 minutos. O barbeiro gasta em média 15 minutos com cada
cliente.
a) Qual a probabilidade de um cliente não ter que esperar para ser servido ?
b) Qual o n
o
esperado de clientes no salão de barbeiro ? na fila ?
c) Quanto tempo, em média, um cliente permanece no salão ?
d) Quanto tempo, em média, um cliente espera na fila ?
e) Qual a probabilidade de que um cliente tenha que ficar mais de 30 minutos no
salão ?
f) O barbeiro está estudando a possibilidade de colocar outro barbeiro desde que o
tempo de permanência médio de cada cliente no salão passe a 1, 25 horas. Para
quanto deve aumentar a taxa de chegada de modo que este segundo barbeiro
fique justificado ?
Solução
λ = 3/hr µ = 4/hr
a) P
0
= 1 −
λ
µ
= 1 −
3
4
= 0, 25 = 25%
b) L =
λ
µ −λ
=
3
4 −3
= 3 fregueses
L
q
=
λ
2
µ(µ −λ)
= 2, 25 fregueses
Como pode ser visto acima L − L
q
= 0, 75 e a primeira vista poderá parecer
que a diferença entre o número médio de clientes no sistema (L) e o número
médio de clientes na fila (L
q
) deveria ser 1, ou seja, o freguês que está sendo
atendido pelo barbeiro.
Na verdade (L − L
q
) representa o percentual médio de clientes atendidos por
unidade de tempo e o resultado é menor que 1 porque as vezes o barbeiro fica
ocioso.
c) W =
1
µ −λ
= 1 hora
d) W
q
=
λ
µ(µ −λ)
= 0, 75 horas
e) P(T > 0, 5) = e
−µ(1−ρ)t
= e
−4(1−
3
4
)0,5
= 0, 61 = 61%
f) Queremos λ de modo que W = 1, 25 horas
1, 25 =
1
4 −λ
⇒ λ = 3, 2 fregueses/hora
94 Teoria das Filas
Exemplo 2
Pessoas chegam para comprar ingressos para um jogo à taxa de uma por minuto.
Cada pessoa gasta em média 20 segundos para comprar um ingresso.
a) Se uma determinada pessoa chega 2 minutos antes do jogo começar e se ela
gasta exatamente 1,5 minutos para chegar ao seu lugar após comprar o seu
ingresso, ela estará sentada antes do jogo começar ?
b) Qual a probabilidade da pessoa do ítem a estar sentada antes do jogo começar ?
c) Com que antecedência deve a pessoa chegar para ter 99% de certeza de estar
sentada antes do jogo começar ?
Solução
λ = 1/min µ = 3/min
a) W =
1
µ −λ
= 0, 5 minutos
Logo o tempo médio para comprar o ingresso e achar o lugar é 0, 5 + 1, 5 = 2 mi-
nutos, ou seja, a pessoa deverá estar sentada antes do jogo começar.
b) É igual a probabilidade do ingresso ser comprado em tempo menor ou igual a
0, 5 minutos.
P(T ≤ 0, 5) = 1 −P(T > 0, 5) = 1 −e
−µ(1−ρ)t
= 1 −e
−3(1−
1
3
)0.5
P(T ≤ 0, 5) = 0, 63 = 63%
c) Queremos achar t de modo que:
P(T > t) = 0, 01
e
−µ(1−ρ)t
= 0, 01 ⇒e
−3(1−
1
3
)t
t = 2, 3 minutos
Logo: P(T > 2, 3) = 0, 01 P(T ≤ 2, 3) = 0, 99
Como a pessoa gasta 1, 5 minutos para achar seu lugar ela deve chegar 1, 5+2, 3 =
3, 8 minutos antes do jogo começar.
IMPORTANTE
Como já foi dito anteriormente, a taxa de ocupação (λ/µ), tem que ser sempre me-
nor que 1 pois, em caso contrário, a fila tende ao infinito. Vamos aproveitar este
exemplo para mostrar que, mesmo sendo menor que 1, se ela se aproxima de 1 a fila
já tende ao infinito. No quadro a seguir, para um µ fixo igual a 3/min, mostramos
os valores de L, L
q
, W (em minutos) e W
q
(em minutos) para valores crescentes de
λ, e conseqüentemente de ρ.
Podemos ver que, a medida que ρ vai se aproximando de 1, a fila se torna inviável.
3.6 O Modelo I: M/M/1 95
λ ρ L L
q
W W
q
1,00 0,333 0,5 0,167 0,50 0,167
1,50 0,500 1 0,500 0,67 0,333
2,00 0,667 2 1,333 1 0,667
2,50 0,833 5 4,667 2 1,667
2,90 0,966 29 28,03 10 9,667
2,95 0,983 59 58,01 20 19,667
2,99 0,996 299 298 100 99,667
2,999 0,999 2999 2998 1000 999,667
Exemplo 3
Fregueses chegam aleatoriamente a uma padaria à taxa média de 12/hora. O único
empregado da padaria pode servir fregueses à taxa média de 20/hora. O empregado
recebe $3/hora enquanto que o tempo que os fregueses “perdem” na padaria está
estimado em $8/hora. O dono da padaria está considerando a instalação de um
equipamento de auto-serviço que fará com que a taxa de atendimento aos fregue-
ses passe para 42 fregueses/hora. O custo do equipamento de auto-serviço é de
$30/dia.
Considerando que a padaria funciona 12 horas/dia, justifique economicamente se o
equipamento de auto-serviço deve ou não ser comprado ?
Solução
λ = 12/hora
Situação Atual
µ = 20/hora
Custo do empregado = $3/hr ×12 hr/dia = $36/dia ⇒Custo do serviço
W = tempo médio que um freguês permanece na padaria.
W = 0, 125 horas
Custo = 0, 125 horas ×8/hr = $1
Custo da fila = $1 ×12 fregueses/hr × 12 hr/dia = $144
Custo total = $36 + $144 = $180/dia
Situação Proposta
µ = 42/hora
W = 0, 0333 horas
Custo = 0, 0333 horas ×$8/hr = $0, 266
Custo da fila = $0, 266 ×12 fregueses/hr ×12 hr/dia = $38, 40/dia
Custo do serviço = $36 + $30 = $66/dia
Custo total = $66 + $38, 40 = $104, 40/dia
Resp: A situação proposta é melhor.
96 Teoria das Filas
3.7 Modelo II: M/M/s (s > 1)
Neste tipo de modelo, considera-se que as estações de serviço são equivalentes e
prestam serviço, individualmente, a mesma taxa média µ.
ρ =
λ

P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
P
n
=

1
n!

λ
µ

n
P
0
p/n = 1, 2, ..., s −1
1
s!s
n−s

λ
µ

n
P
0
p/n ≥ s
L
q
=

λ
µ

s+1
P
0
s ×s!(1 −ρ)
2
L = L
q
+
λ
µ
W =
L
λ
W
q
=
L
q
λ
P(T > t) = e
−µt
×

1 +

λ
µ

s
P
0

¸
¸
¸
1 −e
−µt

¸
s−1−
λ
µ

s!(1 −ρ)

s −1 −
λ
µ

se

s −1 −
λ
µ

= 0
P(T > t) = e
−µt
×

1 +

λ
µ

s
P
0
s!(1 −ρ)
µt

se

s −1 −
λ
µ

= 0
3.7 Modelo II: M/M/s (s > 1) 97
Exemplo 1
Um escritório tem 3 datilógrafas e cada uma pode datilografar, em média, 6 cartas
por hora. As cartas chegam para serem datilografadas a taxa média de 15 por hora.
a) Qual o n
o
médio de cartas esperando para serem datilografadas ?
b) Quanto tempo, em média, uma carta demora para ficar pronta ?
c) Qual a probabilidade de que uma carta demore mais de 20 minutos para ficar
pronta ?
d) Vamos supor que cada datilógrafa receba individualmente 5 cartas por hora, em
média, para datilografar. Quanto tempo em média uma carta demora para ficar
pronta ?
Solução
Modelo M/M/3 com λ = 15/hr e µ = 6/hr
a) L
q
? P
0
= 0, 0499 L
q
= 3, 511 cartas
b) W = ? L = 6, 011 cartas W = 0, 40 horas
c) P(T > 0, 333 hr) = 0, 461 = 46, 1%
d) Modelo I
λ = 5/hr W = 1 hora
Este exemplo serve para exemplificar a vantagem em se ter uma fila única quando
temos várias estações de serviço prestando o mesmo tipo de atendimento. Como
podemos ver, com uma única fila, cada carta demora, em média, 0, 40 horas (24
minutos) para ficar pronta. Com fila individual demorará, em média, 1 hora.
Exemplo 2
Deseja-se determinar o n
o
ótimo de caixas em uma agência bancária. O tempo que
cada cliente “perde” dentro da agência está estimado em $5/hora e o custo de fun-
cionamento de uma caixa bancária é de $4/hora.
Os clientes chegam a taxa média de 40 por hora e as caixas podem atender, em
média, 30 clientes por hora.
Solução
λ = 40/hr µ = 30/hora
s = 1 ⇒ρ = 1, 333 > 1, a fila tenderia ao infinito.
Custo da Fila/hr Custo do Serviço/hr
s $5.λ.W 4.s Custo Total/hr
2 12,00 8,00 20,00
3 7,39 12,00 19,39
4 6,72 16,00 22,72
Para se resolver este tipo de problema tem que se ir por tentativa, incrementando
o número de estações de serviço de 1. Como já vimos, a curva de custo total vem
diminuindo, passa por um mínimo e volta a crescer.
No nosso exemplo o mínimo é s = 3.
98 Teoria das Filas
3.8 Modelo III: M/M/1: Fila finita
Esta é a situação na qual a fila pode acomodar somente um número finito de uni-
dades, ou seja, se uma unidade chega e a fila está cheia, ela vai embora sem
esperar o atendimento.
Deve ser observado que neste caso a taxa de chegada (λ) não precisa ser menor que
a taxa de serviço (µ) pois a fila tem um tamanho fixo.
Neste tipo de modelo aparece uma nova variável (M), que é o n
o
máximo de unida-
des que podem estar no sistema, sendo M−1 o número máximo permitido na fila.
As fórmulas para este modelo são:
P
0
=

1 −
λ
µ
1 −

λ
µ

M+1
p/λ = µ
1
M + 1
p/λ = µ
P
n
=

λ
µ

n
P
0
p/λ = µ
P
0
p/λ = µ
L =

λ
µ −λ

(M + 1)

λ
µ

M+1
1 −

λ
µ

M+1
p/λ = µ
M
2
p/λ = µ
L
q
= L −(1 −P
0
)
A taxa de chegada das unidades no sistema é λ. No entanto algumas unidades
chegam e encontram a fila cheia, ou seja, vão embora. A taxa de chegada efe-
tiva (λ
ef
) dá a taxa média das unidades que realmente permanecem no sistema,
ou seja (λ
ef
) é a taxa média de entrada de unidades no sistema.
λ
ef
= µ(1 −P
0
) = λ(1 −P
M
)
As demais fórmulas ficam então como:
W =
L
λ
ef
W
q
=
L
q
λ
ef
ρ =
λ
ef
µ
3.8 Modelo III: M/M/1: Fila finita 99
Exemplo 1
Uma barbearia com 1 barbeiro tem 6 cadeiras para acomodar fregueses esperando
atendimento. Os fregueses que chegam quando as 6 cadeiras estão cheias, vão
embora sem esperar. Os fregueses chegam a taxa média de 3/hr e ficam em média
15 minutos na cadeira do barbeiro.
a) Qual a probabilidade de um freguês chegar e ir direto para a cadeira do bar-
beiro ?
b) Qual o n
o
médio de fregueses esperando atendimento ?
c) Qual a taxa de chegada efetiva ?
d) Quanto tempo, em média, um freguês fica na barbearia ?
e) Que percentual dos fregueses potenciais vai embora sem esperar atendimento ?
Solução
M = 7 λ = 3/hr µ = 4/hr
a) P
0
= 0, 2778 = 27, 78%
b) L = 2, 11 fregueses L
q
= 1, 39 fregueses
c)λ
ef
= 2, 89 fregueses/hr
d) W = 0, 73 horas
e)
λ
ef
λ
=
2, 89
3
= 0, 963 ⇒ Percentual de fregueses atendidos
Resp: 1 −0, 963 = 0, 037 = 3, 7%
100 Teoria das Filas
Exemplo 2
Em uma barbearia de um único barbeiro a taxa média de chegadas é de 3 fregue-
ses por hora. A barbearia só tem lugar para acomodar 2 pessoas esperando e os
eventuais fregueses que chegam quando o salão está cheio, tem de ir embora. O
barbeiro é capaz de atender em média 2 fregueses por hora e cobra $7 por cada
corte de cabelo. Como muitos fregueses estão indo embora sem poder serem aten-
didos, o barbeiro está pensando em mudar o seu método de trabalho. Após alguns
estudos ele identificou 2 alternativas:
a) Trabalhar um pouco mais rápido do que atualmente, diminuindo um pouco a
qualidade do corte de cabelo mas diminuindo o preço do corte para $6 para evitar
reclamações. Com esta alternativa a sua taxa de serviço média iria para 3 fregue-
ses por hora.
b) Trabalhar bem mais rápido do que atualmente, cobrando somente $5 por corte
de cabelo pois haveria uma queda acentuada na qualidade. Neste caso sua taxa de
serviço média passaria a 4 fregueses por hora.
O barbeiro deseja fazer uma avaliação econômica entre a situação atual e as 2 alter-
nativas estudadas. O tempo perdido pelos fregueses na fila de espera está estimado
em $2/hora e como o serviço feito pelo barbeiro é muito cansativo, ao tempo que ele
pode descansar (por não ter nenhum freguês esperando) foi atribuído o valor de
$4/hora, ou seja, cada hora que ele descansa é como se tivesse ganho $4.
Considerando que o dia tem 8 horas de trabalho, faça a análise econômica para o
barbeiro.
Solução
Situação atual
λ = 3/hr µ = 2/hr M = 3
Receita com os cortes = N
o
médio de fregueses atendidos/dia ×$7/corte
= λ
ef
×8hr/dia ×$7 = 98, 21/dia
$ Equivalente do tempo ocioso = P
0
×8hr/dia ×$4 = $3, 94/dia
$ Equivalente do tempo perdido = W
q
×λ
ef
×8hr/dia ×$2/hr = $17, 73
Rendimento líquido = $98, 21 + $3, 94 −$17, 73 = $84, 42/dia
Alternativa a
λ = 3/hr µ = 3/hr M = 3
P
0
= 0, 250 W
q
= 0, 333 hr λ
ef
= 2, 25 fregueses/hr
Rendimento líquido = $104/dia
Alternativa b
λ = 3/hr µ = 4/hr M = 3
P
0
= 0, 3657 W
q
= 0, 20209 hr λ
ef
= 2, 537 fregueses/hr
Rendimento líquido = $104, 96/dia
A alternativa b é a melhor solução.
3.9 Modelo IV: M/M/s: Fila finita (s > 1) 101
3.9 Modelo IV: M/M/s: Fila finita (s > 1)
Vamos definir 2 variáveis (a e c) ressaltando que elas não tem nenhum significado
e são usadas apenas para simplificar a escrita das fórmulas:
a =
λ
µ
c =
λ

Temos então:
P
0
=
1

s
¸
n=0
1
n!
a
n

+
1
s!
a
s

M
¸
n=s+1
c
n−s

P
n
=

1
n!
a
n
P
0
p/ n ≤ s
a
n
P
0
S! S
n−s
p/ s < n ≤ M
0 p/ n > M
L
q
=
P
0
a
s
c
s! (1 −c)
2

1 −c
M−s
−(M −s) c
M−s
(1 −c)

L = L
q
+s −
s−1
¸
n=0
(s −n)P
n
λ
ef
= µ
¸
s −
s−1
¸
n=0
(s −n)P
n

W
q
=
L
q
λ
ef
W =
L
λ
ef
ρ =
λ
ef

Exemplo 1
Uma barbearia com 2 barbeiros tem 5 cadeiras de espera. Os fregueses que chegam
quando as 5 cadeiras estão ocupadas, vão embora. Os fregueses chegam a uma taxa
média de 6/hora e ficam em média 15 minutos na cadeira de barbeiro.
a) Qual a probabilidade de um freguês chegar e ir direto para a cadeira de bar-
beiro ?
b) Qual o n
o
médio de fregueses esperando para serem atendidos ?
c) Qual a taxa de chegada efetiva ?
d) Quanto tempo, em média, um freguês fica na barbearia ?
e) Que percentual de fregueses vai embora ?
102 Teoria das Filas
Solução
M = 7 λ = 6/hr µ = 4/hr s = 2
a) P
0
+P
1
= 0, 4032 = 40, 32%
b) L
q
= 1, 014 fregueses
c) λ
ef
= 5, 741 fregueses/hr
d) W = 0, 426 horas
e) 1 −
λ
ef
λ
= 0, 0431 = 4, 31%
Exemplo 2
Uma oficina mecânica tem 4 mecânicos sendo que cada carro necessitando conserto
é atendido por um único mecânico.
Além dos carros sendo consertados só cabem mais 6 automóveis no pátio da oficina
e quando ele está cheio os fregueses tem que procurar outra oficina. A taxa média
de chegadas de carros para conserto é de 3 por dia. Cada mecânico conserta, em
média, 1 carro por dia.
a) Qual a probabilidade da oficina estar vazia ?
b) Qual o n
o
médio de carros esperando conserto ?
c) Qual o n
o
médio de carros na oficina ?
d) Dos automóveis que procuram a oficina, quantos em média ficam ?
e) Quanto tempo em média um carro espera na fila ?
f) Quanto tempo em média um carro fica na oficina ?
g) Qual a probabilidade de um carro chegar e ter vaga na oficina ?
Solução
M = 10 λ = 3/dia µ = 1/dia s = 4
a) P
0
= 0, 040 = 4% b) L
q
= 0, 91 carros c) L = 3, 83 carros
d) λ
ef
= 2, 92 carros/dia e) W
q
= 0, 31 dias f) W = 1, 31 dias
g) P
vaga
= 1 −P
10
= 1 −0, 02 = 0, 98 = 98%
3.10 Modelo V: M/M/s: População finita 103
3.10 Modelo V: M/M/s: População finita
Em muitos problemas práticos a consideração de que a população é de tamanho in-
finito leva a resultados distorcidos porque na verdade a população é pequena para
ser considerada de tamanho infinito. Quando isto ocorre, a presença de uma ou
mais unidades no sistema tem um forte efeito na distribuição das chegadas fu-
turas e o uso de um modelo com população infinita conduz a resultados errados.
Um exemplo típico é de um pequeno grupo de máquinas que quebram de tempos
em tempos necessitando conserto. Um outro exemplo é o caso de um pequeno grupo
de mecânicos que vão a determinado balcão pegar peças ou ferramentas.
No caso extremo, por exemplo, se todas as máquinas estão quebradas, nenhuma
chegada pode ocorrer.
Isto contrasta com os modelos de população infinita nos quais a taxa de chegada é
independente do número de unidades que já estão no sistema.
Neste tipo de modelo, a taxa de chegada λ , é a taxa de chegada de cada unidade, ou
seja, 1/λ é o tempo médio entre chegadas de cada unidade. No caso das máquinas,
por exemplo, seria o tempo médio entre quebra de cada máquina.
A taxa de chegada efetiva λ
ef
dá a taxa média de chegada, considerando-se todos
as unidades.
As fórmulas para este tipo de modelo são bastante complexas e por causa disto tem
sido calculadas e tabeladas para facilitar o seu uso.
Para entrar nas tabelas (pág. 244) precisamos de 3 informações:
X =
λ
λ +µ
⇒Fator de Serviço
S ⇒n
o
de estações de serviço.
M⇒Tamanho da população.
Da tabela obtemos a seguinte medida:
F ⇒Fator de Eficiência.
Temos então:
104 Teoria das Filas
L
q
= M(1 −F)
λ
ef
= MFXµ
W = W
q
+
1
µ
L = λ
ef
W
W
q
=
L
q
λ
ef
ρ =
MFX
s
P
0
=
1
s−1
¸
n=0
M!
(M −n)! n!

λ
µ

n
+
M
¸
n=s
M!
(M −n)! s! s
n−s

λ
µ

n
P
n
=

P
0
M!
(M −n)! n!

λ
µ

n
p/ 1 ≤ n < s
P
0
M!
(M −n)! s! s
n−s

λ
µ

n
p/ s ≤ n ≤ M
0 p/ n > M
Exemplo 1
Uma companhia pesqueira tem 2 estaleiros para conserto de seus barcos. Cada
barco quebra, em média, de 4 em 4 semanas. Cada estaleiro gasta, em média, 1
semana para consertar cada barco. A frota atual da companhia é de 10 barcos.
a) Qual a probabilidade do estaleiro estar vazio ?
b) Em média quantos barcos quebrados ficam aguardando conserto ?
c) Em média quantos barcos estão parados no estaleiro ?
d) Qual a taxa de chegada de barcos no estaleiro ?
e) Quanto tempo, em média, um barco aguarda para começar a ser consertado ?
f) Quanto tempo, em média, um barco fica parado ?
Solução
λ = 0, 25/semana µ = 1/semana s = 2 M = 10
X =
0, 25
0, 25 + 1
= 0, 2
F = 0, 854 ⇒(tabela pág. 246)
a) P
0
= 0, 065 = 6, 5%
b) L
q
= 1, 46 barcos
c) L = 3, 16 barcos
d) λ
ef
= 1, 708 barcos/semana
e) W
q
= 0, 85 semanas
f) W = 1, 85 semanas
3.10 Modelo V: M/M/s: População finita 105
Exemplo 2
Dois mecânicos tema tarefa de consertar 5 máquinas. Cada máquina quebra a uma
taxa média de uma vez a cada hora. Cada mecânico pode reparar as máquinas a
taxa média de 4/hora.
a) Qual o n
o
médio de máquinas esperando reparo ?
b) Qual o n
o
médio de máquinas que estão fora do serviço ?
c) Qual a taxa de chegada quando consideramos as 5 máquinas ?
d) Quanto tempo. em média, uma máquina quebrada espera na fila ?
e) E no sistema ?
Solução
M = 5 λ = 1/hr µ = 4/hr s = 2
X =
1
1 + 4
= 0, 2
Da tabela (pág. 244):
F = 0, 976
a) L
q
= 0, 12 máquinas
b) L = 1, 093 máquinas
c) λ
ef
= 3, 904 máquinas/hr
d) W
q
= 0, 03 horas
e) W = 0, 28 horas
Exemplo 3
Uma empresa de frete aéreo tem 20 terminais (buferizados) em uma linha de co-
municação. Os terminais são usados para entrada de dados no sistema central de
computação. O tempo médio necessário pra digitar uma entrada no buffer do ter-
minal é 80 segundos e este tempo de digitação é exponencialmente distribuído.
Cada mensagem enviada de um terminal, consome, em média 2 segundos de CPU
(exponencial).
Calcule quantas requisições dos terminais são enviadas para a CPU e qual o tempo
de resposta médio para cada requisição.
Solução
M = 20 s = 1
λ = 0, 75/min µ = 30/min
X =
0, 75
0, 75 + 30
= 0, 0244 ≃ 0, 024
Da tabela ⇒F = 0, 982
Requisições enviadas para a CPU: (λ
eff
)
λ
eff
= MFXµ = (20)(0, 982)(0, 024)(30) = 14, 14/min
106 Teoria das Filas
Tempo médio de resposta: (W)
L
q
= M(1 −F) = 20(1 −0, 982) = 0, 36
W
q
=
0, 36
14, 14
= 0, 0255 minutos
W = W
q
+ 1/µ = 0.0255 + 1/30 = 0, 0558 minutos = 3, 53 segundos
Exemplo 4
Considere um sistema de time sharing com 20 terminais ativos. Cada terminal
submete um job ao processador a cada 3 segundos (seguindo uma distribuição ex-
ponencial). O processador central tem capacidade de processar 500.000 instruções
por segundo e cada job, em média (exponencial), necessita do processamento de
100.000 instruções.
Determine quantos jobs, em média, estão no processador central e qual o tempo
médio de resposta para cada job submetido.
Solução
M = 20 s = 1
λ = 20/min µ = 500.000/100.000 = 5/segundo = 300/minuto
X =
20
320
= 0, 0625 ≃ 0, 062
Da tabela ⇒F = 0, 768
λ
eff
= MFXµ = (20)(0, 768)(0, 062)(300) = 285, 196/min = 4, 7533/segundo
L
q
= M(1 −F) = 20(1 −0, 768) = 4, 64
W
q
=
L
q
λ
eff
=
4, 64
285, 196
= 0, 0163 minutos
Tempo de resposta médio: (W)
W = W
q
+
1
µ
= 0, 0196 minutos = 1, 1762 segundos
Jobs no processador: (L)
L = λ
eff
W = (4, 7533)(1, 1762) = 5, 59 jobs
3.11 Modelo VI: M/G/1 107
Distribuições diferentes da Exponencial/Poisson
Como já citamos, a análise matemática de modelos de filas com distribuições dife-
rentes da Poisson (Exponencial) é muito difícil e poucos modelos tem solução ana-
lítica.
3.11 Modelo VI: M/G/1
A distribuição das chegadas segue a Poisson mas a distribuição do serviço segue
uma distribuição qualquer (Geral) da qual se conhece a média 1/µ e a variância
σ
2
.
As fórmulas para o modelo são:
ρ =
λ
µ
P
0
= 1 −ρ
L
q
=
λ
2
σ
2

2
2(1 −ρ)
L = L
q

W
q
=
L
q
λ
W = W
q
+
1
µ
As equações para P
n
(n > 0) são muito complexas.
Quando σ
2
=
1
µ
2
a distribuição é a exponencial e caímos no Modelo I.
Quando σ
2
= 0, temos o chamado modelo com duração do serviço constante.
Exemplo 1
Pessoas chegam a um pequeno posto do correio a taxa de 30 por hora. O serviço é
executado por apenas 1 funcionário e o tempo de serviço é normalmente distribuído,
ou seja, segue um distribuição normal com média de 1 minuto e σ = 0, 30 minutos.
a) Quanto tempo, em média, uma pessoa espera na fila ?
b) Quanto tempo, em média, uma pessoa fica no posto do correio ?
c) Qual o n
o
médio de pessoas na fila ?
d) Qual o n
o
médio de pessoas no posto de serviço ?
e) Qual a probabilidade do funcionário estar ocioso ?
Solução
λ = 0, 5/minuto µ = 1/minuto σ
2
= (0, 30)
2
= 0, 09 ρ = 0, 5
P
0
= 0, 5 = 50% (e) L
q
= 0, 2725 pessoas (c) L = 0, 7725 pessoas (d)
W
q
= 0, 545 minutos (a) W = 1, 545 minutos (b)
108 Teoria das Filas
Exemplo 2
Repetir o exemplo 1 supondo a duração do serviço constante, ou seja, σ
2
= 0.
Solução
ρ = 0, 5
P
0
= 0, 5 = 50% (e) L
q
= 0, 25 pessoas (c) L = 0, 75 pessoas (d)
W
q
= 0, 5 minutos (a) W = 1, 5 minutos (b)
3.12 Modelo VII: M/E
k
/1 109
3.12 Modelo VII: M/E
k
/1
Neste tipo de modelo, a distribuição da duração do serviço segue uma distribuição
de Erlang com parâmetro k. No último exemplo do modelo anterior supomos uma
variação igual a zero para a duração do serviço (σ = 0) enquanto que a distribui-
ção exponencial tem um alto grau de variabilidade (σ = 1/µ). Entre estes 2 casos
extremos temos uma área intermediária (0 < σ < 1/µ) onde cai uma boa parte
das distribuições reais da duração do serviço.
Uma distribuição que “preenche” este intervalo é a chamada distribuição de Er-
lang. Sua média e desvio padrão são:
x =
1
µ
σ =
1

k
1
µ
onde k ≥ 0 e inteiro
Pode-se ver que k é o parâmetro que especifica o grau de variabilidade das durações
de serviço em relação a média. Na verdade para cada k temos uma distribuição e
por isto podemos considerar a distribuição de Erlang como uma família de distri-
buições. Assim a constante (σ = 0) e a exponencial ( σ = 1/µ) são elementos desta
família com k = ∞e k = 1, respectivamente.
A distribuição de Erlang também é muito importante em teoria das filas pela se-
guinte propriedade: Suponha que T
1
,T
2
,...,T
k
são k variáveis aleatórias indepen-
dentes com uma distribuição exponencial idêntica cuja média é 1/kµ.
Então a soma T = T
1
+T
2
+... +T
k
segue uma distribuição de Erlang com parâ-
metros µ e k.
É muito comum que o serviço prestado a uma unidade em um sistema de filas seja
constituído de k tarefas consecutivas onde a duração de cada uma delas segue a
mesma distribuição exponencial, com média 1/kµ. Então a duração total (ou seja
a execução das k tarefas) segue uma distribuição de Erlang com parametros k e µ.
Para este modelo temos:
L
q
=
(1 +k)λ
2
2kµ(µ −λ)
W
q
=
(1 +k)λ
2kµ(µ −λ)
W = W
q
+
1
µ
L = λW
110 Teoria das Filas
Exemplo 1
Uma oficina de manutenção de uma linha aérea só tem meios para fazer a manu-
tenção de um motor de cada vez. Por isso, para fazer com que os aviões regressem
ao serviço tão logo seja possível, a política adotada tem sido de alternar a manu-
tenção dos 4 motores de cada avião ou seja só se faz a manutenção de 1 dos motores
cada vez que o avião vai para a oficina.
Sob esta política os aviões tem chegado segundo um Processo de Poisson a taxa
média de 1 por dia. O tempo necessário para reparar um motor (uma vez que se
tenha iniciado o trabalho) tem uma distribuição exponencial com média de 0,5 dia.
Existe uma proposição de se trocar a política de maneira que se reparem os 4 mo-
tores, consecutivamente, cada vez que o avião for a oficina. Embora isto quadrupli-
casse o tempo esperado de serviço, a freqüência com que os aviões necessitariam ir
a oficina seria 1/4 da atual. Deve-se implantar a nova proposta ?
Solução
Situação atual
Modelo I: λ = 1/dia µ = 2/dia
W = 1/(µ −λ) = 1 dia
Como temos 4 motores para cada avião temos: W = 4 ×1 = 4 dias
Situação proposta
Modelo VII: λ = 0, 25/dia T = T
1
+T
2
+T
3
+T
4
⇒ Erlang com k = 4.
1/kµ = 0, 5 1/4µ = 0, 5 µ = 0, 5/dia
W
q
= 1, 25 dias W = 3, 25 dias
A situação proposta é melhor (3, 25 < 4).
Exemplo 2
Um alfaiate faz ternos sob medida. Cada terno, para ser feito, implica na execução
de 4 tarefas distintas. O alfaiate faz as 4 tarefas de cada terno antes de começar
outro. O tempo para executar cada tarefa segue uma distribuição exponencial com
média de 2 horas. Os pedidos chegam a taxa média de 5,5 por semana (8 horas
por dia, 6 dias por semana). Quanto tempo em média um terno demora para ficar
pronto ?
Solução
k = 4
1

= 2
1

= 2 µ = 0, 125/hora
λ = 5, 5/semana= 0, 11458/hr
W
q
= 55 horas
W = W
q
+
1
µ
= 63 horas
3.13 Exercícios 111
3.13 Exercícios
1) Chegadas a uma oficina que conserta relógios são com uma taxa de 10 por cada 8
horas. O empregado que conserta tem um tempo médio de serviço de 30 minutos
por relógio.
a) Se ele conserta os relógios na ordem de chegada, quanto tempo, em média, o
empregado fica ocioso por dia ?
b) Quantos relógios, em média, estarão na frente de um relógio que acabou de
chegar ?
2) Chegadas a um centro de informações que tem apenas um atendente são com
tempo médio de 10 minutos entre uma chegada e a próxima (Poisson). O tempo
que as pessoas gastam recebendo informação de um tipo ou de outro é suposto
como sendo de 3 minutos (Exponencial).
a) Qual a probabilidade de que uma pessoa chegando ao centro não tenha que
esperar ?
b) Qual a probabilidade de que a pessoa chegando ao centro tenha que esperar ?
c) Qual a probabilidade de termos 3 pessoas no sistema ?
d) Odiretor da organização irá contratar umoutro atendente se ele se convencer
que uma pessoa tenha que esperar no mínimo 3 minutos. De quanto o fluxo
de chegadas deve aumentar de maneira a justificar o segundo atendente ?
3) O proprietário de uma firma distribuidora de gás espera um cliente a cada 5
minutos. O serviço de atendimento leva em média 4 minutos.
a) Qual a probabilidade de que um freguês não tenha que esperar ?
b) Qual a probabilidade de que se tenha uma fila de espera ?
c) O proprietário irá contratar um atendente se ele verificar que um freguês
tenha que esperar, em média, 2 minutos ou mais para ser servido. A taxa de
chegada justifica tal contratação ?
d) Qual a probabilidade de termos 4 clientes no sistema ?
4) A taxa média de chegada de máquinas quebradas para uma oficina é 80 por
semana e a sua capacidade de conserto é de 120 por semana.
a) Que proporção de tempo a oficina fica ociosa ?
b) Qual a probabilidade de termos n máquinas na oficina para n = 0, 1, 2, 3 e 4 ?
c) Qual o número esperado de máquinas quebradas em um certo instante na
oficina ?
d) Qual o tempo médio de espera de uma máquina que chega até ela começar a
ser atendida ?
e) Quanto tempo em média uma máquina fica na oficina ?
OBS. Adotar semana de 6 dias com 10 horas de trabalho por dia.
112 Teoria das Filas
5) Em uma firma as máquinas quebram com uma taxa de 0,8 por hora e o custo de
cada máquina parada é estimado em $25,00 a hora. Existem 2 oficinas, A e B,
que podem consertar as máquinas. A oficina A pede $25 por hora e informa que
pode consertar 1,5 máquinas por hora. A oficina B pede $20 por hora e informa
que pode consertar 1,4 máquinas por hora.
a) Sabendo-se que as informações de A e B são verdadeiras, para qual oficina
deve-se mandar as máquinas ?
b) Qual é a escolha se a oficina A pedir $15 por hora e a oficina B pedir $18 por
hora, mantidas as demais condições ?
6) Um médico tem mais consultas do que é capaz de dar conta. Ele programa
as chegadas dos pacientes a um ritmo médio de uma de 15 em 15 minutos. O
modelo real de chegadas tende a seguir uma distribuição de Poisson. O atendi-
mento real atual é de um paciente de 10 em 10 minutos (exponencial). Uma pro-
posta de re-instalação do consultório, utilizando mais espaço e tornando possível
menor perda de tempo, permitiria ao médico aumentar o ritmo de atendimento
para um paciente de 6 em 6 minutos. Se o lucro for de $22,50 por cliente e o
médico não desejar aumentar o tempo médio de espera dos clientes, qual será a
alteração no lucro horário ?
7) Os veículos chegam a uma estação de pedágio a razão de 10 por minuto de acordo
com uma distribuição de Poisson. O atendente pode atender (dar nota, troco,
etc...) a razão de 12 por minuto, numa distribuição que se aproxima da expo-
nencial.
a) Qual é o comprimento médio da fila de espera ?
b) Qual é, em média, o tempo que um veículo espera na estação de pedágio ?
c) Se o atendente fosse substituído por uma máquina com um ritmo constante
de 12 por minuto, quais seriam as respostas dos itens a e b ?
8) Sabe-se que a taxa de quebras de certas máquinas é λ = 0, 2 máquinas/hora
(Poisson). O tempo de reparo segue a lei exponencial com µ = 0, 5 máqui-
nas/hora.
a) Suponha que existem 5 máquinas e apenas um técnico para consertar. Qual
é o número médio de máquinas esperando serem reparadas ?
b) Suponha que existem 20 máquinas e 3 técnicos para consertar (cada um com
µ = 5 máquinas/hora). Qual é o número médio de máquinas esperando
serem reparadas ?
c) Em qual das situações a máquina espera mais para ser reparada ?
3.13 Exercícios 113
9) Uma firma têxtil tem um grande número de máquinas idênticas cuja taxa de
falhas é estimada em 60 por dia. Existem 3 estações de reparo cada uma tendo
uma taxa de serviço de 25 por dia.
a) Quantas horas, para uma jornada de 8 horas por dia, está uma estação de
serviço ocupada ?
b) Qual a probabilidade que todas as estações estejam ociosas em um certo ins-
tante ?
c) Qual o comprimento médio da fila ?
d) Qual o numero médio de máquinas no sistema de reparos ?
10) Ainda em relação ao problema n
o
9 responda as seguintes perguntas:
a) Qual a probabilidade de se ter somente uma estação ociosa ? somente duas
estações ?
b) Qual é o número esperado de estações de reparo ociosas ?
c) Qual é, em média, o tempo que uma máquina que chega no sistema tem de
esperar ?
d) Qual é a perda diária, estimada, da companhia se cada máquina que não
trabalha dá um prejuízo de $300 por dia ?
11) A taxa de chegada a uma oficina de reparos é de 180 por dia. A oficina tem 3
setores de atendimento com uma taxa de 100 por dia. Qual é a probabilidade de
que:
a) A oficina esteja sem clientes ?
b) Um freguês tenha que esperar ?
c) Somente 2 setores estejam ociosos ?
d) Somente um setor esteja ocioso ?
e) Que proporção média do tempo um setor está ocioso ?
f) Qual é o tempo médio de espera de um freguês que chega ?
g) Qual o comprimento médio da linha de espera ?
12) Uma firma textil tem um grande número de máquinas idênticas cuja taxa de
falhas é estimada em 50 por semana. Existem atualmente 3 setores de reparos,
cada um tendo uma taxa de serviço de 20 máquinas por semana.
a) Qual a perda semanal, estimada, da companhia se cada máquina que não
trabalha dá uma perda semanal de $10.000 ?
b) Qual é a perda total do sistema se o custo semanal do sistema de atendimento
é $6.000 ?
c) Vale a pena aumentar o número de setores de atendimento para 4 ?
114 Teoria das Filas
13) Há 4 guichês em um banco para atender os clientes. A taxa de chegada dos
clientes é 60 por 6 horas de serviço. Em cada guichê um funcionário gasta um
tempo variável servindo os usuários, porém o tempo médio de atendimento é 20
minutos por cliente. Os clientes são atendidos a medida que chegam.
a) Quantas horas, por cada 30 horas de serviço de uma semana, um funcionário
gasta executando o seu serviço ?
b) Qual é o tempo médio que um cliente fica preso no sistema ?
c) Qual é a probabilidade de que um funcionário esteja esperando por um cli-
ente?
d) Qual o número esperado de funcionários sem trabalhar num certo instante ?
e) Supondo que cada funcionário recebe $5 por hora e se soubermos que para
cada cliente que tiver que esperar há uma perda de $0,25 por minuto, pergunta-
se o que é melhor: reduzir para 3, aumentar para 5 ou manter em 4 o número
de funcionários ?
14) Temos as seguintes informações quanto a chegadas de operários no guichet do
almoxarifado:
X ⇒ n
o
de chegadas em cada 10 minutos.
F
o
⇒ freqüência observada.
X 5 6 7 8 9 10 11 12 13 14 15
F
o
1 0 1 2 1 3 5 6 9 10 11
X 16 17 18 19 20 21 22 23 24 25
F
o
12 8 9 7 5 4 3 1 1 1
a) Calcule o número médio de chegadas para o intervalo de tempo igual a 10
minutos.
b) Podemos dizer que os resultados seguem uma Poisson com λ = 1, 6 chega-
das/min ?
15) O escritório de uma empresa aérea tem 2 funcionárias atendendo telefonemas
para reserva de voos. Além disso uma chamada pode ficar em espera até uma
das funcionárias estar disponível para atender. Se as 3 linhas estão ocupadas a
chamada recebe o sinal de ocupado e a reserva é perdida. As chamadas ocorrem
aleatoriamente (Poisson) a uma taxa média de uma por minuto. A duração de
cada ligação tem uma distribuição exponencial com uma média de 0,5 minuto.
Ache a probabilidade de que:
a) Uma chamada seja imediatamente atendida por uma funcionária.
b) A chamada ficará na linha de espera.
c) A chamada receberá o sinal de ocupado.
3.13 Exercícios 115
16) Uma estação de serviço espera um usuário a cada 4 minutos em média. O ser-
viço dura em média 3 minutos. Assumindo entrada Poisson e serviço exponen-
cial responda:
a) Qual o número médio de usuários esperando serviço ?
b) Quanto tempo um usuário esperará para ser servido ?
c) Qual a probabilidade de que um usuário fique menos de 15 minutos no sis-
tema ?
d) Qual a probabilidade que um usuário fique mais de 10 minutos no sistema ?
17) Suponha que em média 9 usuários cheguem a cada 5 minutos (Poisson) e o me-
canismo de serviço pode servir usuários a uma taxa média de 10 usuários a cada
5 minutos. O tempo de serviço é exponencial.
a) Qual o n
o
médio de usuários esperando serviço ?
b) Qual o tempo médio de espera na fila ?
c) Como a) e b) são afetados se a taxa de serviço é dobrada ?
18) Se usuários chegam para serviço de acordo com uma distribuição de Poisson a
taxa média de 5/dia, qual deve ser a taxa de serviço em média (exponencial)
para que o número de usuários no sistema seja menor que 4 ?
19) Considere um sistemas de filas com entrada Poisson. A taxa média de chegadas
é 4/hr. O tempo médio no sistema não deve exceder 1 hora. Qual deve ser a taxa
de serviço mínima ?
20) Uma máquina Xerox é operada por um funcionário que ganha $3 por hora. O
tempo de execução de cada tarefa varia de acordo com uma distribuição expo-
nencial com média de 6 minutos. Assuma chegada Poisson com taxa média de 5
tarefas/hora. Se um dia de 8 horas é usado determine:
a) A ociosidade (em %) da máquina.
b) O tempo médio de espera de uma tarefa no sistema.
c) Se o funcionário só ganhar por horas trabalhadas, qual o ganho médio diário
do funcionário ?
21) Durante a estação de caça, caçadores chegam a um posto de controle a taxa
média de 10/hr. Qual deve ser a taxa mínima de verificação para assegurar que
a espera do caçador não será maior que 20 minutos, quando a distribuição da
verificação é:
a) Constante
b) Exponencial
As chegadas são Poisson.
116 Teoria das Filas
22) No exemplo anterior que fração do tempo o posto estará ocupado ?
23) Uma loja tem 4 vendedores. Considere chegadas Poisson com uma média de
10 minutos entre chegadas. Também considere que qualquer vendedor pode
fornecer o serviço desejado para qualquer freguês. Se o tempo de fornecer serviço
é exponencialmente distribuído com uma média de 20 minutos/freguês, calcule
L, L
q
, W, W
q
e P
n
para n = 0, 1, 2, 3.
24) Uma barbearia de 1 barbeiro pode acomodar um máximo de 5 pessoas de cada
vez (4 esperando e 1 sendo atendida). Os fregueses chegam de acordo com uma
distribuição de Poisson com média de = 5/hr. O barbeiro atende em média 4/hr
(exponencial).
a) Que percentagem do tempo o barbeiro está ocioso ?
b) Qual a taxa de chegada efetiva de fregueses ?
c) Que fração de fregueses potenciais vão embora ?
d) Qual o n
o
esperado de fregueses esperando para serem atendidos ?
e) Quanto tempo em média um freguês fica no barbeiro ?
25) Um escritório tem uma única linha telefônica. As chamadas são feitas e rece-
bidas a taxa de 10/hr (Poisson). Cada chamada tem uma duração média de 3
minutos e variância de 2 minutos. Qual a probabilidade da linha estar ocupada
em um dado instante ?
26) Tarefas chegam a uma estação de serviço de acordo com uma distribuição de
Poisson com uma média de 10 minutos entre cada chegada. Cada tarefa deve
passar através de 3 fases de preparação e uma fase final de montagem. O tempo
gasto em cada fase é independente do tempo gasto em qualquer das outras fases
e é considerado ser exponencial com média de 2 minutos. Determine:
a) A duração média de cada tarefa no sistema.
b) O comprimento médio da fila.
27) As secretárias de 5 Departamentos em uma Universidade devem periodica-
mente copiar folhas em uma máquina xerox. A taxa de chegada é Poisson com
λ = 4/hr. A duração do serviço é exponencial com µ = 6/hr.
a) Qual a probabilidade da máquina estar ociosa ?
b) Qual é a probabilidade das 3 secretárias terem que usar a máquina ao mesmo
tempo ?
c) Qual o n
o
médio de secretárias usando a máquina ?
3.13 Exercícios 117
28) Um posto de gasolina com uma única bomba tem as seguintes informações: A
taxa média de chegada é de 1 freguês a cada 4 minutos. Um atendente pode
servir um freguês em 4 minutos. Dois atendentes na mesma bomba podem for-
necer serviço em 2,5 minutos. Cada freguês produz um lucro líquido de $0,70.
Chegadas e serviço são Poisson e exponencial respectivamente. Não mais que 2
fregueses esperarão na fila. O posto fica aberto 15 horas por dia.
Compare as alternativas: 1 bomba com um atendente, 1 bomba com 2 atenden-
tes e 2 bombas cada uma com 1 atendente.
29) Durante as horas de pico, um barbeiro tem fregueses chegando aleatoriamente
à taxa de um a cada 25 minutos. Ele tem registrado o tempo de serviço para 100
fregueses. Em horas a média é de 0,30 e o desvio padrão 0,092.
a) Durante as horas de pico, qual o tamanho esperado da fila ?
b) Se o tempo de serviço fosse de exatamente de 20 minutos, qual o tamanho
esperado da fila ?
30) Uma grande oficina de automóveis tem uma sala com um balcão onde os me-
cânicos vão apanhar as peças necessárias para consertar os carros. Os mecâni-
cos chegam aleatoriamente para serviço à taxa de 10 por hora. Os mecânicos
são atendidos aleatoriamente à taxa de 12 por hora. O tempo dos mecânicos é
avaliado em $7 por hora. Como os mecânicos estão reclamando, a oficina está
pensando em contratar assistentes para o balcão de peças. Um assistente deve
melhorar a taxa de serviço em 50%. Um segundo assistente deve melhorar a
taxa de serviço em 80%. Um assistente custa no entanto, $36 por dia.
Considerando o dia com 8 horas de trabalho, faça a justificativa econômica da
situação.
31) Um posto de gasolina com uma única bomba recebe fregueses aleatoriamente à
taxa de um cada 5 minutos. Um simples atendente pode prestar serviço com-
pleto em 4 minutos. Cada freguês dá em média um lucro de $1. Sabe-se que se
já existem 3 carros no sistema, os fregueses procuram outro posto. O posto está
aberto das 7:00 as 22:00 horas.
a) Considerando que as taxas de chegada e de serviço são aplicáveis para todas
as horas em que o posto está aberto, qual o lucro diário esperado ?
b) Se os fregueses esperassem na fila, independente do seu tamanho, qual seria
o lucro diário esperado ?
c) Se o posto contratasse um segundo atendente a taxa média de serviço poderia
ser reduzida para 2,5 minutos. Se o atendente ganha $2,50 por hora deve-se
contratá-lo ? (máximo de 3 carros no sistema).
d) Se o posto oferecesse aos fregueses bombons, chaveiros, belas recepcionistas,
etc..., a taxa de chegada passaria a um a cada 3 minutos mas em compensa-
ção o lucro por freguês passaria a $0,30. Considerando 1 atendente, deve-se
implantar esta política ?
e) E com 2 atendentes ?
118 Teoria das Filas
3.13.1 Solução dos exercícios
Estes exercícios foram resolvidos por Leonardo Barroso Gonçalves, aluno do Curso
de Estatística e da cadeira, em 1993.
Exercício 1
Modelo M/M/1
λ =
10
8 h
= 1, 25/h
Duração média do serviço = 30 minutos ⇒ µ = 2 / h
a) Chegadas para atendimento: FIFO
Proporção do tempo que o empregado fica ocioso:
P
0
= 1 −
λ
µ
= 1 −
1, 25
2
= 0, 375 ou 37,5% do tempo
Tempo esperado que o empregado fica ocioso por dia=0,375 × 8h = 3 horas
b) N
o
de relógios que estarão, em média, na frente de um relógio que acabou de
chegar:
L =
λ
µ −λ
=
1, 25
2 −1, 25
= 1, 66667 relógios
Exercício 2
Modelo M/M/1
Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h
duração média do serviço = 3 min ⇒ µ = 20/h
a) Probabilidade de que uma pessoa chegando ao centro não tenha que esperar:
P
0
= 1 −
λ
µ
= 1 −
6
20
= 0, 7 ou 70%
b) Probabilidade de que uma pessoa chegando ao centro tenha que esperar:
P(n > 0) = 1 −P
0
= 1 −0, 7 = 0, 3 ou 30%
c) Probabilidade de 3 pessoas no sistema:
P
3
= P
0

λ
µ

3
= 0, 7

6
20

3
= 0, 0189 = 1, 89%
d) λ = ? µ = 20/h
W
q
= 3 min = 0,05 h
W
q
=
λ
µ(µ −λ)
⇒0, 05 =
λ
20(20 −λ)
⇒λ = 10/h
Como W
q
≥ 3 min, então o fluxo de chegadas deve ser 10/h
Exercício 3
Modelo M/M/1
λ =
1
5 min
= 12/h
Duração média do serviço = 4 min ⇒ µ = 15/h
a) Probabilidade de que um freguês não tenha que esperar
P
0
= 1 −
λ
µ
= 1 −
12
15
= 1 −0, 8 = 0, 2 = 20%
b) Probabilidade de que se tenha uma fila de espera
P(n > 0) = 1 −P
0
= 1 −0, 2 = 0, 8 −80%
3.13 Exercícios 119
c) W
q
=
λ
µ(µ −λ)
=
12
15(15 −12)
= 0, 2666 horas = 16 min
Tempo médio que um freguês espera para ser servido = 16 min
Como tal tempo é superior a 2 min, a taxa de chegada de 12/h já justifica um 2
o
atendente.
d) Probabilidade de ter-se 4 clientes no sistema
P
4
= P
0

λ
µ

4
= 0, 2

12
15

4
= 0, 08192 = 8, 192%
Exercício 4
Semana = 6 dias Dia = 10 horas
Modelo M/M/1
λ = 80/semana µ = 120/semana
a) Proporção do tempo que a oficina fica ociosa
P
0
= 1 −
λ
µ
= 1 −
80
120
= 0, 3333 = 33, 33%
b) Probabilidade de n máquinas na oficina
P
0
= 0, 3333 = 33, 33%
P
n
=
1
3

80
120

n
P
1
= 0, 2222 = 22, 22% P
2
= 0, 148148 = 14, 8148%
P
3
= 0, 098765 = 9, 8765% P
4
= 0, 065584 = 6, 584%
c) N
o
esperado de máquinas quebradas na oficina em um certo instante
L =
λ
µ −λ
=
80
120 −80
= 2 máquinas
d) Tempo médio de espera de uma máquina que chega até ser atendida
W
q
=
λ
µ(λ −µ)
=
80
120(120 −80)
= 0, 016667

= 1 hora
e) W = W
q
+
1
µ
= 0, 016667 +
1
120
= 0, 025 semanas = 1, 5 horas
Exercício 5
Modelo M/M/1
λ = 0, 8/h Custo máquina parada = $25.00/h
a) Oficina A
µ = 1, 5/h
Custo do serviço = $25/h
Tempo médio que uma máquina fica parada:
W =
1
µ −λ
=
1
1, 5 −0, 8
= 1, 42857 horas
Custo= 1.42857h × $ 25/h= $35,71425
Custo da Fila = $35,71425 × 0,8/h = $ 28,5714/h
Custo total = $ 25+$ 28,5714 = $ 53,57/h
Oficina B
µ = 1, 4/h
Custo do serviço = $ 20/h
Tempo médio que uma máquina fica parada:
120 Teoria das Filas
W =
1
µ −λ
=
1
1, 4 −0, 8
= 1, 666 horas
Custo = 1,666h × $ 25/h = $ 41,66
Custo da fila = $41,66 × 0,8/h = $33,328/h
Custo total = $ 20+ $ 33,328 = $ 53,32/h
CT
B
< CT
A
⇒Oficina B é melhor
b) Oficina A
custo do serviço = $30/h
custo total = $ 15 + $28,5714 = $43,57/h
Oficina B
custo do serviço = $ 15/h
custo total = $ 18 + $ 33,328 = $ 51,32/h
CT
A
< CT
B
⇒Neste caso a oficina A seria melhor
Exercício 6
Modelo M/M/1
λ =
1
15 min
= 4/h
µ =
1
10 min
= 6/h
Lucro por cliente = $ 22,50
Proposta: µ

= 1/6 min = 10/h
Tempo médio de espera dos clientes inalterado ⇒W
q
= W

q
Situação Atual
λ = 4/h
µ = 6/h
W
q
=
λ
µ(µ −λ)
=
4
6(6 −4)
= 0, 3333 =
1
3
h
Lucro por cliente = $22,50
Lucro horário = $ 22,50 × 4/h = $ 90/h
Situação Proposta
λ

=?
µ

= 10/h
W

q
=
λ

µ



−λ

)
=
λ

10(10 −λ

)
W
q
= W

q

1
3
=
λ

10(10 −λ

)
⇒100 −10λ

⇒λ

=
100
13
= 7, 6923/h
Lucro por cliente = $ 22,50
Lucro horário = $22,50 × 7.6923/h=$ 173.08/h
Alteração no lucro horário: 173, 08 −90 = $83, 08
Exercício 7
Modelo M/G/1
λ = 10/min
µ = 12/min
a) Comprimento médio da fila de espera
3.13 Exercícios 121
L
q
=
λ
2
µ(µ −λ)
=
10
2
12(12 −10)
= 4, 167 veículos
b) Tempo que um veículo espera na estação de pedágio
W =
1
µ −λ
=
1
12 −10
= 0, 5 min
c) Máquina constante ⇒ µ = 12/min σ
2
= 0
ρ =
λ
µ
=
10
12
=
5
6
Comprimento médio da fila de espera
L
q
=
λ
2
σ
2

2
2(1 −ρ)
=
10
2
×0 +

5
6

2
2

1 −
5
6
= 2, 083 veículos
Tempo que um veículo espera na estação de pedágio
W =
L
q
λ
+
1
µ
=
2.083
10
+
1
12
= 0, 29 min
Exercício 8
λ = 0, 2/h
µ = 0, 5/h
a) Modelo M/M/1 população finita
M = 5 máquinas
S = 1
X =
λ
λ +µ
=
0, 2
0, 2 + 0, 5
= 0, 286 (Fator de Serviço) ≡ 0,290
Da tabela ⇒F = 0, 644
n
o
médio de máquinas esperando serem reparadas:
L
q
= M(1 −F) = 5(1 −0, 644) = 1, 78 máquinas
b) Modelo M/M/3 população finita.
M= 20 máquinas
µ = 5/h
X =
λ
λ +µ
=
0, 2
0, 2 + 5
= 0, 038 (Fator de Serviço)
Da tabela ⇒F = 0, 999
Número de máquinas esperando serem reparadas:
L
q
= N(1 −F) = 20(1 −0, 999) = 0, 02 máquinas
c) Tempo médio de espera de uma máquina para ser reparada:
λ
ef
= MFXµ
W
q
=
L
q
λ
ef
a) λ
ef
= 5(0, 644) × 0, 286 × 0, 5 = 0, 46046 máq/h ⇒ W
q
= 1, 78/0, 46046 =
3, 8657 hr
b) λ
ef
= 20(0, 999) × 0, 038 × 5 = 3, 7962 máq/h ⇒ W
q
= 0, 02/3, 7962 =
0, 00527 hr
Como W
a
q
> W
b
q
, temos que na situação A a máquina espera mais para ser repa-
rada
122 Teoria das Filas
Exercício 9
λ = 60/dia
µ = 25/dia
S = 3
Modelo M/M/3
a) Proporção média do tempo que uma estação está ocupada:
ρ =
λ

=
60
3(25)
= 0, 8 = 80%
Número de horas por dia em que uma estação de serviço está ocupada:
ρ ×8 h/dia = 0, 8 ×8h/dia = 6, 4 h/dia
b) Probabilidade de que todas as estações estejam ociosas em certo instante:
P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
P
0
=
1
1 +
60
25
+
1
2

60
25

2
+
1
6(1 −0, 8)

60
25

3
= 0, 05618 = 5, 618%
c) Comprimento médio da fila:
L
q
=

λ
µ

s+1
P
0
s s! (1 −ρ)
2
=

60
25

4
×0, 05618
3 ×6 ×(1 −0, 8)
2
= 2, 589 máquinas
d) Número médio de máquinas no sistema de reparos:
L = L
q
+
λ
µ
= 2, 589 +
60
25
= 4, 989 máquinas= 5 máquinas
Exercício 10
Modelo M/M/3
a) Probabilidade de termos somente uma estação ociosa:
P
n
=
1
n!

λ
µ

n
P
0
P
2
=
1
2

60
25

2
×0, 05618 = 0, 1618 = 16, 18%
Probabilidade de termos somente duas estações ociosas:
P
1
=

60
25

×0, 05618 = 0, 134832 = 13, 4832%
b) Número esperado de estações de reparo ociosas:
Seja k o número de estações ociosas.
E(k) = 0 × P(n ≥ 3) + 1 × P(n = 2) + 2 × P(n = 1) + 3 × P(n = 0)
= 0 +P
2
+ 2P
1
+ 3P
0
=0, 1618 + 2 × 0,134832 + 3 ×0, 05618 = 0, 6 estações
ou ⇒E(k) = (1 −ρ) × 3
c) Tempo médio que uma máquina que chega ao sistema tem que esperar:
W
q
=
L
q
λ
=
2, 589
60
= 0, 04315 dias
d) Máquina parada ⇒$300/dia
3.13 Exercícios 123
Tempo médio que uma máquina fica parada:
W =
L
λ
=
L
q
+
λ
µ
λ
=
λW
q
+
λ
µ
λ
= W
q
+
1
µ
= 0, 04315 +
1
25
= 0, 08315 dias
Custo = 0.8315 dia × $300/dia = $24,945
Custo da fila = $24.945 × 60/dia = $1496,70/dia
Perda diária estimada da companhia = $1496,70/dia
Exercício 11
λ = 180/dia
µ = 100/dia
S = 3
Modelo M/M/3
a) Probabilidade de que a oficina esteja sem clientes:
P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
λ
µ
=
180
100
= 1, 8
ρ =
λ

=
180
300
= 0, 6
P
0
=
1
1 + 1, 8 +
1, 8
2
2
+
1
6(1 −0, 6)
1, 8
3
= 0, 145985 = 14, 5985%
b) Probabilidade de que um freguês tenha que esperar:
P
n
=
1
n

λ
µ

n
P
0
P
1
= 1, 8(0, 145985) = 0, 262773
P
2
=
1, 8
2
2
(0, 145985) = 0, 236496
P(n ≥3) = 1 – P(n <3) = 1 – (P
0
+P
1
+P
2
) = 1 – (0,145985 + 0,262773 + 0,236496)
= 0,354746 = 35,4746%
c) Probabilidade de que somente dois setores estejam ociosos:
P(2 setores ociosos) = P
1
= 0,262773 = 26,2773%
d) Probabilidade de que somente um setor esteja ocioso:
P(1 setor ocioso) = P
2
= 0,236496 = 23,6496%
e) Proporção média do tempo que um setor está ocioso = 1 −ρ = 1 −0, 6 = 0, 4 =
40%
f) L
q
=

λ
µ

s+1
P
0
s s! (1 −ρ)
2
=
1, 8
4
×0, 145985
3, 6 ×(1 −0, 6)
2
= 0, 53212 clientes
Tempo médio de espera de um freguês que chega:
W
q
=
L
q
λ
=
0, 53212
180
= 0, 002956 dias
124 Teoria das Filas
g) Comprimento médio da fila de espera:
L
q
= 0, 53212 fregueses
Exercício 12
λ = 50/semana
µ = 20/semana
S = 3
Modelo M/M/3
a) Máquina parada = $10.000/semana
P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
λ
µ
=
50
20
= 2, 5
ρ =
λ

=
50
3(20)
=
5
6
P
0
=
1
1 + 2, 5 +
2, 5
2
2
+
1
6

1
6
2, 5
3
= 0, 044944
L
q
=

λ
µ

s+1
P
0
s s! (1 −ρ)
2
=
2, 5
4
×0, 044944
3 ×6 ×

1
6

2
= 3, 51125 máquinas
L = L
q
+
λ
µ
= 3, 51125 + 2, 5 = 6, 01125 máquinas
Tempo médio que uma máquina fica parada
W = L/λ = 6, 01125/50 = 0, 120225 máquinas
Perda semanal estimada da cia = 0,120225 semanas × $ 10.000/semana × 50/se-
mana = $ 60.112,50/semana
b) Custo do serviço = $ 6.000/semana
Custo de máquinas paradas = $ 6.000 + 60.112,50 = $ 66.112,50/semana
Perda total do sistema = $ 66.112,50/semana
c)
λ
µ
= 2, 5
ρ =
λ

=
50
4(20)
= 0, 625
S = 4
P
0
=
1
1 + 2, 5 +
2, 5
2
2
+
2, 5
3
6
+
1
24(1 −0, 625)
2, 5
4
= 0.07369
L
q
=
2, 5
2
×0, 073695
4 ×24 ×(1 −0, 625)
2
= 0, 053309 máquinas
3.13 Exercícios 125
L = 0, 053309 + 2, 5 = 3, 03309 máquinas
Custo semanal do sistema = 4 ×
$6.000
3
= $8.000
Tempo médio que uma máquina fica parada:
W =
L
λ
=
3, 03309
50
= 0, 0606618 semanas
Custo do serviço = $ 8.000/semana
Custo das máquinas paradas = 0,606618 semanas × $ 10.000/semana × 50/se-
mana = $ 30.330,90/semana
Custo total estimado = $ 8.000 + $ 30.330,90 = $ 38.330,90/semana
Perda total do sistema = $ 38.330,90/semana
Como com 4 setores a perda total diminui, então vale a pena aumentar o número
de setores para 4.
Exercício 13
S = 4
λ =
60
6h
= 10/h
Modelo M/M/4
Duração do serviço = 20 min ⇒µ = 3/h
a) Proporção média do tempo que um funcionário está executando o seu serviço.
ρ =
λ

=
10
4(3)
= 0, 83333
Número de horas por semana que um funcionário está ocupado
= 0,83333 × 30h/semana = 25h/semana
b) P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
P
0
=
1
1 +
10
3
+
1
2

10
3

2
+
1
6

10
3

3
+
1
24(1 −0, 83333)

10
3

4
= 0.0213
L
q
=

λ
µ

s+1
P
0
s s! (1 −ρ)
2
=

10
3

5
×0, 02131
4 ×24 ×(1 −0, 83333)
2
= 3, 28858 clientes
L = L
q
+
λ
µ
= 3, 28358 +
10
3
= 6, 621914 clientes
Tempo médio que um cliente fica preso no sistema
W = L/λ = 6, 621914/10 = 0, 66219 horas= 39, 7314 minutos
126 Teoria das Filas
c) Probabilidade de que um funcionário esteja esperando por um cliente (P

)
P
n
=
1
n

λ
µ

n
P
0
P
1
=
10
3
×0, 02131 = 0, 071033
P
2
=
1
2

10
3

2
0, 02131 = 0, 131543
P
3
=
1
6

10
3

3
0, 02131 = 0, 131543
P

= P(n < 4) = P
0
+ P
1
+ P
2
+ P
3
= 0, 02131 + 0, 071083 + 0, 11832289 +
0, 131543 = 0, 342275 = 34, 2275%
d) Número esperado de funcionários sem trabalhar num certo instante:
Seja k o número de funcionários ociosos
E
k
= 0×P(n ≥ 4)+1×P(n = 3)+2×P(n = 2)+3×P(n = 1)+4×P(n = 0)
E
k
= P
3
+ 2P
2
+ 3P
1
+ 4P
0
E
k
= 0, 131543 + 2(0, 1183889) + 3(0, 071033) + 4(0, 02131) = 0, 6667 funcio-
nários
e) Cada funcionário = $5/h
Cliente esperando = $0,25/min = $15/h
S = 3
Fila e Custo tendendo ao infinito pois λ > sµ.
S = 4
Custo do serviço = 4 ×$5/h = $20/h
Tempo médio que um cliente fica esperando na fila:
W
q
=
3, 28858
10
= 0, 328858 horas
Custo = 0, 328858h ×$15/h= $4, 9329
Custo da fila = $4, 9329 ×10/h = $49, 329/h
Custo total = $20 + $49, 329 = $69, 329/h
3.13 Exercícios 127
S = 5
P
0
=
1
1 +
10
3
+
1
2

10
3

2
+
1
6

10
3

3
+
1
24

10
3

4
+
1
120(1 −0, 6666)

10
3

5
=
0.03175
L
q
=

10
3

6
×0, 0239338
5 ×120 ×(1 −0, 6666)
2
= 0, 6533 clientes
Custo do serviço = 5 ×$5/h = $25/h
Tempo médio que um cliente fica esperando na fila:
W
q
=
0, 6533
10
= 0, 06533 horas
Custo = 0, 06533h ×$15/h= $0, 97995
Custo da fila = $0, 97995 ×10/h= $9, 7995/h
Custo total = $25 + $9, 7995 = $34, 7995
Como o menor custo total foi para S = 5, o melhor é aumentar o número de funci-
onários para 5.
128 Teoria das Filas
Exercício 14
a) X ⇒número de chegadas a cada 10 minutos (x
i
)
f
obs
⇒frequência observada
x
i
f
obs
x
i
× f
obs
5 1 5
6 0 0
7 1 7
8 2 16
9 1 9
10 3 30
11 5 55
12 6 72
13 9 117
14 10 140
15 11 165
16 12 192
17 8 136
18 9 162
19 7 133
20 5 100
21 4 84
22 3 66
23 1 23
24 1 24
25 1 25
Σ = 100 1561
Média = ¯ x =
¸
x
i
×f
obs
¸
f
obs
=
1561
100
= 15, 61 por 10 minutos
b) Poisson com λ = 1, 6 chegadas/min = 16 chegadas/10 min
Seja k = n
o
de observações
A frequência esperada teórica) é dada pela fórmula:
P(k) =
e
−λ
λ
k
k!
3.13 Exercícios 129
Chegadas por 10 min P(k) F
esp
F
obs
(F
obs
– F
esp
)
2
/ F
esp
5 0 0,1
=7,7
1
=8 0,011
6 0 0,3 0
7 0,01 0,6 1
8 0,01 1,2 2
9 0,02 2,1 1
10 0,03 3,4 3
11 0,05 5,0 5 0
12 0,07 6,6 6 0,06
13 0,08 8,1 9 0,10
14 0,09 9,3 10 0,05
15 0,10 9,9 11 0,12
16 0,10 9,9 12 0,45
17 0,09 9,3 8 0,18
18 0,08 8,3 9 0,06
19 0,07 7,0 7 0,00
20 0,06 5,6 5 0,06
21 0,04 4,3
=11,9
4
=10 0.303
22 0,03 3,10 3
23 0,02 2,20 1
24 0,01 1,40 1
25 0,01 0,90 1
1, 394 = χ
2
calc
H
0
: A distribuição observada segue uma distribuição de Poisson com λ = 16/10
min.
H
1
: A distribuição observada não se ajusta a uma distribuição de Poisson com λ =
16/10 min.
Nível de significância α = 0, 05
ν = 12 −1 −1 = 10
χ
2
tab
= 18, 31
Como χ
2
calc
< χ
2
tab
aceitamos H
0
, ou seja a distribuição observada segue uma dis-
tribuição de Poisson com λ = 16/10 min.
130 Teoria das Filas
Exercício 15
Modelo M/M/2 Fila finita
M = 3
S = 2
λ = 1/min
Duração média do serviço = 0, 5 min ⇒µ = 2/min
a) Probabilidade de uma chamada ser atendida por um funcionário (P)
a =
λ
µ
=
1
2
= 0, 5
c =
λ

=
1
2(2)
= 0, 25
P
0
=
1
1 + 0, 5 +
1
2
(0, 5)
2
+
1
2
(0, 5)
2
(0, 25)
= 0, 60377
P
n
=
1
n!
a
n
P
0
P
1
= 0, 5 ×0, 60377 = 0, 30188
P = P
0
+P
1
= 0, 60377 + 0, 301885 = 0, 905655 = 90, 5655%
b) Probabilidade da chamada ficar na linha de espera
P
2
=
1
2
(0, 5)
2
(0, 60377) = 0, 075 = 7, 5%
c) Probabilidade da chamada receber sinal ocupado
P
n
=
a
n
P
0
s! s
n−s
P
3
=
(0, 5)
3
(0, 60377)
2 ×2
= 0, 01887 = 1, 887%
Exercício 16
Modelo M/M/1
Intervalo entre as chegadas = 4 min ⇒λ = 15/h
Duração média do serviço = 3 min ⇒µ = 20/h
a) Número médio de usuários esperando o serviço.
L
q
=
λ
2
µ(µ −λ)
=
15
2
20(20 −15)
= 2, 25 usuários
b) Tempo médio de espera de um usuário para ser servido.
W
q
=
L
q
λ
=
2, 25
15
= 0, 15 horas = 9 minutos
c) Probabilidade de que um usuário fique menos de 15 min no sistema.
15 min = 0.25 h
ρ =
λ
µ
= 0, 75
P(T < 0, 25) = 1 −P(T ≥ 0, 25) = 1 −P(T > 0, 25) = 1 −e
−20(1−0,75)0,25
=
= 1 −e
−1,25
= 1 −0, 2865 = 0, 7135 = 71, 35%
d) Probabilidade de que um usuário fique mais de 10 minutos no sistema.
10 minutos = 0.16667 horas
P(T > 0, 166667) = e
−20(1−0,75)016667
= e
−0,83335
= 0, 4346 = 43, 46%
3.13 Exercícios 131
Exercício 17
Modelo M/M/1
λ =
9
5 min
= 1, 8/ min
µ =
10
5 min
= 2/ min
a) Número médio de usuários esperando o serviço.
L
q
=
λ
2
µ(µ −λ)
=
1, 8
2
2(2 −1, 8)
= 8, 1 usuários
b) Tempo médio de espera na fila.
W
q
=
L
q
λ
=
8, 1
1, 8
= 4, 5 minutos
c) µ

= 4/ min
L

q
=
1, 8
2
4(4 −1, 8)
= 0, 368 usuários
W

q
= L

q
λ = 0, 368/1, 8 = 0, 20 minutos
Exercício 18
Modelo M/M/1
λ = 4/ h
µ =?
L < 4 ⇒
5
µ −5
< 4 ⇒5 < 4µ −20 ⇒4µ > 25 ⇒µ > 6, 25/dia
Exercício 19
Modelo M/M/1
λ = 4/ h
µ =?
W < 1 ⇒W =
1
µ −λ

1
µ −4
< 1 ⇒1 < µ −4 ⇒µ < 5 h
Taxa de serviço mínima µ = 5/h
Exercício 20
λ = 5/ h
dia = 8 horas
Duração média do serviço = 6 min⇒µ = 10/h
a) Proporção média do tempo que a máquina fica ociosa.
P
0
= 1 −
λ
µ
= 1 −
5
10
= 0, 5 = 50%
b) Tempo médio de uma tarefa no sistema.
W =
1
µ −λ
=
1
10 −5
= 0, 2h = 12 min
c) Fator de utilização da estação de serviço.
ρ = 1 −P
0
= 0, 5
Ganho médio diário do funcionário = $3/h ×0.5 ×8h/dia = $12/dia
132 Teoria das Filas
Exercício 21
Modelo M/G/1
λ = 10/h µ = ?
Duração do serviço constante ⇒σ
2
= 0
W ≤ 20 min W ≤
1
3
h
W =
L
q
λ
+
1
µ
=
λ
2
σ
2

2
2(1 −ρ)λ
+
1
µ
=
λ
2

2

1 −
λ
µ
+
1
µ
=
100/µ
2
20

1 −
10
µ
+
1
µ
=
=
100
µ
2
×
µ
20µ −200
+
1
µ
=
5
µ(µ −10)
+
1
µ
=
5 +µ −10
µ(µ −10)
=
µ −5
µ(µ −10)
=
=
µ −5
µ(µ −10)
=
1
3

µ −5
µ(µ −10)

1
3
= 0 ⇒
3µ −15 −µ(µ −10)
3µ(µ −10)
= 0

3µ −15 −µ
2
+ 10µ
3µ(µ −10)
= 0
−µ
2
+ 13µ −15
3µ(µ −10)
= 0
Para dar zero o numerador tem que ser = 0, logo: µ
2
+ 13µ −15 = 0
Resolvendo temos:
µ
1
= 1, 28 ⇒a fila se tornaria infinita.
µ
2
= 11, 72
Logo µ ≥ 11, 72
b) Modelo M/M/1
λ = 10/h
µ =?
W ≤ 20 min ⇒W ≤
1
3
h
W =
1
µ −λ
⇒W ≤
1
3

1
µ −10
<
1
3
⇒µ −10 > 3 ⇒µ > 13/h
Exercício 22
Fração do tempo que o posto está ocupado.
a) ρ =
λ
µ
=
10
11, 72
= 0, 8532 = 85, 32%
b) ρ =
λ
µ
=
10
13
= 0, 7692 = 76, 92%
Exercício 23
Modelo M/M/4
s = 4
Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h
Duração média do serviço = 20 min ⇒ µ = 3/h
λ
µ
=
6
3
= 2
ρ =
λ

=
6
12
= 0, 5
3.13 Exercícios 133
P
0
=
1
¸
s−1
¸
n=0
1
n!

λ
µ

n

+
1
s!(1 −ρ)

λ
µ

s
P
0
=
1
1 + 2 +
1
2
2
2
+
1
6
2
3
+
1
24(1 −0, 5)
2
4
= 0, 13043 = 13, 043%
P
n
=
1
n!

λ
µ

n
P
0
P
1
= 2(0, 13043) = 0, 26086 = 26, 086%
P
2
=
1
2
2
2
(0, 13043) = 0, 26086 = 26, 086%
P
3
=
1
6
2
3
(0, 13043) = 0, 17391 = 17, 391%
L
q
=

λ
µ

S+1
P
0
s s! (1 −ρ)
2
=
2
5
(0, 13043)
4(24)(1 −0, 5)
2
= 0, 1739 fregueses
L = L
q
+
λ
µ
= 0, 1739 + 2 = 2, 1739 fregueses
W =
L
λ
= 2, 1739/6 = 0, 3623 horas
W
q
=
L
q
λ
=
0, 1739
6
= 0, 02888 horas
Exercício 24
Modelo M/M/1 Fila Finita
s = 1
M = 5
λ = 5/ h
µ = 4/ h
a) Percentagem do tempo que o barbeiro está ocioso.
P
0
=
1 −

λ
µ

1 −

λ
µ

M+1
λ = µ
P
0
=
1 −

5
4

1 −

5
4

6
= 0, 0888 = 8, 88%
b) Taxa de chegada efetiva de fregueses.
λ
ef
= µ(1 −P
0
) = 4(1 −0, 0888) = 3, 6448 fregueses/hora
c) Fração de fregueses potenciais que vão embora.
λ −λ
ef
λ
=
5 −3, 6448
5
= 0, 27104 = 27, 104%
134 Teoria das Filas
d) Número esperado de fregueses esperando para serem atendidos.
L =
λ
µ −λ

(M + 1)

λ
µ

M+1
1 −

λ
µ

M+1
λ = µ
L =
5
5 −4

6

5
4

6
1 −

5
4

6
= 3, 13167 fregueses
L
q
= L −(1 −P
0
) = 3, 13167 −(1 −0, 0888) = 2, 22047 fregueses
e) Tempo médio que um freguês fica no barbeiro.
W =
L
λ
ef
=
3, 13167
3, 6448
= 0, 8592 horas= 51, 55 min
Exercício 25
Modelo M/G/1
s = 1
λ = 10/ h
Tempo de serviço: média = 3 min ⇒µ = 20/h
σ
2
= 2 min = 0, 03333 horas
Probabilidade da linha estar ocupada em um dado instante
1 −P
0
= 1 −ρ = 1 −
λ
µ
= 1 −
10
20
= 0, 5 = 50%
Exercício 26
Modelo M/E
4
/1
k = 4
T = T
1
+T
2
+T
3
+T
4
Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h
1

= 2 min =
1
30
h ⇒
1

=
1
30
⇒µ = 7, 5/h
a) Duração média de cada tarefa no sistema.
W
q
=
(1 +k)λ
2kµ(µ −λ)
=
5(6)
2(4)(7, 5)(7, 5 −6)
= 0, 333 horas
W = W
q
+
1
µ
= 0, 333 +
1
7, 5
= 0, 46666 horas= 28 minutos
b) Comprimento médio da fila.
L
q
=
1 +k
2k
λ
2
µ(µ −λ)
= 2 tarefas
3.13 Exercícios 135
Exercício 27
Modelo M/M/1 População Finita
λ = 4/ h
µ = 6/ h
s = 1
M = 5
X =
λ
λ +µ
=
4
4 + 6
= 0, 4
Da tabela ⇒F = 0.493
a) Probabilidade da máquina estar ociosa.
sendo S = 1
ρ =
MFX
S
= 5(0, 493)(0, 4) = 0, 986
P
0
= 1 −ρ = 1 −0, 986 = 0, 014 = 1, 4% ou
P
0
=
1
S−1
¸
n−0
M!
(M −n)! n!

λ
µ

n
+
M
¸
n=S
M!
(M −n)! s! n!

λ
µ

n
P
0
=
1
1 + 5

4
6

+ 5(4)

4
6

2
+ 5(4)(3)

4
6

3
+ (5)(4)(3)(2)

4
6

4
+ (5)(4)(3)(2)

4
6

5
P
0
= 0, 014 = 1, 4%
b) Prob. das 3 secretárias terem que utilizar a máquina ao mesmo tempo.
P
n
= P
0
M!
(M −n)! s! s
n−s

λ
µ

n
s ≤ n ≤ M
P
n
= P
0
M!
(M −n)! s! s
n−s

λ
µ

n
s ≤ n ≤ M
P
3
= 0, 014183 ×3(4)(5)

4
6

3
= 0, 25214 = 25, 214%
c) Número médio de secretárias usando a máquina.
L
q
= M(1 −F) = 5(1 −0, 493) = 2, 535
λ
ef
= MFXµ = 5(0, 493)(0, 4)6 = 5, 916
W
q
=
L
q
λ
ef
=
2, 535
5, 916
= 0, 428499
W = W
q
+
1
µ
= 0, 42849 +
1
6
= 0, 5951656
L = λ
ef
W = 5, 916 ×0, 5951656 = 3, 52 secretárias
Exercício 28
Modelo M/M/1 Fila Finita
s = 1
λ =
1
4min
= 15/ h
1 atendente ⇒duração média do serviço = 4 min ⇒ µ
1
= 15/h
2 atendentes ⇒duração média do serviço = 2, 5 min ⇒ µ
2
= 24/ h
Freguês Lucro $0.70
M −1 = 2 ⇒M = 3
Dia = 15/ h
136 Teoria das Filas
Alternativa A
1 bomba com um atendente
P
0
=
1
M + 1
λ = µ
P
0
=
1
3 + 1
= 0, 25
λ
ef
= µ(1 −P
0
= 15(1 −0, 25) = 11, 25 fregueses/hora
Lucro = $0, 70/ freguês ×11, 25 fregueses/h ×15h/dia = $118, 13/dia
Alternativa B
1 bomba com 2 atendentes
P
0
=
1 −

λ
µ

1 −

λ
µ

M+1
λ = µ
P
0
=
1 −

15
24

1 −

15
24

4
= 0, 4425 = 44, 25%
λ
ef
= µ(1 −P
0
) = 24(1 −0, 4425) = 13, 38 fregueses/hora
Lucro = $0, 70/ freguês ×13, 38 fregueses/hora ×15h/dia = $140, 49/dia
Alternativa C
2 bombas, cada uma com 1 atendente
Modelo M/M/2 Fila Finita
P
0
=
1
s
¸
n=0
1
n!
a
n
+
1
s!
a
s
M
¸
n=s+1
c
n−s
s = 2
a =
λ
µ
=
15
15
= 1
c =
λ

=
15
30
= 0, 5
P
n
=
1
n!
a
n
P
0
P
1
= P
0
= 0, 36364
λ
ef
= µ

s −
s−1
¸
n=0
(s −n)P
n

= 15 {2 −(2)(0, 36364) + 0, 36364} = 13, 6362
fregueses/hora
Lucro = $0, 70/ freguês ×13, 6362fregueses/h ×15h/dia = $143, 18/dia
Melhor alternativa : C
3.13 Exercícios 137
Exercício 29
Modelo M/G/1
λ =
1
25 min
= 2, 4/ h
1
µ
= 0, 30h ⇒µ =
10
3
/h σ = 0, 092 ⇒σ
2
= 0, 00846
a) Tamanho esperado da fila.
L
q
=
λ
2
σ
2

2
2(1 −ρ)
=
(2, 4)
2
(0, 008464) + 0, 72
2
2(1 −0, 72)
= 1, 0128 fregueses
ρ =
λ
µ
=
24
10
3
= 0, 72
b) Tamanho esperado da fila.
σ
2
= 0
Duração do serviço = 20 min ⇒ µ = 3/ h
ρ =
λ
µ
=
24
3
= 0, 8
L
q
=
0, 8
2
2(1 −0, 8)
= 1, 6 fregueses
Exercício 30
λ = 10/h Tempo mecânico ⇒$7/h
µ = 12/h Custo assistente ⇒$36/ dia
Dia = 8 horas
Situação atual
Modelo M/M/1
Tempo médio que um mecânico gasta no sistema.
W =
1
µ −λ
=
1
12 −10
= 0, 5 h
Custo da fila = 0.5 h ×$7/ h ×10/h ×8h/ dia = $280/dia = Custo total
Situação com 1 assistente
Modelo M/M/1
Nova taxa µ = 18/h
Custo do serviço = $36/dia
Tempo médio que um mecânico gasta no sistema ⇒W =
1
18 −10
= 0, 15 horas
Custo da fila = 0.125 h ×$7/h ×10/h ×8h/dia = $70/dia
Custo total = $36 + $70 = $106/dia
Situação com 2 assistentes
Modelo M/M/1
Nova taxa µ = 21, 6/h
Custo do serviço = 2 ×$36 = $72/dia
Tempo médio que um mecânico gasta no sistema ⇒ W =
1
21, 6 −10
= 0, 0862
horas
Custo da fila = 0, 0862 h ×$7/h ×10/h ×8h/dia = $48, 27/dia
138 Teoria das Filas
Custo total = $72 + $48, 27 = $120, 27/dia
A melhor alternativa é a com 1 assistente.
Exercício 31
λ =
1
5 min
= 12/h
1 atendente
Duração média do serviço = 4 min ⇒ µ = 15/h
Lucro por freguês = $1
Dia = 15 h
a) Lucro diário.
Modelo M/M/1 Fila Finita
M = 3
P
0
=
1 −

λ
µ

1 −

λ
µ

M+1
λ = µ
P
0
=
1 −

12
15

1 −

12
15

4
= 0, 33875
λ
ef
= µ(1 −P
0
) = 15(1 −0, 33875) = 9, 91875 fregueses/hora
Lucro = $1/ freguês ×9, 91875 fregueses/h ×15h/dia = $148, 78/dia
b) Modelo M/M/1 (Fila Infinita)
Lucro = $1/freguês ×12/h ×15h/dia = $180/dia
c) Lucro diário (2 atendentes - 1 bomba)
Modelo M/M/1 Fila Finita
M = 3
Nova taxa ⇒µ =
1
2, 5 min
= 24/h
P
0
=
1 −

12
24

1 −

12
24

4
= 0, 5333
λ
ef
= µ(1 −P
0
) = 24(1 −0, 5333) = 11, 2 fregueses/hora
Lucro “bruto” = $1/ freguês ×11, 2 fregueses/h ×15h/dia = $168/dia
Custo do segundo atendente = $2, 50/h ×15h/dia = $37, 50/ dia
Lucro “líquido” = $168 −$37, 50 = $130, 50/dia
Não, pois o lucro diminuiu.
d) Lucro Diário (Brindes - 1 atendente)
Modelo M/M/1 Fila Finita M = 3
Nova taxa ⇒λ =
1
3 min
= 20/h
µ = 15/h
3.13 Exercícios 139
Novo lucro ⇒$0, 30/freguês
P
0
=
1 −

20
15

1 −

20
15

4
= 0, 15429
λ
ef
= µ(1 −P
0
) = 15(1 −0, 15429) = 12, 68565/hora
Lucro = $0, 30/freguês ×12.68565 freg/hora ×15h/dia = $57, 09/dia
Não pois o lucro diminuiu
e) Lucro diário (brindes/2 assistentes - 1 bomba)
Modelo M/M/1 Fila finita
M = 3
µ = 24/h
λ = 20/h
P
0
=
1 −

20
24

1 −

20
15

4
= 0, 3219
λ
ef
= µ(1 −P
0
) = 24(1 −0, 319) = 16, 2744 fregueses/hora
Lucro “bruto” = $0, 30/freguês ×16, 2744 fregueses/h ×15h/dia = $73, 23/dia
Custo do 2
o
assistente = $37, 50/dia
Lucro “líquido” = $73, 23 −$37, 50 = $35, 73/dia
Não, pois o lucro diminuiu.
140 Teoria das Filas
Capítulo 4
Introdução à Simulação
Uma simulação
1
é a imitação, durante determinado período de tempo, da operação
de um sistema ou de um processo do mundo real. Feita a mão (raramente) ou em
um computador (quase sempre), a simulação envolve a geração de uma história ar-
tificial do sistema, e a partir desta história artificial a inferência de como o sistema
real funcionaria. O comportamento do sistema é estudado pela construção de um
Modelo de Simulação. Este modelo normalmente toma a forma de um conjunto de
considerações relacionadas a operação do sistema. Estas considerações são expres-
sas através de relações matemáticas, lógicas e simbólicas entre as entidades, ou
objetos de interesse, do sistema. Uma vez construído e validado, um modelo pode
ser usado para investigar uma grande quantidade de questões do tipo “e se...” sobre
o sistema do mundo real. Alterações no sistema podem ser inicialmente simuladas
para se prever as consequências no mundo real. A Simulação também pode ser
usada para estudar sistemas no estágio de projeto, ou seja antes do sistema ser
construído. Assim, a Simulação pode usada tanto como uma ferramenta de aná-
lise para prever o efeito de mudanças em sistemas já existentes, quanto como uma
ferramenta para prever a performance de novos sistemas sobre as mais variadas
circunstâncias.
4.1 Vantagens e Desvantagens da Simulação
As vantagens principais da simulação são:
• Novas políticas, procedimentos operacionais, regras de negócio, fluxos de in-
formação, etc..., podem ser estudadas sem se alterar o mundo real.
• Novos equipamentos, layouts, sistemas de transporte, etc..., podem ser testa-
dos sem se comprometer recursos na sua aquisição.
• Hipóteses sobre como e porque certos fenômenos ocorrem podem ser testados
visando verificar sua praticabilidade.
1
Este capítulo é um resumo do material contido na apostila de Simulação que pode ser encon-
trada no site www.mpsantos.com.br.
142 Introdução à Simulação
• O tempo pode ser comprimido ou expandido permitindo acelerar ou retardar
o fenômeno sob investigação.
• Pode-se entender melhor sob a interação das variáveis do sistema.
• Pode-se entender melhor a participação das variáveis na performance do sis-
tema.
• Um modelo de simulação pode ajudar a entender como um sistema funciona
como um todo, em relação a como se pensa que o sistema opera individual-
mente.
• Questões do tipo “e se...” podem ser respondidas. Isto é extremamente útil na
fase de design de um projeto.
As desvantagens a serem consideradas são:
• A construção de Modelos de Simulação requer treinamento especial. É uma
arte que é aprendida com tempo e experiência. Além disto se 2 modelos são
construídos por 2 profissionais competentes, eles terão semelhanças, mas será
altamente improvável que sejam iguais.
• Os resultados de uma Simulação podem ser difíceis de interpretar. Como
a maioria das saídas de uma simulação são variáveis aleatórias (elas estão
normalmente baseadas em entradas aleatórias), é difícil determinar se uma
observação é o resultado do relacionamento entre as variáveis do sistema ou
consequência da própria aleatoriedade.
• A construção e análise de Modelos de Simulação pode consumir muito tempo
e, como consequência, muito dinheiro. Economizar por sua vez pode levar a
modelos incompletos.
• A Simulação é usada em muitos casos onde uma solução analítica é possível.
A simulação não dá resultados exatos.
4.2 Áreas de aplicação
Existem inúmeras áreas de aplicação da simulação. A seguir estão listadas algu-
mas das mais importantes:
• Simulação das operações de uma companhia aérea para testar alterações em
seus procedimentos operacionais.
• Simulação da passagem do tráfego em um cruzamento muito grande, onde
novos sinais estão para ser instalados.
• Simulação de operações de manutenção para determinar o tamanho ótimo de
equipes de reparo.
4.3 Componentes de um Sistema 143
• Simulação de uma siderúrgica para avaliar alterações nos seus procedimentos
operacionais.
• Simulação da economia de um setor de um país para prever o efeito de mu-
danças econômicas.
• Simulação de batalhas militares visando avaliar o desempenho de armas es-
tratégicas.
• Simulação de sistemas de distribuição e controle de estoque, para melhorar o
funcionamento destes sistemas.
• Simulação de uma empresa como um todo para avaliar o impacto de grandes
mudanças ou como treinamento para seus executivos. (Business Games)
• Simulação de sistemas de comunicações para determinar o que é necessário
para fornecer um determinado nível de serviço.
• Simulação de uma barragem em um determinado rio para avaliar os proble-
mas advindos com a sua construção.
• Simulação de uma linha de produção em determinada indústria, para avaliar
efeitos de mudanças previstas no processo produtivo.
4.3 Componentes de um Sistema
Um Sistema é definido como um grupo de objetos que estão juntos em alguma
interação ou interdependência, objetivando a realização de algum objetivo. Um
exemplo poderia ser um sistema de produção de automóveis. As máquinas, compo-
nentes, peças e trabalhadores operam em conjunto, em uma linha de montagem,
visando a produção de veículos de qualidade.
De forma a entender e analisar um sistema, alguns termos precisam ser definidos:
Uma Entidade é um objeto de interesse no sistema.
Um Atributo é uma propriedade de uma entidade.
Uma Atividade é algo que, para ser realizado, consome uma certa quantidade de
tempo.
OEstado do sistema é definido como sendo como a coleção de variáveis necessárias
para descrever o sistema em um dado instante.
Um Evento é definido como a ocorrência instantânea que pode mudar o estado do
sistema.
O termo Endógeno é usado para descrever atividades e eventos ocorrendo dentro
do sistema e Exógeno é usado para descrever atividades e eventos que ocorrem
fora do sistema.
A tabela a seguir mostra alguns exemplos para os termos definidos acima:
Exemplo Exemplo Exemplo Exemplo Exemplo
Sistema Entidade Atributo Atividade Evento Variáveis Estado
Banco Clientes Saldo na C/C Depositar Chegada à Agência N
o
clientes Esperando
Produção Máquinas Taxa Quebra Soldagem Quebra Máquinas Paradas
Comunicação Mensagens Tamanho Transmissão Chegada Mensagens Esperando
UERJ Aluno CR Matrícula Cadeira Cancelada N
o
Alunos Matriculados
144 Introdução à Simulação
4.4 Tipos de Modelos
Modelos de Simulação podem ser Estáticos ou Dinâmicos.
Um modelo de simulação estática, algumas vezes chamado de Simulação de Monte
Carlo, é um modelo onde a passagem do tempo é irrelevante.
Modelos de Simulação Dinâmicos representam sistemas cujos resultados variam
com a passagem do tempo.
Um modelo de simulação pode ser ainda Determinístico ou Estocástico.
Modelos de simulação que não contémnenhuma variável aleatória são classificados
como determinísticos, ou seja, para um conjunto conhecido de dados de entrada
teremos um único conjunto de resultados de saída.
Um modelo estocástico de simulação tem uma ou mais variáveis aleatórias como
entrada. Estas entradas aleatórias levam a saídas aleatórias que podem somente
ser consideradas como estimativas das características verdadeiras de um modelo.
Assim, por exemplo, a simulação (estocástica) do funcionamento de uma agência
bancária envolve variáveis aleatórias como o intervalo entre chegadas e a duração
dos serviços prestados. Logo, medidas como o número médio de clientes esperando
e o tempo médio de espera de um cliente, devem ser tratadas como estimativas
estatísticas das medidas reais do sistema.
4.5 Modelos Discretos e Contínuos
Os modelos de simulação dinâmicos podem ser Discretos ou Contínuos. Em uma
simulação discreta, considera-se somente os eventos onde há alteração do sistema,
ou seja, o tempo decorrido entre alterações do estado do sistema não é relevante
para a obtenção dos resultados da simulação, embora o tempo nunca pare. Al-
guns autores a chamam de Simulação de Eventos Discretos, enfatizando assim
que a discretização se refere apenas à ocorrência dos eventos ao longo do tempo.
Um exemplo seria a simulação de uma agência bancária onde entre a chegada (ou
a saída) de clientes, o estado do sistema não se altera.
Numa Simulação Contínua o sistema se altera a cada fração de tempo. Exemplos
clássicos são a simulação de um avião voando e a passagem de água por uma bar-
ragem.
4.6 Exemplos de modelos de Simulação 145
4.6 Exemplos de modelos de Simulação
Para entender como funciona uma simulação, vamos ver alguns exemplos simples:
4.6.1 Quebra de rolamentos
Uma grande máquina industrial tem 3 rolamentos diferentes que quebram de tem-
pos em tempos. A probabilidade da vida útil (em horas de operação) de um rola-
mento está dada na tabela abaixo:
Vida do Rolamento (horas) Probabilidade
1.000 0.10
1.100 0.13
1.200 0.25
1.300 0.13
1.400 0.09
1.500 0.12
1.600 0.02
1.700 0.06
1.800 0.05
1.900 0.05
Quando um rolamento quebra, a máquina para e um mecânico é chamado para
instalar um novo rolamento no lugar do que quebrou.
O tempo que o mecânico demora para chegar ao rolamento quebrado também é
uma variável aleatória, com a distribuição dada na tabela abaixo:
Tempo de espera (minutos) Probabilidade
5 0.60
10 0.30
15 0.10
Cada minuto que a máquina fica parada custa $5 e o custo do mecânico é de $1/mi-
nuto trabalhado substituindo rolamento. O mecânico demora 20 minutos para tro-
car 1 rolamento, 30 minutos para trocar 2 e 40 minutos para trocar os 3. Cada
rolamento novo custa $20. Alguém sugeriu que ao quebrar um dos rolamentos, se
fizesse logo a troca dos 3. Deseja-se avaliar a situação do ponto de vista econômico.
Solução
Temos que comparar o custo da alternativa atual e da alternativa proposta. Pre-
cisamos estabelecer um horizonte de tempo para fazer esta comparação. Conside-
rando que a menor vida útil de um rolamento é 1.000 horas (mais de 1 mês), vamos
estabelecer um horizonte de 20.000 horas (um pouco mais de 2 anos) para fazer a
comparação.
Como a vida útil dos rolamentos e a espera pelo mecânico são variáveis aleatórias
146 Introdução à Simulação
que seguem as distribuições vistas anteriormente, temos que relacionar àquelas
distribuições com uma tabela de números aleatórios.
Assim sendo, vamos imaginar que temos um gerador de números aleatórios capaz
de gerar qualquer inteiro entre 0 e 99, ou seja 100 números. Vamos atribuir a cada
duração de vida útil uma faixa destes números que me garanta que a distribuição
probabilística seja mantida.
Como a 1
a
vida útil (1.000 horas) tem 10% de probabilidade de ocorrer, vamos atri-
buir a esta duração a faixa de 0 a 9 inclusive, ou seja 10 números (10% dos 100
números). Para a 2
a
duração provável (1.100 horas), com 13% de probabilidade de
ocorrência, vamos atribuir a faixa de 10 a 22 inclusive, ou seja 13 números. Po-
demos continuar para as demais durações prováveis dos rolamentos como pode ser
visto na tabela a seguir, ressaltando que a probabilidade acumulada dá o limite das
faixas escolhidas.
Vida do Probabilidade N
o
Aleatório
Rolamento (horas) Probabilidade Acumulada Atribuído
1.000 0.10 0.10 0 – 9
1.100 0.13 0.23 10 – 22
1.200 0.25 0.48 23 – 47
1.300 0.13 0.61 48 – 60
1.400 0.09 0.70 61 – 69
1.500 0.12 0.82 70 – 81
1.600 0.02 0.84 82 – 83
1.700 0.06 0.90 84 – 89
1.800 0.05 0.95 90 – 94
1.900 0.05 1.00 95 – 99
Tabela semelhante pode ser construída para a espera pela chegada do mecânico.
Tempo de Probabilidade N
o
Aleatório
Espera (minutos) Probabilidade Acumulada Atribuído
5 0.60 0.60 00 – 59
10 0.30 0.90 60 – 89
15 0.10 1.00 90 – 99
Com os dados das tabelas acima, podemos executar a simulação que, neste caso,
foi realizada numa planilha EXCEL, apresentando os seguintes resultados para o
rolamento 1:
4.6 Exemplos de modelos de Simulação 147
R O L A M E N T O 1
Vida Vida Acumulada Espera
Seqüencia N
o
Aleatório (Horas) (Horas) N
o
Aleatório (Min)
1 62 1.400 1.400 61 10
2 85 1.700 3.100 10 5
3 89 1.700 4.800 46 5
4 24 1.200 6.000 28 5
5 99 1.900 7.900 55 5
6 27 1.200 9.100 64 10
7 89 1.700 10.800 63 10
8 12 1.100 11.900 75 10
9 2 1.000 12.900 54 5
10 34 1.200 14.100 67 10
11 7 1.000 15.100 90 15
12 75 1.500 16.600 14 5
13 22 1.100 17.700 80 10
14 97 1.900 19.600 84 10
15 37 1.200 20.800 9 5
¸
=120
Podemos observar na planilha que para cada seqüencia ou seja, rolamento novo, é
gerado um número aleatório que indica qual a vida útil daquela rolamento. Tendo
quebrado, após esta vida útil, o mecânico é chamado e um 2
o
número aleatório é
gerado para definir o tempo de espera até a troca do rolamento ser iniciada.
Quando a vida acumulada ultrapassa 20.000 horas, ou seja a duração da simulação,
paramos a execução do processo.
Processos semelhantes foram executados para os outros 2 rolamentos, como visto a
seguir.
148 Introdução à Simulação
R O L A M E N T O 2
Vida Vida Acumulada Espera
Seqüencia N
o
Aleatório (Horas) (Horas) N
o
Aleatório (Min)
1 89 1.700 1.700 58 5
2 47 1.200 2.900 88 10
3 60 1.300 4.200 20 5
4 3 1.000 5.200 98 15
5 40 1.200 6.400 26 5
6 64 1.400 7.800 97 15
7 9 1.000 8.800 41 5
8 30 1.200 10.000 79 10
9 32 1.200 11.200 0 5
10 8 1.000 12.200 3 5
11 94 1.800 14.000 58 5
12 66 1.400 15.400 84 10
13 53 1.300 16.700 61 10
14 17 1.100 17.800 43 5
15 72 1.500 19.300 15 5
16 0 1.000 20.300 97 15
¸
= 130
R O L A M E N T O 3
Vida Vida Acumulada Espera
Seqüencia N
o
Aleatório (Horas) (Horas) N
o
Aleatório (Min)
1 49 1.300 1.300 44 5
2 26 1.200 2.500 45 5
3 2 1.000 3.500 72 10
4 83 1.600 5.100 87 10
5 21 1.100 6.200 19 5
6 20 1.100 7.300 81 10
7 60 1.300 8.600 56 5
8 34 1.200 9.800 74 10
9 63 1.400 11.200 93 15
10 69 1.400 12.600 36 5
11 44 1.200 13.800 71 10
12 76 1.500 15.300 97 15
13 55 1.300 16.600 59 5
14 85 1.700 18.300 81 10
15 21 1.100 19.400 21 5
16 5 1.000 20.400 1 5
¸
=130
4.6 Exemplos de modelos de Simulação 149
Com os dados obtidos na simulação, podemos calcular o custo da situação atual:
Custo dos rolamentos = (15 + 16 + 16) × $20 = $940
Custo da máquina parada esperando pelo mecânico = (120 + 130 + 130) × $5 =
$1.900
Custo da máquina parada trocando rolamento = (15 + 16 + 16) × 20 ×$5 = $4.700
Custo do mecânico = (15 + 16 + 16) × 20 × $1 = $940
Custo Total = 940 + 1.900 + 4.700 + 940 = $8.480
A simulação da situação proposta apresentou os seguintes resultados:
ROL. 1 ROL. 2 ROL. 3
Vida Vida Vida 1
a
Vida ESPERA
Seq. NA hr NA (hr) NA (hr) Quebra Acum. NA (Min)
1 96 1.900 2 1.000 34 1.200 1.000 1.000 21 5
2 70 1.500 7 1.000 47 1.200 1.000 2.000 36 5
3 96 1.900 46 1.200 49 1.300 1.200 3.200 21 5
4 48 1.300 17 1.100 42 1.200 1.100 4.300 7 5
5 32 1.200 93 1.800 20 1.100 1.100 5.400 58 5
6 36 1.200 94 1.800 98 1.900 1.200 6.600 83 10
7 41 1.200 17 1.100 53 1.300 1.100 7.700 14 5
8 71 1.500 2 1.000 20 1.100 1.000 8.700 75 10
9 4 1.000 22 1.100 86 1.700 1.000 9.700 5 5
10 69 1.400 21 1.100 0 1.000 1.000 10.700 65 10
11 13 1.100 89 1.700 58 1.300 1.100 11.800 15 5
12 36 1.200 12 1.100 66 1.400 1.100 12.900 12 5
13 75 1.500 57 1.300 29 1.200 1.200 14.100 32 5
14 76 1.500 78 1.500 95 1.900 1.500 15.600 2 5
15 71 1.500 5 1.000 86 1.700 1.000 16.600 31 5
16 98 1.900 43 1.200 22 1.100 1.100 17.700 51 5
17 98 1.900 47 1.200 60 1.300 1.200 18.900 20 5
18 68 1.400 61 1.400 57 1.300 1.300 20.200 35 5
¸
=105
NA = N
o
aleatório
Feita a simulação da situação proposta, podemos calcular os custos:
Custo dos rolamentos = (18 × 3) × $ 20 = $1.080
Custo da máquina parada esperando pelo mecânico = 105 × $5 = $525
Custo da máquina parada trocando rolamento = 18 × 40 × $5 = $3.600
Custo do mecânico = 18 × 40 × $1 = $720
Custo Total =1.080+ 525 + 3.600 + 720 = $5.925
Assim a simulação nos mostrou que a situação proposta é bem melhor em termos
econômicos.
150 Introdução à Simulação
4.6.2 Fila com uma estação de serviço
Uma loja tem somente 1 atendente. Os fregueses chegam aleatoriamente com in-
tervalo, entre eles, variando de 1 a 8 minutos. Cada valor possível do intervalo
entre chegadas tem a mesma probabilidade de ocorrência, como mostrado na ta-
bela a seguir:
Tempo entre chegadas (minutos) Probabilidade
1 0.125
2 0.125
3 0.125
4 0.125
5 0.125
6 0.125
7 0.125
8 0.125
A duração do atendimento aos clientes varia de 1 a 6 minutos com probabilidades
mostradas na tabela a seguir:
Durac, ão do servic, o (minutos) Probabilidade
1 0.10
2 0.20
3 0.30
4 0.25
5 0.10
6 0.05
Como no exemplo anterior, temos que construir tabelas relacionando as probabili-
dades com números aleatórios gerados:
Tempo entre Probabilidade N
o
Aleatório
chegadas (min) Probabilidade Acumulada Atribuído
1 0.125 0.125 000 – 124
2 0.125 0.250 125 – 249
3 0.125 0.375 250 – 374
4 0.125 0.500 375 – 499
5 0.125 0.625 500 – 624
6 0.125 0.750 625 – 749
7 0.125 0.875 750 – 874
8 0.125 1.000 875 – 999
4.6 Exemplos de modelos de Simulação 151
Durac, ão do Probabilidade N
o
Aleatório
servic, o (min) Probabilidade Acumulada Atribuído
1 0.10 0.10 0 – 9
2 0.20 0.30 10 – 29
3 0.30 0.60 30 – 59
4 0.25 0.85 60 – 84
5 0.10 0.95 85 – 94
6 0.05 1.00 95 – 99
A simulação para os primeiros 20 clientes apresentou os seguintes resultados:
Intervalo entre Instante Durac, ão Início Espera Fim do Tempo total Tempo ocioso
NA chegadas(min) chegada NA servic, o servic, o fila servic, o na loja(min) atendente(min)
1 0 84 4 0 0 4 4 0
2 913 8 8 9 1 8 0 9 1 4
3 727 6 14 74 4 14 0 18 4 5
4 15 1 15 53 3 18 3 21 6 0
5 948 8 23 17 2 23 0 25 2 2
6 309 3 26 79 4 26 0 30 4 1
7 922 8 34 91 5 34 0 39 5 4
8 753 7 41 67 4 41 0 45 4 2
9 235 2 43 89 5 45 2 50 7 0
10 302 3 46 38 3 50 4 53 7 0
11 109 1 47 32 3 53 6 56 9 0
12 93 1 48 94 5 56 8 61 13 0
13 607 5 53 79 4 61 8 65 12 0
14 738 6 59 5 1 65 6 66 7 0
15 359 3 62 79 5 66 4 71 9 0
16 888 8 70 84 4 71 1 75 5 0
17 108 1 71 52 3 75 4 78 7 0
18 212 2 73 55 3 78 5 81 8 0
19 493 4 77 30 2 81 4 83 6 0
20 535 5 82 50 3 83 1 86 4 0
¸
= 68 56 124 18
Podemos, a partir da simulação, inferir alguns resultados:
152 Introdução à Simulação
O tempo de espera médio de um cliente foi de 2,8 minutos. Este valor é encontrado
de :
Tempo médio de espera (min) =
Tempo total dos clientes na fila (min)
Número total de clientes
=
56
20
= 2, 8 minutos
A probabilidade de que um cliente tenha que esperar na fila é 65%. Isto vem de:
Probabilidade(espera) =
Número de clientes que esperaram
Número total de clientes
=
13
20
= 0, 65
A proporção de tempo que o atendente fica ocioso é 21%. Vem de:
Prob. do atendente estar ocioso =
Tempo total de ociosidade (min)
Duração da Simulação
=
18
86
= 0.21
O atendente está ocupado 100 −21 = 79% do tempo.
O tempo de serviço médio é de 3.4 minutos. Podemos obtê-lo de:
Tempo de serviço médio (min) =
Duração total do serviço
Número total de clientes
=
68
20
= 3.4 minutos
Este resultado pode ser comparado com o tempo de serviço esperado achando-se a
média da distribuição do tempo de serviço usando a equação:
E(s) =

¸
s=0
sp(s)
Temos então:
1(0.10) + 2(0.20) + 3(0.30) + 4(0.25) + 5(0.10) + 6(0.05) = 3.2 minutos
O resultado da simulação é um pouco maior porque o tamanho da simulação foi
pequeno. Quanto maior a duração da simulação mais o resultado se aproximará de
3.2 minutos.
Alguém que fosse tomar decisões estaria interessado nos resultados obtidos acima.
Obviamente seria necessário uma simulação mais demorada para se conseguir re-
sultados mais precisos.
Entretanto, algumas inferências podem ser obtidas: A maioria dos clientes tem
que esperar mas a espera não é excessiva. O atendente não fica muito tempo oci-
oso.
O objetivo a ser alcançado vai depender do balanço entre o custo de espera e o custo
de se colocar mais atendentes.
4.7 A geração de Números Aleatórios 153
4.7 A geração de Números Aleatórios
Pudemos reparar nos exemplos acima que a chave para simular eventos aleatórios
discretos é a geração de números aleatórios. Como se usa o computador para fazer
a simulação, precisamos de métodos rápidos e eficientes para gerá-los.
Os números aleatórios, gerados em computador, não são realmente aleatórios
pois veremos mais adiante que eles são gerados em seqüências que podem ser
reproduzidas, o que viola o princípio básico da aleatoriedade.
Como contornar este fato ? Se os números passam por uma série de testes
estatísticos de aleatoriedade então, para efeitos práticos, podemos considerá-
los como se fossem realmente aleatórios.
Por este fato eles são conhecidos como números Pseudo-aleatórios. É comum se
usar, em simulação, a expressão números aleatórios mas considere isto, sempre,
como um sinônimo de números pseudo-aleatórios.
4.7.1 Propriedades desejáveis de umgerador de números ale-
atórios
Um gerador de números aleatórios deveria possuir todas as características abaixo:
1. Aleatoriedade
É essencial que a seqüência gerada exiba as propriedades dos números ver-
dadeiramente aleatórios. Este comportamento aleatório deve ser confirmado
por testes estatísticos.
2. Grande Período
Todos os geradores de números aleatórios são baseados no uso de fórmulas
determinísticas precisas. Estas fórmulas fazem com que, a partir de um va-
lor inicial chamado semente, seja gerada uma série de números aleatórios
(pseudo-aleatórios). Em um determinado ponto da série, voltamos a semente
e como a série é gerada por uma fórmula, a série, obviamente, se repete.
A quantidade de números gerados até a seqüencia começar a se repetir é
chamada de Período.
Sempre desejamos o maior período possível. Para propósitos práticos o pe-
ríodo deve ser, no mínimo, grande o suficiente para não se repetir durante
uma simulação.
3. Eficiência Computacional
Como alguns modelos de simulação podem necessitar de que um grande nú-
mero de variáveis aleatórias sejam geradas, o gerador de números aleatórios
deve gerar estes números gastando o mínimo de tempo de computador. Além
disto o gerador não deve usar muita memória. Com a evolução dos computa-
dores esta última propriedade está perdendo um pouco de sua importância.
154 Introdução à Simulação
4.7.2 Métodos para a geração de números aleatórios
Método dos quadrados médios
Um dos primeiros métodos de geração de números aleatórios foi o chamado Método
dos Quadrados Médios. Este método foi desenvolvido por John Von Neumann na
década de 40. A técnica começa com um número inicial chamado de semente. O nú-
mero é então elevado ao quadrado e os dígitos do meio do número gerado formam o
próximo número da seqüência. Este segundo número é então elevado ao quadrado
e os números do meio do número gerado são o próximo número da seqüência e as-
sim por diante...
Exemplo: Gerar uma seqüência de números aleatórios de 4 dígitos. Seja 3187 a
semente normalmente rotulada como x
0
.
x
0
= 3187
(3187)
2
= 10 | 1569 | 69 ⇒x
1
= 1569
(1569)
2
= 02 | 4617 | 61 ⇒x
2
= 4617
(4617)
2
= 21 | 3166 | 89 ⇒x
3
= 3166
(3166)
2
= 10 | 0235 | 56 ⇒x
4
= 235
(235)
2
= 00 | 0552 | 25 ⇒x
5
= 552
(552)
2
= 00 | 3047 | 04 ⇒x
6
= 3047
e assim por diante...
Este método apresenta 2 problemas sérios: normalmente os períodos são curtos e
se o n
o
gerado é 0, o método só apresenta zero!
Exemplo: Gerar, pelo método dos quadrados médios, números pseudo aleatórios de
2 dígitos tendo 44 como semente.
x
0
= 44
(44)
2
= 1 | 93 | 6 ⇒x
1
= 93
(93)
2
= 8 | 64 | 9 ⇒x
2
= 64
(64)
2
= 4 | 09 | 6 ⇒x
3
= 9
(9)
2
= 0 | 08 | 1 ⇒x
4
= 8
(8)
2
= 0 | 06 | 4 ⇒x
5
= 6
(6)
2
= 0 | 03 | 6 ⇒x
6
= 3
(3)
2
= 0 | 00 | 9 ⇒x
7
= 0
(0)
2
= 0 | 00 | 0 ⇒x
8
= 0
Métodos Congruentes
Amaioria dos métodos usados hoje emdia são variações do chamado Método Congru-
ente Linear, cujos pontos básicos foram propostos por Lehmer em 1951. Neste
método os números aleatórios, gerados sucessivamente, são obtidos da relação re-
cursiva:
x
n+1
= (ax
n
+c) mod m
A função z mod t dá o resto da divisão inteira de z por t (ex. 23 mod 5 = 3).
4.8 Números Aleatórios uniformemente distribuídos em [0,1) 155
A constante a é chamada de multiplicador, a constante c é o incremento e m é o
módulo. Como antes, x
0
é a semente.
Quando c = 0, o método é chamado de Congruência Multiplicativa.
O Método da Congruência Linear (c = 0), por gerar números aleatórios que ten-
dem a ter mais dificuldades em passar nos testes estatísticos de aleatoriedade dos
que os gerados pelo método da Congruência Multiplicativa (c = 0), é menos usado
hoje em dia.
Exemplo: Gerar números aleatórios, usando o método congruente multiplicativo,
tendo os seguintes valores: x
0
= 3 , a = 2 e m = 10.
x
0
= 3
x
1
= (2 ×3) mod 10 = 6
x
2
= (2 ×6) mod 10 = 2
x
3
= (2 ×2) mod 10 = 4
x
4
= (2 ×4) mod 10 = 8
x
5
= (2 ×8) mod 10 = 6
Como podemos observar o período desta geração foi muito curto (=4).
Ficou claro também, neste pequeno exemplo, que o número aleatório gerado é o
resto inteiro da divisão por m, ou seja um número inteiro entre 0 e (m−1).
A fórmula congruente é necessária para se gerar números aleatórios, mas não
suficiente. A seleção dos valores de a, c, e mafeta drasticamente as propriedades
estatísticas da geração bem como o tamanho do período.
4.8 Números Aleatórios uniformemente distribuídos em[0,1)
Como já explicado anteriormente, a fórmula congruente gera números aleatórios
inteiros no intervalo [0, m−1).
Uma convenção estabelece que um gerador de números aleatórios básico deve
gerar números no intervalo [0, 1). Para conseguir isto, todo gerador de números
aleatórios divide o número gerado por m. Desta forma o que se obtém é uma distri-
buição uniforme, distribuída em [0,1). Assim, por exemplo, para a = 13, m = 67
e x
0
= 1, teríamos:
x
0
= 1 ÷67 = 0.0149253
x
1
= (13 ×1) mod 67 = 13 ÷67 = 0.1940298
x
2
= (13 ×13) mod 67 = 35 ÷67 = 0.522388
x
3
= (13 ×35) mod 67 = 53 ÷67 = 0.7910447
.
.
.
Alguns geradores dividem por m−1 o que dá uma distribuição [0, 1]. Na verdade
como mé sempre um número muito grande, dividir por mou (m−1) é irrelevante.
156 Introdução à Simulação
4.9 O gerador RANDU e a formação de treliças
O método da congruência multiplicativa pode facilmente ser implementado em lin-
guagens de programação como Pascal, Java, Basic, etc..., por exemplo.
Um gerador, chamado de RANDU, foi desenvolvido pela IBM e durante quase 20
anos foi usado por praticamente todos os modelos de simulação nas décadas de 60
e 70.
A RANDU utilizava os valores a = 65.539 e m = 2
31
= 2.147.483.648, ou seja
x
n+1
= (65539 ×x
n
) mod 2147483648
Assim considerando uma semente igual a 313, teríamos:
X
0
= 313
X
1
= (65539 ×313) mod 2147483648 = 20513707 ÷2147483648 =0,0095524
X
2
= (65539 × 20513707) mod 2147483648 = 123079425 ÷ 2147483648 =
0,0573133
X
3
= (65539 × 123079425) mod 2147483648 = 553853187 ÷ 2147483648 =
0,257907
.
.
.
A função, codificada em Pascal
2
é a seguinte: (a rotina original era em Fortran)
Function RANDU: Double;
Const
a = 65539;
m = 2147483647;
q = 32766;
r = 32774;
Var
l o , hi , t est : longint ;
Begin
hi : = semente div q ;
l o : = semente mod q ;
t est : = a ∗ l o − r ∗ hi ;
If t est >= 0 Then
Begin
semente : = t est ;
RANDU : = semente / m
End
Else
Begin
semente : = t est + m;
RANDU : = semente / m;
End;
End;
2
Todos os programas listados a seguir foram desenvolvidos com a finalidade exclusiva de ilustrar
a matéria apresentada. Não houve qualquer preocupação em otimizá-los ou usar as técnicas mais
refinadas de programação.
Outro fator a ser considerado é que certos comandos usados nos programas podem não funcionar,
dependendo do compilador que estiver sendo usado.
4.9 O gerador RANDU e a formação de treliças 157
A seguir um programa Pascal que utiliza o gerador acima. O programa pede a se-
mente, que deve ser um inteiro entre 1 e 32767, e imprime os 5 primeiros números
aleatórios gerados.
{USO DA RANDU}
{$N+}
{ $E+}
Var
SEMENTE, I : Integer ;
ALEAT: Real ;
{ $I RANDU. PAS}
Begin
Writeln( ’Qual a semente (1 - 32767) ?’ ) ;
Readln(SEMENTE) ;
ALEAT: = RANDU(SEMENTE) ;
SEMENTE : = 0;
For I :=1 to 5 do
Begin
ALEAT : = RANDU(SEMENTE) ;
Writeln(ALEAT) ;
End;
End.
Para uma semente igual a 313, os números impressos por este programa são:
0.00955244, 0.05731332, 0.25790799, 0.03162802 e 0.86859621.
Na década de 70 diversos trabalhos provaram que a rotina RANDU apresentava
resultados estatisticamente ruins.
Um dos problemas era a formação de treliças (lattice em inglês) quando se traçava
gráficos com sucessivos números aleatórios gerados pela RANDU.
Vamos imaginar umcubo comlados igual a 1, ou seja variando de 0 a 1. Vamos mar-
car pontos neste cubo com coordenadas (x
1
, x
2
, x
3
),(x
2
, x
3
, x
4
) , (x
3
, x
4
, x
5
), etc...,
onde x
i
é um número gerado pela RANDU.
Vamos marcar 5.000 pontos. O que deveríamos esperar ?
Que o cubo fosse preenchido uniformemente pelos pontos plotados. O que ocorre no
entanto é que todos os pontos aparecem em 15 planos formando o que parece ser
uma treliça (daí o nome). Nenhum ponto cai entre os planos, como podemos ver no
gráfico a seguir:
158 Introdução à Simulação
Este aspecto, identificado claramente na RANDU, fez com que esta rotina fosse
abandonada como geradora de números aleatórios.
A partir daí apareceram diversas alternativas como veremos a seguir.
4.10 O gerador RAND1
Foi apresentado pela IBM para substituir a RANDU e está baseado na relação
x
i+1
= (16807 ×x
i
) mod 2147483647, ou seja, a = 16807 e m = 2
31
−1.
O nome RAND1, assim como outros nomes que usaremos mais adiante, foram
dados no sentido de facilitar o entendimento da matéria. No entanto, deve ficar
claro que, exceto a RANDU, nenhum outro gerador tem, na literatura técnica,
nome próprio.
4.11 O gerador RAND2 159
4.11 O gerador RAND2
Este gerador está baseado no trabalho de Marse e Robert [Marse, K., and S. D. Ro-
berts: Implementing a Portable Fortran Uniform (0,1) Generator, Simulation, 41:
135-139 (1983)] e tem sua base na relação:
x
i+1
= (630360016 ×x
i
) mod 2147483647,
ou seja, a = 630360016 e m = 2
31
−1.
A seguir apresentamos a sua implementação em Pascal:
Function RAND2: Double;
Const
MULT1 = 24112;
MULT2 = 26143;
B2E15 = 32768;
B2E16 = 65536;
MODLUS = 2147483647;
Var
HI15, HI31,LOW15,LOWPRD, OVFLOW, g : Longint ;
Z, Z1: Double;
Begin
g : = trunc ( semente ) ;
HI15 : = g Div B2E16;
LOWPRD : = ( g−HI15∗B2E16) ∗MULT1;
LOW15 : = LOWPRD Div B2E16;
HI31 : = HI15∗MULT1+LOW15;
OVFLOW : = HI31 Div B2E15;
g : = ( ( (LOWPRD−LOW15∗B2E16)−MODLUS) +( HI31−OVFLOW∗B2E15) ∗B2E16)+OVFLOW;
If g < 0 Then g : = g + MODLUS;
HI15 : = g DIV B2E16;
LOWPRD : = ( g−HI15∗B2E16) ∗MULT2;
LOW15 : = LOWPRD Div B2E16;
HI31 : = HI15∗MULT2+LOW15;
OVFLOW : = HI31 Div B2E15;
g : = ( ( (LOWPRD−LOW15∗B2E16)−MODLUS) +( HI31−OVFLOW∗B2E15) ∗B2E16)+OVFLOW;
If g < 0 Then g : = g + MODLUS;
semente : = g ;
RAND2 : = ( 2∗( semente/ 256) +1) / 16777216. 0;
End;
O programa a seguir imprime os 5 primeiros números gerados pela RAND2. A se-
mente que é pedida no início do programa, deve ser uminteiro entre 1 e 2147483646.
160 Introdução à Simulação
{USO DA RAND2}
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
I : Integer ;
ALEAT: Double;
{ $I RAND2. PAS}
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
For I :=1 to 5 do
Begin
ALEAT : = RAND2;
Writeln(ALEAT: 10: 8 ) ;
End;
End.
Para uma semente igual a 20006270, os 5 primeiros números gerados são 0.59288078,
0.43645671, 0.55657768, 0.61790948 e 0.76899712.
4.12 Métodos com períodos maiores
Os métodos vistos anteriormente ainda são muito usados, inclusive a RANDU!. No
entanto, para simulações mais complexas, seus períodos são relativamente curtos
(10
9
) o que tem levado ao desenvolvimento de novos métodos de geração de núme-
ros aleatórios, todos com a característica comum de ter grandes períodos (> 10
30
).
Para exemplificar o que dissemos acima, vamos apresentar a seguir um gerador
que rotulamos de RAND4. A sua descrição pode ser vista no paper “An object-
oriented random-number package with many long streams and substreams –Pierre
L’Ecuyer, Richard Simard, E.Jack Chen and W. David Kelton – 2000”.
Este gerador pertence a uma classe de geradores que nada mais são do que a com-
binação de 2 ou mais geradores congruentes, baseados na regra de que o período
de 2 geradores “embaralhados” é maior do que de um gerador só. No caso deste
gerador, seu período é de 3.1 ×10
57
. As fórmulas de geração são:
A
i
= (1403580 ×A
i−2
−810728 ×A
i−3
)mod(2
32
−209)
B
i
= (527612 ×B
i−1
−1370589 ×B
i−3
)mod(2
32
−22853)
Y
i
= (A
i
−B
i
)mod(2
32
−209)
U
i
=
Y
i
2
32
−209
A implementação do método permite que sejam geradas 10
19
séries diferentes, cada
uma delas com 10
38
números aleatórios !!
A rotina em Pascal (RAND4) é a seguinte:
4.12 Métodos com períodos maiores 161
{RAND4. PAS}
Type
MATRIZ1 = Array[ 0 . . 2 , 0 . . 2 ] of Double;
VETOR3 = Array[ 1. . 5 0 , 0. . 5] of Double;
VETOR6 = Array[ 0 . . 5 ] of Double;
Const
M1: Double = 4294967087.0;
M2: Double = 4294944443.0;
NORM: Double = 1. 0 / (4294967087.0 + 1. 0) ;
A12: Double = 1403580. 0;
A13N: Double = 810728. 0;
A21: Double = 527612. 0;
A23N: Double = 1370589. 0;
TWO17: Double = 131072. 0;
TWO53: Double = 9007199254740992.0;
A1P127: MATRIZ1 = (
( 2427906178.0, 3580155704.0, 949770784.0) ,
( 226153695.0, 1230515664.0, 3580155704.0) ,
( 1988835001.0, 986791581.0, 1230515664.0)
) ;
A2P127: MATRIZ1 = (
( 1464411153.0, 277697599.0, 1610723613.0 ) ,
( 32183930.0, 1464411153.0, 1022607788.0 ) ,
( 2824425944.0, 32183930.0, 2093834863.0 )
) ;
Var
CG, BG, IG: VETOR3;
Semente : VETOR6;
SERIE: Integer ;
{−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−}
Function MULTMODM (A, S, C, M: Double) : Double;
Var
V: Double;
A1: Longint ;
Begin
V : = A ∗ S + C;
If ( ( V >= TWO53) or (V <= −TWO53) ) then
Begin
A1 : = trunc (A / TWO17) ;
A : = A − ( A1 ∗ TWO17) ;
V : = A1 ∗ S;
A1 : = trunc (V / M) ;
V : = V − ( A1 ∗ M) ;
V : = V ∗ TWO17 + A ∗ S + C;
End;
A1 : = trunc (V / M) ;
V : = V − ( A1 ∗ M) ;
If (V < 0. 0) then MULTMODM : = V + M else MULTMODM : = V;
End;
{−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−}
162 Introdução à Simulação
Procedure MATVECMODM ( Var A: MATRIZ1; Var S: array of Double;
Var V: Array of Double; M: Double ) ;
Var
I : Integer ;
X: Array[ 0 . . 2 ] of Double;
ZERO: Double;
Begin
ZERO : = 0. 0;
For I : = 0 to 2 do
Begin
X[ I ] : = MULTMODM (A[ I ] [ 0] , S[ 0] , ZERO, M) ;
X[ I ] : = MULTMODM (A[ I ] [ 1] , S[ 1] , X[ I ] , M) ;
X[ I ] : = MULTMODM (A[ I ] [ 2] , S[ 2] , X[ I ] , M) ;
End;
For I : = 0 to 2 do
Begin
V[ I ] : = X[ I ] ;
End;
End;
{−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−}
Function RAND4 : Double;
Var
K: Longint ;
P1, P2, U: Double;
Begin
{ Componente 1 }
P1 : = A12 ∗ CG[ SERIE] [ 1] − A13N ∗ CG[ SERIE] [ 0 ] ;
K : = trunc ( P1/M1) ;
P1 : = P1 − (K ∗ M1) ;
i f ( P1 < 0. 0) then P1 : = P1 + M1;
CG[ SERIE] [ 0] : = CG[ SERIE] [ 1 ] ;
CG[ SERIE] [ 1] : = CG[ SERIE] [ 2 ] ;
CG[ SERIE] [ 2] : = P1;
{ Componente 2 }
P2 : = A21 ∗ CG[ SERIE] [ 5] − A23N ∗ CG[ SERIE] [ 3 ] ;
K : = trunc ( P2/M2) ;
P2 : = P2 − (K ∗ M2) ;
i f ( P2 < 0. 0) then P2 : = P2 + M2;
CG[ SERIE] [ 3] : = CG[ SERIE] [ 4 ] ;
CG[ SERIE] [ 4] : = CG[ SERIE] [ 5 ] ;
CG[ SERIE] [ 5] : = P2;
{ Combinacao }
i f ( P1 > P2) then U : = ( P1 − P2) ∗ NORM
else U : = ( P1 − P2 + M1) ∗ NORM;
RAND4 : = U;
End;
{−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−}
Procedure PASSASEMENTE;
Var
I , J : Integer ;
TEMP: array [ 0 . . 2 ] of Double;
Begin
4.12 Métodos com períodos maiores 163
For I : = 0 to 5 do
Begin
BG[ 1] [ I ] : = Semente[ I ] ;
CG[ 1] [ I ] : = Semente[ I ] ;
IG[ 1] [ I ] : = Semente[ I ] ;
End;
For J : = 2 to 50 do
Begin
For I : = 0 to 2 do
Begin
TEMP[ I ] : = Semente[ I ] ;
End;
MATVECMODM ( A1P127, TEMP, TEMP, M1) ;
For I : = 0 to 2 do
Begin
Semente[ I ] : = TEMP[ I ] ;
End;
For I : = 0 to 2 do
Begin
TEMP[ I ] : = Semente[ I + 3] ;
End;
MATVECMODM ( A2P127, TEMP, TEMP, M2) ;
For I : = 0 to 2 do
Begin
Semente[ I + 3] : = TEMP[ I ] ;
End;
For I : = 0 to 5 do
Begin
BG[ J ] [ I ] : = Semente[ I ] ;
CG[ J ] [ I ] : = Semente[ I ] ;
IG[ J ] [ I ] : = Semente[ I ] ;
End;
End;
End;
Esta versão da função só permite que se use 50 séries, mas devemos ressaltar que
isto equivale a se ter 50 geradores diferentes, cada um com 10
38
números aleató-
rios !
Para a RAND4 são necessárias 6 sementes iniciais, todas no intervalo [1; 4294967087].
O programa a seguir, utiliza a RAND4 para gerar números aleatórios. A partir
das 6 sementes informadas e da série escolhida, ele imprime os 5 primeiros núme-
ros gerados.
164 Introdução à Simulação
{USORAND4}
var
I : Longint ;
ALEAT: Double;
{ $I Rand4. pas }
Begin
For I : = 0 to 5 do
Begin
Writeln( ’Semente ’ , I +1,’ [1 - 4294967087] ? ’ ) ;
Readln( semente[ I ] ) ;
If ( Semente[ I ] < 1. 0 ) or ( Semente[ I ] > 4294967087.0) then
Begin
Writeln( ’Semente fora da faixa permitida !’ ) ;
Exit ;
End;
End;
{ ========================================================}
PASSASEMENTE; {−−−>> Chamada obri gat ori a antes de se usar a RAND4}
{ ========================================================}
Writeln( ’Informe a Serie a ser usada [1 - 50}’ ) ;
Readln( SERIE) ;
For I : = 1 to 5 do
Begin
ALEAT : = RAND4;
Writeln(ALEAT: 10: 8) ;
End;
End.
Para as sementes 78975, 2731847, 1300, 15873476, 7590 e 6150 e série igual a
4, os números aleatórios impressos foram: 0.57235506, 0.50824212, 0.89428253,
0.94493137 e 0.51779478 .
4.13 Geradores de números aleatórios embutidos
Praticamente todas as linguagens de programação (Pascal, Java, Basic, C, etc...)
tem comandos para gerar números aleatórios uniformemente distribuídos em [0,
1]. Os chamados programas aplicativos, como o Excel por exemplo, também tem, já
programado, rotinas para gerar números aleatórios.
4.13 Geradores de números aleatórios embutidos 165
4.13.1 O gerador do Turbo Pascal
Para exemplificar podemos ver a seguir um programa em Pascal para gerar e im-
primir números aleatórios.
{ Gerador embutido do Turbo Pascal }
Var
Semente , I : Integer ;
Begin
Writeln( ’Qual a semente (1 - 32767) ? ’ ) ;
Readln( Semente ) ;
RandSeed : = Semente ;
For I :=1 to 5 do
Begin
Writeln(Random: 10: 8) ;
End;
End.
O Pascal tem, já predefinida, uma variável, chamada RandSeed, que é a semente
para a rotina interna do Turbo Pascal para a geração de números aleatórios. Assim
se fizermos RanSeed igual a um valor no intervalo [1 , 32767] estaremos fornecendo
a semente para o gerador. Cada vez que a função Random é chamada, temos a
geração de um número aleatório em [0, 1].
No programa acima, se escolhermos a semente igual a 45, os 5 números impressos
são: 0.91209727, 0.86646369, 0.73001087, 0.86789456 e 0.71591308.
O Pascal tem também uma instrução chamada Randomize que atribui a semente
do gerador (variável RandSeed) um valor calculado a partir da hora corrente do
computador no momento da execução do programa.
Temoss a seguir um exemplo de um programa utilizando o comando Randomize,
observando que o Randomize deve vir logo no início do programa.
{ Gerador embutido do Turbo Pascal }
{ Uso do Randomize }
Var
I : Integer ;
Begin
Randomize ;
For I :=1 to 5 do
Begin
Writeln ( Random: 10 : 8) ;
End;
End.
É óbvio que usando-se o Randomize, não conseguimos repetir a mesma seqüência
de números gerados já que a semente muda em cada execução do programa.
O gerador do Turbo Pascal está baseado na seguinte fórmula congruente linear:
x
i+1
= (134775813 ×x
i
+ 1) mod 4294967296
166 Introdução à Simulação
4.13.2 O gerador do Excel
O uso de planilhas, principalmente o Excel que tem mais de 90% do mercado, é
largamente utilizada na simulação de modelos de pequeno e médio porte. Desta
forma, o gerador embutido do Excel tem sido objeto de muitos estudos de avaliação
da sua qualidade “estatística”.
Até a versão 2003 o Excel usava um gerador baseado na seguinte fórmula congru-
ente: x
i+1
= (9821 ×x
i
+ 0.211327) mod 1
Usar “mod 1” é equivalente a se pegar a parte fracionária da conta (9821 × x
i
+
0.211327).
Inúmeros trabalhos, já publicados mostram que este gerador, embora não tão ruim
como a RANDU, também tem problemas de uniformidade e aleatoriedade.
A partir da versão 2003 (inclusive) o gerador passou a ser o descrito no paper “Buil-
ding a Random Number Generator – Wichman, B.A. and I.D. Hill, Byte, pp. 127 –
128, March - 1987”.
Este gerador é a combinação de 3 geradores e tem período de 10
13
. Suas fórmulas
são:
A
i+1
= (171 ×A
i
) mod 30269
B
i+1
= (172 ×B
i
) mod 30307
C
i+1
= (170 ×C
i
) mod 30323
ALEAT = [(A
i+1
÷30269) + (B
i+1
÷30307) + (C
i+1
÷30323)] mod 1
Inúmeros trabalhos técnicos mostraram que este é um gerador de boa qualidade.
4.14 Números aleatórios comoutras distribuições uniformes
Uma vez que temos uma rotina para gerar números uniformemente distribuídos
no intervalo [0, 1], é fácil gerá-los com outras distribuições uniformes.
4.14.1 Variáveis aleatórias contínuas
Suponha que X é uma variável aleatória contínua, uniformemente distribuída den-
tro do intervalo (a, b), onde a < b. Seja U uma variável aleatória uniformemente
distribuída no intervalo [0, 1].
0
1 U
a b
X
Aplicando proporcionalidade simples temos:

X −a
b −a

=

U −0
1 −0

ou
X = a + (b −a) ×U
Assim é muito simples gerar X de um dado U, conhecendo-se a e b.
4.14 Números aleatórios com outras distribuições uniformes 167
O programa Pascal a seguir gera e imprime os 5 primeiros números aleatórios
uniformemente distribuídos no intervalo [a, b].
O programa usa a RAND2 como gerador básico.
{ Vari ávei s al e at ór i as [ a − b] }
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
I : Integer ;
U, X, a , b : Double;
{ $I RAND2. PAS}
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Qual o limite inferior (a) ?’ ) ;
Readln( a ) ;
Writeln( ’Qual o limite superior (b) ?’ ) ;
Readln( b ) ;
For I :=1 to 5 do
Begin
U : = RAND2;
X : = a + ( b − a) ∗ U;
Writeln(X: 1 0: 5) ;
End;
End.
Com uma semente da RAND2 igual a 7777, a igual a 1 e b igual a 4, o pro-
grama gera e imprime os seguintes números: 3.44774, 3.25192, 1.93325, 2.80820 e
3.37664.
4.14.2 Variáveis aleatórias discretas
Agora suponha que a e b sejam quantidades inteiras, a < b, e X é uma variá-
vel aleatória discreta (só valores inteiros) uniformemente distribuída no intervalo
[a, b]. Assim X só pode tomar valores iguais a a, a + 1, a + 2, ..., b −1, b.
Se U é contínua e uniformemente distribuída no intervalo [0, 1], então:
X = a + INT[(b −a + 1) ×U]
onde INT é a função inteiro, ou seja, a que elimina a parte decimal.
Observe que como 0 ≤ U < 1, a quantidade INT{(b−a+1) ×U} toma os valores
inteiros 0, 1, 2, .., (b −a). Logo X só pode tomar valores a, a + 1, a + 2, ..., b.
Vejamos um exemplo:
Seja a = 1 e b = 6.
Assim X será igual a:
X = 1 + INT[(6 −1 + 1) ×U]
X = 1 + INT[6 ×U)]
168 Introdução à Simulação
Como U só pode estar entre 0 e 0.99999, (6 ×U) só pode ficar entre 0 e 5.9999.
Logo, X = 1 + um valor de 0 a 5, inteiro, ou seja, 1, 2, 3, 4, 5 ou 6.
O program a seguir simula a jogada de 2 dados e utiliza a RAND2 como gerador
básico.
{ Vari ávei s al e at ór i as I nt e i r as [ a − b] }
{ Simulacao de j ogar 2 dados }
Var
semente : Double; { Vari avel ut i l i zada pel a RAND2}
I , X1, X2: Integer ;
U: Double;
{ $I RAND2. PAS}
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
For I :=1 to 5 do
Begin
U : = RAND2;
X1 : = 1 + Trunc ( 6 ∗ U) ;
U : = RAND2;
X2 : = 1 + Trunc ( 6 ∗ U) ;
Writeln( ’1o. dado = ’ , X1, ’ 2o. dado = ’ , X2, ’ Soma = ’ , X1+X2 ) ;
End;
End.
Obs. Em Pascal o comando para pegar só a parte inteira de um número é TRUNC.
Escolhendo uma semente igual a 875 para a RAND2, o programa gera e imprime
os seguintes valores (para a soma): 7, 10, 8, 5 e 2.
4.15 Testes estatísticos
Existem numerosos testes estatísticos para garantir que os números pseudos-alea-
tórios estão sendo gerados aleatoriamente.
Depois do que aconteceu com a RANDU, existe, hoje em dia, uma cobrança muito
maior na execução de testes estatísticos rigorosos nos novos geradores publicados.
A geração de números aleatórios em computador, não só em função do crescimento
do uso das técnicas de Simulação mas também em função do crescimento da crip-
tografia, é uma das áreas em que há mais pesquisas hoje em dia.
O conceito importante a se guardar é que só devemos usar geradores de números
aleatórios que tenham sido amplamente testados.
Também, a não ser em aplicações mais simples, devemos fugir de geradores cuja
fórmula de geração seja desconhecida, como acontece com muitos geradores “em-
butidos”.
4.16 Alguns modelos elementares de Simulação 169
4.16 Alguns modelos elementares de Simulação
A maioria dos problemas estudados através de modelos de simulação que acon-
tecem na vida real necessitam do uso de variáveis aleatórias não uniformemente
distribuídas.
No entanto, como ilustração, vamos ver 2 exemplos de simulação em que só é ne-
cessário ter um gerador de números aleatórios uniformemente distribuídos.
4.16.1 Jogo de Dados (“Craps Game”)
Um jogo popular nos E.Unidos é o chamado “craps” no qual 2 dados são jogados
simultaneamente. Se a soma for 7 ou 11 você ganha. Se a soma for 2, 3 ou 12 você
perde. Se der 4, 5, 6, 8, 9 ou 10 você tem direito a jogar os dados outra vez. Se a
soma for 7 você perde. Se repetir o que deu na 1
a
jogada você ganha. Se não, você
pode jogar os dados outra vez e assim por diante.
A probabilidade de se ganhar neste jogo é de 49,3% obtida da teoria das probabili-
dades.
O programa a seguir é a implementação do jogo. Ele permite que a cada execução
se escolha quantas vezes queremos jogar.
Podemos observar que o programa tem 2 “procedures”. A 1
a
, chamada SUB1, ve-
rifica à cada jogada dos dados se ganhamos, perdemos ou se temos que jogar os
dados uma outra vez. A 2
a
, chamada de SUB2, simula a jogada simultânea de 2
dados. Cada vez que ganhamos, o programa soma 1 a variável SOMA. No final dos
N jogos, o programa imprime a divisão de SOMA por N, ou seja, o percentual de
jogos ganhos.
O programa usa o gerador embutido do Turbo Pascal como gerador básico de nú-
meros aleatórios .
170 Introdução à Simulação
{CRAPS GAME}
Var
JOGADA,GUARDA,RESULTADO: Integer ;
N, I : longint ;
SOMA: Real ;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Procedure SUB1 ( Var JOGADA: Integer ) ;
Begin
JOGADA : = TRUNC( ( 1. 0+6. 0∗Random) ) +
TRUNC( ( 1. 0+6. 0∗Random) ) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
PROCEDURE SUB2 ( Var RESULTADO: Integer ) ;
Begin
SUB1(JOGADA) ;
If (JOGADA = 7) or (JOGADA = 11) then
Begin
RESULTADO : = 1;
EXIT;
End;
If (JOGADA = 2) or (JOGADA = 3) or (JOGADA = 12) then
Begin
RESULTADO : = 0;
EXIT;
End;
GUARDA : = JOGADA;
RESULTADO : = −9;
Repeat
SUB1(JOGADA) ;
If JOGADA = 7 then
Begin
RESULTADO : = 0;
EXIT;
End;
If JOGADA = GUARDA then
Begin
RESULTADO : = 1;
EXIT;
End;
Until (RESULTADO = 0) or (RESULTADO = 1) ;
EXIT;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a Semente (0 a 32767) ?’ ) ;
Readln( RandSeed ) ;
Writeln( ’Quantos Jogos ?’ ) ;
Readln(N) ;
SOMA : = 0. 0;
For I : = 1 to N do
Begin
SUB2(RESULTADO) ;
SOMA : = SOMA + RESULTADO;
End;
Writeln ( (SOMA / N) ∗100: 5: 2 , ’%’ ) ;
End.
4.16 Alguns modelos elementares de Simulação 171
A execução deste programa 5 vezes, cada vez com 10.000 jogos, apresentou os se-
guintes resultados:
Semente Ganho (%)
8744 48,26
123 49,42
10000 49,21
7361 48,97
313 49,33
Média 49,04
4.16.2 Cálculo de Integrais Definidas
Uma aplicação interessante da simulação é o cálculo de integrais definidas, no
sentido em que um método probabilístico é usado para resolver um problema de-
terminístico. Este procedimento é chamado de Método de Monte Carlo e não
necessita mais do que um gerador de números aleatórios uniformemente distribuí-
dos em [0, 1].
Suponha que se deseja calcular a integral:
I =

b
a
f(x)dx
onde f(x) representa uma curva contínua no intervalo a ≤ x ≤ b. Para uso do
método, precisamos conhecer também o valor máximo (F
max
) da função no inter-
valo (a, b).
As etapas do método de Monte Carlo são:
1. Gerar um n
o
aleatório uniformemente distribuído, U
x
, cujo valor está entre a
e b.
2. Calcular f(U
x
).
3. Gerar um 2
o
número aleatório, u
y
, cujo valor está entre 0 e F
max
. Estes 2
números aleatórios (U
x
e U
y
) representam as coordenadas de um ponto no
espaço.
4. Comparar U
y
com f(U
x
). Se U
y
≤ f(U
x
) então o ponto (U
x
, U
y
) cairá em
cima ou abaixo da curva, ou seja, dentro da área que representa a integral.
5. Repita n vezes as etapas de 1 a 4, acumulando os pontos que caíram dentro
da área da integral.
6. Calcule o percentual (PERC) de pontos que caíram na área da integral, di-
vidindo pelo total de números tentados (n).
172 Introdução à Simulação
O valor da integral é obtido por:
I = PERC ×(b −a) ×F
max
Exemplo: Considere a integral abaixo:

1
0

1 −x
2
dx = 0, 785398
O valor desta integral pode ser obtida pelo cálculo e é igual 0.785398. A usaremos
para mostrar que a simulação produz resultados consistentes.
O gráfico da função e da “integral” pode ser visto a seguir:
x
F(x)
0 -1 1 U
x
U
y
F(U
x
)
F
max
= 1
A area da parte do gráfico abaixo da curva, no 1
o
quadrante, é o valor da integral
procurada.
Neste exemplo a é 0 e b é 1. O F
max
é 1.
A area do retângulo e igual a (b − a) × F
max
, ou seja, 1 × 1 = 1. A integral, ou
seja, a area abaixo da curva sera igual a (b − a) × F
max
× % de pontos que caem
em cima ou abaixo da curva.
Oprograma a seguir implementa o método de Monte Carlo para cálculo de integrais
definidas. Ele usa a RAND2 como gerador básico e tem uma função (VFUNCAO)
onde a função a ser integrada,

1 −x
2
no nosso exemplo, é colocada.
{CALCULO DE INTEGRAIS}
VAR
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I : Integer ;
U: Double;
X,FMAX, LIMINF, LIMSUP,UX,UY,FUX,IDENTRO,INTEGRAL: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function VFUNCAO (X: Real ) : Real ;
Begin
VFUNCAO : = SQRT(1−X∗X) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
4.16 Alguns modelos elementares de Simulação 173
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual o valor maximo da funcao no intervalo de integracao ?’ ) ;
Readln(FMAX) ;
Writeln( ’Qual o limite inferior de integracao (a) ?’ ) ;
Readln(LIMINF) ;
Writeln( ’Qual o limite superior de integracao (b) ?’ ) ;
Readln(LIMSUP) ;
If (LIMINF >= LIMSUP) Then
Begin
Writeln( ’ERRO NOS LIMITES !! ’ ) ;
Exit ;
End;
IDENTRO : = 0;
For I : = 1 to N do
Begin
U : = RAND2;
UX : = LIMINF + (U ∗ (LIMSUP − LIMINF ) ) ;
U : = RAND2;
UY : = U ∗ FMAX;
FUX : = VFUNCAO(UX) ;
If UY <= FUX then IDENTRO : = IDENTRO +1;
End;
INTEGRAL : = (IDENTRO / N) ∗ (LIMSUP−LIMINF) ∗FMAX;
Writeln( ’VALOR DA INTEGRAL = ’ ,INTEGRAL: 10: 5 ) ;
End.
Executando-se este programa, com a semente 555666 para a RAND2 e escolhendo-
se 10.000 números, o valor da integral é dado pelo programa como igual a 0.7848.
Na verdade o Método de Monte Carlo é mais um dos métodos numéricos para a
solução de integrais definidas que não tem solução analítica.
A integral usada no último exemplo é apropriada para se reforçar a regra bá-
sica do uso da simulação: Problemas que tem solução analítica nunca devem
ser resolvidos por meio da simulação. Soluções analíticas darão sempre respos-
tas “mais exatas” que as respostas fornecidas pela simulação.
Quando, no entanto, não se tem solução analítica, a simulação pode dar respos-
tas bastante aproximadas.
174 Introdução à Simulação
4.17 Variáveis aleatórias não uniformes
Na maioria dos problemas do mundo real, as variáveis aleatórias seguem distribui-
ções diferentes da uniforme tal como a de Poisson, a Exponencial, a Normal, etc...
Neste capítulo veremos como números aleatórios uniformemente distribuídos em
[0, 1] podem ser usados para gerar variáveis aleatórias, não uniformes, como as
citadas acima.
4.17.1 O Método da Transformação Inversa
Suponha que temos uma distribuição probabilística, com função de densidade f(x)
e função de distribuição acumulada igual a F(x). Desejamos gerar uma variável
aleatória que siga esta distribuição probabilística. O método da Transformação In-
versa oferece uma maneira simples de resolver o problema.
O método está baseado no fato de que a distribuição acumulada, F(x), tem valor
entre 0 e 1 ou seja, no mesmo intervalo de um n
o
aleatório, U, gerado por um gera-
dor básico. Assim sendo, tendo U, consideramos este valor como sendo um valor de
F(x). Para achar o valor de x, basta resolver a equação, ou seja achar a inversa de
F(x).
A figura a seguir mostra, graficamente, o princípio no qual o método está baseado:
0
1
x
F(x)
U = y
0
x
0
4.17 Variáveis aleatórias não uniformes 175
Isto é, se y
0
= F(x
0
), então podemos escrever:
x
0
= F
−1
(y
0
)
Substituindo y
0
por U, temos:
x
0
= F
−1
(U)
Exemplo: Aplique o método da transformação inversa para a seguinte função de
densidade probabilística:
f(x) =
x
4
em 1 ≤ x ≤ 3
f(x) = 0 fora do intervalo acima
Use o método para gerar 6 valores sucessivos para X, dados os seguintes valores
aleatórios uniformemente distribuídos em [0, 1]: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43.
Inicialmente determinamos a função cumulativa:
y = F(x) =

x
1

x
4

dx =
¸
x
2
8

x
1
=
x
2
8

1
8
=
(x
2
−1)
8
para 1 ≤ x ≤ 3.
Resolvendo para x obtemos:
x =

8y + 1
que pode ser escrita como:
x
i
=

8U
i
+ 1
onde U
i
é uma variável aleatória uniformemente distribuída em [0, 1].
Quando U
i
= 0.35 nós podemos obter o valor correspondente para x
i
como:
x
i
=

(8) ×(0.350) + 1 = 1.95
Procedendo de forma idêntica, podemos obter os demais valores:
i U
i
x
i
1 0.35 1.95
2 0.97 2.96
3 0.22 1.66
4 0.15 1.48
5 0.60 2.41
6 0.43 2.11
O valor esperado e o desvio padrão podem ser calculados de:
E(x) =

+∞
−∞
xf(x)dx =

3
1
x ×
x
4
dx =

3
1
x
2
4
dx =
¸
x
3
12

3
1
= 2.167
σ
2
=

+∞
−∞
x
2
f(x) −E(x)
2
=

3
1
x
2
x
4
−2.167
2
=
¸
x
4
16

3
1
−2.167
2
= 0.30555
σ =

0.30555 = 0.552
176 Introdução à Simulação
Veremos a seguir como aplicar o método da transformação inversa para várias dis-
tribuições bem conhecidas.
Entretanto é bom esclarecer que este método não pode ser aplicado para todas as
distribuições. Existem algumas, como a normal, cuja função de distribuição proba-
bilística não pode ser integrada analíticamente e, logicamente, não se pode achar
a sua inversa. Há casos ainda em que não é possível obter uma equação explí-
cita para x mesmo se tendo uma expressão analítica para a função cumulativa.
Existem outras técnicas para estes casos.
A Distribuição Exponencial
Muitos problemas de simulação necessitam usar a distribuição exponencial. Isto
é verdadeiro nos problemas que envolvem chegadas e partidas (filas), como a si-
mulação de uma agência bancária, da saída (caixas) de um supermercado, de um
aeroporto, etc...
A função de densidade probabilística da exponencial é igual a:
f(x) = αe
−αx
onde α é uma constante conhecida e a média (µ) é igual a
1
α
.
A função de distribuição acumulada é dada por:
F(x) = 1 −e
−αx
De modo a se fazer uso do método da transformação inversa devemos resolver para
x. Assim temos:
x = −
1
α
ln[1 −F(x)]
Como a função acumulada, F(x), é uniformemente distribuída em [0, 1], a quanti-
dade 1 −F(x) também será uniformemente distribuída em [0, 1]. Assim podemos
escrever
x = −

1
α

ln(U)
onde x é a variável aleatória exponencialmente distribuída e U é um número alea-
tório uniformemente distribuído em [0, 1], gerado por um gerador básico.
Suponha agora que x deve ser maior ou igual a um determinado valor positivo, x
0
,
isto é 0 < x
0
< x. A equação acima fica:
x = x
0

1
α

ln(U)
A media (µ) fica como:
µ = x
0
+
1
α
4.17 Variáveis aleatórias não uniformes 177
Podemos tirar então a relação entre α e µ:
α =
1
(µ −x
0
)
Exemplo: Gerar 6 variáveis exponencialmente distribuídas maiores que 2 e com
média igual a 6, usando os seguintes números uniformemente distribuídos em
[0, 1]: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43. Temos então: x
0
= 2 e µ = 6.
Calculando o valor de α:
α =
1
(6 −2)
= 0.25
Podemos então calcular as variáveis da distribuição exponencial:
X
1
= 2 −

1
0.25

ln(0.35) = 6.20
X
2
= 2 −

1
0.25

ln(0.97) = 2.12
Os demais valores encontrados são:
i U
i
X
i
1 0.35 6.20
2 0.97 2.12
3 0.22 8.06
4 0.15 9.59
5 0.60 4.04
6 0.43 5.38
O programa a seguir, escrito em Pascal, implementa a geração de números aleató-
rios que seguem a distribuição exponencial. O programa permite que se informe
quantos números queremos gerar, o limite inferior da distribuição e a média.
Como saída ele imprime os 5 primeiros números gerados e a média de todos os nú-
meros gerados.
O programa usa a RAND2 como o gerador básico de números aleatórios.
178 Introdução à Simulação
{EXPONENCIAL}
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP: Integer ;
U,SOMA: Double;
LIMINF,ALFA,MEDIA: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function EXPONENCIAL (ALFA, LIMINF: Real ; U: Double) : Double;
Begin
EXPONENCIAL : = LIMINF − ( 1/ALFA) ∗ LN(U) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual o Limite Inferior ?’ ) ;
Readln(LIMINF) ;
Writeln( ’Qual a Media ?’ ) ;
Readln(MEDIA) ;
ALFA : = 1. 0 / (MEDIA − LIMINF) ;
SOMA : = 0. 0;
NUMIMP : = 0;
For I : = 1 to N do
Begin
U : = RAND2;
U : = EXPONENCIAL(ALFA, LIMINF,U) ;
NUMIMP : = NUMIMP + 1;
If NUMIMP < 6 then Writeln(U: 10: 8) ;
SOMA : = SOMA + U;
End;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 6) ;
End.
Em uma execução, usando-se a semente 1234 para a RAND2, em que foram gera-
dos 10.000 números com limite inferior igual a 2 e média igual a 6, os seguintes
resultados foram apresentados:
Primeiros 5 números gerados: 8.03343632; 10.61596329; 13.38207724; 7.21078637
e 2.45744007.
Média dos 10.000 números gerados: 6.00481.
4.17 Variáveis aleatórias não uniformes 179
A Distribuição Triangular
A distribuição Triangular tem um uso bastante difundido em Simulação, principal-
mente quando os dados disponíveis são poucos ou mesmo inexistentes.
Sua forma permite que dados não conclusivos sejam a ela adaptados, e seus limites,
ou seja A (limite inferior), C (moda) e B (limite superior) sejam interpretados como
os parâmetros mais otimista (A), mais provável (C) e mais pessimista (B) de uma
determinada variável, como pode ser visto na figura a seguir.
A
C B
x
f(x)
Sua função de densidade é dada por:
f(x) =
2(x −A)
(C −A)(B −A)
para A ≤ x ≤ C
=
2(B −x)
(B −C)(B −A)
para C ≤ x ≤ B
Podemos usar o Método da Transformação Inversa mas a descontinuidade da fun-
ção faz com que seja necessário desenvolver 2 geradores separados: um para x ≤ C
e um para x ≥ C. Inicialmente vamos desenvolver um para x ≤ C.
A função de distribuição acumulada F(x) é igual a:
F(x) =

x
A
2(x −A)
(C −A)(B −A)
dx
=
x
2
−2Ax +A
2
(C −A)(B −A)
Como F(x) e U gerado por um gerador básico, variam em [0 , 1], podemos escrever:
U =
x
2
−2Ax +A
2
(C −A)(B −A)
180 Introdução à Simulação
Fazendo as simplificações necessárias, chegamos a :
x = A+

U(C −A)(B −A)
Esta fórmula pode ser usada se U <
(C −A)
(B −A)
, pois a razão
(C −A)
(B −A)
é proporcio-
nal a área sob o triângulo de x = A até x = C.
Para x ≥ C temos:
F(x) = U =

x
C
2(B −x)
(B −C)(B −A)
dx
U =
−x
2
+ 2Bx −B
2
(B −C)(B −A)
+ 1
Operando, para obter o valor de x, obtemos:
x = B −

(1 −U)(B −C)(B −A)
Esta fórmula deve ser usada quando U ≥
(C −A)
(B −A)
.
A media e o desvio padrão da Distribuição Triangular são:
x =
A+B +C
3
σ =

A
2
+B
2
+C
2
−AB −AC −BC
18
Exemplo: Gerar 3 variáveis aleatórias seguindo a Distribuição Triangular com li-
mite inferior (A) igual a 2, moda (C) igual a 4 e limite superior (B) igual a 8. Use
os seguintes números aleatórios uniformemente distribuídos em [0, 1]: 0.35, 0.97,
0.22.
A fórmula a ser usada depende se o valor de U é maior ou menor que
(C −A)
(B −A)
ou
seja
(4 −2)
(8 −2)
= 0.3333.
Assim para o 1
o
U, 0.35 (maior que 0.33) temos:
X
1
= 8 −

(1 −0.35)(8 −4)(8 −2) = 4.050
Para 0.97 (maior que 0.33) temos:
X
2
= 8 −

(1 −0.97)(8 −4)(8 −2) = 7.151
Para 0.22 (menor que 0.33) temos:
X
3
= 2 +

0.22(4 −2)(8 −2) = 3.624
O programa a seguir, escrito em Pascal, implementa a geração de números aleató-
rios que seguem a distribuição triangular.
O programa permite que se informe quantos números queremos gerar e os 3 parâ-
metros (A,B e C) da distribuição.
Como saída ele imprime os 5 primeiros números gerados, a média e o desvio padrão
dos números gerados.
O programa usa a RAND2 como o gerador básico de números aleatórios.
4.17 Variáveis aleatórias não uniformes 181
{TRIANGULAR}
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP: Integer ;
U,SOMA: Double;
A, B, C,MEDIA, DESVIO, T: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function TRIANGULAR ( A, B, C : Real ;U : Double ) : Real ;
Begin
If (U < ( ( C−A) / ( B−A) ) ) then
TRIANGULAR : = A + Sqrt (U∗(C−A) ∗ ( B−A) )
Else TRIANGULAR : = B − Sqrt ((1−U) ∗ ( B−C) ∗ ( B−A) ) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
BEGIN
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual o limite inferior (A) ?’ ) ;
Readln(A) ;
Writeln( ’Qual o limite superior (B) ?’ ) ;
Readln(B) ;
Writeln( ’Qual a moda (C) ?’ ) ;
Readln(C) ;
SOMA : = 0. 0;
DESVIO : = 0. 0;
NUMIMP : = 0;
For I : = 1 to N do
Begin
U : = RAND2;
T : = TRIANGULAR(A, B, C,U) ;
NUMIMP : = NUMIMP + 1;
If NUMIMP < 6 then Writeln( T: 10: 5) ;
SOMA : = SOMA + T;
DESVIO : = DESVIO + T ∗ T;
End;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 5) ;
Writeln( ’DESVIO PADRAO = ’ ,SQRT( ( DESVIO/N) −(SOMA/N) ∗ (SOMA/N) ) : 1 0 : 5 ) ;
END.
Em uma execução, usando-se a semente 1234 para a RAND2, em que foram gera-
dos 10.000 números com os parâmetros A = 2, B = 8 e C = 4 da triangular, os
seguintes resultados foram obtidos:
Primeiros 5 números gerados: 3.62950, 3.17993, 2.83501, 3.80598 e 6.38956.
A média dos 10.000 números gerados foi igual a 4,66210. A média teórica é igual a
4,66666.
O desvio padrão obtido foi igual a 1,24890. O desvio padrão teórico é igual a 1,247.
182 Introdução à Simulação
4.17.2 Simulação Direta
O método da Transformação Inversa só pode ser usado se uma expressão analítica
puder ser obtida para a função de distribuição acumulada e ela possa ser resolvida
explicitamente para x. Existem muitas situações onde isto não é possível, como
para a distribuição normal, por exemplo. Uma técnica alternativa para estes casos
é o uso da simulação direta do processo sob consideração.
A distribuição de Poisson
A distribuição de Poisson está intimamente relacionada com a distribuição expo-
nencial e é usada em muitos problemas de simulação que envolvem chegadas e
partidas. Em particular, se o tempo entre sucessivas chegadas (ou partidas) é expo-
nencialmente distribuído, então o número de eventos que ocorrem em um intervalo
de tempo finito t será distribuído de acordo com uma distribuição de Poisson.
Suponha que as marcações (×) na linha do tempo mostrada abaixo, sejam os ins-
tantes da chegada de clientes em um posto bancário:
× × × ×
0
tempo
t
E
1
E
2
E
3
E
4
Seja E
i
uma variável aleatória exponencialmente distribuída com média 1/λt, ou
seja o intervalo entre as chegadas.
Fazendo S
k
=
k
¸
i=1
E
i
, então para o intervalo t, temos:
S
k
≤ t < s
k+1
, onde k é a variável Poisson, com média λt, ou seja o número de
chegadas no intervalo t (k = 3 no exemplo gráfico acima).
Já vimos (página 176) que podemos gerar variáveis exponenciais (E
i
) através da
relação:
E
i
= −
1
λ
ln U
i
Logo a variável “poisson” é o valor de k −1 quando, no somatório, acontece:
k
¸
i=1
E
i
> t
ou
k
¸
i=1

1
λ
ln U
i
> t
que pode ser escrita como:
k
¸
i=1
−ln U
i
> λt
4.17 Variáveis aleatórias não uniformes 183
Multiplicando ambos os lados da equação por −1, temos:
k
¸
i=1
ln U
i
< −λt
Fazendo t = 1 e exponenciando ambos os lados chegamos a:
k
¸
i=1
U
i
< e
−λ
ou
e
−λ
>
k
¸
i=1
U
i
ou seja, a variável “poisson” é igual a k − 1 quando a relação acima passa a ser
verdadeira.
Exercício: Gerar 5 variáveis aleatórias seguindo a distribuição de Poisson com
média (λ) = 1.5. Faça os cálculos usando o seguinte conjunto de números ale-
atórios uniformemente distribuídos: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43, 0.79, 0.52,
0.81, 0.65, 0.20, 0.57, 0.10.
Como λ = 1.5 temos e
−λ
= 0.223.
De maneira a obter a primeira variável aleatória, 3 números aleatórios uniforme-
mente distribuídos são necessários como podemos ver a seguir:
k = 1 ⇒0.223 < 0.35
k = 2 ⇒0.223 < 0.340(= 0.35 ×0.97)
k = 3 ⇒0.223 > 0.075(= 0.35 ×0.97 ×0.22)
Logo X
1
= (k −1) = 2.
k = 1 ⇒0.223 > 0.15
Logo X
2
= (k −1) = 0
X
3
= (3 −1) = 2 pois 0.223 > 0.204(= 0.60 ×0.43 ×0.79)
X
4
= (4 −1) = 3 pois 0.223 > 0.055(= 0.52 ×0.81 ×0.65 ×0.20)
X
5
= (2 −1) = 1 pois 0.223 > 0.057(= 0.57 ×0.10)
O programa a seguir, escrito em Pascal, implementa a geração de números aletó-
rios que seguem a distribuição de Poisson.
O programa permite que se informe quantos números queremos gerar e o valor de
λ.
Como saída ele imprime os 5 primeiros números gerados e a média de todos os nú-
meros gerados.
O programa usa a RAND2 como o gerador básico de números aleatórios.
184 Introdução à Simulação
{POISSON}
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP, J : Integer ;
SOMA: Double;
LAMBDA,MEDIA, F: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function POISSON ( F: Real ) : Integer ;
Var
ALEAT : Double;
VMULT : Real ;
NUMPOISSON : Integer ;
Begin
NUMPOISSON : = 0;
VMULT : = 1. 0;
While (VMULT > F) do
Begin
ALEAT : = RAND2;
VMULT : = VMULT ∗ ALEAT;
NUMPOISSON : = NUMPOISSON + 1;
End;
POISSON : = NUMPOISSON − 1;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual o valor de Lambda ?’ ) ;
Readln(LAMBDA) ;
F : = EXP(−LAMBDA) ;
SOMA : = 0. 0;
NUMIMP : = 0;
For I : = 1 to N do
Begin
J : = POISSON( F) ;
SOMA : = SOMA + J ;
NUMIMP : = NUMIMP + 1;
If NUMIMP < 6 then WRITELN( J ) ;
End;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 5) ;
End.
Em uma execução, usando-se a semente 9999 para a RAND2, em que foram gera-
dos 10.000 números com λ = 1.5, os seguintes resultados foram obtidos:
Primeiros 5 números gerados: 0, 1, 1, 2 e 1.
A média (λ) dos 10.000 números gerados foi igual a 1.50530.
4.17 Variáveis aleatórias não uniformes 185
A distribuição Normal
Muitos tipos de eventos aleatórios são governados pela distribuição Normal. Esta
distribuição é caracterizada por uma densidade probabilística dada por:
f(x) =
1
σ


e

1
2

x −µ
σ
¸
¸
2
onde µ é a média e σ é o desvio padrão. A função de densidade normal não pode
ser integrada analíticamente e desta forma não podemos usar o método da trans-
formação inversa. Podemos, entretanto, uma vez mais, gerar a variável aleatória
desejada por simulação direta.
Para fazer isto considere o caso especial onde σ = 1 e Z =
(x −µ)
σ
.
Temos então:
f(Z) =
1


e

Z
2
2
Esta é a função de densidade probabilística para a distribuição normal padroni-
zada (standard).
Pelo teorema do limite central sabemos que a soma de N variáveis aleatórias uni-
formemente distribuídas em [0, 1] segue uma distribuição Normal com µ =
N
2
e
σ =

N
12
.
Podemos escrever:
Z =
N
¸
i=1
U
i

N
2

N
12
Como esta consideração é válida para N > 10, podemos fazer N = 12 para facili-
tar o procedimento computacional, obtendo então:
Z =
12
¸
i=1
U
i
−6
Temos agora um procedimento simples para gerar uma variável aleatória nor-
malmente padronizada. Simplesmente somamos 12 números aleatórios uniforme-
mente distribuídos em [0, 1] e então subtraímos 6, obtendo um valor para Z.
Se desejarmos gerar uma variável normal com média µ e desvio padrão σ, ge-
ramos primeiro Z e então calculamos a variável aleatória desejada X usando:
X = µ +σZ.
Exemplo: Gerar uma variável aleatória que siga a distribuição normal com média 5
e desvio padrão 2. Use o seguinte conjunto de variáveis aleatórias uniformemente
distribuídas em [0, 1]: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43, 0.79, 0.52, 0.81, 0.65, 0.20,
0.57.
186 Introdução à Simulação
A soma dos 12 números dá:
12
¸
i=1
U
i
= 0.35 + 0.97 +. . . + 0.57 = 6.26
Calculamos então o valor de Z = (6.26 −6) = 0.26.
A variável aleatória normal pode então ser obtida por:
X = 5 + (2)(0.26) = 5.52
O programa a seguir, escrito em Pascal, implementa a geração de números aleató-
rios que seguem a distribuição Normal.
O programa permite que se informe quantos números queremos gerar, a média µ e
o desvio padrão σ.
Como saída ele imprime os 6 primeiros números gerados, a média de todos os nú-
meros gerados e o desvio padrão.
O programa usa a RAND2 como o gerador básico de números aleatórios.
{NORMAL I }
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP, J : Integer ;
SOMA, Z, DESVIO: Double;
MU,DELTA: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function NORMAL(MU,DELTA: Real ) : Double;
Var
SOMA12 : Double;
Begin
SOMA12 : = 0. 0;
For J : = 1 to 12 do
Begin
SOMA12 : = SOMA12 + RAND2;
End;
NORMAL : = MU + DELTA ∗ (SOMA12 − 6. 0) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual a media ?’ ) ;
Readln(MU) ;
Writeln( ’Qual o desvio padrao ?’ ) ;
Readln(DELTA) ;
SOMA : = 0. 0;
NUMIMP : = 0;
DESVIO : = 0. 0;
For I : = 1 to N do
Begin
Z : = NORMAL(MU,DELTA) ;
SOMA : = SOMA + Z;
DESVIO : = DESVIO + ( Z ∗ Z ) ;
NUMIMP : = NUMIMP + 1;
4.17 Variáveis aleatórias não uniformes 187
If NUMIMP < 6 then Writeln( Z: 10: 6) ;
End;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 6) ;
DESVIO : = SQRT( ( DESVIO / N) − (SOMA /N) ∗ (SOMA / N) ) ;
Writeln( ’DESVIO PADRAO = ’ ,DESVIO: 10: 6) ;
END.
Em uma execução, usando-se a semente 9999 para a RAND2, em que foram gera-
dos 10.000 números com µ = 5 e σ = 2, os seguintes resultados foram obtidos:
Primeiros 5 números gerados: 2.085512, 2.899317, 0.675719, 6.587349 e 0.518116.
A média (µ) dos 10.000 números gerados foi igual a 5.000099
O desvio padrão (σ) foi igual a 2.008877.
Um método alternativo para gerar variáveis aleatórias normalmente distribuídas
é usar uma das seguintes expressões:
Z =

(−2 ln U
1
) sin (2πU
2
)
ou
Z =

(−2 ln U
1
) cos (2πU
2
)
Ambas as expressões geram variáveis aleatórias normais padronizadas.
Observe que o método anterior necessita de 12 valores de U
i
para cada valor de
Z enquanto que este último só necessita de 2. Assim aparenta ser mais eficiente
do ponto de vista computacional mas o cálculo de logarítimo, raiz quadrada e seno
(ou coseno) é muito mais demorado que uma soma. Na verdade os 2 métodos se
equivalem em termos de tempo computacional.
Exemplo: Gere 2 números aleatórios que sigam uma distribuição normal com mé-
dia 5 e desvio padrão 2. Use o seguinte conjunto de números aleatórios uniforme-
mente distribuídos em [0, 1]: 0.35, 0.97, 0.22, 0.15.
Temos então:
Z
1
=

(−2) ln (0.35) sin [(2π)(0.97)] = −0.27
X
1
= 5 + (2)(−0.27) = 4.46
Z
1
=

(−2) ln (0.22) sin [(2π)(0.15)] = 1.41
X
2
= 5 + (2)(1.41) = 7.82
O programa a seguir, escrito em Pascal, implementa a geração de números aleató-
rios que seguem a distribuição Normal utilizando a fórmula do seno.
O programa permite que se informe quantos números queremos gerar, a média µ e
o desvio padrão σ.
Como saída ele imprime os 5 primeiros números gerados, a média de todos os nú-
meros gerados e o desvio padrão.
O programa usa a RAND2 como o gerador básico de números aleatórios.
188 Introdução à Simulação
{NORMAL I I }
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP: Integer ;
ALEAT,SOMA, Z, DESVIO: Double;
MU,DELTA: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function NORMAL(MU,DELTA: Real ) : Double;
Begin
ALEAT : = SQRT(( −2.0 ∗ LN(RAND2) ) ) ∗ SIN( 2. 0 ∗ PI ∗ RAND2) ;
NORMAL : = MU + DELTA ∗ ALEAT;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual a media ?’ ) ;
Readln(MU) ;
Writeln( ’Qual o desvio padrao ?’ ) ;
Readln(DELTA) ;
SOMA : = 0. 0;
NUMIMP : = 0;
DESVIO : = 0. 0;
For I : = 1 to N do
Begin
Z : = NORMAL(MU,DELTA) ;
SOMA : = SOMA + Z;
DESVIO : = DESVIO + ( Z ∗ Z ) ;
NUMIMP : = NUMIMP + 1;
If NUMIMP < 6 then Writeln( Z: 10: 6) ;
End;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 6) ;
DESVIO : = SQRT( ( DESVIO / N) − (SOMA /N) ∗ (SOMA / N) ) ;
Writeln( ’DESVIO PADRAO = ’ ,DESVIO: 10: 6) ;
End.
Em uma execução, usando-se a semente 9999 para a RAND2, em que foram gera-
dos 10.000 números com µ = 5 e σ = 2, os seguintes resultados foram obtidos:
Primeiros 5 números gerados: 3.882391, 5.281765, 2.879522, 7.491422 e 7.621057.
A média (µ) dos 10.000 números gerados foi igual a 4.983037.
O desvio padrão (σ) foi igual a 2.018632.
4.17 Variáveis aleatórias não uniformes 189
4.17.3 O Método da Rejeição
O Método da Rejeição é um procedimento geral para gerar variáveis aleatórias
para qualquer distribuição cuja densidade probabilística f(x) é contínua e limi-
tada dentro de uma região finita, isto é, necessitamos que 0 ≤ f(x) ≤ f
max
dentro
do intervalo a ≤ x ≤ b.
De maneira a se obter a variável aleatória X, deve-se proceder da seguinte forma:
1. Gerar um par (U
1
, U
2
) de números aleatórios uniformemente distribuídos em
(0,1).
2. Obter uma variável aleatória, K, dentro do intervalo a ≤ K ≤ b, usando a
relação K = a + (b −a) ×U
1
.
3. Avaliar a densidade probabilística no ponto K, isto é, determinar f(K).
4. Obter uma variável aleatória, Y , uniforme dentro do intervalo 0 ≤ Y ≤
f
max
, usando a relação Y = f
max
× U
2
. Os pontos Y e K representam as
coordenadas de algum ponto no espaço como ilustrado nas figuras a seguir:
x
f(x)
0
a
K b
Y
f(K)
f
max
Y < f(K), logo aceitamos K
190 Introdução à Simulação
x
f(x)
0
a
K b
Y
f(K)
f
max
Y > f(K), logo não aceitamos K
5. Comparar Y com f(K).
Se Y não é maior que f(K) então o ponto (Y, K) cairá em cima ou abaixo
da curva de densidade probabilística como indicado na primeira figura acima.
Neste caso nós aceitamos K como a variável aleatória desejada, ou seja, faze-
mos X = K.
Se Y é maior que f(K), rejeitamos o ponto.
6. As etapas de 1 a 5 são repetidas sucessivamente até ser encontrado um ponto
que satisfaça a condição.
Embora o método da rejeição possa ser usado com muitas distribuições diferentes,
ele é ineficiente por causa das diversas tentativas que se tem que fazer para se
obter uma variável aleatória desejada. Por esta razão só deve ser usado se não
existir outro método.
A distribuição Beta
Para ilustrar o uso do método da rejeição, vamos considerar a distribuição Beta.
Esta distribuição tem a densidade probabilística dada por:
f(x) =

1

2
−1)!x
(β1−1)
(1 −x)
(β2−1)

1
−1)!(β
2
−1)!
onde β
1
e β
2
são inteiros positivos e 0 ≤ x ≤ 1.
Pode ser mostrado que a média e a variância para esta distribuição são:
µ =
β
1

1

2
)
σ
2
=
µβ
2

1

2
) + (β
1

2
+ 1)
Como 0 ≤ x ≤ 1 para a distribuição Beta, temos, no método da rejeição, a = 0 e
b = 1.
4.17 Variáveis aleatórias não uniformes 191
Exemplo: O modo mais fácil de gerar uma variável aleatória Beta é usar simulação
direta. Vamos no entanto, como exemplo, usar o método da rejeição. Em particular
vamos gerar várias variáveis beta com β
1
= 2 e β
2
= 3, baseado na seguinte
sequência de números aleatórios uniformemente distribuídos em (0,1): 0.35, 0.97,
0.22, 0.15, 0.60, 0.43, 0.79, 0.52, 0.81, 0.65, 0.20, 0.57.
K = a + (b −a) ×U
1
= 0 + (1 −0) ×U
1
= U
1
K = U
1
A função de densidade probabilística pode ser escrita como:
f(x) =
(2 + 3 −1)!x
(2−1)
(1 −x)
(3−1)
(2 −1)!(3 −1)!
f(x) = 12x(1 −x)
2
A função toma seu valor máximo em x = 1/3.
Temos então:
f
max
= 12

1
3

2
3

2
=
16
9
= 1.78
Como Y é igual f
max
×U
2
, temos:
Y = 1.78 ×U
2
Os resultados obtidos com a aplicação do método estão mostrados a seguir:
U
1
U
2
K f(K) Y Y ≤ f(K)? X
0.35 0.97 0.35 1.77 1.73 SIM 0.35
0.22 0.15 0.22 1.61 0.27 SIM 0.22
0.60 0.43 0.60 1.15 0.77 SIM 0.60
0.79 0.52 0.79 0.42 0.93 NÃO
0.81 0.65 0.81 0.35 1.16 NÃO
0.20 0.57 0.20 1.54 1.01 SIM 0.20
Assim com 6 pares de números aleatórios em [0, 1], nós geramos 4 variáveis beta
cujos valores são 0.35, 0.22, 0.60 e 0.20.
O programa a seguir, escrito em Pascal, implementa a geração de números alea-
tórios que seguem a distribuição Beta utilizando o método da rejeição.
O programa permite que se informe quantos números queremos gerar, e o valor
F
max
.
Como saída ele imprime os 5 primeiros números gerados, a média de todos os nú-
meros gerados e o desvio padrão.
Ele imprime também quantos números aleatórios em [0, 1] foram necessários.
O programa usa a RAND2 como o gerador básico de números aleatórios.
192 Introdução à Simulação
{BETA}
Const
A = 0;
B = 1;
Var
semente : double; { Vari avel ut i l i zada pel a RAND2}
N, I ,NUMIMP: Integer ;
J : Longint ;
U: Double;
MEDIA,FMAX, X, Y,SOMA, DESVIO,NUMBETA: Real ;
{ $I RAND2. PAS}
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Function VFUNCAO (X: Real ) : Real ;
Begin
VFUNCAO : = 12 ∗ X ∗ ( 1 − X) ∗ ( 1 − X) ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ }
Begin
Writeln( ’Qual a semente ? (1 - 2147483646) ’ ) ;
Readln( semente ) ;
Writeln( ’Quantos Numeros ?’ ) ;
Readln(N) ;
Writeln( ’Qual o valor de Fmax ?’ ) ;
Readln(FMAX) ;
SOMA : = 0. 0;
NUMIMP : = 0;
DESVIO : = 0. 0;
I : = 0;
J : = 0;
While I < N do
Begin
U : = RAND2;
J : = J +1;
X : = A + (B − A) ∗ U;
U : = RAND2;
J : = J + 1;
Y : = FMAX ∗ U;
If Y < VFUNCAO(X) then
Begin
I : = I + 1;
NUMBETA : = X;
SOMA : = SOMA + NUMBETA;
DESVIO : = DESVIO + NUMBETA ∗ NUMBETA;
NUMIMP : = NUMIMP + 1;
If NUMIMP < 6 then Writeln(NUMBETA: 10: 6) ;
End;
End;
Writeln( ’Usados ’ , J/ 2: 10: 0 , ’ pares de numeros aleatorios’ ) ;
Writeln( ’MEDIA = ’ ,SOMA / N: 10: 6) ;
SOMA : = SOMA / N;
DESVIO : = SQRT( ( DESVIO / N) − (SOMA ∗ SOMA) ) ;
Writeln( ’Desvio Padrao = ’ ,DESVIO: 10: 6 ) ;
4.18 Simulação de um pequeno posto bancário 193
End.
Em uma execução, usando-se a semente 9999 para a RAND2, em que foram gera-
dos 10.000 números, os seguintes resultados foram obtidos:
Primeiros 5 números gerados: 0.114248, 0.304275, 0.372518, 0.273952 e 0.187698.
A média (µ) dos 10.000 números gerados foi igual a 0.401867. A média teórica é
igual a:
µ =
β
1
β
1

2
=
2
2 + 3
= 0.4
O desvio padrão (σ) foi igual a 0.200748. O desvio padrão teórico é igual a:
σ =

µβ
2

1

2
)(β
1

2
+ 1)
=

0.4 ×3
(2 + 3)(2 + 3 + 1)
= 0.2
Para se gerar os 10.000 números beta, foram necessários 17.664 pares de números
aleatórios gerados pela RAND2, o que mostra a ineficiência do método.
4.18 Simulação de um pequeno posto bancário
Veremos uma aplicação construída para simular o funcionamento de um pequeno
posto bancário com uma único caixa e uma única fila.
Dados obtidos por amostragem indicam que o intervalo entre chegadas de clientes
segue uma Distribuição Exponencial e a duração do serviço prestado, pelo caixa,
também segue uma Distribuição Exponencial.
O programa a seguir, escrito em Pascal, implementa a simulação desejada e utiliza
a RAND2 como o gerador de números aleatórios uniformemente distribuídos.
Neste tipo de simulação, em que temos 2 eventos aleatórios (intervalo entre chega-
das e duração do serviço), devemos utilizar 2 sementes diferentes, uma para cada
tipo de evento.
{ Fi l a com 1 servi dor : Int erval o ent re chegadas : Exponencial
Ex. Posto bancario Duracao do servi co : Exponencial
com 1 caixa
Usa a RAND2 como gerador de nos . al eat ori os [ 0 , 1] .
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Vari avei s pri nci pai s usadas no programa
CLIENTES_NA_FILA − Numero de c l i e nt e s esperando na f i l a
CLIENTES_RECEBENDO_SERVICO − Cl i ent es sendo servi dos ( 0 ou 1)
CHEGADA( I ) − Instante da chegada do ( iesimo −1) c l i e nt e
a ser atendido , assim CHEGADA( 2) e ’ o i nst ant e
de chegada do primeiro na f i l a de espera e
CHEGADA( 1) e ’ o i nst ant e da chegada
do c l i e nt e sendo atendido
INSTANTE_PROXIM0_EVENTO( I ) − Instante da ocorrenci a do proximo evento
[ 1 ( chegada ) ou 2 ( saida ) ]
TIPO_PROXIMO_EVENTO− Tipo de proximo evento ( 1 ou 2)
DURACAO_SERVICO− Duracao do servi co do ultimo c l i e nt e a receber servi co
RELOGIO − Rel ogi o de cont rol e da simulacao
NUMERO_EVENTOS − Numero de eventos (=2 ou sej a , chegadas e servi cos prestados )
INSTANTE_ULTIMO_EVENTO − Instante da ocorrenci a do ultimo evento
usada para at ual i zar TEMPO_SERVIDOR_OCUPADO
194 Introdução à Simulação
TEMPO_SERVIDOR_OCUPADO − Tempo t ot al de ocupacao da caixa
TEMPO_NO_SISTEMA − Tempo que um c l i e nt e f i c a no sistema
SOMA_TEMPOS_NO_SISTEMA− Soma tempos no sistema de todos os c l i e nt e s
NO_SERVICOS_PRESTADOS− Numero de servi cos prestados , ou sej a , c l i e nt e s atendidos
MAIS_DE_4 − Numero de c l i e nt e s que ficaram mais de 4 unidades de tempo na f i l a
MAXIMO_NA_FILA − Maior numero de c l i e nt e s na f i l a durante toda a simulacao
INSTANTE_ULTIMO_EVENTO − Instante da ocorrenci a do ultimo evento
NUMERO_DE_CLIENTES − numero de c l i e nt e s tratados pela simulacao
RHO− Taxa de ocupacao do servi dor
PERC_MAIS_4 − Percentual de c l i e nt e s que ficam mais de 4 unidades de
tempo na f i l a
TEMPO_TOTAL_NA_FILA − Soma dos tempos gasto pel os c l i e nt e s na f i l a
UNIDADE_DE_TEMPO − Unidade de medicao do tempo
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Uses wincrt ;
Label
VOLTA;
Var
semente : double; { Variavel ut i l i zada pela RAND2}
G1, G2, U: Double;
MEDIAEXP,ALFA,MEDIAEXP1, ALFA1: Real ;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
MAXIMO_NA_FILA,TIPO_PROXIMO_EVENTO,CLIENTES_RECEBENDO_SERVICO: Integer ;
NUMERO_DE_CLIENTES,NO_SERVICOS_PRESTADOS, MAIS_DE_4: Longint ;
NUMERO_EVENTOS, I : Integer ;
CLIENTES_NA_FILA: Longint ;
RELOGIO,TEMPO_NO_SISTEMA,TEMPO_SERVIDOR_OCUPADO,FMIN,DURACAO_SERVICO: Real ;
INSTANTE_ULTIMO_EVENTO,SOMA_TEMPOS_NO_SISTEMA,RHO, PERC_MAIS_4: Real ;
TEMPO_TOTAL_NA_FILA: Real ;
UNIDADE_DE_TEMPO: String [ 9 ] ;
INSTANTE_PROXIMO_EVENTO: Array [ 1 . . 2 ] of Real ;
CHEGADA: Array[ 1. . 100] of Real ;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
{ $I RAND2. PAS}
{ //////////////////////////////////////////////////////////////////////
Funcao para a geracao de nos . al eat ori os exponencialmente di st ri bui dos
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Function EXPONENCIAL(ALFA: Real ; U: Double ) : Real ;
Begin
EXPONENCIAL: = −(1/ALFA) ∗ LN(U) ;
End;
{ //////////////////////////////////////////////////////////////////////
I ni ci al i z acao
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Procedure INICIALIZACAO;
Begin
NUMERO_EVENTOS: =2;
RELOGIO: =0. 0;
CLIENTES_NA_FILA: =0;
CLIENTES_RECEBENDO_SERVICO: =0;
TEMPO_SERVIDOR_OCUPADO: =0. 0;
MAXIMO_NA_FILA: =0;
SOMA_TEMPOS_NO_SISTEMA: =0;
MAIS_DE_4: =0;
NO_SERVICOS_PRESTADOS: =0;
TEMPO_TOTAL_NA_FILA: = 0. 0;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Gera a primeira chegada
Faz INSTANTE_PROXIMO_EVENTO[ 2] i gual a i nf i ni t o para i ndi car que uma
partida e ’ i mpossi vel com o sistema vazi o
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
semente: = G1;
U: = RAND2;
G1: = semente ;
INSTANTE_PROXIMO_EVENTO[ 1] : = RELOGIO + EXPONENCIAL(ALFA,U) ;
INSTANTE_PROXIMO_EVENTO[ 2] : = 1. 0E30;
4.18 Simulação de um pequeno posto bancário 195
End;
{ //////////////////////////////////////////////////////////////////////
Rotina de avanco do tempo para determinar proximo evento
e avancar rel ogi o para o i nst ant e do proximo evento
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Procedure AVANCA;
Begin
FMIN: =1. 0E20;
TIPO_PROXIMO_EVENTO: =0;
For I : = 1 to NUMERO_EVENTOS do
Begin
If INSTANTE_PROXIMO_EVENTO[ I ] < FMIN Then
Begin
FMIN : = INSTANTE_PROXIMO_EVENTO[ I ] ;
TIPO_PROXIMO_EVENTO: = I ;
End;
End;
If TIPO_PROXIMO_EVENTO = 0 Then
Begin
Writeln ( ’LISTA DE EVENTOS FUTUROS VAZIA - ERRO’ ) ;
HALT;
End;
RELOGIO: =INSTANTE_PROXIMO_EVENTO[TIPO_PROXIMO_EVENTO] ;
End;
{ //////////////////////////////////////////////////////////////////////
Tratamento de uma chegada
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Procedure CHEGADAS;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Determina se o servi dor esta ’ ocupado . Menor que 1 esta ’ l i vr e .
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Begin
If CLIENTES_RECEBENDO_SERVICO < 1 Then
Begin
CLIENTES_RECEBENDO_SERVICO: = 1;
CHEGADA[ 1] : =RELOGIO;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Gera uma duracao de servi co para a nova chegada e programa a
partida desta nova chegada
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
semente: = G2;
U: = RAND2;
G2: = semente ;
DURACAO_SERVICO: = EXPONENCIAL(ALFA1,U) ;
INSTANTE_PROXIMO_EVENTO[ 2] : =RELOGIO + DURACAO_SERVICO;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Atualiza MAXIMO_NA_FILA e INSTANTE_ULTIMO_EVENTO
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
INSTANTE_ULTIMO_EVENTO: = RELOGIO;
If CLIENTES_NA_FILA > MAXIMO_NA_FILA Then
MAXIMO_NA_FILA : = CLIENTES_NA_FILA;
End
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
O servi dor esta ’ ocupado . Atualiza o estado do sistema e regi st ra
i nst ant e da nova chegada
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Else
Begin
CLIENTES_NA_FILA: =CLIENTES_NA_FILA + 1;
I : = CLIENTES_NA_FILA + 1;
If I > 100 Then
Begin
Writeln ( ’Fila maior que 100. Aumente dimensoes’ ) ;
HALT;
End;
CHEGADA[ I ] : =RELOGIO;
196 Introdução à Simulação
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Atualiza e s t at i s t i c as cumulativas TEMPO_SERVIDOR_OCUPADO e MAXIMO_NA_FILA
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
TEMPO_SERVIDOR_OCUPADO : = TEMPO_SERVIDOR_OCUPADO +
(RELOGIO − INSTANTE_ULTIMO_EVENTO) ;
INSTANTE_ULTIMO_EVENTO : = RELOGIO;
IF CLIENTES_NA_FILA >= MAXIMO_NA_FILA Then
MAXIMO_NA_FILA : = CLIENTES_NA_FILA;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Gera um i nt erval o ent re chegadas e programa o proximo evento de chegada
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
semente: = G1;
U: = RAND2;
G1: = semente ;
INSTANTE_PROXIMO_EVENTO[ 1] : =RELOGIO+EXPONENCIAL(ALFA,U) ;
End;
{ //////////////////////////////////////////////////////////////////////
Rotina de servi co
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Procedure SERVICO;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Atualiza e s t at i s t i c as cumulativas TEMPO_SERVIDOR_OCUPADO,
SOMA_TEMPOS_NO_SISTEMA, NO_SERVICOS_PRESTADOS e MAIS_DE_4MIN.
CLIENTES_NA_FILA e ’ diminuida de modo que MAXIMO_NA_FILA nao muda.
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Begin
TEMPO_SERVIDOR_OCUPADO: = TEMPO_SERVIDOR_OCUPADO +
(RELOGIO − INSTANTE_ULTIMO_EVENTO) ;
INSTANTE_ULTIMO_EVENTO : = RELOGIO;
TEMPO_NO_SISTEMA: = RELOGIO −CHEGADA[ 1 ] ;
SOMA_TEMPOS_NO_SISTEMA: = SOMA_TEMPOS_NO_SISTEMA + TEMPO_NO_SISTEMA;
NO_SERVICOS_PRESTADOS: = NO_SERVICOS_PRESTADOS + 1;
If TEMPO_NO_SISTEMA > 4 Then MAIS_DE_4 : = MAIS_DE_4 + 1;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Veri f i ca a condicao da f i l a
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
If CLIENTES_NA_FILA < 1 Then
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Fi l a vazia . Servidor desocupado . Proxima saida i gual a i nf i ni t o
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Begin
CLIENTES_RECEBENDO_SERVICO : = 0;
INSTANTE_PROXIMO_EVENTO[ 2] : =1. 0E30;
End
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Pelo menos 1 c l i e nt e na f i l a . Mover cada c l i e nt e 1 posi cao
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Else
Begin
For I :=1 to CLIENTES_NA_FILA do
Begin
CHEGADA[ I ] : =CHEGADA[ I +1] ;
End;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Atualiza estado do sistema
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
CLIENTES_NA_FILA: = CLIENTES_NA_FILA −1;
TEMPO_TOTAL_NA_FILA: =TEMPO_TOTAL_NA_FILA + (RELOGIO−CHEGADA[ 1 ] ) ;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Gera nova duracao de servi co para o c l i e nt e chegando para servi co
e programa proxima saida
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
semente: = G2;
U: = RAND2;
G2: = semente ;
4.18 Simulação de um pequeno posto bancário 197
DURACAO_SERVICO: = EXPONENCIAL(ALFA1,U) ;
INSTANTE_PROXIMO_EVENTO[ 2] : =RELOGIO + DURACAO_SERVICO;
End;
End;
{ //////////////////////////////////////////////////////////////////////
Impressao dos resul t ados
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Procedure RESULTADOS;
Begin
RHO: =TEMPO_SERVIDOR_OCUPADO/RELOGIO;
PERC_MAIS_4: =MAIS_DE_4/NO_SERVICOS_PRESTADOS;
Writeln ( ’Simulacao de um Sistema de Fila com 1 estacao de servico’ ) ;
Writeln ( ’--------------------------------------------------------’ ) ;
Writeln ( ’Intervalo entre chegadas (Exponencial) = ’ ,MEDIAEXP: 3: 3 ,
’ ’ ,UNIDADE_DE_TEMPO) ;
Writeln ( ’Duracao do servico (Exponencial) = ’ ,MEDIAEXP1: 2: 3 ,
’ ’ ,UNIDADE_DE_TEMPO) ;
Writeln ( ’--------------------------------------------------------’ ) ;
Writeln ( ’Total de clientes atendidos = ’ ,NO_SERVICOS_PRESTADOS) ;
Writeln ( ’Taxa de ocupacao do servidor = RHO = ’ ,RHO: 0 : 3 ) ;
Writeln ( ’Maximo de clientes na fila = ’ ,MAXIMO_NA_FILA) ;
Writeln ( ’Percentual de clientes que esperaram mais de 4 ’ ,UNIDADE_DE_TEMPO,
’ = ’ ,PERC_MAIS_4∗100: 0: 2 , ’ %’ ) ;
Writeln ( ’Tempo medio gasto por cliente na fila = Wq = ’ ,
(TEMPO_TOTAL_NA_FILA/NO_SERVICOS_PRESTADOS) : 3: 3 , ’ ’ ,UNIDADE_DE_TEMPO) ;
Writeln ( ’Tempo medio gasto por cliente no sistema = W = ’ ,
(SOMA_TEMPOS_NO_SISTEMA/NO_SERVICOS_PRESTADOS) : 3: 3 , ’ ’ ,UNIDADE_DE_TEMPO) ;
Writeln ( ’Tempo total de simulacao = ’ ,RELOGIO: 6: 3 , ’ ’ ,UNIDADE_DE_TEMPO) ;
End;
{ //////////////////////////////////////////////////////////////////////
ROTINA PRINCIPAL
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
Recebe os parametros de entrada e sementes para a geracao de
numeros al eat ori os
∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
Begin
CLRSCR;
VOLTA:
Writeln ( ’Qual a semente ? (1 - 2147483646) - Intervalo entre Chegadas ’ ) ;
Readln( semente ) ;
G1: = semente ;
Writeln ( ’Qual a semente ? (1 - 2147483646) - Duração do Atendimento ’ ) ;
Readln( semente ) ;
G2 : = semente ;
IF G1 = G2 Then
Begin
Writeln ( ’SEMENTES IGUAIS - ERRO!!’ ) ;
GOTO VOLTA;
End;
Writeln ( ’Qual a unidade de tempo a ser usada ?’ ) ;
Readln(UNIDADE_DE_TEMPO) ;
Writeln ( ’Qual o intervalo, em ’ ,UNIDADE_DE_TEMPO,
’ ,entre chegadas - EXPONENCIAL ?’ ) ;
Readln(MEDIAEXP) ;
ALFA: =1. 0/MEDIAEXP;
Writeln ( ’Qual a media, em ’ ,UNIDADE_DE_TEMPO,
’,da duracao do servico - EXPONENCIAL ?’ ) ;
Readln(MEDIAEXP1) ;
ALFA1: = 1. 0/MEDIAEXP1;
Writeln ( ’Quantos clientes na simulacao ?’ ) ;
Readln(NUMERO_DE_CLIENTES) ;
CLRSCR;
{ ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗}
INICIALIZACAO;
While (NO_SERVICOS_PRESTADOS < NUMERO_DE_CLIENTES) do
Begin
198 Introdução à Simulação
AVANCA;
If TIPO_PROXIMO_EVENTO = 1 Then CHEGADAS
Else SERVICO;
End;
RESULTADOS;
End.
A execução deste programa com os seguintes dados de entrada:
Semente para a RAND2, para o intervalo entre chegadas: 4444
Semente para a RAND2, para a duração do serviço: 12345
Intervalo entre chegadas (exponencial): 2 minutos
Duração do Serviço: 1.5 minutos
Número de usuários a serem simulados: 10.000
Apresentou a seguinte tela de saída:
Simulacao de um Sistema de Fila com 1 estacao de servico
——————————————————–
Intervalo entre chegadas (Exponencial) = 2.000 minutos
Duracao do servico (Exponencial) = 1.500 minutos
——————————————————–
Total de clientes atendidos = 10000
Taxa de ocupacao do servidor = RHO = 0.764
Maximo de clientes na fila = 21
Percentual de clientes que esperarammais de 4 minutos = 51.89%
Tempo medio gasto por cliente na fila = Wq = 4.563 minutos
Tempo medio gasto por cliente no sistema = W = 6.064 minutos
Tempo total de simulacao = 19667.265 minutos
Este tipo de fila, tem solução analítica pois se trata do chamado Modelo M/M/1
da Teoria das Filas.
Aplicando as fórmulas teóricas chegamos aos seguintes resultados:
Taxa de ocupação do servidor = ρ (rho) = 0.750
Percentual de clientes que esperaram mais de 4 minutos = 51.34%
Tempo médio gasto por cliente na fila = W
q
= 4.5 minutos
Tempo médio gasto por cliente no sistema = W = 6.0 minutos
Comparando-se os resultados da simulação com os resultados teóricos, podemos
observar que a simulação apresenta resultados totalmente aderentes aos resulta-
dos teóricos o que demonstra a potencialidade da técnica.
Obviamente não teria sentido se construir um modelo de simulação para a situa-
ção acima onde temos solução analítica. O objetivo foi apenas mostrar o uso das
técnicas de simulação.
4.19 Um software mais versátil 199
4.19 Um software mais versátil
Veremos a seguir um outro programa (simulacao)
3
, um pouco mais versátil do que
acabamos de ver. Ele simula um sistema de filas e permite que se escolha o número
de estações que prestam serviço, o número máximo de clientes que podem ficar no
sistema, a distribuição do intervalo entre chegadas (exponencial, normal, uniforme
ou empírica), a distribuição da duração do serviço prestado (exponencial, normal,
uniforme ou empírica) e a duração da simulação. Pode-se escolher também a uni-
dade de tempo a ser usada.
Pode-se determinar também o número de replicações (até o máximo de 100), ou seja
quantas vezes deseja-se executar a simulação para o mesmo conjunto de dados de
entrada.
O programa usa a RAND4 como o gerador de números aleatórios e usa “séries” di-
ferentes, entre 1 e 50, para o intervalo entre chegadas e para a duração do serviço.
As sementes e as séries usadas são escolhidas, aleatoriamente, pelo programa. No
caso de se executar replicações, séries e sementes diferentes são criadas em cada
uma das execuções individuais da replicação.
Os resultados mostrados na saída são, no caso das replicações, as médias obtidas
com as diversas execuções.
3
É um dos módulos do programa PO, que pode ser obtido de www.mpsantos.com.br
200 Introdução à Simulação
4.19.1 Alguns exemplos usando o programa “Simulação”
Como exemplo do uso do programa, vamos simular um sistema de filas que tenha
solução analítica para compararmos os resultados.
Vamos simular o sistema de filas de uma agência bancária, com 3 caixas de aten-
dimento, em que as chegadas sigam uma distribuição exponencial com intervalo
médio entre chegadas igual a 2 minutos.
A distribuição do tempo de atendimento dos caixas também segue uma distribuição
exponencial com atendimento médio igual a 4 minutos.
A tela de entrada do programa para execução desta simulação seria a seguinte:
Como não existe limitação para o número de clientes, ao mesmo tempo, na agên-
cia, o campo “Máximo usuários permitido no Sistema” ficou com100.000. Aduração
da simulação foi de 10.000 minutos e solicitamos que 100 replicações fossem exe-
cutadas.
O valor em qualquer dos campos pode ser mudado, bastando para isto clicar nele
e apagar o valor existente com as teclas [Delete] ou [Backspace]. Os campos
Unidade de tempo, Distribuição das chegadas e Distribuição do Serviço podem ser
mudados com o simples click do mouse no novo ítem desejado.
Após se colocar os valores desejados, clica-se em SIMULAR e a Simulação será
executada. No nosso exemplo aparecerá a seguinte tela:
4.19 Um software mais versátil 201
Caso se tenha uma impressora esta tela poderá ser impressa. Clicando-se no botão
VOLTAR saímos do programa, voltando-se para o software Po.
Como este modelo simulado é um exemplo do modelo M/M/s, podemos comparar
os resultados obtidos na simulação com os resultados teóricos obtidos das fórmulas
analíticas daquele modelo de filas:
Tempo médio que um cliente permanece na fila (W
q
):
Simulação : 1,789 minutos
Teórico : 1,776 minutos
Número Médio de clientes na fila (L
q
):
Simulação : 0,894 clientes
Teórico : 0,888 clientes
Taxa de ocupação das estações de serviço (caixas):
Simulação : 66,5%
Teórico : 66,7%
Podemos observar que a simulação deu resultados praticamente iguais aos teóricos
o que demonstra a robustez da técnicas de simulação além de servir para demons-
trar que o programa está se comportando de maneira adequada.
202 Introdução à Simulação
Vamos usá-lo agora para simular uma situação de fila em que não existem, pelo
menos de forma fácil, fórmulas teóricas.
Vamos supor uma agência bancária, com 4 caixas de atendimento, onde as chega-
das chegam seguindo uma distribuição normal com intervalo médio entre chegadas
de 2 minutos e desvio padrão de 0, 5 minutos. A duração do atendimento prestado
pelos caixas também segue uma distribuição normal, com média de 8 minutos para
a duração do atendimento e desvio padrão de 1, 5 minutos..
A tela de entrada desta simulação seria:
A saída, após 100 replicações, cada uma com 20.000 minutos de simulação, apre-
sentou os seguintes resultados:
4.19 Um software mais versátil 203
Os resultados da simulação mostram que esta agência bancária não está prestando
um serviço de boa qualidade pois, em média, cada cliente tem que esperar mais de
30 minutos na fila e, em média a fila tem quase 16 clientes.
Para melhorar a qualidade do serviço prestado vamos examinar os resultados da
simulação se colocamos mais 1 caixa de atendimento. Alterando a entrada e execu-
tando a simulação, chegamos aos seguintes resultados:
204 Introdução à Simulação
Como pode ser visto, a fila praticamente desaparece.
Embora bastante versátil, o programa é limitado a determinados tipos de sistema
de fila. Se alteramos as condições básicas, temos que alterar o programa alterando-
se rotinas já existentes ou incluindo novas rotinas.
Como ilustração da dificuldade e do custo de se fazer isto, lembramos que o fonte do
programa tem 20 páginas de código de programação. Mesmo se tirarmos as 5 ou 6
páginas de código que são necessários para o ambiente Windows, ainda restariam
15 páginas de codificação!.
Para cada modelo, a não ser que sejam muito semelhantes como nos exemplos
acima, temos que construir programas de computador cuja complexidade é pro-
porcional a complexidade do modelo simulado.
Apesar da vantagem advinda de se ter um programa “sob medida”, o tempo que se
leva para se obter os primeiros resultados normalmente invalida aquela vantagem,
principalmente em modelos complexos.
Este fato fez com que fossem desenvolvidos programas voltados exclusivamente
para a construção de modelos de simulação. Veremos a seguir, um dos mais usados
na atualidade.
4.20 O software ARENA 205
4.20 O software ARENA
A tela principal do ARENA é a seguinte:
A esquerda temos a área dos painéis (templates) como Create, Dispose, Process,
etc... Os modelos de simulação são construídos com estes painéis, como veremos
mais adiante. Observe que o título da área de painéis é “Basic Process”, ou seja
estes são os blocos básicos e poderemos acrescentar outros a medida que eles forem
sendo necessários.
Na verdade, na sua forma mais simplificada, criamos modelos no ARENA cons-
truindo “desenhos” lógicos com os painéis.
4.20.1 Simulação de um pequeno posto bancário
Vamos ver o exemplo de um pequeno posto bancário com um único caixa.
Como já dissemos, no Arena trabalhamos com blocos e, interligando-os, construí-
mos o modelo. Antes de ver como se faz no Arena, vamos construir nosso modelo
lógico. Podemos representar nosso posto da seguinte forma:
206 Introdução à Simulação
Clientes
Chegam
Clientes são
Atendidos
Clientes vão
embora
Vamos agora para o Arena. O nosso 1
o
bloco, ou seja a chegada de clientes, tem
que ser criado. Clicando e segurando o mouse, arrastamos o template Create do
lado esquerdo para a área de trabalho, que é a maior área branca da tela inicial.
Soltamos o mouse e uma caixa Create1 aparece no espaço em branco. A seguir
temos que criar o bloco que representa o atendimento aos clientes. Para isto, temos
que usar o template Process, ou seja clicamos, seguramos o mouse e o arrastamos
para a direita da caixa Create1. O ARENA conecta automaticamente as 2 caixas
(isto pode ser desligado). Vai ser criada uma caixa chamada Process1. E, para
finalizar, fazemos o mesmo com o template Dispose e a colocamos à direita da Pro-
cess1. Esta caixa vai representar a saída dos clientes.
A aparência da nossa tela deverá ser a seguinte:
Na parte abaixo da área de trabalho aparece uma espécie de planilha com alguns
dados que ficarão mais claros a medida que formos avançando.
Dando um duplo click na caixa Create1, abre-se o seguinte quadro:
4.20 O software ARENA 207
Podemos entrar com os dados da nossa aplicação. Na 1
a
linha, vamos trocar o nome
(Name) de Create 1 para Chegada de Clientes. O tipo da entidade (Entity Type) de
Entity 1 para Clientes.
A 2
a
linha trata da distribuição do intervalo entre chegadas (Time Between Arri-
vals). Em Type, vamos escolher Expression e em Value escolhemos EXPO(Mean),
ou seja estamos dizendo que o intervalo entre chegadas segue uma distribuição
exponencial. No exemplo que queremos simular, o intervalo entre chegadas tem
média igual a 2 minutos.
Antes de introduzirmos este valor, devemos saber que o ARENAusa a RAND4 como
gerador de números aleatórios. Assim, além da média, convém informar, embora
seja opcional, qual a série que deve ser usada para gerar as chegadas de clientes.
Em princípio não deve-se usar a série 10 pois esta é a série que o Arena usa quando
não se informa nada. Vamos usar a série 23. Colocamos então no campo Value a
expressão EXPO(2,23), ou seja média igual a 2 usando-se na simulação, a série 23
da RAND4. A seguir devemos trocar o campo Units para minutos.
A 3
a
linha fica como está pois Entidades por Chegada (Entities per Arrival) é igual
a 1, ou seja cada cliente chega sozinho. Não existe limite para o número de clientes
que podem chegar, assim Max Arrivals é igual a Infinito e o instante de criação
(First Creation) da 1
a
chegada é o instante 0.0, ou seja o início da simulação.
Nosso quadro fica então desta forma:
208 Introdução à Simulação
Basta clicar em OK para confirmar as alterações.
Vamos agora dar um duplo click no bloco Process 1. Um novo quadro se abre:
Mudamos o Name para Atendimento aos Clientes, o tipo fica Standard. No campo
Action, deve ser escolhida a opção Seize Delay Release, ou seja Captura–Retém por
algum tempo–Libera, que é o que um caixa faz com os clientes.
Ao se escolher a ação acima abre-se um novo campo Prioridade (Priority) que deve
4.20 O software ARENA 209
ser deixado como Medium(2). Abre-se, também um novo quadro para a definição
dos recursos (resources) que, no nosso exemplo, é um único caixa.
Devemos clicar na opção Add para incluir o recurso (Caixa) no modelo, como mos-
trado a seguir:
210 Introdução à Simulação
Como pode ser visto acima, escolhemos Resource (em Type), Caixa (em Resource
name) e 1 (em quantity).
Precisamos informar agora o tipo de distribuição do atendimento feito pelo caixa
que, no nosso exemplo, segue uma distribuição exponencial com média de 1.5 mi-
nutos. Escolhemos então: Expression (em Delay Type), Minutes (em Units), Value
Added (em Allocation) e EXPO(Mean) (em Expression). Devemos a seguir subs-
tituir o (Mean) por (1.5,7), pois vamos usar a série 7 da RAND4 para a geração
da duração do serviço. Se não estiver marcado, devemos marcar o campo Report
Statistics. Finalmente clicamos em OK para confirmar nossos dados.
Repetimos o processo para a caixa Dispose. O seguinte quadro aparecerá:
4.20 O software ARENA 211
Mudamos o nome para Saída de Clientes, marcamos o campo Record Entity Statis-
tics e clicamos em OK, obtendo-se o seguinte quadro.
A área de trabalho do ARENA estará da seguinte forma;
Podemos reparar que aparece uma linha em cima do bloco Atendimento aos Cli-
entes. Esta linha representa a fila que se forma no caixa. Na parte de baixo, a
medida que se clica em um dos blocos, aparece uma planilha com as informações
pertinentes a cada bloco. Podemos alterar, se for o caso, as informações na planilha
que elas passarão a valer para o bloco.
Neste ponto, o modelo está construído mas antes de executar a simulação, temos
que ajustar alguns parâmetros. Assim, devemos clicar em Run → Setup, no
menu. O quadro a seguir (já com as alterações feitas), para Replication Parameters
aparecerá:
212 Introdução à Simulação
Vamos fazer apenas uma simulação (1 replicação) com duração de 10.000 minutos.
Também no Run → Setup, aba Project Parameters, podemos entrar com os
parâmetros do projeto tais como nome do projeto, nome do analista, descrição do
projeto, etc...
Devemos também marcar os ítens para os quais queremos que sejam gerados rela-
tórios:
4.20 O software ARENA 213
Para finalizar clicamos em OK.
Para executar a simulação clicamos, no menu, em Run → Go. Passamos a ver
então a simulação dinamicamente acontecendo como no “retrato” a seguir (obtido
apertando-se, durante a simulação, a tecla <ESC>):
Neste ponto já tinham chegado 509 clientes, 503 já tinham sido atendidos, 5 esta-
vam na fila e 1 estava sendo atendido.
Ao final da simulação, o ARENA emite dezenas de relatórios que podem ser acessa-
dos a partir da “aba” Reports que existe na parte esquerda da tela. Vamos mostrar
alguns destes relatórios e ver os resultados obtidos.
O 1
o
é o Queues que dá informações sobre a fila em si:
214 Introdução à Simulação
O tempo de espera médio na fila é de 4,59 minutos. O teórico (W
q
), modelo M/M/1,
é 4,50 minutos. A maior espera foi de 44.69 minutos. O número médio de clientes
na fila é 2,30 clientes. O teórico (L
q
) é igual a 2,25 clientes. O número máximo de
clientes na fila foi 21.
O próximo relatório que podemos examinar é o de Resources que, no nosso exemplo
é o caixa.
4.20 O software ARENA 215
Como podemos observar, o Caixa ficou ocupado 75% do tempo. Este resultado é
exatamente igual ao teórico (ρ = 0.75). Mostra também que o Caixa atendeu
5.002 clientes.
Outro relatório que pode ser visto é o de Processes:
Ele mostra que a maior espera total de um cliente foi de 46.85 minutos, o aten-
dimento mais demorado foi 14,71 minutos e a maior espera na fila foi de 44.69
minutos.
Como citamos anteriormente, vários outros relatórios, com gráficos inclusive, são
impressos e podem ser examinados.
4.20.2 Simulação de um check-in
Vamos imaginar a seguinte situação: passageiros, que vão viajar em determinada
companhia aérea, chegam ao aeroporto com intervalo médio de 1.6 minutos, de
acordo com uma distribuição exponencial. Estes viajantes, desde do momento em
que entram no aeroporto até chegar ao balcão de check-in, demoram entre 2 e 3
minutos com distribuição uniforme entre estes 2 valores. No check-in, os viajantes
temque entrar emuma fila única até que um dos 5 atendentes o atenda.O tempo no
check-in segue uma Distribuição de Weibull com parâmetros α = 3.91 e β = 7.76.
Após o check-in, eles podem se dirigir aos portões de embarque. Visando melhorar o
atendimento, deseja-se determinar uma série de variáveis tais como o tempo médio
216 Introdução à Simulação
que um passageiro gasta desde de que chega no aeroporto até ser liberado para
o embarque, o número médio de viajantes na fila do check-in, o n
o
de passageiros
atendidos no check-in de 8:00 horas da manhã até 22:00 horas, etc...
O modelo desta situação pode ser representado pelo gráfico a seguir:
Chegada dos
Passageiros
Procura pelo
Check–In
Check–In
Saída para
Embarque
Como fizemos no 1
o
exemplo, vamos construir um modelo equivalente no ARENA.
Nossos blocos básicos ficam como:
O bloco de chegada é idêntico ao que já fizemos no exemplo anterior e escolhemos
EXPO(1.6,7) para a distribuição exponencial, usando a série 7 da RAND4. Vamos
chamar de Passageiros a entidade que vai circular na simulação. Temos então:
O 2
o
bloco é referente a procura pelo balcão de check-in. A ação, neste caso é só De-
lay porque só há um atraso, uniformemente distribuído, para chegar até o balcão.
O quadro preenchido fica da seguinte forma:
4.20 O software ARENA 217
O bloco do check-in também é bastante similar ao que vimos anteriormente com a
diferença de que escolhemos o nome de Atendentes para o recurso e a distribuição
do atendimento é escolhida como WEIB(7.76,3.91,23), ou seja uma Weibull com os
parâmetros dados e usando-se a série 23 da RAND4. Temos então:
218 Introdução à Simulação
No bloco Dispose muda-se apenas o nome para Saída para o embarque.
Neste momento devemos nos lembrar que temos 5 atendentes no balcão de check-
in. Como informar isto ao modelo ? No lado esquerdo da tela do ARENA (onde estão
os blocos), rolando com o mouse vão aparecer desenhos de planilhas e uma delas é
referente a Resources. Clicando nela vai aparecer, na parte inferior, uma planilha
referente aos recursos (atendentes no nosso caso). Um dos campos da planilha é
Capacity que deverá estar com1. Deve ser alterado para 5, como mostrado a seguir:
Podemos agora escolher um símbolo que represente os passageiros na dinâmica da
simulação. No lado esquerdo, clicamos a planilha Entity. Vai abrir, em baixo a
direita, a planilha relativa aos passageiros. No campo Initial Picture, escolhemos a
figura Picture.women que é um boneco representando uma mulher, como podemos
ver a seguir:
4.20 O software ARENA 219
Vamos alterar a forma de representação da fila de linha para pontos. Dando um
duplo click na linha, o seguinte quadro aparece:
Mudamos de Line para Point e depois clicando em Points.., vai abrir outro quadro
onde, clicando no botão Add, podemos ir colocando pontos ou seja lugares na fila
(até o máximo de 14). Neste exemplo colocamos 10 pontos. No final clica-se em OK.
Para dar um toque mais realista a simulação, vamos acrescentar o balcão do check-
in e os 5 pontos de atendimento. Iniciamos clicando, na 2
a
barra de botões em cima,
em que fará com que a seguinte tela apareça:
220 Introdução à Simulação
Escolhendo Atendentes como Identif ier, podemos selecionar figuras para represen-
tar os atendentes ociosos (Idle) ou ocupados (Busy). É importante notar que as
figuras que aparecem fazem parte da chamada biblioteca padrão. Podemos (cli-
cando no open deste quadro) abrir outras bibliotecas que possuem outras figuras.
Para escolher uma figura para Idle, por exemplo, clica-se em Idle, clica-se na figura
desejada e depois clica-se em «.
Antes de clicar em OK, devemos marcar Seize Area. Isto faz com que junto a figura
seja criada uma linha (semelhante a da fila) para identificar os pontos de atendi-
mento. No nosso exemplo criamos 5 pontos (de maneira similar ao feito para a fila)
pois temos 5 atendentes.
Para finalizar, vamos colocar um relógio para melhor visualização do andamento
da simulação. Para tanto basta clicar no botão (clock) e arrastá-lo apara a
área de trabalho. Escolhemos 8:00 horas como a hora inicial marcada pelo relógio.
Nosso modelo está pronto e sua aparência é:
4.20 O software ARENA 221
Ajustamos a seguir os parâmetros da simulação (Run →Setup) e escolhemos 14
horas para a duração da simulação (das 8:00 às 22:00 horas). A figura a seguir
mostra um retrato da simulação:
O relógio marca 13:44:32, ou seja já temos 5,5 horas de simulação sendo que 223
passageiros já chegaram, 212 já passaram pelo check-in sendo que os 5 atendentes
estão ocupados e 4 passageiros aguardam na fila. Temos também 2 passageiros
procurando pelo balcão de check-in.
Dos relatórios emitidos ao final da simulação, podemos extrair, entre outros, os se-
guintes dados:
Passageiros atendidos pelo check-in das 8:00 às 22:00 : 524
Tempo total gasto, em média, por um passageiro, da entrada a saída : 13,19 minu-
tos
Menor tempo gasto por um passageiro, da entrada a saída : 4,91 minutos
Maior tempo gasto por um passageiro, da entrada a saída : 29,35 minutos
222 Introdução à Simulação
Percentual de ocupação dos Atendentes : 89% do tempo
Número médio de clientes na fila do check-in : 2,26 passageiros
Maior tempo gasto por um passageiro na fila do check-in : 26,90 minutos
Como já citado, dezenas de outros relatórios podem ser impressos com dados da
simulação.
4.20.3 Simulação de um processo de produção
Uma indústria eletrônica produz 2 medidores eletrônicos que chamaremos de A e
B. Basicamente os 2 aparelhos, embora com funções distintas, tem as mesmas ca-
racterísticas quais sejam, uma placa de circuito impresso, onde são soldados com-
ponentes, e uma embalagem de plástico com alguns botões.
As placas de circuito impresso e as embalagens são produzidas externamente e, ao
chegar a indústria, são enviadas para uma área onde, as placas, são “preparadas”
para receber os componentes que serão soldados. Por sua vez, as embalagens são
pintadas e colocados os botões. Estas áreas de preparação são, dadas as caracterís-
ticas técnicas, diferentes para os aparelhos A e B.
Após a preparação, as placas e embalagens são enviadas para a área de monta-
gem (única para A e B) onde os componentes são soldados e o aparelho é montado.
Nesta área é, ao final, feita uma inspeção de qualidade onde dados históricos tem
mostrado que 91% dos aparelhos acabados estão perfeitos e são enviados direta-
mente para a seção de venda. Os que não passam no controle de qualidade (9%),
são enviados para um outro setor onde as causas da rejeição são analisadas e, se
for o caso, corrigidas.
Dados estatísticos mostram que 80% dos aparelhos que caem neste setor conse-
guem ser recuperados e vendidos enquanto que os restantes 20% vão para sucata.
Foram efetuadas amostras estatísticas em todo o processo e ficou comprovado que
todas as atividades (chegadas, preparação, montagem, etc...) são processos aleató-
rios que seguem determinadas distribuições. A figura a seguir dá a visão geral de
todo o processo:
B
EXPO(30)
Lotes de 4
A
EXPO(5)
Preparo
Preparo
Montagem
Conserto
Sucata
Venda
TRIA(1,4,8)
TRIA(3,5,10)
A
TRIA(1,3,4)
WEIB(2.5,5.3)
B
EXPO(45)
91%
9%
20%
80%
4.20 O software ARENA 223
As placas e embalagem do produto A, chegam seguindo uma distribuição exponen-
cial com intervalo médio de 5 minutos entre chegadas. Já as placas e embalagens
do modelo B chegam, em lotes de 4, também seguindo uma distribuição exponen-
cial com intervalo médio de 30 minutos entre chegadas.
O tempo de preparação de cada unidade tipo A segue uma distribuição triangular
com parâmetros 1, 4 e 8 minutos enquanto que a do produto B também segue uma
triangular com parâmetros 3, 5 e 10 minutos.
Após preparados, tanto as placas como embalagens dos 2 produtos vão para a seção
de montagem. Lá, cada unidade do produto tipo A é montada num tempo que segue
uma distribuição triangular com parâmetros 1, 3 e 4 minutos. Já uma unidade do
produto B é montada em um tempo que segue uma Weibull comβ = 2.5 e α = 5.3.
Os produtos rejeitados vão para a seção de “reparo” onde são consertados em um
tempo que também segue a distribuição exponencial com duração de 45 minutos.
Deseja-se simular esta situação para determinar algumas varáveis tais como n
o
de
unidade na fila, tempo total de produção, etc...
Vamos construir o modelo no Arena. Inicialmente vamos construir um bloco “Cre-
ate” para a chegada dos componentes do produto A.
Criamos de forma idêntica um bloco “Create” para as chegadas das placas e emba-
lagens do produto tipo B. Temos então:
224 Introdução à Simulação
Devemos notar que “Entities per Arrival” foi alterado para 4, pois as placas e em-
balagens de B chegam em lotes de 4.
Neste ponto temos que nos preocupar com um ponto que não apareceu nos modelos
anteriores. Depois de chegar e ser preparado, os componentes do modelo A vão
para a seção de montagem. No entanto com o modelo tipo B ocorre a mesma coisa,
ou seja ambos usam a seção de montagem mas com tempos seguindo distribuições
diferentes. Não podemos definir 2 distribuições para o mesmo processo nem definir
2 processos porque na verdade só existe uma seção de montagem. Para contor-
nar isto, vamos definir um atributo Tempo de Montagem a quem atribuiremos o
tempo de montagem apropriado para cada tipo de produto. O bloco que faz estas
atribuições no Arena é o Assign. Temos então:
4.20 O software ARENA 225
Demos o nome de Definição Montagem A. A seguir, clicamos no botão Add e criamos
o atributo Tempo de Montagem informando a distribuição do tempo de montagem
para o produto tipo A, ou seja, TRIA(1,3,4).
Cliando em Add mais uma vez, vamos criar o atributo Instante da Chegada in-
formando o instante da chegada das peças de um modelo A. Usamos a variável
TNOW que é uma variável do Arena que contém o instante do evento que acabou
de ocorrer, no caso a chegada dos componentes de um modelo tipo A.
O Tempo de Montagem, para o produto A está completo:
226 Introdução à Simulação
Temos que fazer o mesmo para o produto B só tendo o cuidado de escolher os atri-
butos Tempo de Montagem e Instante da Chegada que tínhamos escolhido
anteriormente (eles vão aparecer no Listbox dos atributos).
Podemos agora criar os blocos (Process) para a etapa de preparação.
Para o tipo A temos:
4.20 O software ARENA 227
Podemos observar que criamos um recurso que chamamos de “Preparador para A”.
Para o tipo B temos que fazer a mesma coisa:
Temos agora a Montagem onde devemos usar o atributo Tempo Montagem que
criamos anteriormente.
Após montados, os produtos passam por uma inspeção de qualidade. Podemos
representá-la usando o bloco Decide. Temos então:
228 Introdução à Simulação
Podemos escolher o percentual, no caso 9% de rejeição. Estes rejeitados vão para a
área de conserto que, no Arena, será representado por mais um bloco Process.
Adicionamos o recurso que vai consertar os produtos rejeitados (Técnico).
4.20 O software ARENA 229
Temos após o conserto uma re-inspeção para verificar as que podem ser comercia-
lizadas. Temos então mais um bloco de decisão. Podemos representá-lo usando o
bloco Decide. Temos então:
Tendo definido todas as operações, precisamos nos preocupar com a obtenção das
informações que queremos analisar.Lembre-se que, como parte da própria simula-
ção, nós obtemos estatísticas sobre a utilização dos recursos, tamanho das filas e
espera em cada uma das filas. No entanto, queremos também informações sobre a
duração do ciclo para os produtos que passam no controle de qualidade e para os
que não passam, queremos conhecer o ciclo dos que são “consertados” e dos que vão
para a sucata. O bloco Record permite que se tenha estes dados. Para os que vão
para a sucata, temos:
Para Type, escolhemos Time Interval e no atributo escolhemos Instante da Chegada.
Comisto o Arena vai registrar cada duração desde que as partes do produto chegam
até irem para a sucata. Para os demais itens (comercializadas direto e comerciali-
zados após reparo), o procedimento é o mesmo como podemos ver s seguir:
230 Introdução à Simulação
Finalmente não podemos esquecer dos módulos de saída, ou seja Dispose. Temos 3
“saídas” possíveis: Sucata, Vendas Pós Conserto e Vendas Diretas. Temos que ter
3 blocos Dispose.
Em um modelo deste tipo é usual que vá se construindo os “blocos” sem nos preocu-
parmos com a ligação lógica entre eles. Neste momento, quando todos os blocos já
estão prontos, devemos fazer a ligação ente eles de modo a que o Arena possa exe-
cutar a simulação. Após fazer esta tarefa, nosso modelo tem a seguinte aparência:
4.20 O software ARENA 231
232 Introdução à Simulação
Executando a simulação para um período de 40 horas, os seguintes resultados fo-
ram obtidos nos relatórios impressos pelo Arena:
Espera média na Fila (W
q
) Minutos
Na prep A 14,98
Na prep B 28,16
Na montagem 2,52
No conserto 536,79
Tamanho médio da Fila (L
q
)
Na prep A 3,18
Na prep B 3,52
Na montagem 0,84
No conserto 15,97
Vendas Quantidade
Direto 728
Consertados 39
Utilização do Recurso (ρ) %
Prep A 75
Prep B 90
Montagem 85
Conserto 96
Os resultados mostram que temos um problema na área de conserto. Ao final da
simulação, existiam 32 modelos na fila aguardando reparo. Pode-se ver também
que a área está ocupada quase 100% do tempo. Para se melhorar o processo de
produção, teríamos que aumentar a capacidade de produção da seção de conserto.
4.20.4 Enfeitando o modelo
O que vimos, até aqui, do ARENA deve representar de 10% a 20% do que é possível
fazer com o software. Modelos bastante sofisticados e análise de custos são pos-
síveis de serem realizados. O Arena permite também que modelos de “animação”
sejam criados. Um exemplo pode ser visto na página a seguir, onde temos um mo-
delo de uma agência bancária onde além do normal em uma agência, temos caixas
de atendimento para clientes motorizados. No entanto, devemos ressaltar que a
animação, embora muito interessante como ferramenta de “venda” do modelo, con-
some tempo para ser construída e, obviamente, os mesmos resultados são obtidos
se trabalhamos só com os blocos dos templates.
Na página a seguir temos um modelo de uma agência bancária com 3 filas: a dos 2
caixas, das máquinas ATM e de carros na caixa tipo drive-in. Este exemplo vem no
cd do software Arena e ilustra o que comentamos acima sobre modelos com “ani-
mação”.
4.20 O software ARENA 233
234 Introdução à Simulação
4.21 Exercícios
1) Usando o método dos quadrados médios, calcule os 12 primeiros números gera-
dos, com 4 dígitos, a partir de uma semente igual a 7308.
2) Use o método congruente linear para gerar um seqüencia de 3 números aleató-
rios de 2 dígitos. Use x
0
= 27, a = 8, c = 47 e m = 100.
3) Encontramos algum problema no exercício anterior se x
0
= 0 ?
4) Considere o método congruente multiplicativo para os seguintes casos:
a) a = 11 m = 16 x
0
= 7
b) a = 11 m = 16 x
0
= 8
c) a = 7 m = 16 x
0
= 7
d) a = 7 m = 16 x
0
= 8
Gere, para cada caso, todo o período. O que podemos inferir dos resultados
encontrados ?
5) Construa, para a RAND2, um cubo idêntico ao mostrado na página 157 para o
gerador RANDU.
6) Pesquise na internet para descobrir qual a fórmula usada pela planilha Excel
no seu gerador de números aleatórios padrão.
7) Desenvolva um gerador de números aleatórios, usando o método da transforma-
ção inversa, para a seguinte distribuição probabilística:
f(x) =

e
2x
, −∞< x ≤ 0
e
−2x
, 0 < x < ∞
8) Idem para:
f(x) =

1
3
, 0 ≤ x ≤ 2
1
24
, 2 < x ≤ 10
0, x > 10
9) Com uma calculadora que tenha a função para gerar números aleatórios uni-
formemente distribuídos em [0, 1], gere 10 números seguindo a distribuição de
Poisson com média (λ) igual a 2, 5.
4.21 Exercícios 235
10) Modifique o programa da página 172 para calcular a probabilidade de um valor
(x) de uma distribuição normal, com média (µ) igual a 1.500 e desvio padrão
(σ) igual a 300, estar entre 1.300 e 1.800. Use, no programa, a fórmula da
distribuição normal:
f(x) =
1

2πσ
2
e

(X −µ)
2

2
Compare o valor obtido pela simulação com o valor obtido da tabela normal.
11) A gerente de uma loja de eletro-domésticos está desconfiada que o seu estoque
de fogões está acima do que seria necessário. Antes de modificar a política de
estoques, ela registrou o número de fogões vendidos, diariamente, nos últimos
25 dias. Os dados encontrados estão mostrados a seguir:
Fogões vendidos 2 3 4 5 6
Número de dias 4 7 8 5 1
a) Use os dados para estimar a distribuição de probabilidade das vendas diárias
de fogões.
b) Calcule a média da distribuição obtida na parte (a).
c) Descreva como números aleatórios uniformemente distribuídos em [0, 1] po-
dem ser usados para simular as vendas diárias.
d) Usando os números aleatórios 0.4475, 0.9713 e 0.0629, simule as vendas diá-
rias de 3 dias.
e) Usando uma planilha eletrônica (Excel, por exemplo), faça um modelo para
simular as vendas diárias. Realize 300 replicações e obtenha a média de
vendas diárias.
12) Utilizando como sementes os valores 1234, 76545, 88787, 77712, 564783 e 5434
encontre os 3 primeiros números gerados pela RAND4.
13) Pesquise e descubra os comandos para a geração de números aleatórios no Turbo
Pascal, inclusive com a escolha da semente.
14) Utilizando uma planilha eletrônica (Excel, por exemplo), construa um modelo
para a seguinte situação: Um posto de gasolina do governo, que tem somente
uma bomba de gasolina, está sempre aberto e tem 2 tipos de clientes. Uma
ambulância chega, exatamente, a cada 30 minutos, com o 1
o
carro chegando
no “instante”, 15 minutos. Carros de outras repartições públicas, que não são
ambulâncias, chegam com um intervalo médio entre chegadas, exponencial, de
5, 6 minutos, com o 1
o
carro chegando no instante 0. O tempo de serviço, para
todos os tipos de carros, tem uma média de 4, 8 minutos (exponencial).
Um carro que chega e encontra a bomba vazia vai ser atendido imediatamente
enquanto que os que chegam com a bomba ocupada, formam uma fila única.
Isto só não vale para as ambulâncias que, ao chegar, vão imediatamente para o
236 Introdução à Simulação
início da fila (assuma que, se já tem uma ou mais ambulâncias no início da fila,
esta nova chegada passa a ser a 1
a
da fila). Considere que no início da simulação
(instante 0), o posto está vazio. Execute a simulação até que 500 carros, no total,
tenham sido atendidos. Estime o tempo de espera médio na fila para os 2 tipos
de carro, o número médio de carros na fila para os 2 tipos de carro e a taxa de
ocupação da bomba de gasolina.
15) Desenvolva um modelo para um sistema com 2 processos consecutivos (I e II).
Os ítens chegam ao sistema comintervalo, médio, entre chegadas de 10 minutos.
Assim que chegam, os ítens são imediatamente enviados para o processo I que
temuma fila ilimitada e umrecurso simples comuma duração, média, do serviço
de 9 minutos. Após terminar o 1
o
processo, os ítens são enviados para o processo
II que é idêntico ao processo I. Após o serviço do processo II ser completado,
os ítens deixam o sistema. As medidas de interesse no sistema são o número
médio de ítens na fila, em cada processo, e o tempo total, médio, que um ítem
permanece no sistema. Usando 10.000 minutos como a duração a ser estudada,
faça as 4 simulações a seguir e compare os resultados.
a) Intervalo entre chegadas exponencial e duração do serviço exponencial.
b) Intervalo entre chegadas exponencial e duração do serviço constante.
c) Intervalo entre chegadas constante e duração do serviço exponencial.
d) Intervalo entre chegadas constante e duração do serviço constante.
16) Peças chegam a uma estação de trabalho com um intervalo, médio, entre che-
gadas de 21 segundos (exponencial). Após a chegada, as peças são processadas.
O tempo de processamento segue uma distribuição triangular com parâmetros
16, 19 e 22. Existem características visuais que determinam se uma peça tem
um eventual problema de qualidade. Estão peças, que são cerca de 10% do total,
são enviadas para outra estação onde sofrem uma rigorosa inspeção. As demais
(90%) são enviadas para a expedição e consideradas boas.
A distribuição do tempo de inspeção rigorosa é, em média, igual a 95 segundos
mais uma variável aleatória que segue uma distribuição de Weibull com parâ-
metros iguais a 48,5 e 4,04. Em torno de 14% das peças que sofrem inspeção,
são reprovadas e viram sucata. As demais vão para a expedição.
Execute a simulação para 10.000 segundos para determinar o número de peças
boas, o número de peças sucateadas e o número de peças que são inspecionadas
parcialmente e rigorosamente.
4.21 Exercícios 237
17) Clientes chegam a uma caixa com um intervalo, médio, entre chegadas igual
a 10 minutos (exponencial). Um único funcionário recebe o pagamento além
de conferir o pedido. Ele demora, em média, entre 8 a 10 minutos para fazer
estas tarefas, variando a duração uniformemente naquele intervalo. Após esta
atividade estar completada, o cliente é, aleatoriamente, atribuído a um de 2
funcionários do estoque que separam e embalam a mercadoria para entregar
ao cliente. O tempo desta atividade é também uniformemente distribuído entre
16 e 20 minutos. Cada um dos 2 funcionários do estoque só podem atender
clientes que foram designados para ele. Após receber sua mercadoria, o cliente
vai embora.
Desenvolva um modelo e rode a simulação para 5.000 minutos.
Há uma sugestão de que os 2 funcionários possam atender qualquer cliente que
ficariam em uma fila única esperando atendimento. Rode a simulação também
para 5.000 minutos e compare os resultados.
238 Introdução à Simulação
Apêndice A
Tabela Normal
Parte I
Z 0 1 2 3 4 5 6 7 8 9
-2.9 .00187 .00181 .00175 .00169 .00164 .00159 .00154 .00149 .00144 .00139
-2.8 .00256 .00248 .00240 .00233 .00226 .00219 .00212 .00205 .00199 .00193
-2.7 .00347 .00336 .00326 .00317 .00307 .00298 .00289 .00280 .00272 .00264
-2.6 .00466 .00453 .00440 .00427 .00415 .00402 .00391 .00379 .00368 .00357
-2.5 .00621 .00604 .00587 .00570 .00554 .00539 .00523 .00508 .00494 .00480
-2.4 .00820 .00798 .00776 .00755 .00734 .00714 .00695 .00676 .00657 .00639
-2.3 .01072 .01044 .01017 .00990 .00964 .00939 .00914 .00889 .00866 .00842
-2.2 .01390 .01355 .01321 .01287 .01255 .01222 .01191 .01160 .01130 .01101
-2.1 .01786 .01743 .01700 .01659 .01618 .01578 .01539 .01500 .01463 .01426
-2.0 .02275 .02222 .02169 .02118 .02068 .02018 .01970 .01923 .01876 .01831
-1.9 .02872 .02807 .02743 .02680 .02619 .02559 .02500 .02442 .02385 .02330
-1.8 .03593 .03515 .03438 .03362 .03288 .03216 .03144 .03074 .03005 .02938
-1.7 .04457 .04363 .04272 .04182 .04093 .04006 .03920 .03836 .03754 .03673
-1.6 .05480 .05370 .05262 .05155 .05050 .04947 .04846 .04746 .04648 .04551
-1.5 .06681 .06552 .06426 .06301 .06178 .06057 .05938 .05821 .05705 .05592
-1.4 .08076 .07927 .07780 .07636 .07493 .07353 .07215 .07078 .06944 .06811
-1.3 .09680 .09510 .09342 .09176 .09012 .08851 .08692 .08534 .08379 .08226
-1.2 .11507 .11314 .11123 .10935 .10749 .10565 .10383 .10204 .10027 .09853
-1.1 .13567 .13350 .13136 .12924 .12714 .12507 .12302 .12100 .11900 .11702
-1.0 .15866 .15625 .15386 .15151 .14917 .14686 .14457 .14231 .14007 .13786
-0.9 .18406 .18141 .17879 .17619 .17361 .17106 .16853 .16602 .16354 .16109
-0.8 .21186 .20897 .20611 .20327 .20045 .19766 .19489 .19215 .18943 .18673
-0.7 .24196 .23885 .23576 .23270 .22965 .22663 .22363 .22065 .21770 .21476
-0.6 .27425 .27093 .26763 .26435 .26109 .25785 .25463 .25143 .24825 .24510
-0.5 .30854 .30503 .30153 .29806 .29460 .29116 .28774 .28434 .28096 .27760
-0.4 .34458 .34090 .33724 .33360 .32997 .32636 .32276 .31918 .31561 .31207
-0.3 .38209 .37828 .37448 .37070 .36693 .36317 .35942 .35569 .35197 .34827
-0.2 .42074 .41683 .41294 .40905 .40517 .40129 .39743 .39358 .38974 .38591
-0.1 .46017 .45621 .45224 .44828 .44433 .44038 .43644 .43251 .42858 .42466
-0.0 .50000 .49601 .49202 .48803 .48405 .48006 .47608 .47210 .46812 .46414
240 Tabela Normal
Parte II
Z 0 1 2 3 4 5 6 7 8 9
0.0 .50000 .50399 .50798 .51197 .51595 .51994 .52392 .52790 .53188 .53586
0.1 .53983 .54379 .54776 .55172 .55567 .55962 .56356 .56749 .57142 .57534
0.2 .57926 .58317 .58706 .59095 .59483 .59871 .60257 .60642 .61026 .61409
0.3 .61791 .62172 .62552 .62930 .63307 .63683 .64058 .64431 .64803 .65173
0.4 .65542 .65910 .66276 .66640 .67003 .67364 .67724 .68082 .68439 .68793
0.5 .69146 .69497 .69847 .70194 .70540 .70884 .71226 .71566 .71904 .72240
0.6 .72575 .72907 .73237 .73565 .73891 .74215 .74537 .74857 .75175 .75490
0.7 .75804 .76115 .76424 .76730 .77035 .77337 .77637 .77935 .78230 .78524
0.8 .78814 .79103 .79389 .79673 .79955 .80234 .80511 .80785 .81057 .81327
0.9 .81594 .81859 .82121 .82381 .82639 .82894 .83147 .83398 .83646 .83891
1.0 .84134 .84375 .84614 .84849 .85083 .85314 .85543 .85769 .85993 .86214
1.1 .86433 .86650 .86864 .87076 .87286 .87493 .87698 .87900 .88100 .88298
1.2 .88493 .88686 .88877 .89065 .89251 .89435 .89617 .89796 .89973 .90147
1.3 .90320 .90490 .90658 .90824 .90988 .91149 .91308 .91466 .91621 .91774
1.4 .91924 .92073 .92220 .92364 .92507 .92647 .92785 .92922 .93056 .93189
1.5 .93319 .93448 .93574 .93699 .93822 .93943 .94062 .94179 .94295 .94408
1.6 .94520 .94630 .94738 .94845 .94950 .95053 .95154 .95254 .95352 .95449
1.7 .95543 .95637 .95728 .95818 .95907 .95994 .96080 .96164 .96246 .96327
1.8 .96407 .96485 .96562 .96638 .96712 .96784 .96856 .96926 .96995 .97062
1.9 .97128 .97193 .97257 .97320 .97381 .97441 .97500 .97558 .97615 .97670
2.0 .97725 .97778 .97831 .97882 .97932 .97982 .98030 .98077 .98124 .98169
2.1 .98214 .98257 .98300 .98341 .98382 .98422 .98461 .98500 .98537 .98574
2.2 .98610 .98645 .98679 .98713 .98745 .98778 .98809 .98840 .98870 .98899
2.3 .98928 .98956 .98983 .99010 .99036 .99061 .99086 .99111 .99134 .99158
2.4 .99180 .99202 .99224 .99245 .99266 .99286 .99305 .99324 .99343 .99361
2.5 .99379 .99396 .99413 .99430 .99446 .99461 .99477 .99492 .99506 .99520
2.6 .99534 .99547 .99560 .99573 .99585 .99598 .99609 .99621 .99632 .99643
2.7 .99653 .99664 .99674 .99683 .99693 .99702 .99711 .99720 .99728 .99736
2.8 .99744 .99752 .99760 .99767 .99774 .99781 .99788 .99795 .99801 .99807
2.9 .99813 .99819 .99825 .99831 .99836 .99841 .99846 .99851 .99856 .99861
Apêndice B
Tabela do χ
2
ν 0,25 0,10 0,05 0,025 0,01 0,005 0,001 ⇐α

1 1,32 2,70 3,84 5,02 6,63 7,87 10,82
2 2,77 4,60 5,99 7,37 9,21 10,59 13,81
3 4,10 6,25 7,81 9,34 11,34 12,83 16,26
4 5,38 7,77 9,48 11,14 13,27 14,86 18,46
5 6,62 9,23 11,07 12,83 15,08 16,75 20,51
6 7,84 10,64 12,59 14,44 16,81 18,54 22,45
7 9,03 12,01 14,06 16,01 18,47 20,27 24,32
8 10,21 13,36 15,50 17,53 20,09 21,95 26,12
9 11,38 14,68 16,91 19,02 21,66 23,58 27,87
10 12,54 15,98 18,30 20,48 23,20 25,18 29,58
11 13,70 17,27 19,67 21,92 24,72 26,75 31,26
12 14,84 18,54 21,02 23,33 26,21 28,30 32,90
13 15,98 19,81 22,36 24,73 27,68 29,81 34,52
14 17,11 21,06 23,68 26,11 29,14 31,31 36,12
15 18,24 22,30 24,99 27,48 30,57 32,80 37,69
16 19,36 23,54 26,29 28,84 32,00 34,26 39,25
17 20,48 24,76 27,58 30,19 33,40 35,71 40,79
18 21,60 25,98 28,86 31,52 34,80 37,15 43,31
19 22,71 27,20 30,14 32,85 36,19 38,58 43,82
20 23,82 28,41 31,41 34,17 37,56 39,99 45,31
21 24,93 29,61 32,67 35,47 38,93 41,40 46,79
22 26,03 30,81 33,92 36,78 40,28 42,79 48,26
23 27,14 32,00 35,17 38,07 41,63 44,18 49,72
24 28,24 33,19 36,41 39,36 42,98 45,55 51,17
25 29,33 34,38 37,65 40,64 44,31 46,92 52,62
26 30,43 35,56 38,88 41,92 45,64 48,29 54,05
27 31,52 36,74 40,11 43,19 46,96 49,64 55,47
28 32,62 37,91 41,33 44,46 48,27 50,99 56,89
29 33,71 39,08 42,55 45,72 49,58 52,33 58,30
30 34,80 40,25 43,77 46,97 50,89 53,67 59,70
40 45,61 51,80 55,75 59,34 63,69 66,76 73,40
50 56,33 63,16 67,50 71,42 76,15 79,49 86,66
242 Tabela do χ
2
Apêndice C
Tabelas para modelos com população finita
As tabelas a seguir
1
tem como objetivo facilitar os cálculos para modelos de filas
com população de tamanho finito.
As tabelas aqui contidas, por problema de espaço, só abrangem os modelos com
população igual a 5, 10, 20 e 30 elementos. Sendo assim, os exercícios apresenta-
dos só tratam modelos com populações de um daqueles tamanhos.
No acesso a tabela, deve-se observar que, em cada página, existem 3 colunas, cada
uma com 4 valores: X, S, D e F.
A sequencia dos valores é por coluna. Sendo assim, iniciamos na 1
a
coluna, desce-
mos até embaixo na página e, ao chegar ao final, subimos para a 2
a
coluna. Quando
esta acaba, embaixo na página, subimos para a 3
a
coluna e quando chegamos ao
final, mudamos para a próxima página onde a sequencia é a mesma.
Na própria tabela está impresso onde ela começa a valer para uma determinada
população. Assim, após encontrar impresso População 10, por exemplo, passam a
valer os valores para esta população.
1
extraída de L.G.Peck and R.N.Hazelwood, Finite Queuing Tables, John Wiley & Sons, 1958
244 Tabelas para modelos com população finita
X S D F X S D F X S D F
POPULAÇÃO 5 .100 1 .386 .950 .200 2 .194 .976
.105 2 .059 .997 1 .689 .801
.012 1 .048 .999 1 .404 .945 .210 3 .032 .998
.019 1 .076 .998 .110 2 .065 .996 2 .211 .973
.025 1 .100 .997 1 .421 .939 1 .713 .783
.030 1 .120 .996 .115 2 .071 .995 .220 3 .036 .997
.034 1 .135 .995 1 .439 .933 2 .229 .969
.036 1 .143 .994 .120 2 .076 .995 1 .735 .765
.040 1 .159 .993 1 .456 .927 .230 3 .041 .997
.042 1 .167 .992 .125 2 .082 .994 2 .247 .965
.044 1 .175 .991 1 .473 .920 1 .756 .747
.046 1 .183 .990 .130 2 .089 .993 .240 3 .046 .996
.050 1 .198 .989 1 .489 .914 2 .265 .960
.052 1 .206 .988 .135 2 .095 .993 1 .775 .730
.054 1 .214 .987 1 .505 .907 .250 3 .052 .995
.056 2 .018 .999 .140 2 .102 .992 2 .284 .955
1 .222 .985 1 .521 .900 1 .794 .712
.058 2 .019 .999 .145 3 .011 .999 .260 3 .058 .994
1 .229 .984 2 .109 .991 2 .303 .950
.060 2 .020 .999 1 .537 .892 1 .811 .695
1 .237 .983 .150 3 .012 .999 .270 3 .064 .994
.062 2 .022 .999 2 .115 .990 2 .323 .944
1 .245 .982 1 .553 .885 1 .827 .677
.064 2 .023 .999 .155 3 .013 .999 .280 3 .071 .993
1 .253 .981 2 .123 .989 2 .342 .938
.066 2 .024 .999 1 .568 .877 1 .842 .661
1 .260 .979 .160 3 .015 .999 .290 4 .007 .999
.068 2 .026 .999 2 .130 .988 3 .079 .992
1 .268 .978 1 .582 .869 2 .362 .932
.070 2 .027 .999 .165 3 .016 .999 1 .856 .644
1 .275 .977 2 .137 .987 .300 4 .008 .999
.075 2 .031 .999 1 .597 .861 3 .086 .990
1 .294 .973 .170 3 .017 .999 2 .382 .926
.080 2 .035 .998 2 .145 .985 1 .869 .628
1 .313 .969 1 .611 .853 .310 4 .009 .999
.085 2 .040 .998 .180 3 .021 .999 3 .094 .989
1 .332 .965 2 .161 .983 2 .402 .919
.090 2 .044 .998 1 .638 .836 1 .881 .613
1 .350 .960 .190 3 .024 .998 .320 4 .010 .999
.095 2 .049 .997 2 .177 .980 3 .103 .988
1 .368 .955 1 .665 .819 2 .422 .912
.100 2 .054 .997 .200 3 .028 .998 1 .892 .597
245
X S D F X S D F X S D F
.330 4 .012 .999 .520 2 .779 .728 POPULAÇÃO 10
3 .112 .986 1 .988 .384
2 .442 .904 .540 4 .085 .989 .016 1 .144 .997
1 .902 .583 3 .392 .917 .019 1 .170 .996
.340 4 .013 .999 2 .806 .708 .021 1 .188 .995
3 .121 .985 1 .991 .370 .023 1 .206 .994
2 .462 .896 .560 4 .098 .986 .025 1 .224 .993
1 .911 .569 3 .426 .906 .026 1 .232 .992
.360 4 .017 .998 2 .831 .689 .028 1 .250 .991
3 .141 .981 1 .993 .357 .030 1 .268 .990
2 .501 .880 .580 4 .113 .984 .032 2 .033 .999
1 .927 .542 3 .461 .895 1 .285 .988
.380 4 .021 .998 2 .854 .670 .034 2 .037 .999
3 .163 .976 1 .994 .345 1 .302 .986
2 .540 .863 .600 4 .130 .981 .036 2 .041 .999
1 .941 .516 3 .497 .883 1 .320 .984
.400 4 .026 .997 2 .875 .652 .038 2 .046 .999
3 .186 .972 1 .996 .333 1 .337 .982
2 .579 .845 .650 4 .179 .972 .040 2 .050 .999
1 .952 .493 3 .588 .850 1 .354 .980
.420 4 .031 .997 2 .918 .608 .042 2 .055 .999
.420 3 .211 .966 1 .998 .308 1 .371 .978
2 .616 .826 .700 4 .240 .960 .044 2 .060 .998
1 .961 .471 3 .678 .815 1 .388 .975
.440 4 .037 .996 2 .950 .568 .046 2 .065 .998
3 .238 .960 1 .999 .286 1 .404 .973
2 .652 .807 .750 4 .316 .944 .048 2 .071 .998
1 .969 .451 3 .763 .777 1 .421 .970
.460 4 .045 .995 2 .972 .532 .050 2 .076 .998
3 .266 .953 .800 4 .410 .924 1 .437 .967
2 .686 .787 3 .841 .739 .052 2 .082 .997
1 .975 .432 2 .987 .500 1 .454 .963
.480 4 .053 .994 .850 4 .522 .900 .054 2 .088 .997
3 .296 .945 3 .907 .702 1 .470 .960
2 .719 .767 2 .995 .470 .056 2 .094 .997
1 .980 .415 .900 4 .656 .871 1 .486 .956
.500 4 .063 .992 3 .957 .666 .058 2 .100 .996
3 .327 .936 2 .998 .444 1 .501 .953
2 .750 .748 .950 4 .815 .838 .060 2 .106 .996
1 .985 .399 3 .989 .631 1 .517 .949
.520 4 .073 .991 .062 2 .113 .996
3 .359 .927 1 .532 .945
246 Tabelas para modelos com população finita
X S D F X S D F X S D F
.064 2 .119 .995 .125 3 .100 .994 .180 2 .614 .890
1 .547 .940 2 .369 .962 1 .975 .549
.066 2 .126 .995 1 .878 .737 .190 5 .016 .999
1 .562 .936 .130 4 .022 .999 4 .078 .995
.068 3 .020 .999 3 .110 .994 3 .269 .973
2 .133 .994 2 .392 .958 2 .654 .873
1 .577 .931 1 .893 .718 1 .982 .522
.070 3 .022 .999 .135 4 .025 .999 .200 5 .020 .999
2 .140 .994 3 .121 .993 4 .092 .994
1 .591 .926 2 .415 .952 3 .300 .968
.075 3 .026 .999 1 .907 .699 2 .692 .854
2 .158 .992 .140 4 .028 .999 1 .987 .497
1 .627 .913 3 .132 .991 .210 5 .025 .999
.080 3 .031 .999 2 .437 .947 4 .108 .992
2 .177 .990 1 .919 .680 3 .333 .961
1 .660 .899 .145 4 .032 .999 2 .728 .835
.085 3 .037 .999 3 .144 .990 1 .990 .474
2 .196 .988 2 .460 .941 .220 5 .030 .998
1 .692 .883 1 .929 .662 4 .124 .990
.090 3 .043 .998 .150 4 .036 .998 3 .366 .954
2 .216 .986 3 .156 .989 2 .761 .815
.090 1 .722 .867 2 .483 .935 1 .993 .453
.095 3 .049 .998 1 .939 .644 .230 5 .037 .998
2 .237 .984 .155 4 .040 .998 4 .142 .988
1 .750 .850 3 .169 .987 3 .400 .947
.100 3 .056 .998 2 .505 .928 2 .791 .794
2 .258 .981 1 .947 .627 1 .995 .434
1 .776 .832 .160 4 .044 .998 .240 5 .044 .997
.105 3 .064 .997 3 .182 .986 4 .162 .986
2 .279 .978 2 .528 .921 3 .434 .938
1 .800 .814 1 .954 .610 2 .819 .774
.110 3 .072 .997 .165 4 .049 .997 1 .996 .416
2 .301 .974 3 .195 .984 .250 6 .010 .999
1 .822 .795 2 .550 .914 5 .052 .997
.115 3 .081 .996 1 .961 .594 4 .183 .983
2 .324 .971 .170 4 .054 .997 3 .469 .929
1 .843 .776 3 .209 .982 2 .844 .753
.120 4 .016 .999 2 .571 .906 1 .997 .400
3 .090 .995 1 .966 .579 .260 6 .013 .999
2 .346 .967 .180 5 .013 .999 5 .060 .996
1 .861 .756 4 .066 .996 4 .205 .980
.125 4 .019 .999 3 .238 .978 3 .503 .919
247
X S D F X S D F X S D F
.260 2 .866 .732 .340 6 .049 .997 .480 8 .015 .999
1 .998 .384 5 .168 .983 7 .074 .994
.270 6 .015 .999 4 .416 .938 6 .230 .973
5 .070 .995 3 .750 .816 5 .499 .916
4 .228 .976 2 .968 .584 4 .791 .799
3 .537 .908 .360 7 .014 .999 3 .961 .621
2 .886 .712 6 .064 .995 2 .998 .417
1 .999 .370 5 .205 .978 .500 8 .020 .999
.280 6 .018 .999 4 .474 .923 7 .093 .992
5 .081 .994 3 .798 .787 6 .271 .966
4 .252 .972 2 .978 .553 5 .553 .901
3 .571 .896 .380 7 .019 .999 4 .830 .775
2 .903 .692 6 .083 .993 3 .972 .598
1 .999 .357 5 .247 .971 2 .999 .400
.290 6 .022 .999 4 .533 .906 .520 8 .026 .998
5 .093 .993 3 .840 .758 7 .115 .989
4 .278 .968 2 .986 .525 6 .316 .958
3 .603 .884 .400 7 .026 .998 5 .606 .884
2 .918 .672 6 .105 .991 4 .864 .752
1 .999 .345 5 .292 .963 3 .980 .575
.300 6 .026 .998 4 .591 .887 2 .999 .385
.300 5 .106 .991 3 .875 .728 .540 8 .034 .997
4 .304 .963 2 .991 .499 7 .141 .986
3 .635 .872 .420 7 .034 .993 6 .363 .949
2 .932 .653 6 .130 .987 5 .658 .867
1 .999 .333 5 .341 .954 4 .893 .729
.310 6 .031 .998 4 .646 .866 3 .986 .555
5 .120 .990 3 .905 .700 .560 8 .044 .996
4 .331 .957 2 .994 .476 7 .171 .982
3 .666 .858 .440 7 .045 .997 6 .413 .939
2 .943 .635 6 .160 .984 5 .707 .848
.320 6 .036 .998 5 .392 .943 4 .917 .706
5 .135 .988 4 .698 .845 3 .991 .535
4 .359 .952 3 .928 .672 .580 8 .057 .995
3 .695 .845 2 .996 .454 7 .204 .977
2 .952 .617 .460 8 .011 .999 6 .465 .927
.330 6 .042 .997 7 .058 .995 5 .753 .829
5 .151 .986 6 .193 .979 4 .937 .684
4 .387 .945 5 .445 .930 3 .994 .517
3 .723 .831 4 .747 .822 .600 9 .010 .999
2 .961 .600 3 .947 .646 8 .072 .994
.340 7 .010 .999 2 .998 .435 7 .242 .972
248 Tabelas para modelos com população finita
X S D F X S D F X S D F
.600 6 .518 .915 POPULAÇÃO 20 .040 2 .202 .994
5 .795 .809 1 .712 .929
4 .953 .663 .005 1 .095 .999 .042 3 .047 .999
3 .996 .500 .009 1 .171 .998 2 .219 .993
.650 9 .021 .999 .011 1 .208 .997 1 .740 .918
8 .123 .988 .013 1 .246 .996 .044 3 .053 .999
7 .353 .954 .014 1 .265 .995 2 .237 .992
6 .651 .878 .015 1 .283 .994 1 .767 .906
5 .882 .759 .016 1 .302 .993 .046 3 .059 .999
4 .980 .614 .017 1 .321 .992 2 .255 .991
3 .999 .461 .018 2 .048 .999 1 .792 .894
.700 9 .040 .997 1 .339 .991 .048 3 .066 .999
8 .200 .979 .019 2 .053 .999 2 .274 .989
7 .484 .929 1 .358 .990 1 .815 .881
6 .772 .836 .020 2 .058 .999 .050 3 .073 .998
5 .940 .711 1 .376 .989 2 .293 .988
4 .992 .571 .021 2 .064 .999 1 .837 .866
.750 9 .075 .994 1 .394 .987 .052 3 .080 .998
8 .307 .965 .022 2 .070 .999 2 .312 .986
7 .626 .897 1 .412 .986 1 .858 .851
6 .870 .792 .023 2 .075 .999 .054 3 .088 .998
.750 5 .975 .666 1 .431 .984 2 .332 .984
4 .998 .533 .024 2 .082 .999 1 .876 .835
.800 9 .134 .988 1 .449 .982 .056 3 .097 .997
8 .446 .944 .025 2 .088 .999 2 .352 .982
7 .763 .859 1 .466 .980 1 .893 .819
6 .939 .747 .026 2 .094 .998 .058 3 .105 .997
5 .991 .625 1 .484 .978 2 .372 .980
4 .999 .500 .028 2 .108 .998 1 .908 .802
.850 9 .232 .979 1 .519 .973 .060 4 .026 .999
8 .611 .916 .030 2 .122 .998 3 .115 .997
7 .879 .818 1 .553 .968 2 .392 .978
6 .978 .705 .032 2 .137 .997 1 .922 .785
5 .998 .588 1 .587 .962 .062 4 .029 .999
.900 9 .387 .963 .034 2. 152 .996 3 .124 .996
8 .785 .881 1 .620 .955 2 .413 .975
7 .957 .777 .036 2 .168 .996 1 .934 .768
6 .995 .667 1 .651 .947 .064 4 .032 .999
.950 9 .630 .938 .038 3 .036 .999 3 .134 .996
8 .934 .841 2 .185 .995 2 .433 .972
7 .994 .737 1 .682 .938 1 .944 .751
.040 3 .041 .999 .066 4 .036 .999
249
X S D F X S D F X S D F
.066 3 .144 .995 .105 1 .999 .476 .150 4 .388 .968
2 .454 .969 .110 5 .055 .998 3 .728 .887
1 .953 .733 4 .172 .992 2 .976 .661
.068 4 .039 .999 3 .438 .964 .155 7 .021 .999
3 .155 .995 2 .842 .837 6 .068 .997
2 .474 .966 .115 5 .065 .998 5 .185 .990
1 .961 .716 4 .195 .990 4 .419 .963
.070 4 .043 .999 3 .476 .958 3 .758 .874
3 .165 .994 2 .870 .816 2 .982 .641
2 .495 .962 .120 6 .022 .999 .160 7 .024 .999
1 .967 .699 5 .076 .997 6 .077 .997
.075 4 .054 .999 4 .219 .988 5 .205 .988
3 .194 .992 3 .514 .950 4 .450 .957
2 .545 .953 2 .895 .793 3 .787 .860
1 .980 .659 .125 6 .026 .999 2 .987 .622
.080 4 .066 .998 5 .088 .997 .165 7 .029 .999
3 .225 .990 4 .245 .986 6 .088 .996
.080 2 .595 .941 3 .552 .942 5 .226 .986
1 .988 .621 2 .916 .770 4 .482 .951
.085 4 .080 .997 .130 6 .031 .999 3 .813 .845
3 .257 .987 5 .101 .996 2 .990 .604
2 .643 .928 4 .271 .983 .170 7 .033 .999
1 .993 .586 3 .589 .933 6 .099 .995
.090 5 .025 .999 2 .934 .748 5 .248 .983
4 .095 .997 .135 6 .037 .999 4 .513 .945
3 .291 .984 5 .116 .995 3 .838 .830
2 .689 .913 4 .299 .980 2 .993 .587
1 .996 .554 3 .626 .923 .180 7 .044 .998
.095 5 .031 .999 2 .948 .725 6 .125 .994
4 .112 .996 .140 6 .043 .998 5 .295 .978
3 .326 .980 5 .131 .994 4 .575 .930
2 .733 .896 4 .328 .976 3 .879 .799
1 .998 .526 3 .661 .912 2 .996 .555
.100 5 .038 .999 2 .960 .703 .190 8 .018 .999
4 .131 .995 .145 6 .051 .998 7 .058 .998
3 .363 .975 5 .148 .993 6 .154 .991
2 .773 .878 4. .358 .972 5 .345 .971
1 .999 .500 3 .695 .900 4 .636 .914
.105 5 .046 .999 2 .969 .682 3 .913 .768
4 .151 .993 .150 7 .017 .999 2 .998 .526
3 .400 .970 6 .059 .998 .200 8 .025 .999
2 .809 .858 5 .166 .991 7 .074 .997
250 Tabelas para modelos com população finita
X S D F X S D F X S D F
.200 6 .187 .988 .260 6 .446 .953 .310 5 .892 .788
5 .397 .963 5 .712 .884 4 .985 .643
4 .693 .895 4 .924 .755 .320 11 .018 .999
3 .938 .736 3 .995 .576 10 .053 .997
2 .999 .500 .270 10 .016 .999 9 .130 .992
.210 8 .033 .999 9 .049 .998 8 .272 .977
7 .093 .995 8 .125 .992 7 .483 .944
6 .223 .985 7 .270 .978 6 .727 .878
5 .451 .954 6 .495 .943 5 .915 .768
4 .745 .874 5 .757 .867 4 .989 .624
3 .958 .706 4 .943 .731 .330 11 .023 .999
2 .999 .476 3 .997 .555 10 .065 .997
.220 8 .043 .998 .280 10 .021 .999 9 .154 .990
7 .115 .994 9 .061 .997 8 .309 .973
6 .263 .980 8 .149 .990 7 .529 .935
5 .505 .943 7 .309 .973 6 .766 .862
4 .793 .852 6 .544 .932 5 .933 .748
3 .971 .677 5 .797 .848 4 .993 .605
.230 9 .018 .999 4 .958 .708 .340 11 .029 .999
8 .054 .998 3 .998 .536 10 .079 .996
7 .140 .992 .290 10 .027 .999 9 .179 .987
.230 6 .306 .975 9 .075 .996 8 .347 .967
5 .560 .931 8 .176 .988 7 .573 .924
4 .834 .828 7 .351 .967 6 .802 .846
3 .981 .649 6 .592 .920 5 .949 .729
.240 9 .024 .999 5 .833 .828 4 .995 .588
8 .068 .997 4 .970 .685 .360 12 .015 .999
7 .168 .989 3 .999 .517 11 .045 .998
6 .351 .969 .300 10 .034 .998 10 .112 .993
5 .613 .917 9 .091 .995 9 .237 .981
4 .870 .804 8 .205 .985 8 .429 .954
3 .988 .623 7 .394 .961 7 .660 .901
.250 9 .031 .999 6 .639 .907 6 .863 .812
8 .085 .996 5 .865 .808 5 .971 .691
7 .199 .986 4 .978 .664 4 .998 .555
6 .398 .961 3 .999 .500 .380 12 .024 .999
5 .664 .901 .310 11 .014 .999 11 .067 .996
4 .900 .780 10 .043 .998 10 .154 .989
3 .992 .599 9 .110 .993 9 .305 .973
.260 9 .039 .998 8 .237 .981 8 .513 .938
8 .104 .994 7 .438 .953 7 .739 .874
7 .233 .983 6 .684 .893 6 .909 .777
251
X S D F X S D F X S D F
.380 5 .984 .656 .480 11 .289 .974 .560 8 .976 .713
4 .999 .526 10 .484 .944 7 .996 .625
.400 13 .012 .999 9 .695 .893 .580 16 .015 .999
12 .037 .998 8 .867 .819 15 .051 .997
11 .095 .994 7 .962 .726 14 .129 .991
10 .205 .984 6 .994 .625 13 .266 .978
9 .379 .962 .500 14 .033 .998 12 .455 .952
8 .598 .918 13 .088 .995 11 .662 .908
7 .807 .845 12 .194 .985 10 .835 .847
6 .942 .744 11 .358 .965 9 .941 .772
5 .992 .624 10 .563 .929 8 .986 .689
.420 13 .019 .999 9 .764 .870 7 .998 .603
12 .055 .997 8 .908 .791 .600 16 .023 .999
11 .131 .991 7 .977 .698 15 .072 .996
10 .265 .977 6 .997 .600 14 .171 .988
9 .458 .949 .520 15 .015 .999 13 .331 .970
8 .678 .896 14 .048 .997 12 .532 .938
7 .863 .815 13 .120 .992 11 .732 .889
6 .965 .711 12 .248 .979 10 .882 .824
5 .996 .595 11 .432 .954 9 .962 .748
.440 13 .029 .999 10 .641 .911 8 .992 .666
.440 12 .078 .995 9 .824 .846 7 .999 .583
11 .175 .987 8 .939 .764 .650 17 .017 .999
10 .333 .969 7 .987 .672 16 .061 .997
9 .540 .933 6 .998 .577 15 .156 .989
8 .751 .872 .540 15 .023 .999 14 .314 .973
7 .907 .785 14 .069 .996 13 .518 .943
6 .980 .680 13 .161 .988 12 .720 .898
5 .998 .568 12 .311 .972 11 .872 .837
.460 14 .014 .999 11 .509 .941 10 .957 .767
13 .043 .998 10 .713 .891 9 .990 .692
12 .109 .993 9 .873 .821 8 .998 .615
11 .228 .982 8 .961 .738 .700 17 .047 .998
10 .407 .958 7 .993 .648 16 .137 .991
9 .620 .914 6 .999 .556 15 .295 .976
8 .815 .846 .560 15 .035 .998 14 .503 .948
7 .939 .755 14 .095 .994 13 .710 .905
6 .989 .651 13 .209 .984 12 .866 .849
5 .999 .543 12 .381 .963 11 .953 .783
.480 14 .022 .999 11 .586 .926 10 .988 .714
13 .063 .996 10 .778 .869 9 .998 .643
12 .147 .990 9 .912 .796 .750 18 .031 .999
252 Tabelas para modelos com população finita
X S D F X S D F X S D F
.750 17 .113 .993 POPULAÇÃO 30 .032 2 .286 .992
16 .272 .980 1 .843 .899
15 .487 .954 .004 1 .116 .999 .034 3 .083 .999
14 .703 .913 .007 1 .203 .998 2 .316 .990
13 .864 .859 .009 1 .260 .997 1 .876 .877
12 .952 .798 .010 1 .289 .996 .036 3 .095 .998
11 .988 .733 .011 1 .317 .995 2 .347 .988
10 .998 .667 .012 1 .346 .994 1 .905 .853
.800 19 .014 .999 .013 1 .374 .993 .038 3 .109 .998
18 .084 .996 .014 2 .067 .999 2 .378 .986
17 .242 .984 1 .403 .991 1 .929 .827
16 .470 .959 .015 2 .076 .999 .040 3 .123 .997
15 .700 .920 1 .431 .989 2 .410 .983
14 .867 .869 .016 2 .085 .999 1 .948 .800
13 .955 .811 1 .458 .987 .042 3 .138 .997
12 .989 .750 .017 2 .095 .999 2 .442 .980
11 .998 .687 1 .486 .985 1 .963 .772
.850 19 .046 .998 .018 2 .105 .999 .044 4 .040 .999
18 .201 .988 1 .513 .983 3 .154 .996
17 .451 .965 .019 2 .116 .999 2 .474 .977
16 .703 .927 1 .541 .980 1 .974 .744
.850 15 .877 .878 .020 2 .127 .998 .046 4 .046 .999
14 .962 .823 1 .567 .976 3 .171 .996
13 .991 .765 .021 2 .139 .998 2 .506 .972
12 .998 .706 1 .594 .973 1 .982 .716
.900 19 .135 .994 .022 2 .151 .998 .048 4 .053 .999
18 .425 .972 1 .620 .969 3 .189 .995
17 .717 .935 .023 2 .163 .997 2 .539 .968
16 .898 .886 .023 1 .645 .965 1 .988 .689
15 .973 .833 .024 2 .175 .997 .050 4 .060 .999
14 .995 .778 1 .670 .960 3 .208 .994
13 .999 .722 .025 2 .188 .996 2 .571 .963
.950 19 .377 .981 1 .694 .954 1 .992 .663
18 .760 .943 .026 2 .201 .996 .052 4 .068 .999
17 .939 .894 1 .718 .948 3 .227 .993
16 .989 .842 .028 3 .051 .999 2 .603 .957
15 .999 .789 2 .229 .995 1 .995 .639
1 .763 .935 .054 4 .077 .998
.030 3 .060 .999 3 .247 .992
2 .257 .994 2 .634 .951
1 .805 .918 1 .997 .616
.032 3 .071 .999 .056 4 .086 .998
253
X S D F X S D F X S D F
.056 3 .267 .991 .085 5 .108 .997 .120 2 .999 .555
2 .665 .944 4 .282 .987 .125 8 .024 .999
1 .998 .595 3 .607 .948 7 .069 .998
.058 4 .096 .998 2 .955 .768 6 .171 .993
3 .288 .989 .090 6 .046 .999 5 .367 .977
2 .695 .936 5 .132 .996 4 .666 .927
1 .999 .574 4 .326 .984 3 .940 .783
.060 5 .030 .999 3 .665 .934 .130 8 .030 .999
4 .106 .997 2 .972 .732 7 .083 .997
3 .310 .987 .095 6 .057 .999 6 .197 .991
2 .723 .927 5 .158 .994 5 .409 .972
1 .999 .555 4 .372 .979 4 .712 .914
.062 5 .034 .999 3 .720 .918 3 .957 .758
4 .117 .997 2 .984 .697 .135 8 .037 .999
3 .332 .986 .100 6 .071 .998 7 .098 .997
2 .751 .918 5 .187 .993 6 .226 .989
.064 5 .038 .999 4 .421 .973 5 .451 .966
4 .128 .997 3 .771 .899 4 .754 .899
3 .355 .984 2 .991 .664 3 .970 .734
2 .777 .908 .105 7 .030 .999 .140 8 .045 .999
.066 5 .043 .999 6 .087 .997 7 .115 .996
4 .140 .996 5 .219 .991 6 .256 .987
3 .378 .982 4 .470 .967 5 .494 .960
2 .802 .897 3 .816 .879 4 .793 .884
.068 5 .048 .999 2 .995 .634 3 .979 .710
4 .153 .995 .110 7 .038 .999 .145 8 .055 .998
3 .402 .979 6 .105 .997 7 .134 .995
2 .825 .885 5 .253 .988 6 .288 .984
.070 5 .054 .999 .110 4 .520 .959 5 .537 .952
4 .166 .995 3 .856 .857 4 .828 .867
3 .426 .976 2 .997 .605 3 .986 .687
2 .847 .873 .115 7 .047 .999 .150 9 .024 .999
.075 5 .069 .998 6 .125 .996 8 .065 .998
4 .201 .993 5 .289 .985 7 .155 .993
3 .486 .969 4 .570 .950 6 .322 .980
2 .893 .840 3 .890 .833 5 .580 .944
.080 6 .027 .999 2 .998 .579 4 .860 .849
5 .088 .998 .120 7 .057 .998 3 .991 .665
4 .240 .990 6 .147 .994 .155 9 .029 .999
3 .547 .959 5 .327 .981 8 .077 .997
2 .929 .805 4 .619 .939 7 .177 .992
.085 6 .036 .999 3 .918 .808 6 .357 .976
254 Tabelas para modelos com população finita
X S D F X S D F X S D F
.155 5 .622 .935 .200 9 .123 .995 .250 11 .095 .996
4 .887 .830 8 .249 .985 10 .192 .989
3 .994 .644 7 .446 .963 9 .345 .975
.160 9 .036 .999 6 .693 .913 8 .552 .944
8 .090 .997 5 .905 .814 7 .773 .885
7 .201 .990 4 .991 .665 6 .932 .789
6 .394 .972 .210 11 .030 .999 5 .992 .666
.160 5 .663 .924 10 .073 .997 .260 13 .023 .999
4 .910 .811 9 .157 .992 12 .056 .998
3 .996 .624 8 .303 .980 11 .121 .994
.165 9 .043 .999 7 .515 .952 10 .233 .986
8 .105 .996 6 .758 .892 9 .402 .967
7 .227 .988 5 .938 .782 8 .616 .930
6 .431 .967 4 .995 .634 7 .823 .864
5 .702 .913 .220 11 .041 .999 6 .954 .763
4 .930 .792 10 .095 .996 5 .995 .641
3 .997 .606 9 .197 .989 .270 13 .032 .999
.170 10 .019 .999 8 .361 .974 12 .073 .997
9 .051 .998 7 .585 .938 11 .151 .992
8 .121 .995 6 .816 .868 10 .279 .981
7 .254 .986 5 .961 .751 9 .462 .959
6 .469 .961 4 .998 .606 8 .676 .915
5 .739 .901 .230 12 .023 .999 7 .866 .841
4 .946 .773 11 .056 .998 6 .970 .737
3 .998 .588 10 .123 .994 5 .997 .617
.180 10 .028 .999 9 .242 .985 .280 14 .017 .999
9 .070 .997 8 .423 .965 13 .042 .998
8 .158 .993 7 .652 .923 12 .093 .996
7 .313 .980 .230 6 .864 .842 11 .185 .989
6 .546 .948 5 .976 .721 10 .329 .976
5 .806 .874 4 .999 .580 9 .522 .949
4 .969 .735 .240 12 .031 .999 8 .733 .898
3 .999 .555 11 .074 .997 7 .901 .818
.190 10 .039 .999 10 .155 .992 6 .981 .712
9 .094 .996 9 .291 .981 5 .999 .595
8 .200 .990 8 .487 .955 .290 14 .023 .999
7 .378 .973 7 .715 .905 13 .055 .998
6 .621 .932 6 .902 .816 12 .117 .994
5 .862 .845 5 .986 .693 11 .223 .986
4 .983 .699 4 .999 .556 10 .382 .969
.200 11 .021 .999 .250 13 .017 .999 9 .582 .937
10 .054 .998 12 .042 .998 8 .785 .880
255
X S D F X S D F X S D F
.290 7 .929 .795 .340 16 .016 .999 .420 18 .024 .999
6 .988 .688 15 .040 .998 17 .056 .997
5 .999 .575 14 .086 .996 16 .116 .994
.300 14 .031 .999 13 .169 .990 15 .212 .986
13 .071 .997 12 .296 .979 14 .350 .972
12 .145 .992 11 .468 .957 13 .521 .948
11 .266 .982 10 .663 .918 12 .700 .910
.300 10 .437 .962 9 .836 .858 11 .850 .856
9 .641 .924 8 .947 .778 10 .945 .789
8 .830 .861 7 .990 .685 9 .986 .713
7 .950 .771 6 .999 .588 8 .998 .635
6 .993 .666 .360 16 .029 .999 .440 19 .017 .999
.310 15 .017 .999 15 .065 .997 18 .041 .998
14 .041 .998 14 .132 .993 17 .087 .996
13 .090 .996 13 .240 .984 16 .167 .990
12 .177 .990 12 .392 .967 15 .288 .979
11 .312 .977 11 .578 .937 14 .446 .960
10 .494 .953 10 .762 .889 13 .623 .929
9 .697 .909 9 .902 .821 12 .787 .883
8 .869 .840 8 .974 .738 11 .906 .824
7 .966 .749 7 .996 .648 10 .970 .755
6 .996 .645 .380 17 .020 .999 9 .994 .681
.320 15 .023 .999 16 .048 .998 8 .999 .606
14 .054 .998 15 .101 .995 .460 19 .028 .999
13 .113 .994 14 .191 .988 18 .064 .997
12 .213 .987 13 .324 .975 17 .129 .993
11 .362 .971 12 .496 .952 16 .232 .985
10 .552 .943 11 .682 .914 15 .375 .970
9 .748 .893 .380 10 .843 .857 14 .545 .944
8 .901 .820 9 .945 .784 13 .717 .906
7 .977 .727 8 .988 .701 12 .857 .855
6 .997 .625 7 .999 .614 11 .945 .793
.330 15 .030 .999 .400 17 .035 .999 10 .985 .724
14 .068 .997 16 .076 .996 9 .997 .652
13 .139 .993 15 .150 .992 .480 20 .019 .999
12 .253 .983 14 .264 .982 19 .046 .998
11 .414 .965 13 .420 .964 18 .098 .995
10 .608 .931 12 .601 .933 17 .184 .989
9 .795 .876 11 .775 .886 16 .310 .977
8 .927 .799 10 .903 .823 15 .470 .957
7 .985 .706 9 .972 .748 14 .643 .926
6 .999 .606 8 .995 .666 13 .799 .881
256 Tabelas para modelos com população finita
X S D F X S D F X S D F
.480 12 .910 .826 .560 19 .215 .986 .650 16 .949 .818
11 .970 .762 18 .352 .973 15 .983 .769
10 .993 .694 17 .516 .952 14 .996 .718
9 .999 .625 16 .683 .920 13 .999 .667
.500 20 .032 .999 15 .824 .878 .700 25 .039 .998
19 .072 .997 14 .920 .828 24 .096 .995
18 .143 .992 13 .972 .772 23 .196 .989
.500 17 .252 .983 12 .993 .714 22 .339 .977
16 .398 .967 11 .999 .655 21 .511 .958
15 .568 .941 .580 23 .014 .999 20 .681 .930
14 .733 .904 22 .038 .998 19 .821 .894
13 .865 .854 21 .085 .996 18 .916 .853
12 .947 .796 20 .167 .990 17 .967 .808
11 .985 .732 19 .288 .980 16 .990 .762
10 .997 .667 18 .443 .963 15 .997 .714
.520 21 .021 .999 17 .612 .936 .750 26 .046 .998
20 .051 .998 16 .766 .899 25 .118 .994
19 .108 .994 15 .883 .854 24 .240 .986
18 .200 .988 14 .953 .802 23 .405 .972
17 .331 .975 13 .985 .746 22 .587 .950
16 .493 .954 12 .997 .690 21 .752 .920
15 .663 .923 11 .999 .632 20 .873 .883
14 .811 .880 .600 23 .024 .999 19 .946 .842
13 .915 .827 22 .059 .997 18 .981 .799
12 .971 .767 21 .125 .993 17 .995 .755
11 .993 .705 20 .230 .986 16 .999 .711
10 .999 .641 19 .372 .972 .800 27 .053 .998
.540 21 .035 .999 18 .538 .949 26 .143 .993
20 .079 .996 .600 17 .702 .918 25 .292 .984
19 .155 .991 16 .837 .877 24 .481 .966
18 .270 .981 15 .927 .829 23 .670 .941
17 .421 .965 14 .974 .776 22 .822 .909
16 .590 .938 13 .993 .722 21 .919 .872
15 .750 .901 12 .999 .667 20 .970 .832
14 .874 .854 .650 24 .031 .999 19 .991 .791
13 .949 .799 23 .076 .996 18 .998 .750
12 .985 .740 22 .158 .991 .850 28 .055 .998
11 .997 .679 21 .281 .982 27 .171 .993
10 .999 .617 20 .439 .965 26 .356 .981
.560 22 .023 .999 19 .610 .940 25 .571 .960
21 .056 .997 18 .764 .906 24 .760 .932
20 .117 .994 17 .879 .865 23 .888 .899
.850 22 .957 .862 .900 26 .683 .953 .950 28 .574 .973
21 .987 .823 25 .856 .923 27 .831 .945
20 .997 .784 24 .947 .888 26 .951 .912
19 .999 .745 23 .985 .852 25 .989 .877
.900 29 .047 .999 22 .996 .815 24 .998 .842
28 .200 .992 21 .999 .778
27 .441 .977 .950 29 .226 .993
Bibliografia
[1] Paul A. Jensen and J. Wesley Barnes, Network Flow Programming, John Wi-
ley & Sons, 1980.
[2] V.K.Balakrishnan, Graph Theory, Schaum’s Outline Series, McGraw-Hill,
1997.
[3] Vinod Chachra, Prabhakar M. Ghare and James M. Moore, Applications of
Graph Theory Algorithms, North Holland, 1979.
[4] Ravindra K. Ahuja, Thomas L. Magnanti and James B. Orlin, Network Flows,
Prentice-Hall, 1993.
[5] Don T. Phillips and Alberto Garcia-Diaz, Fundamentals of Network Analysis,
Waveland Press, 1990.
[6] Mokhtar S. Bazaraa, John J. Jarvis and Hanif D. Sherali, Linear Progra-
mming and Network Flows, 2
a
Edtion, John Wiley & Sons, 1990.
[7] Frederick S. Hillier and Gerald J. Lieberman, Introdução à Pesquisa Operaci-
onal, 8
a
Edition, McGraw-Hill, 2006.
[8] J Murdoch, Queueing Theory - Worked Examples and Problems, The MacMi-
llan Press, 1978.
[9] Leonard Gorney, Queueing Theory - A Problem Solving Approach, Petrocelli
Books, 1980.
[10] Brian D. Bunday, Basic Queueing Theory, Edward Arnold, 1986.
[11] Joseph A. Panico, Teoria de las Colas, Prolam S.R.L., 1973.
[12] E.Page, Queueing Theory in OR, The Butterworth Group, 1972.
[13] Juan Prawda, Métodos y Modelos de Investigación de Operaciones, Vol. 2,
Editorial Limusa S.A., 1980.
[14] L. Valadares Tavares, Rui Carvalho Oliveira, Isabel Hall Themido e F. Nunes
Correia, Investigação Operacional, McGraw Hill - Lisboa, 1996.
[15] Billy E. Gillett, Introduction to Operations Research - A Computer Oriented
Algorithmic Approach, McGraw-Hill, 1976.
258 BIBLIOGRAFIA
[16] J.A. White, J.W. Schmidt and G.K. Bennett, Analysis of Queueing Systems,
Academic Press, 1975.
[17] W.J. Fabrycky, P.M. Ghare and P.E. Torgersen, Industrial Operations Rese-
arch, Prentice-Hall, 1972.
[18] Maria Cristina Fogliatti e Néli Maria Costa Mattos, Teoria das Filas, Interci-
ência, 2007.
[19] Elwood S. Buffa, Operations Management - Problems and Models, 3
a
Edition,
John Wiley & Sons, 1972.
[20] Laurence J. Moore, Sang M. Lee and Bernard W. Taylor, Management Science,
Allyn and Bacon, 1993.
[21] Joseph J. Moder and Cecil R. Phillips, Project Management with CPM and
PERT, 2
a
Edition, Van Nostrand, 1970.
[22] Arnold O. Allen, Probability, Statistics and Queueing Theory with Computer
Science Applications, 2
a
Edition, Academic Press, 1990.
[23] Averril M. Law, Simulation Modeling and Analysis, 4
a
Edition, McGraw-Hill,
2007.
[24] W.David Kelton, Randall P. Sadowski and David T. Sturrock, Simulation with
Arena, 4
a
Edition, McGraw-Hill, 2007.
[25] Paulo José de Freitas Filho, Introdução a Modelagem e Simulação de Siste-
mas, Visual Books, 2001.
[26] Kevin Watkins, Discret Event Simulation in C, McGraw-Hill, 1993.
[27] Jerry Banks, John S. Carson II, Barry L. Nelson and David M. Nicol, Discret-
Event System Simulation, 4
a
Edition, Prentice Hall, 2005.
[28] James R. Evans and David L. Olsen, Introduction to Simulation and Risk
Analysis, Prentice-Hall, 1998.
[29] Leonardo Chwif e Afonso C. Medina, Modelagem e Simulação de Eventos Dis-
cretos, 2
a
Edição Bravarte, 2007.

ii Copyright c 2.003 por Mauricio Pereira dos Santos Editoração: O autor, criando arquivo texto no format LaTex. Compilador LaTex: Miktex Compiladores dos programas: Turbo Pascal e Visual Basic Fluxos e figuras: Visio e SmartDraw, incluídos no texto como EPS (Encapsulated Postscript File).

090826

iii

Prefácio
O objetivo deste trabalho é fornecer aos alunos da cadeira de Pesquisa Operacional da UERJ um referencial que os auxilie no estudo e acompanhamento da matéria. Os tópicos básicos da cadeira, contemplados neste trabalho, incluem o estudo dos 3 problemas clássicos de Redes quais sejam o do fluxo máximo possível de ser levado entre 2 nós de uma rede, o de encontrar o menor caminho entre 2 nós de uma rede e o de encontrar a árvore de tamanho mínimo em uma rede; a técnica de controle de projetos, genericamente chamada de PERT/CPM, que é apresentada em seus conceitos básicos; o estudo das filas de espera e de seus modelos básicos, cuja importância nos dias de hoje é marcante e fundamental e por fim mas não menos importante, a Simulação e suas aplicações nos problemas do dia a dia. Agradecemos a todos aqueles que nos ajudaram nesta tarefa, especialmente os alunos que foram cobaias no uso dos rascunhos deste trabalho. Um agradecimento especial ao ex-aluno do curso de Estatística, Leonardo Barroso Gonçalves que, quando cursou a cadeira em 1993, resolveu, detalhadamente, todos os exercícios do capítulo de Filas. Incorporamos suas soluções neste trabalho. De antemão agradeço desde já a todos aqueles que puderem apontar imperfeições e erros que possam ser corrigidos. O Autor

iv

Conteúdo

1 Redes 1.1 O problema do Fluxo Máximo . . . . . . . . . . . . . . . . . . . . . . . 1.2 Formulação como um modelo clássico de P.Linear . . . . . . . . . . . . 1.3 Técnica da Rotulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Fluxo máximo em redes com arcos não direcionados . . . . . . . . . . . 1.4.1 Adaptação para uso da Técnica de Rotulação . . . . . . . . . . . 1.5 O problema do caminho mínimo . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Formulação como um modelo clássico de P.Linear . . . . . . . . . 1.6 Etapas do algorítimo de Dijkstra . . . . . . . . . . . . . . . . . . . . . 1.7 Árvore de Tamanho Mínimo . . . . . . . . . . . . . . . . . . . . . . . . 1.7.1 Etapas do algorítimo para encontrar a árvore do tamanho mínimo 1.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.1 Respostas dos exercícios . . . . . . . . . . . . . . . . . . . . . . 2 PERT/CPM 2.1 Construção da Rede . . . . . . . . . . . . . . . . . . . . . 2.1.1 Representação gráfica da Rede . . . . . . . . . . . . 2.1.2 Representação das Atividades . . . . . . . . . . . . 2.1.3 Complicação na Construção da Rede . . . . . . . . . 2.2 Determinação do Caminho Crítico . . . . . . . . . . . . . . 2.3 O Modelo PERT . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Problemas do modelo PERT . . . . . . . . . . . . . 2.4 O Modelo CPM . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Relação entre Durações/Custos Normal e Acelerado 2.4.2 Compressão da Rede . . . . . . . . . . . . . . . . . 2.4.3 Duração ótima para o projeto . . . . . . . . . . . . 2.4.4 Resolvendo por Programação Linear . . . . . . . . . 2.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Respostas dos exercícios . . . . . . . . . . . . . . . 3 Teoria das Filas 3.1 Porque as filas são “estudadas” . . . . . . . . . . . . 3.2 Componentes básicos de um processo de fila . . . . . 3.2.1 A População . . . . . . . . . . . . . . . . . . . 3.2.2 O Processo de Chegada . . . . . . . . . . . . . 3.2.3 A Disciplina da Fila . . . . . . . . . . . . . . 3.2.4 O Mecanismo de Serviço . . . . . . . . . . . . 3.3 O Teste de Aderência . . . . . . . . . . . . . . . . . . 3.4 O Processo de Poisson . . . . . . . . . . . . . . . . . 3.5 Notação de Kendall . . . . . . . . . . . . . . . . . . 3.5.1 Convenção para textos de Filas . . . . . . . . 3.5.2 Estado transiente e de regime (ou estacionário) 3.6 O Modelo I: M/M/1 . . . . . . . . . . . . . . . . . . . 3.6.1 Sumário das fórmulas do modelo M/M/1 . . . . 3.7 Modelo II: M/M/s (s > 1) . . . . . . . . . . . . . . 3.8 Modelo III: M/M/1: Fila finita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 2 3 12 12 13 14 14 20 21 27 33 35 36 36 38 39 42 50 54 55 55 56 62 63 68 73 75 75 77 77 77 79 80 82 85 86 87 87 88 92 96 98

. . . . . . . . . .2 Simulação de um check-in . . . . . . . . . . . . . .1 Simulação de um pequeno posto bancário . 4. . . . . . . . . . . . 4. . . . . . 4. . . 4. . . .16. . . . .1 Alguns exemplos usando o programa “Simulação” . . . . . . .2 O gerador do Excel . . .20 O software ARENA . . . .1 Quebra de rolamentos . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . 4. . . 4. . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Métodos para a geração de números aleatórios . . . . . . . . . .1 Jogo de Dados (“Craps Game”) . . . . . . . . . . . . . . . . . . . . . A Tabela Normal B Tabela do χ2 C Tabelas para modelos com população finita . . .1) . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . .10 3. . . . . . . Exercícios . .11 O gerador RAND2 . . . . . . . . . . . . . . . . . . 4.7. . . . . . . . . . . . . . . . . . . . . . . . . . . .20. . . . 4. . . . . . . . . . . . . . . . . . . . . . . 4.1 Variáveis aleatórias contínuas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19. .1 Propriedades desejáveis de um gerador de números aleatórios 4. . . .20. . . . . . . . . . .1 O Método da Transformação Inversa .1 Vantagens e Desvantagens da Simulação . . . . . . . . . . . . . . . . . . . . . . . .12 3. . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . 4. . . . . . . . . . . . . . . . . .19 Um software mais versátil . .17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Componentes de um Sistema . . . . . . . . . . . . .2 Variáveis aleatórias discretas . . . . . . . . . . . . . . . .9 3. . . . . . . . . . . . .20. . . . . . . . . .21 Exercícios . . . . . . .14. . Modelo VII: M/Ek /1 .1 Solução dos exercícios . . . . . . . . 4. . . .8 Números Aleatórios uniformemente distribuídos em [0. . .16 Alguns modelos elementares de Simulação . . . . . . .4 Enfeitando o modelo . . .7 A geração de Números Aleatórios . . . . . . . 101 103 107 109 111 118 141 141 142 143 144 144 145 145 150 153 153 154 155 156 158 159 160 164 165 166 166 166 167 168 169 169 171 174 174 182 189 193 199 200 205 205 215 222 232 234 239 241 243 4 Introdução à Simulação 4. . . . .14. . . . . .17 Variáveis aleatórias não uniformes . . . .4 Tipos de Modelos . . . . 4. . . .13. . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONTEÚDO . . . . . . .10 O gerador RAND1 . . . . . . . . . . . . . . . . . . . .13. . . . . . . . .5 Modelos Discretos e Contínuos . . .18 Simulação de um pequeno posto bancário .2 Áreas de aplicação . . . . . . . . . . . . . . . . . . . . . . . . . .1 O gerador do Turbo Pascal . . . 4. . 4. . . . . . . . . . .13 Geradores de números aleatórios embutidos . 4. . . . . . . . . . . .20. .16. . . . . 4. . . . . . . . . . . . . . . . .15 Testes estatísticos . . . 4. . . . . . . . . . . . . . .9 O gerador RANDU e a formação de treliças . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . .2 Fila com uma estação de serviço . . .2 Cálculo de Integrais Definidas . . . 4. . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1) . . .17. . . . .13 Modelo IV: M/M/s: Fila finita (s > Modelo V: M/M/s: População finita . . . . . . . . . . .13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . 4. . . . . . . . . . . . . . . . . . .12 Métodos com períodos maiores . . . . . . . . . . .3 Simulação de um processo de produção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Simulação Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Números aleatórios com outras distribuições uniformes . . . . . .17. . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . .7. .6. . . . . . . . . . . . 4. . . . . . . . .3 O Método da Rejeição . . . . . . . . . . . . . . . . . . . Modelo VI: M/G/1 . . . . . . . . . 4. . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . 4. 4.vi 3. . . . . . . . . . . . . . . 4. . . . . . . . 4.11 3. . . . .6 Exemplos de modelos de Simulação . . . . . . .

conectados entre si por linhas chamadas arcos. Rede É um grafo com algum tipo de fluxo fluindo entre os nós através dos arcos. O exemplo a seguir ilustra este tipo de problema.1 O problema do Fluxo Máximo Um dos problemas mais comuns a serem resolvidos em redes é determinar o fluxo máximo que pode fluir em determinada rede. chamados nós. como exemplificado no desenho abaixo: 2 1 3 4 6 5 Os círculos são denominados nós e as linhas são denominadas de arcos. . O conjunto de veículos andando nas estradas é o fluxo que flui na rede. 1. Ex: Uma rede de estradas (arcos) unindo várias cidades (nós). A rede a seguir ilustra a captação de água de um determinado manancial até um grande reservatório de distribuição.Capítulo 1 Redes Grafo Denomina-se grafo um conjunto de pontos.

. sairá dele.. todo fluxo que chega a um nó. (2 – 4). o no 5 é a indicação de que sua capacidade é de 5 litros/segundo sendo esta. Antes de começarmos a ver como resolver o problema vamos estabelecer pré-requisitos que. Assim. no arco (3 – 4). São eles: • Todos os arcos são direcionados.Linear Este tipo de problema pode ser equacionado como um modelo de Programação Linear. (1 – 2). Os números em cima de cada arco dão a Capacidade do arco. 1. fij ⇒ fluxo que vai passar no arco (i – j). ou seja. (1. 3). embora normalmente não explicitados. Por exemplo. em litros/seg. (2. Existem 10 arcos na rede sendo que podemos representar os arcos de 2 formas diferentes: • (nó inicial. na rede acima. 2). O nó final 6 é chamado de nó destino ou nó sumidouro. ou seja. • Assume-se conservação de fluxo. nó final): (1. que pode ser levado do nó 1 ao nó 6. no arco (2 – 3). Como variáveis de decisão teríamos: f ⇒ fluxo que vai passar do nó 1 ao nó 6. Antes de prosseguir vamos definir o que vem a ser um caminho em uma rede: Caminho é uma sequência de arcos em uma rede que vão do nó origem ao nó destino. etc. . por exemplo. (1 – 3). O problema que queremos resolver é achar o fluxo máximo. etc. por exemplo.. o fluxo só pode passar no sentido 2 ⇒ 3. 3).. a quantidade máxima de água que pode passar naquele trecho de encanamento (arco). ou • (nó inicial–nó final): (1 – 2).2 Redes 6 1 8 2 2 1 5 3 4 4 4 8 6 9 3 5 O nó inicial 1 é chamado de nó origem ou nó fonte. ou seja. (4 – 6) é um caminho.2 Formulação como um modelo clássico de P. o fluxo máximo que pode passar no arco. fazem parte do problema.

mas existem algorítimos mais rápidos para se resolver este tipo de problema. O fluxo que é possível passar é igual ao δnó destino .3 Técnica da Rotulação 3 Poderíamos usar o Simplex. Para estas colunas fazemos. são: Seja gij a capacidade mostrada no quadro para o arco (i – j).3 Técnica da Rotulação O algorítimo chamado de “Técnica da Rotulação” é um dos mais usados para resolver problemas de fluxo máximo. O modelo fica como: (MAX)Z = f s. Esta etapa 2 será encerrada por uma de 2 condições: a) ou o nó destino foi rotulado. Passamos então ao estágio i + 1 e repetimos esta etapa 2. existe um caminho onde é possível passar fluxo do nó origem ao nó destino. ou seja a que representa o nó origem. f12 + f13 = f (nó 1) f46 + f56 = f (nó 6) f12 = f23 + f24 + f25 (nó 2) f13 + f23 = f34 + f35 (nó 3) f46 = f24 + f34 + f54 (nó 4) f35 + f25 = f54 + f56 (nó 5) f12 ≤ 6 f13 ≤ 8 f23 ≤ 2 f24 ≤ 4 f25 ≤ 1 f34 ≤ 5 f35 ≤ 3 f46 ≤ 8 f54 ≤ 4 f56 ≤ 9 f. As etapas do algorítimo baseado no quadro que veremos mais adiante. fij ≥ 0 1. δi) γj = i Após esta etapa ter sido feita para todos os nós rotulados no estágio i − 1 encerramos o estágio i. nas linhas correspondentes. começando pela 1a linha do quadro. γj vai representar sempre o nó de onde se veio para chegar a j. 2. Fazemos então: δj = Min(gij . 4. Se é impossível prosseguir (caso b) ir para a etapa 7. Começando pelo menor nó rotulado no estágio anterior.a. 1. No quadro inicial gij vai ser exatamente a capacidade do arco. procuramos as colunas que tem gij ≥ 0. procuramos os gij nas quais a linha j ainda não tenha sido rotulada. No estágio 1. Se o nó destino foi rotulado. δj = gij e γj = 1. . 3.1. b) ou é impossível prosseguir com a etapa 2 e o nó destino não foi rotulado.

6. Para os arcos (i – j) do caminho. subtrair δnó destino de gij . Para rotular a linha (nó) 4 temos: δ4 = Min(g24 . δ2 ) = Min(4. correspondente ao nó 2. Gama (γ) sempre indica de onde viemos para chegar aquele nó. fica como: 1 2 3 4 5 6 1 – 0 0 0 0 0 2 6 – 0 0 0 0 3 8 2 – 0 0 0 4 0 4 5 – 4 0 5 0 1 3 0 – 0 6 0 0 0 8 9 – Rótulos δ γ 6 1 8 1 Estágio —1 1 Devemos agora passar para o estágio i + 1 ou seja para o estágio 2. Na linha 3. No entanto o nó 3 já está rotulado e não podemos rotulá-lo novamente. ou seja as linhas 2 e 3 correspondentes aos nós 2 e 3. Usando os γi é possível encontrar este caminho. O γ4 é 2 (nó de onde vim) e o estágio igual a 2. O fluxo máximo é a soma dos gij da linha do nó destino. Iniciando pela linha 2. 6) = 4. Como “varremos” a linha 1 (nó origem). correspondente ao nó 3. Com o novo quadro construído voltar a etapa 1. Temos então: 1 2 3 4 5 6 1 – 0 0 0 0 0 2 6 – 0 0 0 0 3 8 2 – 0 0 0 4 0 4 5 – 4 0 5 0 1 3 0 – 0 6 0 0 0 8 9 – Rótulos δ γ Estágio —- Na etapa 1 começamos “varrendo” a linha correspondente ao nó origem (1 no exemplo) procurando gij maiores que zero. estamos no estágio 1. Redes 7. Neste estágio vamos “varrer” todos os nós rotulados no estágio 1. O quadro inicial é construído colocando-se em cada arco (i – j) a capacidade dele quando o arco existe e zero quando não existe. fazemos δ3 = 8 e γ3 = 1. Para os arcos inversos (j – i) somar δnó destino à gij . Encontramos o nó 2 com g12 = 6 e o nó 3 com g13 = 8. Na linha 2. fazemos δ2 = 6 e γ2 = 1. Os gij não modificados são mantidos. Do nó 2 podemos ainda rotular o nó 5 pois g25 = 1. Temos . Pode-se também passar fluxo para o nó 4 pois g24 = 4. O fluxo que passa em cada arco (i – j) é a diferença entre os gij dos quadros inicial e final. podemos observar que pode-se passar fluxo para o nó 3 pois g23 = 2.4 5. O nosso quadro. Exemplo de aplicação da Técnica de Rotulação Vamos aplicar o algorítimo ao nosso exemplo da rede de captação de água.

ou seja. fica como: .1. existe um caminho para passar uma quantidade de fluxo. pronto para começar a 2a iteração. Varrendo a linha 3 observamos que poderíamos rotular as linhas (nós) 4 e 5 mas ambas já foram rotuladas. Como viemos do nó 4. o γ6 é igual a 4 e o estágio 3. Repare que não acabamos o estágio 2 pois ainda não “varremos” a linha (nó) 3 que também foi rotulada no estágio 1. Assim se γ6 é igual a 4. olhamos o γ4 . Nosso quadro. Como ele é igual a 2 significa que viemos do nó 2. significa que chegamos ao nó 6 vindo do nó 4. Temos que ir para o estágio 3 e o nosso quadro tem agora a seguinte aparência: 1 2 3 4 5 6 1 – 0 0 0 0 0 2 6 – 0 0 0 0 3 8 2 – 0 0 0 4 0 4 5 – 4 0 5 0 1 3 0 – 0 6 0 0 0 8 9 – Rótulos δ γ 6 1 8 1 4 2 1 2 Estágio —1 1 2 2 Começamos o estágio 3 varrendo o nó (linha) 4. Subtraímos então 4 (= δ6 ) do arco (2 – 4) e somamos no arco inverso (4 – 2). Os valores que sofreram alteração estão marcados e os demais ficam inalterados. Do nó 4 Podemos ir para o nó 6 sendo que o δ6 será igual ao Min(g46 .3 Técnica da Rotulação 5 δ5 = Min(g25 . 6) = 1. Para chegar ao nó 2 viemos do nó 1 (veja o γ2 ). Acabamos o estágio 2 e o nó destino não foi ainda rotulado. Na matriz vamos subtrair 4 (= δ6 ) do arco (4 – 6) e somar este valor ao arco inverso (6 – 4). do δnó destino . Que quantidade é esta ? É o valor do δ6 . 4) = 4. δ2 ) = Min(1. δ4 ) ou seja o Min(8. Um estágio só acaba quando todas as linhas (nós) rotuladas no estágio anterior forem “varridas”. Para encontrar este caminho vamos do nó destino para trás usando os γi para encontrar os arcos do caminho. O γ5 é 2 (nó de onde vim) e continuamos no estágio 2. Subtraímos 4 (= δ6 ) do arco (1 – 2) e somamos este valor ao arco inverso (2 – 1). Para chegar ao nó 4. Nosso quadro tem agora a seguinte forma: 1 2 3 4 5 6 1 – 0 0 0 0 0 2 6 – 0 0 0 0 3 8 2 – 0 0 0 4 0 4 5 – 4 0 5 0 1 3 0 – 0 6 0 0 0 8 9 – Rótulos δ γ 6 1 8 1 4 2 1 2 4 4 Estágio —1 1 2 2 3 Como rotulamos o nó destino (6).

Deste nó podemos ir para o nó 1 mas ele já está rotulado (δ e γ também são rótulos). Assim. Os rótulos no nó 5 serão: δ5 = Min(g25 . Nosso quadro está como: 1 2 3 4 5 6 1 – 4 0 0 0 0 2 2 – 0 4 0 0 3 8 2 – 0 0 0 4 0 0 5 – 4 4 5 0 1 3 0 – 0 6 0 0 0 4 9 – Rótulos δ γ 2 1 8 1 5 3 1 2 Estágio —1 1 2 2 . Como do nó 2 não podemos ir para mais lugar algum vamos examinar o nó 3 que também foi rotulado no estágio 1. Como não podemos ir para mais lugar algum encerramos o estágio 2 e vamos começar o estágio 3. γ5 = 2 e estágio = 2. δ3 ) = Min(5. Do nó 3 podemos ir para o nó 4 sendo que os rótulos dele serão: δ4 = Min(g34 . γ3 = 1 e estágio igual a 1. 2) = 1. começamos examinando o nó 2. ir para o nó 5. Podemos ir para o nó 3 mas ele também já está rotulado. δ2 ) = Min(1. γ2 = 1 e estágio igual a 1. Nosso quadro está como: 1 2 3 4 5 6 1 – 4 0 0 0 0 2 2 – 0 4 0 0 3 8 2 – 0 0 0 4 0 0 5 – 4 4 5 0 1 3 0 – 0 6 0 0 0 4 9 – Rótulos δ γ 2 1 8 1 Estágio —1 1 No estágio 2 temos que varrer os nós rotulados no estágio 1. Como do nó origem não podemos rotular mais nenhum nó. 8) = 5. podemos ir do nó 1 para o nó 3 e rotulamos este nó fazendo δ3 = 8. Vemos que podemos ir para o nó 2 com 2. no entanto. acabamos o estágio 1. Ainda no estágio 1. Logo fazemos δ2 = 2.6 1 – 4 0 0 0 0 2 2 – 0 4 0 0 3 8 2 – 0 0 0 4 0 0 5 – 4 4 5 0 1 3 0 – 0 6 0 0 0 4 9 – Rótulos δ γ Estágio —- Redes 1 2 3 4 5 6 Começamos a 2a iteração varrendo o nó origem (nó 1) procurando gij maiores que 0. Podemos. γ4 = 3 e estágio = 2.

Podemos também rotular o nó 6 que terá os seguintes rótulos: δ6 = Min(g46 .3 Técnica da Rotulação 7 Vamos iniciar o estágio 3 varrendo os nós rotulados no estágio 2 (nós 4 e 5). No passo anterior (estágio 2) o nó 5 foi rotulado antes do que o nó 4. 5) = 4. Do nó 4 podemos rotular o nó 2 mas ele já está rotulado. Desta forma começamos examinando o nó 4. Subtraímos 4 (= δ6 ) do arco (1 – 3) e somamos no arco (3 – 1). γ6 = 4 e estágio = 3. terminamos a 2a iteração e nosso quadro se apresenta como: 1 2 3 4 5 6 1 – 4 0 0 0 0 2 2 – 0 4 0 0 3 8 2 – 0 0 0 4 0 0 5 – 4 4 5 0 1 3 0 – 0 6 0 0 0 4 9 – Rótulos δ γ 2 1 8 1 5 3 1 2 4 4 Estágio —1 1 2 2 3 Temos que achar o caminho em que foi possível passar 4 (= δ6 ) de fluxo. do nó 1. Devemos fazer a varredura sempre na ordem numérica dos nós. Subtraímos então 4 (= δ6 ) do arco (4 – 6) e somamos no arco inverso (6 – 4).1. Mantendo os demais valores inalterados temos o quadro pronto para começar a 3a iteração: 1 2 3 4 5 6 1 – 4 4 0 0 0 2 2 – 0 4 0 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 1 3 0 – 0 6 0 0 0 0 9 – Rótulos δ γ Estágio —- No estágio 1 podemos. Para chegar ao nó 4 viemos do nó 3 (= γ4 ). Os rótulos ficam como: δ2 = 2 e γ2 = 1. Como rotulamos o nó destino. Temos então: . δ4 ) = Min(4. Para chegar ao nó 6 viemos do nó 4 (= γ6 ). Temos que manter esta sequência na varredura deles no estágio ? Não. Subtraímos 4 (= δ6 ) do arco (3 – 4) e somamos no arco (4 – 3). Para chegar ao nó 3 viemos do nó 1 (= γ3 ). rotular os nós 2 e 3. δ3 = 4 e γ3 = 1. Mais uma vez. usando os γi podemos encontrar este caminho.

Mantendo os demais valores. não podemos rotular ninguém a partir do nó 4 mas do nó 5.8 1 – 4 4 0 0 0 2 2 – 0 4 0 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 1 3 0 – 0 6 0 0 0 0 9 – Rótulos δ γ 2 1 4 1 Estágio —1 1 Redes 1 2 3 4 5 6 No estágio 2. podemos rotular o nó 6. 1) = 1. Subtraímos 1 de (2 – 5) e somamos em (5– 2). 2) = 1. Do nó 3 podemos rotular o nó 4 como: δ4 = Min(g34 . δ5 ) = Min(9. δ3 ) = Min(1. γ5 = 2 e estágio = 2. Temos então: 1 2 3 4 5 6 1 – 4 4 0 0 0 2 2 – 0 4 0 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 1 3 0 – 0 6 0 0 0 0 9 – Rótulos δ γ 2 1 4 1 1 3 1 2 Estágio —1 1 2 2 No estágio 3. Seus rótulos são: δ6 = Min(g56 . do nó 2 só podemos rotular o nó 5. δ2 ) = Min(1. temos que encontrar o caminho onde se passou 1 (= δ6 ) de fluxo. Para chegar ao nó 2 viemos do nó 1. 4) = 1. Subtraímos 1 do arco (5 – 6) e somamos em (6 – 5). temos o quadro pronto para a 4a iteração: . γ6 = 5 e estágio = 3. viemos do nó 5. Para chegar a 6. logo subtraímos 1 de (1 – 2) e somamos a (2 – 1). Para chegar a 5 viemos do nó 2. Seus rótulos serão: δ5 = Min(g25 . Temos: 1 2 3 4 5 6 1 – 4 4 0 0 0 2 2 – 0 4 0 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 1 3 0 – 0 6 0 0 0 0 9 – Rótulos δ γ 2 1 4 1 1 3 1 2 1 5 Estágio —1 1 2 2 3 Como rotulamos o nó destino. γ4 = 3 e estágio = 2.

δ5 ) = Min(8. 1 2 3 4 5 6 1 – 5 4 0 0 0 2 1 – 0 4 1 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 0 3 0 – 1 6 0 0 0 0 8 – Rótulos δ γ 1 1 4 1 1 3 3 3 Estágio —1 1 2 2 No estágio 3. 4) = 1.3 Técnica da Rotulação 9 2 1 – 0 4 1 0 2 1 – 0 4 1 0 3 4 2 – 4 0 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 4 0 0 1 – 4 8 5 0 0 3 0 – 1 5 0 0 3 0 – 1 6 0 0 0 0 8 – 6 0 0 0 0 8 – Rótulos δ γ Estágio —- 1 2 3 4 5 6 1 – 5 4 0 0 0 1 – 5 4 0 0 0 No estágio 1. Também do nó 3 podemos rotular o nó 5: δ5 = Min(g35 . 3) = 3. γ5 = 3 e estágio = 2.1. 1 2 3 4 5 6 1 – 5 4 0 0 0 2 1 – 0 4 1 0 3 4 2 – 4 0 0 4 0 0 1 – 4 8 5 0 0 3 0 – 1 6 0 0 0 0 8 – Rótulos δ γ 1 1 4 1 1 3 3 3 3 5 Estágio —1 1 2 2 3 . δ3 ) = Min(3. γ6 = 5 e estágio = 3. δ3 ) = Min(1. os nós 2 e 3 são rotulados ficando como: 1 2 3 4 5 6 Rótulos δ γ 1 1 4 1 Estágio —1 1 No estágio 2 do nó 2 não podemos rotular qualquer outro nó mas do nó 3 podemos rotular o nó 4 com: δ4 = Min(g34 . γ4 = 3 e estágio = 2. do nó 4 não se rotular ninguém mas do nó 5 podemos rotular o nó 6 como: δ6 = Min(g56 . 4) = 3.

Para chegar a 6 viemos do nó 5. Fazemos o procedimento mais uma vez para encontrar o caminho. 1 2 3 4 5 6 1 – 5 7 0 0 0 2 1 – 0 4 1 0 3 1 2 – 4 3 0 4 0 0 1 – 4 8 5 0 0 0 0 – 4 6 0 0 0 0 5 – Rótulos δ γ Estágio —- No estágio 1 rotulamos os nós 2 e 3. ou seja 8 + 4 = 12. Assim sendo. tenho o nó 4 para varrer mas do nó 4 não consigo rotular mais ninguém. Subtraímos 3 de (1 – 3) e somamos a (3 – 1). Qual o fluxo máximo que pode ser levado do nó 1 ao nó 6 ? É a soma dos valores que aparecem no último quadro na linha do nó 6. O algorítimo chegou ao final pois não conseguimos em uma iteração (5a no exemplo) rotular o nó destino (nó 6). subtraímos 3 de (5 – 6) e somamos 3 a (6 – 5). Mantendo inalterados os demais valores temos o quadro para começar a 5a iteração. Para chegar a 3 viemos do nó 1. γ4 = 3 e estágio = 2. Para chegar a 5 viemos do nó 3. δ3 ) = Min(1. .10 Redes Conseguimos passar 3 de fluxo (= δ6 ). 1 2 3 4 5 6 1 – 5 7 0 0 0 2 1 – 0 4 1 0 3 1 2 – 4 3 0 4 0 0 1 – 4 8 5 0 0 0 0 – 4 6 0 0 0 0 5 – Rótulos δ γ 1 1 1 1 Estágio —1 1 No estágio 2 do nó 2 não rotulamos ninguém mas do nó 3 podemos rotular o nó 4 como: δ4 = Min(g34 . 1) = 1. Subtraímos 3 de (3 – 5) e somamos a (5 – 3). 1 – 5 7 0 0 0 2 1 – 0 4 1 0 3 1 2 – 4 3 0 4 0 0 1 – 4 8 5 0 0 0 0 – 4 6 0 0 0 0 5 – Rótulos δ γ 1 1 1 1 1 3 Estágio —1 1 2 1 2 3 4 5 6 No estágio 3.

imediatamente. O esquema da passagem do fluxo pode ser visto a seguir: 5 1 2 4 4 8 6 12 4 7 3 3 1 5 4 .3 Técnica da Rotulação 11 A resposta acima leva. Temos então: Arco 1–2 1–3 2–4 2–5 3–4 3–5 4–6 5–6 2–3 5–4 Fluxo que passa 6−1=5 8−1=7 4−0=4 1−0=1 5−1=4 3−0=3 8−0=8 9−5=4 2−2=0 4−4=0 Pode-se observar que nos arcos (2 – 3) e (5 – 4) não passa qualquer fluxo. a outra pergunta: Como este fluxo máximo se distribui pelos arcos da rede ? O fluxo que passa em cada arco é igual a diferença entre o valor da capacidade do arco (valor que aparece no quadro inicial) e o valor que aparece para o arco no último quadro do algorítimo.1.

se k é a capacidade do arco.4. 40 1 30 2 15 15 3 30 25 25 50 4 25 25 5 50 6 30 Aplica-se normalmente a técnica da rotulação na rede modificada. 1. (2 – 5) e (4 – 5) são não direcionados.1 Adaptação para uso da Técnica de Rotulação Cada arco não direcionado é dividido em 2. Vamos supor que para o não direcionado (2 – 3) tenhamos encontrado: . Matematicamente. com sentidos opostos e capacidade igual a k. temos: fij ≤ k fji ≤ k fij × fji = 0 (pelo menos um dos dois é zero!) Exemplo: Achar o fluxo máximo que pode ser levado do nó 1 ao nó 6 na rede abaixo: 40 1 30 2 15 3 30 4 25 5 25 50 6 30 50 Os arcos (2 – 3).12 Redes 1.4 Fluxo máximo em redes com arcos não direcionados Um arco (i – j) é dito ser não direcionado se o fluxo pode passar no sentido i ⇒ j ou no sentido j ⇒ i. No final do algorítimo teremos o fluxo que passa em cada arco.

5 O problema do caminho mínimo 13 (2 – 3) =⇒ 5 (3 – 2) =⇒ 12 Como o fluxo que passa no sentido 3 ⇒ 2 é maior isto significa que o fluxo fluirá neste sentido. 12 − 5 = 7.5 O problema do caminho mínimo Um outro problema clássico de redes é o de achar o menor caminho entre 2 nós da rede. 1. Neste caso o fluxo que passa no arco é igual a zero. Exemplo: Achar o menor caminho entre os nós 1 e 6 na rede abaixo: 2 3 2 1 4 4 7 3 1 3 9 6 6 3 3 5 O número que aparece no arco dá o comprimento dele. pode acontecer que a diferença entre os quadros inicial e final. E quanto de fluxo passará ? a diferença. ou seja no cálculo do fluxo que passa no arco.1. . dê um valor negativo. Aplica-se o mesmo raciocínio e cálculo para todos os arcos não direcionados. Em redes com arcos não direcionados.

Se igual a 1. pertence. 2. será o mínimo entre o seu rótulo anterior e a soma acima. Rotule o nó origem como permanente (colocando um *). Vamos aplicar o algorítimo para encontrar o caminho mais curto entre os nós 1 e 6 na rede acima. O novo rótulo do nó em questão. (MIN Z = 3x12 + 7x13 + 4x14 + 2x23 + x34 + 9x26 + 6x36 + 3x35 + 3x45 + 3x56 s. a soma do rótulo do nó k mais a distância de k ao nó em questão. não rotulado permanentemente. 3. Se o nó que acabou de ser rotulado é o nó destino.1 Formulação como um modelo clássico de P. o algorítimo chegou ao fim. existem muitos algorítimos para resolver este tipo de problema de uma forma mais rápida do que o Simplex. que é também uma técnica de rotulação. o rótulo é igual a ∞. Quando não há ligação. em caso contrário voltar à etapa 2.14 Redes 1.a. Calcule para cada nó. Se xij = 0.6 Etapas do algorítimo de Dijkstra 1. Veremos o chamado Algorítimo de Dijkstra. Os rótulos dos outros nós. Em caso de empate a escolha é arbritária. 1. ele não pertence ao caminho. x12 + x13 + x14 = 1 (nó origem) x26 + x36 + x56 = 1 (nó destino) x12 = x23 + x26 (nó 2) x13 + x23 = x34 + x35 + x36 (nó 3) x14 + x34 = x45 (nó 4) x35 + x45 = x56 (nó 5) xij = 0 ou 1 Como no problema do fluxo máximo. Vamos trabalhar com um quadro com o seguinte aspecto: Iteração 0 1 2 3 4 5 1 2 3 4 5 6 Nó Rotulado . Rotule-o como permanente (colocando um *).5. Selecione o nó com o menor rótulo não permanente. são iguais a distância do nó origem ao nó em questão. Suponha que o nó k foi o último a receber rótulo permanente. Atribuir um rótulo igual a zero para o nó origem.Linear Variáveis de decisão: xij ⇒ arco (i – j) presente no caminho mais curto.

O primeiro é a soma do rótulo do último nó rotulado de forma permanente com a distância deste nó ao nó em questão. O 2o valor é o rótulo anterior do nó em questão. teremos o mínimo entre 2 quantidades iguais. ou seja 3. Como nesta iteração o último nó rotulado foi o nó 1 que tem rótulo igual a 0. O nó 1 foi o último (e único até agora) nó rotulado permanentemente. ou seja imutável. A marcação de permanente é feita colocando-se um “*” no rótulo. Inicialmente devemos calcular a soma do rótulo do nó 2 (= 3) mais a distância do nó 2 ao nó 3 que é igual 2. escolhemos o que tem menor rótulo e o rotulamos de forma permanente. Vamos calcular o novo rótulo do nó 3. O novo rótulo do nó 3 será o mínimo entre 5 e o rótulo anterior de 3 (=7). Nesta iteração o nó rotulado vai ser o nó 1 a quem atribuímos um rótulo igual a 0. Os rótulos dos nós 5 e 6 será igual a ∞ pois não há arco ligando a origem (nó 1) a eles. a soma do rótulo do nó 1 com a distância do nó 1 ao nó em questão dará sempre a própria distância do nó 1 a cada um dos nós da rede. Assim sendo a linha da iteração 1 é exatamente igual a linha da iteração 0.1. Da mesma forma o rótulo do nó 3 será 7 (distância do nó origem a ele). ou seja a distância do nó origem (1) a cada um dos nós. Para os outros não rotulados de forma permanente temos que calcular o novo rótulo. Como o menor valor não rotulado de forma permanente é 3. Logo. . Como o rótulo anterior já era a própria distância ao nó 1. o nó 2 recebe rótulo permanente e nosso quadro fica como: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 2 3 3∗ 3 7 7 4 4 4 5 ∞ ∞ 6 ∞ ∞ Nó Rotulado 1 2 Vamos começar a iteração 2 lembrando que o último nó rotulado de forma permanente foi o nó 2 com rótulo igual a 3. Este novo rótulo será o mínimo entre 2 valores. O rótulo do nó 2 vai ser igual a distância do nó 1 a ele. Nosso quadro fica então como: Iteração 0 1 2 3 4 5 1 0∗ 2 3 3 7 4 4 5 ∞ 6 ∞ Nó Rotulado 1 Podemos começar a iteração 1. 3 + 2 = 5. Idem para o nó 4 que terá rótulo igual a 4. Como todos os nós já tem rótulo. Assim o novo rótulo de 3 será igual a 5.6 Etapas do algorítimo de Dijkstra 15 Começamos (iteração 0) atribuindo um rótulo igual a 0 para o nó origem (nó 1).

Para o nó 6 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 6 que é igual a 9. O novo rótulo do nó 6 é o mínimo entre ∞ e o seu rótulo anterior. ou seja 3 + 9 = 12. O novo rótulo do nó 3 é o mínimo entre o 5 e o rótulo anterior de 3 que também era 5.16 Redes Para o nó 4 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 4 que é igual a ∞ pois não existe ligação entre eles. o nó 3 recebe rótulo permanente e o quadro tem o seguinte aspecto: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 0∗ 0∗ 2 3 3∗ 3∗ 3∗ 3 7 7 5 5∗ 4 4 4 4∗ 4∗ 5 ∞ ∞ ∞ 7 6 ∞ ∞ 12 12 Nó Rotulado 1 2 4 3 . O novo rótulo do nó 5 será o mínimo entre ∞ e o rótulo anterior de 5 (= ∞). Assim sendo. Logo o novo rótulo do nó 4 é 4. Logo a soma dá 4 + 1 = 5. Logo o novo rótulo do nó 5 é ∞. Logo o novo rótulo do nó 6 é 12. O novo rótulo do nó 4 será o mínimo entre ∞ e o rótulo anterior de 4 (= 4). Para o nó 5 temos a soma de 3 (rótulo do nó 2) mais a distância do nó 2 ao nó 5 que é igual a ∞ pois não existe ligação entre eles. Logo a soma dá 4 + 3 = 7. para o nó 3 calculamos a soma entre o rótulo do nó 4 (= 4) mais a distância do nó 3 ao nó 4 que é igual a 1. Finalmente para o nó 6 temos a soma do rótulo do nó 4 mais a distância do nó 4 ao nó 6 dando 4 + ∞ = ∞. Nosso quadro fica como: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 0∗ 2 3 3∗ 3∗ 3 7 7 5 4 4 4 4∗ 5 ∞ ∞ ∞ 6 ∞ ∞ 12 Nó Rotulado 1 2 4 Começamos a iteração 3 recordando que o nó 4 foi o último a receber rótulo permanente e que seu rótulo é 4. O menor rótulo não permanente é 4 que corresponde ao nó 4 que é então rotulado de forma permanente. Como o menor rótulo é igual a 5. O novo rótulo do nó 6 será o mínimo entre 12 e o rótulo anterior de 6 (= ∞). O novo rótulo do nó 5 será o mínimo entre o resultado da soma (7) e o rótulo anterior do nó 5 (∞). ou seja 12. Logo o novo rótulo será igual a 7. Para o nó 5 temos a soma do rótulo de 4 mais a distância do nó 4 ao nó 5 que é igual a 3. O rótulo continua igual a 5.

correspondente ao nó 5. ele recebe o rótulo permanente e o quadro fica como: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 0∗ 0∗ 0∗ 2 3 3∗ 3∗ 3∗ 3∗ 3 7 7 5 5∗ 5∗ 4 4 4 4∗ 4∗ 4∗ 5 ∞ ∞ ∞ 7 7∗ 6 ∞ ∞ 12 12 11 Nó Rotulado 1 2 4 3 5 Para a iteração 5. Para o nó 6. dando 7 + 3 = 10. ou seja 10. Para o nó 5 calculamos a soma do rótulo do nó 3 mais a distância do nó 3 ao nó 5 dando 5 + 3 = 8. Assim 7 é o novo rótulo do nó 5. Seu novo rótulo é igual a 10. Neste momento.1. Como ele é o único ainda não rotulado ele recebe o rótulo permanente e nosso quadro final como: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 0∗ 0∗ 0∗ 0∗ 2 3 3∗ 3∗ 3∗ 3∗ 3∗ 3 7 7 5 5∗ 5∗ 5∗ 4 4 4 4∗ 4∗ 4∗ 4∗ 5 ∞ ∞ ∞ 7 7∗ 7∗ 6 ∞ ∞ 12 12 11 10∗ Nó Rotulado 1 2 4 3 5 6 Como o nó destino (6) foi rotulado. Assim 11 é o novo rótulo do nó 6. Qual o comprimento do menor caminho entre os nós 1 e 6 da rede ? É exatamente o rótulo do nó destino. Para o nó 6 calculamos a soma do rótulo do nó 3 mais a distância do nó 3 ao nó 6 dando 5 + 6 = 11. Começando do nó destino e voltando podemos. surge imediatamente a pergunta: Qual o caminho que tem comprimento 10 ? Esta pergunta pode ser respondida através da seguinte propriedade: O nó i precede o nó j se a diferença entre os rótulos permanentes dos nós j e i for igual a distância i – j. calculamos a soma do rótulo do nó 5 (= 7) mais a distância do nó 5 ao nó 6. O novo rótulo do nó 5 é o mínimo entre este 8 e o seu rótulo anterior (= 7). Como o menor rótulo é 7. Temos então: . aplicando aquela propriedade.6 Etapas do algorítimo de Dijkstra 17 Passamos para a iteração 4 guardando que o nó 3 foi o último a receber rótulo permanente e seu rótulo é igual a 5. achar o caminho de comprimento igual a 10. o último nó rotulado de forma permanente foi o 5 e seu rótulo é 7. chegamos ao final do algorítimo. O novo rótulo do nó 6 é o mínimo entre este 11 e o seu rótulo anterior (= 12). O novo rótulo do nó 6 é o mínimo entre este 10 e o seu rótulo anterior (= 11).

O caminho com comprimento igual a 10 (menor caminho da rede) é: (1 – 4).18 Nó 6 Arco 5– 6 3– 6 2– 6 Redes (5 – 6) é um arco do caminho. Nó 5 Arco Diferença Distância 3– 5 7−5=2 3 4– 5 7−4=3 3 ⇐ Diferença 10 − 7 = 3 10 − 5 = 5 10 − 3 = 7 Distância 3 ⇐ 6 9 (4 – 5) é um arco do caminho. (5 – 6). (4 – 5). Seja o seguinte exemplo: Achar o menor caminho entre o nó 1 e o nó 6 na rede abaixo: 2 8 9 1 4 4 1 3 3 3 6 6 12 3 8 5 . Vamos ver um novo exemplo para ilustrar o caso onde existe mais de 1 caminho mínimo na rede. Nó 4 Arco Diferença Distância 3 – 4 4 − 5 = −1 1 1– 4 4−0=4 4 ⇐ (1 – 4) é um arco do caminho.

Nó 3 Arco Diferença Distância 1– 3 1−0=1 1 ⇐ 2 – 3 1 − 8 = −7 4 (1 – 3) é um arco do caminho e chegamos ao nó origem. Nó 5 Arco 3– 5 4– 5 Diferença 7−1=6 7−4=3 (3 – 4) e (1 – 4) são arcos do caminho. Nó 4 Arco Diferença Distância 3– 4 4−1=3 3 ⇐1a opção 1 – 4 4 − 0 = 4 4 ⇐ 2a opção Distância 8 3 ⇐ . Temos 2 caminhos com comprimento 10: (1 – 3) (3 – 4). (4 – 5). em cada opção. (5 – 6). (5 – 6) e (1 – 4). Temos que continuar pela outra opção. no mínimo. Uma observação importante no algorítimo é que ele para quando o nó destino for rotulado permanentemente mesmo que algum outro nó não tenha recebido rótulo permanente. Temos que prosseguir. Temos 2 opções o que implica em termos. (4 – 5) é um arco do caminho. o nosso quadro final fica como: Iteração 0 1 2 3 4 5 1 0∗ 0∗ 0∗ 0∗ 0∗ 0∗ 2 8 8 8 8 8∗ 8∗ 3 1 1∗ 1∗ 1∗ 1∗ 1∗ 4 4 4 4∗ 4∗ 4∗ 4∗ 5 ∞ ∞ 9 7∗ 7∗ 7∗ 6 ∞ ∞ 13 13 10 10∗ Nó Rotulado 1 3 4 5 2 6 Para encontrar o menor caminho vamos começar do nó final e voltar: Nó 6 Arco Diferença Distância 2 – 6 10 − 8 = 2 6 3 – 6 10 − 1 = 9 12 5 – 6 10 − 7 = 3 3 ⇐ (5 – 6) é um arco do caminho. Pode ser visto acima que a 2a opção já atingiu o nó origem.6 Etapas do algorítimo de Dijkstra 19 Aplicando o algorítimo visto anteriormente. 2 caminhos ótimos. até encontrar a nó origem.(4 – 5).1.

20 Redes 1. Exemplo: 1 4 2 3 4 1 2 3 Como podemos ver. querer encontrar a árvore de tamanho mínimo da rede a seguir: 12 2 7 1 14 3 7 8 5 10 6 7 5 5 7 4 10 9 7 10 9 8 6 6 9 6 4 11 8 Como a rede possui 10 nós. estando todos interligados por p − 1 arcos. dados por exemplo 4 nós. qualquer árvore extraída dela tem que ter 9 arcos. podemos construir várias árvores. O objetivo é encontrar àquela cujo comprimento total seja o menor possível.7 Árvore de Tamanho Mínimo Árvore É um grafo constituído de p nós. por exemplo. cada uma delas com arcos diferentes. Podemos. .

Selecione qualquer nó e identifique o nó mais perto dele. Ligamos o nó 5. Identificamos o nó não “ligado” mais perto dele.7. Faça a ligação entre os 2. a escolha é arbritária). Faça a ligação entre os 2 (no caso de empate. Aplicando o algorítimo e escolhendo o nó 1 para começar (poderia-se escolher qualquer outro nó da rede). * 7 12 2 5 7 4 10 9 7 10 9 8 6 * 6 5 9 5 6 6 7 7 4 11 8 1 14 3 8 10 Temos 2 nós ligados (1 e 2).7 Árvore de Tamanho Mínimo 21 1. No caso é o nó 2 com distância igual a 7. Ligamos os 2 nós que passam assim a ser considerados como “ligados”.1. É o nó 5 com distância igual a 5 para o nó 2. (Em caso de empate a escolha é arbritária). Repita a etapa 2 até todos os nós estarem ligados. Identifique o nó não ligado que esteja mais perto de um dos ligados. Usamos um * para marcar nó ligado. Identificamos o nó não ligado que esteja mais perto dos 2 ligados. 2.1 Etapas do algorítimo para encontrar a árvore do tamanho mínimo 1. 3. Temos então: .

Ligamos ele. o nó não ligado mais perto de um ligado é o nó 7 com distância de 4 para o nó 6. * 7 12 2 5 7 4 10 9 7 10 9 8 6 * 1 14 3 8 10 * 5 5 6 7 7 4 6 9 8 * 6 11 Neste instante. É o nó 6 com distância igual a 5 para o nó 5.22 Redes * 7 12 2 5 7 4 10 9 7 10 9 8 6 * 1 14 3 8 10 * 5 5 6 7 7 6 9 6 4 11 8 Identificamos agora o nó não ligado mais perto de um dos 3 ligados. .

Vamos escolher o nó 3 para ficar ligado.7 Árvore de Tamanho Mínimo 23 * 7 12 2 5 7 4 10 9 7 10 9 8 6 * 1 14 3 8 10 * 5 5 6 7 4 7 6 9 8 * 6 11 Temos agora um empate: os nós 3 e 9 estão a mesma distância (= 6) de nó ligado.1. A escolha é arbritária. temos: * . Ligando o nó 9. Temos então: * * 7 12 2 5 7 4 10 9 7 10 9 8 6 * 1 14 8 10 3 7 * 5 5 6 4 7 6 9 8 * 6 * 11 Agora o mais perto de um ligado é o nó 9 que está a distância de 6 do nó 5.

temos: * . Os nós 4 e 10 estão a mesma distância (= 7) de nós ligados.24 Redes * 7 12 2 5 7 4 10 9 * 7 10 * 1 14 8 10 3 7 * 5 5 6 4 7 6 9 8 9 8 * 6 6 * 11 Neste ponto temos novamente um empate. o nó 4 para ligar: * * 7 12 2 5 7 4 * 10 9 * 7 10 * 1 14 8 10 3 7 * 5 5 6 4 7 6 9 8 9 8 * 6 6 * 11 O não ligado mais perto de um ligado neste instante é o nó 10. arbritariamente. Escolhemos. Tornando ele ligado.

com seus 9 arcos.7 Árvore de Tamanho Mínimo 25 * 7 12 2 5 7 4 * 10 9 * 7 10 * 1 14 8 10 3 7 * 5 5 6 4 7 6 9 8 9 8 * * 6 6 * 11 Finalmente o último não ligado é o nó 8 que está mais perto do nó 10 com distância igual a 6. foi encontrada: * .1. Temos então: * * 7 12 2 5 7 4 * 10 9 * 7 10 * 1 14 8 10 3 7 * 5 5 6 4 7 6 9 8 9 8 * * 6 * 11 6 * A árvore de tamanho mínimo.

26 Redes 2 7 1 5 5 5 3 6 7 4 7 4 9 6 7 10 6 8 6 Seu comprimento é igual a: Z ∗ = 7 + 5 + 7 + 6 + 5 + 6 + 4 + 7 + 6 = 53 .

Ele é para o ambiente Windows e roda em qualquer versão a partir do Windows 95.mpsantos.com.8 Exercícios Para ajudar na resolução dos exercícios a seguir.br Na própria página podem ser encontradas as explicações de como “baixar” e instalar o aplicativo. a saída do programa permite a comparação com o que foi feito manualmente na aplicação dos algorítimos. 1) Qual o fluxo máximo que pode ser levado do nó 1 ao nó 7 na rede abaixo: 2 6 4 5 2 4 1 3 7 3 9 1 4 1 4 3 2 4 6 2) Qual o fluxo máximo que pode ser levado do nó 1 ao nó 9 na rede abaixo: 7 2 8 1 6 3 5 5 7 3 4 4 4 6 5 3 7 12 3 3 4 8 6 7 11 9 2 .1.8 Exercícios 27 1. inclusive. Principalmente nos exercícios de fluxo máximo e caminho mínimo. poderá ser usado o programa PO que pode ser encontrado na página www.

O problema é determinar se é possível atender a todas as necessidades das lojas com o disponível nos depósitos. b) Qual a resposta para o problema ? 4) Qual o menor caminho entre os nós 1 e 7 na rede abaixo: 2 4 1 1 5 6 3 2 4 7 5 5 1 4 6 7 8 6 7 . a) Mostre que o problema acima é equivalente a achar o fluxo máximo de uma fonte para um destino. 60 e 20 unidades respectivamente. 20. A tabela abaixo dá as capacidades das rotas entre os depósitos e as lojas: Lojas 2 3 10 0 0 10 10 40 (Depósitos) 1 2 3 1 30 0 20 4 40 50 5 Uma capacidade igual a zero indica que não existe rota entre o depósito e a loja. As necessidades das lojas são 20. 20 e 100 unidades respectivamente. As disponibilidades dos depósitos são 20.28 Redes 3) Um certo produto deve ser enviado de 3 depósitos para 4 lojas.

9 1.1 1.1 0. Encontre a resposta .7 1.5 1. Tem que ser construídas estradas de modo que os 8 bosques fiquem interligados.1.6 1.5 0.6 1.9 1.6 0.3 1.6 2.7 0.0 0.7 – 0.1 0.3 – 0.5 – O problema é determinar entre que pares de bosques deve-se construir estradas conectando todos os bosques e fazendo-se o mínimo de kms de estrada.1 0.8 2.5 1.7 1.2 1.5 2 1.0 0.9 0.3 1.9 – 2.3 2. entre cada par de bosques está mostrado na tabela abaixo: 1 2 3 4 5 6 7 8 1 – 1.1 3 2.9 0.9 5 0.5 1.2 2.8 2.0 7 2.6 1.8 1.1 0.0 2. em kms.9 1.6 2. A distância.9 1.8 Exercícios 29 5) Qual o menor caminho entre os nós 1 e 11 na rede abaixo: 2 4 1 3 4 6 4 5 3 3 2 2 5 6 5 2 6 1 7 4 2 8 7 2 5 2 3 10 4 9 8 11 5 6) Ache a árvore de tamanho mínimo para a rede do problema 4.5 1.7 2.6 – 0.8 2. 8) Uma empresa madeireira tem que ligar entre si 8 bosques em uma determinada região.8 6 1. 7) Ache a árvore de tamanho mínimo para a rede do problema 5.9 – 0.8 1.0 4 0.7 1.5 8 1.9 1.6 – 0.0 1.

O número em cima de cada trecho de encanamento dá a vazão máxima. de água que pode ser transportada entre o manancial e a estação de tratamento ? Que vazão de água passará em cada trecho da rede ? 2 10 1 11 7 3 4 5 5 7 9 8 1 3 4 6 4 8 6 2 7 10) Usando a técnica da rotulação determine o fluxo máximo que pode ser levado do nó 1 ao nó 11 na rede abaixo: 2 4 1 15 4 5 3 6 5 5 4 7 5 6 7 6 9 7 11 8 7 5 9 3 10 4 8 . em litros por segundo. que pode passar no trecho.30 Redes 9) A figura abaixo mostra a rede de encanamento existente entre um determinado manancial de captação de água e um depósito onde a água é armazenada para ser tratada. Qual a quantidade máxima. em litros por segundo.

encontre o menor caminho entre os nós 2 e 11 na rede a seguir: 2 5 7 4 3 5 9 6 3 1 2 1 12 7 1 8 2 2 8 5 10 9 1 2 1 1 6 13 1 2 1 7 3 11 3 1 4 8 12) Encontre o menor caminho entre os nós 2 e 12 na rede a seguir: 2 2000 700 150 450 200 500 5 300 300 600 150 800 100 200 8 600 400 11 270 500 8500 1 380 3 6 400 1500 9 2000 12 1000 4 700 7 6000 10 .8 Exercícios 31 11) Usando o algorítimo de Dijkstra.1.

. As linhas ligando os prédios são os canos que foram instalados para a passagem de toda a fiação elétrica. telefônica.32 Redes 13) A rede abaixo é a representação de um conjunto de 11 prédios residenciais construídos em uma área afastada da cidade. em metros. sendo também mostrado o comprimento destes encanamentos. etc.. Como deve ser instalada a fiação destes telefones de segurança de maneira que a quantidade de fio gasto seja a mínima possível ? Quantos metros de fio serão gastos ? B 78 120 A 210 40 60 C 70 65 F 135 K 70 90 E 170 100 165 I 105 80 D 90 30 H 30 50 J G 40 .. O esquema de segurança a ser colocado pelo condomínio implica na colocação de telefones interligando as portarias de todos os prédios.

8.8 Exercícios 33 1.1.1 Respostas dos exercícios 1) Z ∗ = 9 2) Z ∗ = 19 3) Z ∗ = 110 (1 – 1) ⇒ 5 (1 – 2) ⇒ 10 (1 – 4) ⇒ 5 (2 – 3) ⇒ 10 (2 – 4) ⇒ 10 (3 – 1) ⇒ 15 (3 – 2)⇒ 10 (3 – 3) ⇒ 40 (3 – 4) ⇒ 5 30 1 20 I 20 2 20 3 40 5 4) Z ∗ = 16 5) Z ∗ = 17 6) Z ∗ = 18 7) Z ∗ = 26 8) Z ∗ = 5. 2 9) Z ∗ = 18 litros/seg 10) Z ∗ = 12 11) Z ∗ = 7 12) Z ∗ = 1070 13) Z ∗ = 603 10 4 40 10 2 10 10 3 20 60 F 20 1 20 100 .

34 Redes .

mas tendo como enfoque principal o controle dos custos de um projeto. o maior de todos era controlar todo o projeto. principalmente porque havia grande pressão de se fazer o projeto no menor tempo possível. Grande parte desta redução foi atribuída ao uso do PERT. Este projeto envolvia a participação de 250 grandes empresas e 9. sem medo de errar. consistia na fabricação do 1o submarino com capacidade de lançar mísseis estando submerso. similar ao PERT.000 empresas sub-contratadas diferentes. b) Controlar a duração do Projeto era o objetivo principal.Capítulo 2 PERT/CPM No final da década de 50. como vimos era o maior problema a ser enfrentado. foi desenvolvido por uma equipe mista da Lockheed. O sucesso do PERT no projeto Polaris e do CPM na Dupont. provocaram a partir de 1960. que este tipo de ferramenta é usada pela maioria das empresas de médio e grande porte. Com o passar dos anos o nome CPM deixou de ser usado e o uso deste tipo de técnica passou a ser conhecida como Rede PERT. um dos maiores projetos realizados foi o chamado projeto POLARIS. dado o gigantesco número de atividades a serem realizadas. Este projeto. Além de milhares de peças comuns já usadas em outros projetos. O projeto Polaris teve sua duração reduzida dos 5 anos previstos para apenas 3. realizado pelos E. . Na mesma época (1957) a Dupont apresentou um sistema de controle de Projetos. Poderíamos traduzir por Técnica de Avaliação e Controle de Projetos. O nome dado a este sistema era CPM (Critical Path Method) ou Método do Caminho Crítico em português. É importante realçar os pontos básicos que serviram de base ao desenvolvimento do PERT: a) Projeto pioneiro com muitas atividades de duração real desconhecida. Embora os problemas técnicos fossem difíceis. Com a finalidade de controlar o projeto que. Booz Allen e Marinha dos E. uma “corrida” ao uso destas ferramentas que passaram a ser conhecidas pela sigla PERT/CPM.000 novos tipos de peças diferentes tinham que ser fabricadas. nada menos que 70.Unidos. Pode-se dizer.Unidos um sistema para controle de projetos que recebeu o nome de PERT (Program Evaluation and Review Technique).

um projeto é constituído de atividades e eventos. Ex: Assistir aula de P. Posteriormente são colocadas na Rede.. c) A duração prevista para cada atividade. as durações (custos) das atividades. fim da aula de P. Na terminologia usada no PERT. quais as atividades antecedentes e quais as subsequentes à cada atividade. precisamos conhecer também o custo de cada atividade. .1 Representação gráfica da Rede 1. ou seja.Operacional. São consumidos tempo e recursos. isto é. 2. OBS: No caso do CPM. etc. Método Americano (original) Evento Inicial Identificação da Atividade Duração da Atividade Evento Final 1 Assistir aula de PO 1 hora 2 As setas representam as atividades e os nós representam os eventos. Não são consumidos tempo ou recursos. etc.36 PERT/CPM 2. Ex: Início da aula de P..1 Construção da Rede Dá-se o nome de Rede PERT a representação gráfica de um projeto. início de fazer a laje de concreto.Operacional..Operacional. Para se construir a rede PERT de um determinado projeto precisamos conhecer: a) As atividades. permitindo com isto uma análise da duração (custos) do projeto.1. EVENTO: É um marco que caracteriza um determinado instante em um projeto. fazer uma laje de concreto. com as interdependências das atividades que compõem o projeto. ATIVIDADE: É a execução efetiva de uma operação. a lista de tarefas que compõem o projeto. Através desta representação gráfica é possível visualizar a sequência lógica do projeto. b) A ordem das atividades..

2.1 Construção da Rede 37 2. d Para deixar claro o conceito. com o aparecimento de programas de computador que fazem o desenho da rede. já que é o usado pelos pacotes de computador. está mostrado na tabela a seguir: Identificação a b c d e Atividade Previsão das unidades a serem vendidas Determinar o preço de venda do produto Levantar material necessário na produção Levantar custos de produção Fazer o Orçamento Duração em dias 14 3 7 4 10 Antecessoras Imediatas – a a c b. precisa fazer a previsão orçamentária para o próximo exercício fiscal. . Da mesma forma. a atividade e só pode começar após a conclusão das atividades b e d. Exemplo Vamos imaginar que a área financeira de uma pequena empresa. que produz e vende determinado produto. Método Francês 2 Assistir aula de PO 1 Intervalo As setas representam a ordem de ligação das atividades e os blocos as atividades. foi decidido usar o PERT para controle e acompanhamento do projeto. Como a confecção deste orçamento envolve áreas diferentes da empresa. por tradição. o método francês passou a dominar o cenário. OBS: O método francês é mais fácil mas durante muitos anos. ou seja ela só pode ser iniciada depois que a atividade a termine. o método americano foi usado embora seja muito mais complicado desenhar uma rede por ele do que pelo método francês. vemos que a atividade b tem como antecessora imediata a atividade a. Nos últimos anos no entanto. As atividades do projeto bem como a interdependência entre elas além da suas durações.

38 No método americano o desenho da rede fica como: PERT/CPM 4 b 3 e 10 d c 7 No método francês teríamos: 3 4 1 a 14 2 3 5 b Início a 14 e 10 Fim c 7 d 4 Devemos reparar que.1.2 Representação das Atividades Normalmente. . por exemplo. as atividades são representadas por: (nó inicial – nó final) Assim no nosso projeto. teríamos: a ⇒ (1 – 2) b ⇒ (2 – 4) c ⇒ (2 – 3) d ⇒ (3 – 4) e ⇒ (4 – 5) A vantagem deste tipo de representação é que não é necessário se olhar o desenho da rede para se conhecer a interdependência das atividades. 2. a interdependência das atividades fica clara e perfeitamente visível. Assim. no método americano. em ambos os casos. as atividades que tenha nó inicial igual a 2 só podem ser iniciadas depois que todas que tenham nó final igual a 2 tenham terminado.

c não depende de a’ e na opção 2. d Como a atividade b depende das atividades a e a’.1. Sua duração e custo são sempre iguais a zero. seja feito um estudo do preço dos concorrentes.1 Construção da Rede 39 2. temos 1 atividade aparecendo mais de 1 vez o que. O quadro de atividades passaria a ser: Identificação a a’ b c d e Atividade Previsão das unidades a serem vendidas Estudar preço dos concorrentes Determinar o preço de venda do produto Levantar material necessário na produção Levantar custos de produção Fazer o Orçamento Duração em dias 14 3 3 7 4 10 Antecessoras Imediatas – – a. causaria enorme confusão. Poderíamos pensar em 2 opções: Opção 1 a b Opção 2 a 1 a’ 2 c 1 a’ a 2 b 3 c Na opção 1. em redes grandes. que recebe o nome Atividade Fantasma. A solução é criar uma atividade. a’ a c b.2. temos dificuldade para construir a rede no método americano. 4 a’ 3 b 3 5 e 10 d 4 1 a 14 f 0 c 7 6 2 3 . não existente.3 Complicação na Construção da Rede Vamos supor que antes de se estabelecer o preço de venda do produto.

b e b. c . como podemos ver a seguir: a’ 3 b 3 Início e 10 Fim a 14 c 7 d 4 Temos agora a seguinte questão: Como reconhecer que o desenho da rede necessita de atividades fantasma ? Há necessidade de atividades fantasma quando o projeto contém grupos de 2 ou mais atividades que tem algumas.40 PERT/CPM A atividade b depende das atividades f e a’. mas não todas. A atividade fantasma é sempre representada por uma linha tracejada. b e c tem uma antecessora comum (a). antecessoras imediatas comuns. Mas como f depende de a. mas não todas. Uma das vantagens do método francês é o fato dele nunca precisar de atividades fantasma. Exercício: Construir a rede PERT para o projeto abaixo: Atividade Antecessoras Imediatas a – b – c – d a. a interdependência fica correta. No nosso exemplo.

b e a.2.1 Construção da Rede 41 Método americano 3 a f1 d 1 b c 2 f2 e 5 4 Método francês a d Início b e c Exercício: Construir a rede PERT para o projeto abaixo: Atividade Antecessoras Imediatas a – b – c – d a. c Fim . b. c f a.

Para isto é preciso achar o caminho mais longo da rede.42 Método americano PERT/CPM 3 b 1 c a f2 4 Método francês d f1 2 f5 e f4 f3 5 f 6 b d Início a f Fim c e 2.2 Determinação do Caminho Crítico Uma vez reduzido o projeto a uma rede de atividades e eventos e estimadas as durações das atividades. Este caminho é conhecido como Caminho Crítico e o seu comprimento determina a duração do projeto. Para achar o caminho crítico precisamos definir algumas variáveis que serão necessárias à sua determinação: . estamos em condições de determinar o tempo mínimo necessário para a execução do projeto.

F. (1 – 2) e 1 – 4).S.2. a data mais cedo de início é a própria data de início do projeto (0). Como teremos que fazer contas com datas. a atividade (1 – 4) tem data mais cedo de início igual a 0 e data mais cedo de fim igual a 3. Para isto é necessário achar o maior caminho da rede. o que é trabalhoso e enfadonho. Vamos usar o chamado quadro PERT para determinar este caminho. Vamos voltar ao nosso exemplo: b 3 4 a’ 3 5 e 10 d 4 1 a 14 f 0 c 7 6 2 3 Queremos encontrar a data mínima para o projeto estar pronto. Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim Data mais tarde Inicio Fim Folga Total Para as atividades sem antecessoras. Em inglês é usada a sigla E. Desta forma. Em inglês é usada a sigla E. Da mesma forma. que é a abreviação de Early Start. Data mais cedo de fim de uma atividade: É a data mais cedo em que uma atividade pode acabar.2 Determinação do Caminho Crítico 43 Data de Início do projeto: É a data em que o projeto inicia. daqui para a frente. como podemos ver no quadro: . ou seja 14. vamos trabalhar com datas absolutas. esta data será sempre igual a 0. que é a abreviação de Early Finish. Data mais cedo de início de uma atividade: É a data mais cedo possível em que uma atividade pode começar. A data mais cedo de fim da atividade (1 – 2) é igual a data do seu início (0) mais a sua duração.

44 Data mais cedo Inicio Fim 0 14 0 3 Data mais tarde Inicio Fim PERT/CPM Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Folga Total A atividade (2 – 4) só pode começar quando a atividade (1 – 2) acabar. Sua data mais cedo de fim será esta data mais a sua duração (4). De maneira análoga. o mais cedo que podemos começar (4 – 5) é 14. ou seja 14. A atividade (3 – 5) só pode começar após o fim da atividade (2 – 3). Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 Data mais tarde Inicio Fim Folga Total . Logo sua data mais cedo de início é 14. ou seja ela só pode começar quando estas 2 atividades tiverem acabado. Sua data mais cedo de início será a data mais cedo de fim de (2 – 3). Sua data mais cedo de início é 14 e a de fim é igual a 14 + 7 = 21. Esta é uma atividade fantasma com duração igual a 0. A sua data mais cedo de fim é a soma da data mais cedo de início mais a sua duração. ou seja 21. A data mais cedo que a atividade (1 – 4) pode acabar é 3 mas o mais cedo que a atividade (2 – 4) pode acabar é 14. ou seja 25. Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 Data mais tarde Inicio Fim Folga Total A atividade (4 – 5) tem como antecessoras imediatas as atividades (1 – 4) e (2 – 4). a atividade (2 – 3) também só pode começar quando terminar (1 – 2). Como sua duração é de 3 dias. a sua data mais cedo de fim é 14 + 3 = 17. Assim sendo.

estará como: Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 25 35 Data mais tarde Inicio Fim Folga Total 22 21 25 25 25 35 . Sua data mais cedo de fim será igual a 25 mais a sua duração. A data mais tarde de início será a diferença entre 25 e as respectivas durações. Como a data mais tarde que (5 – 6) pode começar é 25. Data mais tarde de fim de uma atividade: É a data mais tarde em que uma atividade pode acabar sem comprometer a duração do projeto.S. a atividade (5 – 6) só pode começar em 25. a duração do projeto será de 35 dias. O quadro. Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 25 35 Data mais tarde Inicio Fim Folga Total A menor duração para o projeto é a maior das datas mais cedo.2. esta será a data mais tarde que aquelas 2 atividades poderão acabar. 35. Em inglês é usada a sigla L. A sua data mais tarde de início é a diferença entre a data mais tarde de fim e a sua duração.F. Em inglês é usada a sigla L.2 Determinação do Caminho Crítico 45 Finalmente a atividade (5 – 6) só pode iniciar após o término das atividades (4 – 5) e (3 – 5). ou seja 35. ou seja 35 − 10 = 25. Como as datas mais cedo destas atividades são 17 e 25. Para preencher as demais colunas do quadro. A única atividade terminal neste projeto é (5 – 6). que é a abreviação de Latest Finish. como vemos a seguir. Logo. Começamos agora das atividades terminais. ou seja sem sucessoras para trás. que é a abreviação de Latest Start. respectivamente. vamos ver novas definições: Data mais tarde de início de uma atividade: É a data mais tarde em que uma atividade pode começar sem comprometer a duração do projeto. As atividades (3 – 5) e (4 – 5) tem como sucessora (5 – 6). neste instante. logo a data mais cedo de fim dela é a própria duração do projeto.

As atividades (2 – 4) e (1 – 4) tem como sucessora a atividade (4 – 5) que tem data mais tarde de início igual a 22.S. Temos então: Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 25 35 Data mais tarde Inicio Fim 0 14 19 22 22 22 14 21 22 25 21 25 25 35 Folga Total Para preencher a última coluna (Folga Total) vamos esclarecer que Folga Total é quanto uma atividade pode ser atrasada sem atrasar a data de fim do projeto. Logo esta será a data mais tarde de fim da atividade (2 – 3). Seu cálculo pode ser feito usando-se: Folga Total = Data mais tarde de fim – Data mais cedo de fim ou Data mais tarde de início – Data mais cedo de início. A mais tarde de início será 21− sua duração = 14. Fazendo-se as contas. que é a abreviação de Total Slack. temos o quadro completo: . Como antes a data mais tarde de início é obtida subtraindo a sua duração desta data. Assim sendo a data mais tarde que (1 – 2) pode acabar é 14 para que (2 – 3) possa ser iniciada. Para obter a data mais tarde basta subtrair de 22 as respectivas durações. A data mais tarde de início de (2 – 3) é 14 e a da (2 – 4) é igual a 22. Em inglês é usada a sigla T. Temos então: Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 25 35 Data mais tarde Inicio Fim 19 22 14 22 21 25 22 22 21 25 25 35 Folga Total Finalmente a atividade (1 – 2) tem como sucessoras as atividades (2 – 3) e (2 – 4). ou seja 14 − 14 = 0. Logo esta será a data mais tarde de fim das 2 atividades.46 PERT/CPM A Atividade (2 – 3) tem como sucessora a atividade (3 – 5) cuja data mais tarde de início é 21.

No nosso exemplo o caminho crítico é (1 – 2). Data mais cedo de fim da atividade a = Data mais cedo de início de a + d(a). Duração do projeto = Maior data mais cedo de fim de todas as atividades. Atividades iniciais ⇒ Atividades sem antecessoras. Qualquer atraso em uma destas atividades atrasará o projeto. (2 – 3). Data mais cedo de início das atividades iniciais = Data de início do projeto. Atividades terminais ⇒ Atividades sem sucessoras. Folga total da atividade a = Data mais tarde de início de a − Data mais cedo de início de a ou Data mais tarde de fim de a − Data mais cedo de fim de a. (3 – 5) e (5 – 6). Qualquer atraso em uma dessas atividades implicará em atraso na duração do projeto. Data mais cedo de início da atividade a = Maior das datas mais cedo de fim de todas as antecessoras imediatas de a. Data mais tarde de início da atividade a = Data mais tarde de fim de a − d(a). Podemos formalizar agora os cálculos que fizemos na construção do quadro: d(a) ⇒ duração da atividade a.2.2 Determinação do Caminho Crítico 47 Data mais tarde Inicio Fim 0 14 19 22 22 22 14 21 22 25 21 25 25 35 Folga Total 0 19 8 0 8 0 0 Atividade 1–2 1–4 2–4 2–3 4–5 3–5 5–6 Duração 14 3 0 7 3 4 10 Data mais cedo Inicio Fim 0 14 0 3 14 14 14 21 14 17 21 25 25 35 As atividades com folga total igual a zero são as chamadas atividades críticas e formam o chamado caminho crítico. . Data mais tarde de fim da atividade a = Menor das datas mais tarde de início de todas as sucessoras imediatas da atividade a. Data mais tarde de fim das atividades terminais = Duração do projeto.

Exemplo: Construir o quadro PERT para o projeto anterior considerando que o prazo contratual para o fim do projeto é a data 10. O prazo terá que ser renegociado. Temos então: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 Duração 3 4 3 2 4 3 2 6 Data mais cedo Inicio Fim 0 3 3 7 3 6 3 5 5 9 7 10 10 12 7 13 Data mais tarde Inicio Fim –3 0 0 4 5 8 2 4 4 8 5 8 8 10 4 10 Folga Total –3 –3 2 –1 –1 –2 –2 –3 Como temos o aparecimento de atividades com folga negativa. podemos garantir que o projeto não conseguirá ser feito no prazo estipulado (10 dias). .48 PERT/CPM Exemplo: Construir o quadro PERT para um projeto constituído das seguintes atividades: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 Duração (dias) 3 4 3 2 4 3 2 6 Calculando-se o quadro chegamos a: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 Duração 3 4 3 2 4 3 2 6 Data mais cedo Inicio Fim 0 3 3 7 3 6 3 5 5 9 7 10 10 12 7 13 Data mais tarde Inicio Fim 0 3 3 7 8 11 5 7 7 11 8 11 11 13 7 13 Folga Total 0 0 5 2 2 1 1 0 Caminho Crítico: (1 – 2). (2 – 3) e (3 – 6).

principalmente o PERT. .2. é reduzida. O que vimos até agora é o que se denomina “Determinação do Caminho Crítico”. Veremos a seguir o que vem a ser o PERT e o CPM em si mas enfatizando que sua aplicação. Na prática é o que se usa em mais de 90% dos projetos que são controlados por este tipo de ferramenta. como no exemplo acima.2 Determinação do Caminho Crítico 49 Exemplo: Construir o quadro PERT para um projeto com as seguintes atividades: Atividade 1–2 1–3 2–5 3–5 3–4 3–6 4–6 4–7 5–8 6–7 7–8 8–9 Duração (dias) 2 3 5 4 2 3 1 3 3 2 2 5 Calculando-se o quadro PERT chegamos a: Atividade 1–2 1–3 2–5 3–5 3–4 3–6 4–6 4–7 5–8 6–7 7–8 8–9 Duração 2 3 5 4 2 3 1 3 3 2 2 5 Data mais cedo Inicio Fim 0 2 0 3 2 7 3 7 3 5 3 6 5 6 5 8 7 10 6 8 8 10 10 15 Data mais tarde Inicio Fim 0 2 0 3 2 7 3 7 3 5 3 6 5 6 5 8 7 10 6 8 8 10 10 15 Folga Total 0 0 0 0 0 0 0 0 0 0 0 0 Em um projeto. podemos ter mais de 1 caminho crítico e podemos ter até todos.

a duração mais provável se a execução da atividade não tiver nenhum problema. é uma estimativa para o limite inferior da distribuição de probabilidade da duração da atividade. Em termos estatísticos.50 PERT/CPM 2. os analistas que desenvolveram o PERT. Estudos realizados indicaram que a Distribuição Beta era a que melhor se adaptava às durações reais da maioria das atividades de um grande número de projetos examinados. criaram um modelo probabilístico no qual a duração de cada atividade é uma variável aleatória de modo que. É uma estimativa para a moda (ponto mais alto) da distribuição de probabilidade. o PERT foi desenvolvido para controlar o projeto Polaris que era um projeto possuindo inúmeras atividades de duração desconhecida. Em resumo havia um alto nível de incerteza quanto a duração de muitas atividades. Dp ⇒ Duração Pessimista. são feitas 3 estimativas de duração: Do ⇒ Duração Otimista.3 O Modelo PERT Como vimos anteriormente.5 6 1 4 7 2 3 4 1 2 3 1 4 7 2 3 4 1 2 3 2 5 14 . a duração mais provável se a execução da atividade tiver problemas. Em termos estatísticos. simplesmente porque nunca tinham sido feitas. Dm ⇒ Duração Mais Provável. ou seja. a duração provável se a execução da atividade for realizada em condições normais. Podemos resumir então a premissa básica do modelo PERT: A duração de uma atividade é uma variável aleatória que segue a chamada Distribuição Beta que tem os seguintes parâmetros: Média = Duração esperada(De) = Variância = σ 2 = Dp − Do 6 2 Do + 4Dm + Dp 6 Para exemplificar. vamos usar o modelo PERT no projeto com as seguintes atividades: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 Duração (dias) Do Dm Dp 2 2. Para controlar este fato. para cada atividade. ou seja. é uma estimativa para o limite superior da distribuição probabilística. ou seja.

segue a Distribuição Normal. a variável aleatória “duração da atividade” é uma variável aleatória independente. Desta forma. (2 – 3) e (3 – 6) Duração esperada do projeto (Dep) = 13 dias 2 σp = variância do projeto = Σσ 2 das atividades do caminho crítico = 0. Pelo teorema do Limite Central. para cada atividade. ou seja.111 1 0. a duração esperada e a variância: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 Duração (dias) Do Dm Dp 2 2. temos que a duração esperada do projeto (Dep) é a soma das durações das atividades do caminho crítico.444 1 0. 444 Considerando que a duração de uma atividade é independente da duração de cada uma das outras atividades do projeto. 444 + 1 + 4 = 5. ou seja é a soma de variáveis aleatórias independentes.2. uma variável aleatória que é a soma de variáveis aleatórias.111 0.111 0.111 4 Com a Duração Esperada (De) podemos calcular o quadro PERT: Atividade 1–2 2–3 2–5 2–4 4–5 3–5 5–6 3–6 De 3 4 3 2 4 3 2 6 Data mais cedo Inicio Fim 0 3 3 7 3 6 3 5 5 9 7 10 10 12 7 13 Data mais tarde Inicio Fim 0 3 3 7 8 11 5 7 7 11 8 11 11 13 7 13 Folga Total 0 0 5 2 2 1 1 0 Caminho Crítico ⇒ (1 – 2).5 6 1 4 7 2 3 4 1 2 3 1 4 7 2 3 4 1 2 3 2 5 14 De 3 4 3 2 4 3 2 6 σ2 0.3 O Modelo PERT 51 Podemos calcular. a duração do projeto é uma variável aleatória que segue a Distribuição Normal com: Média = µ = Dep 2 Desvio Padrão = σp = σp . no modelo PERT.

95 ⇒ 1. X − 13 1. 43 σ 2. 333 X = 16. 64 = 2. 240) P (Duração > 14) = 1 − 0. com: √ µ = 13 e σ = 5. 333 P (Duração > 14) = 1 − P (Duração ≤ 14) P (Duração ≤ 14) = P (Z ≤ 0. temos: X−µ 14 − 13 Z= = = 0. 240) procuramos o valor de Z que corresponde a 0. 3333 Podemos então responder ao seguinte tipo de perguntas: a) Qual a probabilidade do projeto demorar mais de 14 dias ? Trabalhando com a fórmula da normal padronizada. normalmente distribuída. 6664 = 0. 36% b) Qual deve ser a duração do projeto para que o risco de não cumprimento do prazo seja de 5% ? Queremos X de modo que P (Duração > X) = 5% = 0. 444 = 2.52 PERT/CPM No nosso exemplo. 43) = 0. a duração do projeto é uma variável aleatória. 05 P (Duração ≤ X) = 1 − 0. 95 Na tabela normal (pág. 3336 = 33. Exemplo: Um pequeno projeto é constituído de 7 atividades cujas estimativas de duração estão dadas abaixo: Atividade 1–2 1–3 1–4 2–5 3–5 4–6 5–6 Duração (dias) Do Dm Dp 1 1 7 1 4 7 2 2 8 1 1 1 2 5 14 2 5 8 3 6 15 . 05 = 0. 97 dias. 64. 6664 (tabela normal pág.

1586 = 15. 29 = 3 X = 20.3 O Modelo PERT 53 Calculando a duração esperada e a variância: Atividade 1–2 1–3 1–4 2–5 3–5 4–6 5–6 Duração (semanas) Do Dm Dp 1 1 7 1 4 7 2 2 8 1 1 1 2 5 14 2 5 8 3 6 15 De 2 4 3 1 6 5 7 σ2 1 1 1 0 4 1 4 Calculando o quadro PERT. 87 semanas . 86% b) Se a data contratada para o fim do projeto é de 18 semanas. temos: Atividade 1–2 1–3 1–4 2–5 3–5 4–6 5–6 De 2 4 3 1 6 5 7 Data mais cedo Inicio Fim 0 2 0 4 0 3 2 3 4 10 3 8 10 17 Data mais tarde Inicio Fim 7 9 0 4 9 12 9 10 4 10 12 17 10 17 Folga Total 7 0 9 7 0 9 0 Caminho Crítico: (1 – 3). 6293 P (Duração > 18) = 1 − 0. (3 – 5) e (5 – 6) Dep = 17 semanas √ 2 σp = 1 + 4 + 4 = 9 σ= 9=3 a) Qual a probabilidade de que o projeto fique pronto em 14 ou menos semanas ? 14 − 17 = −1 Z= 3 P (Duração ≤ 14) = P (Z ≤ −1) = 0. 90 ⇒ 1. 90 ⇒ Z para 0. 3707 = 37. qual a probabilidade do projeto ultrapassar este prazo ? P (Duração > 18) = 1 − P (Duração ≤ 18) 18 − 17 = 0. 6293 = 0. 29 X − 17 1.2. 07% c) Qual é data para o fim do projeto que tem 90% de probabilidade de ser cumprida ? P (Duração ≤ X) = 0. 333) = 0. 333 Z= 3 P (Duração ≤ 18) = P (Z ≤ 0.

2. as atividades de um outro caminho começarem. é difícil de ser justificado. 3) O outro postulado do modelo PERT de que as durações das variáveis seguem uma distribuição beta tem sido contestado. No caso da variância do projeto não é tão simples pois. O mais comum em um projeto é a execução de uma atividade acabar influenciando a execução de outras. a duração esperada do projeto (Dep) é única. 2) O postulado básico no qual o modelo PERT está baseado. a não ser por coincidência. por algum problema. tarefa das mais simples. .54 PERT/CPM No caso em que se tem mais de 1 caminho crítico. ou seja de que as atividades de um projeto são independentes entre si. uma tarefa muito mais difícil. com precisão. durações para atividades de um projeto não é. os resultados teriam que ser todos recalculados. um caminho crítico pode deixar de ser crítico se. foram calculados em cima do caminho crítico “original”. pois os comprimentos de todos os caminhos críticos são iguais. a serem executadas na duração pessimista. 4) Pela própria natureza do modelo PERT. Como os resultados. Qual deve ser usada para a variância do projeto ? A maior delas. Estimar 3 durações para cada atividade é. cada caminho crítico terá um somatório de variâncias diferente. por exemplo. obviamente. com inúmeros exemplos já publicados. por exemplo a duração esperada do projeto. via de regra.3.1 Problemas do modelo PERT O modelo PERT é muito pouco utilizado na prática e este fato deve-se aos seguintes fatores: 1) Estimar.

Seja. não adianta colocar mais recursos na execução de uma atividade que não se conseguirá diminuir sua duração. Está baseado na idéia de que se colocarmos mais recursos na execução de uma atividade.2. conseguiremos fazê-la mais rapidamente. por exemplo.4 O Modelo CPM 55 2. A Duração Acelerada é a menor duração em que é possível se fazer a atividade. 2. embora aumentando o seu custo. É usado em projetos onde a duração das atividades é conhecida com bastante precisão.000 k Duração 2 Coeficiente Angular = tan k = 4. para cada atividade. No CPM.000.000. são feitas 2 estimativas de duração que estão associadas a 2 custos: • Duração Normal (Dn). a partir de certo ponto. o que aumenta (diminue) no custo da execução da atividade se ela é acelerada (desacelerada) de 1 unidade de tempo (1 dia no nosso exemplo).4 O Modelo CPM Como visto anteriormente. A representação gráfica desta atividade seria: Custo $ 6.4. • Duração Acelerada (Da). ou seja. por exemplo. que tem associado o chamado Custo Normal (Cn). uma atividade cuja duração normal é de 6 dias com custo normal de $4. Devemos notar que. Vamos supor que sua duração acelerada seja de 2 dias e seu custo acelerado seja de $6. o enfoque principal do CPM é controlar os custos do projeto. que tem associado o chamado Custo Acelerado (Ca). como projetos de construção civil. Ca − Cn 6000 − 4000 = = 500 Dn − Da 6−2 .000 6 (Dias) A tangente do ângulo k é chamada de Custo Incremental.1 Relação entre Durações/Custos Normal e Acelerado O postulado básico do modelo CPM é que a relação entre duração/custo normal e duração/custo acelerado é linear.

000 4.000 5.000 6.500 1.000 2.2 Compressão da Rede Vamos ver o uso do modelo CPM aplicado a um projeto cujos dados estão a seguir: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Duração (semanas) Normal Acelerada 6 3 6 2 7 5 5 2 5 3 9 6 6 4 4 1 2 1 Custo Incremental (Ca − Cn)/(Dn − Da) 333 500 1.000 6.000 5.000 5.000 Podemos calcular para cada atividade o seu Custo Incremental: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 .000 667 1.000 3.000 6.000 2.667 1.000 3.500 1.000 6.000 Custo ($) Normal Acelerado 4.000 2.000 6.56 PERT/CPM 2.4.000 4.000 10.000 4.000 4.

2) = 2 semanas. Folga Mínima) = Min(3. Logo o máximo que podemos acelerar (1 – 2) é: Min(∆t. Folga Mínima = É a menor folga diferente de zero que aparece no quadro PERT. Vamos examinar as opções que temos para reduzir o caminho crítico: Atividade 1– 2 2– 4 4– 5 5– 7 Custo Incremental 333 1.4 O Modelo CPM 57 Usando a duração/custo normal. construímos o quadro PERT: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 6 6 7 5 5 9 6 4 2 Data mais cedo Inicio Fim 0 6 0 6 6 13 6 11 6 11 13 22 13 19 22 26 19 21 Data mais tarde Inicio Fim 0 6 2 8 6 13 8 13 17 22 13 22 18 24 22 26 24 26 Folga Total 0 2 0 2 11 0 5 0 5 Duração = 26 semanas Caminho Crítico: (1 – 2) (2 – 4) (4 – 5) (5 – 7) Custo = Σ do custo normal de todas as atividades do projeto = $31. Surge então a pergunta: Quanto podemos acelerar (1 – 2) ? O máximo que pode ser acelerado é o mínimo entre o ∆t da atividade e a Folga Mínima.000 ∆t 3 Folga Mínima = 2 Como podemos observar. a atividade (1 – 2) é a mais barata para ser acelerada.000 O objetivo é diminuir a duração do projeto minimizando o aumento no custo.667 1. . ou seja diminuir a duração de uma das atividades que o compõe.000 1. Como a duração do projeto é o comprimento do caminho crítico. Para isto será usada uma técnica conhecida como Compressão da Rede. No processo precisaremos das seguintes definições: ∆t = número de unidades de tempo que a atividade ainda pode ser reduzida. para se reduzir a sua duração temos que diminuir o caminho crítico.2.

comprimento igual a 24 .500 1.000 + 2 × 333 = $31. .667 1. sem garantir que estaríamos diminuindo sua duração. Para diminuir a duração do projeto temos que reduzir o comprimento dos 2 caminhos críticos.000 + 667 = 1. No exemplo.667 1. As opções são aquelas que reduzem simultaneamente uma atividade do 1o caminho e uma do 2o.58 PERT/CPM Porque não podemos acelerar mais que a folga mínima? Porque estaríamos correndo o risco de estar acelerando uma atividade e aumentando o custo do projeto. Logo se (1 – 2) fosse reduzida de 3 semanas (ficando o caminho crítico original com comprimento igual a 23 semanas). o caminho y passaria a ser o crítico pois seu comprimento seria igual a 24 semanas. ou seja.000 + 500 = 1. Atividade (1 – 2) (1 – 3) (1 – 2) (3 – 4) (2 – 4) (1 – 3) (2 – 4) (3 – 4) (4 – 5) (5 – 7) Custo Incremental 333 + 500 = 833 333 + 667 = 1. Calculando o quadro Pert com a nova duração de (1 – 2) temos: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 4 6 7 5 5 9 6 4 2 Data mais cedo Inicio Fim 0 4 0 6 4 11 6 11 4 9 11 20 11 17 20 24 17 19 Data mais tarde Inicio Fim 0 4 0 6 4 11 6 11 15 20 11 20 16 22 20 24 22 24 Folga Total 0 0 0 0 11 0 5 0 5 Duração: 24 semanas Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7) (1 – 3) (3 – 4) (4 – 5) (5 – 7) Custo = 31. se acelerássemos a atividade (1 – 2) de 3 semanas poderíamos estar acelerando 1 semana (a 3a) sem garantir que a redução seria maior que 2 semanas. Como a Folga Mínima é igual a 2 é provável que exista um caminho y na rede com folga de 2.000 ∆t 1e4 Folga Mínima = 5 A opção mais barata é reduzir (1 – 2) e (1 – 3).000 1.666 Agora temos 2 caminhos críticos.

666 + 1 × 833 = $32.4. temos: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 3 5 7 5 5 9 6 4 2 Data mais cedo Inicio Fim 0 3 0 5 3 10 5 10 3 8 10 19 10 16 19 23 16 18 Data mais tarde Inicio Fim 0 3 0 5 3 10 5 10 14 19 10 19 15 21 19 23 21 23 Folga Total 0 0 0 0 11 0 5 0 5 Duração: 23 semanas Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7) (1 – 3) (3 – 4) (4 – 5) (5 – 7) Custo = 31.500 1.5) = 1 semana. ∆t de (1–3). Construindo novo quadro.667 1. as opções são diferentes porque a atividade (1 – 2) já se encontra na sua duração acelerada.2.667 1. Assim as opções passam a ser: Atividade (2 – 4) (1 – 3) (2 – 4) (3 – 4) (4 – 5) (5 – 7) Custo Incremental 1.000 ∆t 3 Folga Mínima = 5 . não pode ser mais comprimida.000 + 500 = 1.000 + 667 = 1. Folga Mínima]= Min(1. ou seja.4 O Modelo CPM 59 Quanto podemos reduzir ? Min [∆t de (1–2).500 Apesar dos caminhos críticos serem os mesmos do quadro anterior.

000 + 667 = 1.000 + 500 = 1.667 1.500 + 3 × 1. O novo quadro passa a ser: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 3 3 5 5 5 9 6 1 2 Data mais cedo Inicio Fim 0 3 0 3 3 8 3 8 3 8 8 17 8 14 17 18 14 16 Data mais tarde Inicio Fim 0 3 0 3 3 8 3 8 12 17 8 17 10 16 17 18 16 18 Folga Total 0 0 0 0 9 0 2 0 2 .3.2) = 2 semanas. 5) = 3 semanas.500 1. O novo quadro passa a ser: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 3 5 7 5 5 9 6 1 2 Data mais cedo Inicio Fim 0 3 0 5 3 10 5 10 3 8 10 19 10 16 19 20 16 18 Data mais tarde Inicio Fim 0 3 0 5 3 10 5 10 14 19 10 19 12 18 19 20 18 20 Folga Total 0 0 0 0 11 0 2 0 2 Duração: 20 semanas Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7) (1 – 3) (3 – 4) (4 – 5) (5 – 7) Custo = 32.500 A atividade (5 – 7) também chegou na sua duração acelerada de maneira que as opções para reduzir a duração do projeto passam a ser: Atividade (2 – 4) (1 – 3) (2 – 4) (3 – 4) (4 – 5) Custo Incremental 1.000 = $35.60 PERT/CPM A opção mais barata é reduzir a atividade (5 – 7) de Min(3.667 ∆t 2e3 Folga Mínima = 2 A melhor opção é reduzir (2 – 4) e (1 – 3) de Min(2.

2. temos uma única opção para reduzir os 2 caminhos: Atividade (4 – 5) Custo Incremental 1. (2 – 4) e (5 – 7) já estão na duração acelerada nossas opções são: Atividade (4 – 5) (4 – 6) (4 – 5) (6 – 7) Custo Incremental 1. (2 – 4) e (5 – 7) já estão na duração acelerada.500 + 2 × 1. O novo quadro passa a ser: .167 1.667 + 2.4 O Modelo CPM 61 Duração: 18 semanas Caminhos Críticos: (1 – 2) (2 – 4) (4 – 5) (5 – 7) (1 – 3) (3 – 4) (4 – 5) (5 – 7) Custo = 35.500 + 2 × 1. Como as atividades (1 – 2).667 + 1.500 Como as atividades (1 – 2).667 ∆t 1e2 Folga Mínima = 7 A melhor opção é reduzir (4 – 5) e (4 – 6) de Min (1.833 Data mais tarde Inicio Fim 0 3 0 3 3 8 3 8 10 15 8 15 8 14 15 16 14 16 7) 7) 7) 7) Folga Total 0 0 0 0 7 0 0 0 0 Duração: 16 semanas Caminhos Críticos: (1 – 2) (2 – (1 – 2) (2 – (1 – 3) (3 – (1 – 3) (3 – Custo = 38.667 = Passamos a ter agora 4 caminhos críticos.2) = 2 semanas. obtendo: Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 3 3 5 5 5 7 6 1 2 Data mais cedo Inicio Fim 0 3 0 3 3 8 3 8 3 8 8 15 8 14 15 16 14 16 4) (4 – 5) (5 – 4) (4 – 6) (6 – 4) (4 – 5) (5 – 4) (4 – 6) (6 – $41.500 = $38.667 ∆t 3 Folga Mínima = 2 Reduzimos então (4 – 5) de Min(3. Para se reduzir a duração do projeto temos que reduzir 1 atividade de cada um dos caminhos.000 = 3.500 = 3.7) = 1 semana.2.

000 .167 = Neste ponto não podemos reduzir mais a duração do projeto pois o 1o caminho já tem todas as suas atividades na duração acelerada.000 32.000 35. Não adiantaria reduzir qualquer outro caminho pois este continuaria a ser o crítico. além destes custos.000 38.000 por semana que o projeto passar de 20 semanas.500 40.000 45.000 31. ou seja.000 87. temos também os chamados custos indiretos que afetam todas as atividades do projeto.000 52.833 + 1 × 3.62 Data mais cedo Inicio Fim 0 3 0 3 3 8 3 8 3 8 8 14 8 13 14 15 13 15 4) (4 – 5) (5 – 4) (4 – 6) (6 – 4) (4 – 5) (5 – 4) (4 – 6) (6 – $45.000 Multa 12.000 8.666 48.000 – – – – Custo total 95. Vamos supor que no exemplo visto até aqui.666 84.500 75. Em um projeto. Qual a duração ótima para o projeto ? Para responder a esta pergunta temos que construir o seguinte quadro: Duração (semanas) 26 24 23 20 18 16 15 Custos Diretos Indiretos 31.000 por semana.000 Data mais tarde Inicio Fim 0 3 0 3 3 8 3 8 9 14 8 14 8 13 14 15 13 15 7) 7) 7) 7) PERT/CPM Atividade 1–2 1–3 2–4 3–4 2–5 4–5 4–6 5–7 6–7 Dur 3 3 5 5 5 6 5 1 2 Folga Total 0 0 0 0 6 0 0 0 0 Duração: 15 semanas Caminhos Críticos: (1 – 2) (2 – (1 – 2) (2 – (1 – 3) (3 – (1 – 3) (3 – Custo = 41.000 30. existindo ainda uma multa contratual de $2.4.000 41. os custos indiretos sejam de $2.500 74.500 36.833 32.500 46.500 73.3 Duração ótima para o projeto Os custos que vimos até agora são os chamados custos diretos.000 6. é impossível reduzir seu comprimento. ou seja. 2. os custos envolvidos diretamente na execução das atividades.833 75.

de menor custo e volta a crescer.2.Linear além da equipe ter que contar com especialistas nesta técnica. Em projetos muito grandes. No exemplo. Assim. pode ser equacionada e resolvida através da formulação de modelos de Programação Linear. Para se obter o custo de 22 semanas basta reduzir (5 – 7) de apenas 1 semana. passa pelo ponto mínimo. ou seja. por exemplo. Embora o quadro só mostre as durações encontradas no processo de compressão da rede. a passagem de 23 semanas para 20 semanas aconteceu porque se reduziu a duração da atividade (5 – 7) de 3 semanas. reduz-se (5 – 7) de 2 semanas. o uso da Programação Linear pode acelerar a obtenção das respostas desejadas embora com um provável aumento de custo pois será necessário o uso de um pacote para resolução de modelos de P. temos facilmente disponível todas as demais durações.4 O Modelo CPM 63 A curva de Custo Total tem. antes de afirmar que 16 semanas é a duração ótima. $ 73. . Para se ter o valor de 21 semanas. teríamos que ver o custo de fazer o projeto em 17 semanas. 2. temos que calcular todas as durações pois uma duração não explícita pode ser a ótima.833 16 t (semanas) Podemos ver então que a duração ótima para o projeto é de 16 semanas. No ponto onde a curva faz a sua inflexão. a aparência mostrada abaixo. que acabamos de ver. vai diminuindo. ou seja ele começa com um determinado valor.4.4 Resolvendo por Programação Linear A compressão da rede. genericamente.

500 6.400 Calculando o Custo Incremental para cada uma das atividades.900 A menor duração possível para se fazer o projeto é 28 semanas com o custo ótimo igual a $11.700 $11.600 3.64 PERT/CPM Para apresentarmos como usar a P.300 $8.000 800 4.900. para um determinado projeto.850 $10.000 400 500 400 900 800 2.Linear.400 $7.000 4.000 1. encontramos: Atividade 1 – 2 (a) 1 – 3 (b) 2 – 5 (c) 2 – 4 (d) 3 – 4 (e) 4 – 5 (f) 5 – 6 (g) Custo Incremental 225 750 350 1600 50 250 425 Aplicando a compressão na rede (deixado como exercício) as durações e custos. Para facilitar a compreensão do modelo de P. os dados abaixo: Atividade 1 – 2 (a) 1 – 3 (b) 2 – 5 (c) 2 – 4 (d) 3 – 4 (e) 4 – 5 (f) 5 – 6 (g) Duração (semanas) Normal Acelerada 14 6 12 8 18 14 6 4 4 2 8 6 12 8 Custo ($) Normal Acelerado 1.Linear.400 3. vamos ver o desenho da rede: .200 $9.000 $9. encontrados nos passos do algorítimo são: Duração 44 (Normal) 40 36 34 32 30 28 Custo $6. vamos supor que temos.200 1.

temos: T4 ≥ T2 + (6 − yd) ou T4 − T2 + yd ≥ 6 Na 2a (atividade e) temos: T4 ≥ T3 + (4 − ye) ou .2. que só depende da atividade b. A variável T6 dá a duração do projeto. Temos então: ya ≤ 8 yb ≤ 4 yc ≤ 4 yd ≤ 2 ye ≤ 2 yf ≤ 2 yg ≤ 4 Podemos agora construir as restrições que limitam os valores (datas) que os eventos (Ti) podem assumir. ou seja quanto ela vai ser acelerada. Vamos definir um outro conjunto de variáveis. Temos então: T2 ≥ T1 + (14 − ya) Como consideramos normalmente T1 (início do projeto) como igual a zero.4 O Modelo CPM 65 T2 2 a T1 1 b 3 T3 d c T5 5 f g 6 T6 e 4 T4 As variáveis Ti são as datas em que ocorrem os eventos 1. menos ya. . relativa a atividade d. Na 1a.. 2. que só depende da atividade a. menos yb. que significa o quanto a atividade i vai ser acelerada. Um conjunto de restrições é aquele que mostra a aceleração máxima que cada atividade pode sofrer. Assim. 6. ou genericamente yi ≤ ∆t.. que é a sua duração normal. a restrição fica como: T2 + ya ≥ 14 T3 . Yd é quanto a atividade d ou (2 – 4) vai ser acelerada. Assim temos 2 restrições. por exemplo. que é a sua duração normal.. tem que ser maior ou igual T1 mais a diferença entre 12. T2 . tem que ser maior ou igual T1 mais a diferença entre 14. Temos então: T3 ≥ T1 + (12 − yb) Como T1 é zero. yi. temos: T3 + yb ≥ 12 Já o evento T4 depende das atividades d e e. ou seja quanto ela vai ser acelerada.

400) mais os $2. T4 − T3 + ye ≥ 4 Restrições semelhantes podemos construir para o evento 5: T5 ≥ T2 + (18 − yc) ou T5 − T2 + yc ≥ 18 e. quando usamos a técnica de compressão da rede. ∗ ye = 2 indicando que a atividade e ou (3 – 4) ficou na duração 4 − 2 = 2 semanas. do software PO. Podemos escrever o modelo completo: (Min) Z = 225ya + 750yb + 350yc + 1600yd + 50ye + 250yf + 425yg sujeito a T2 + ya ≥ 14 T3 + yb ≥ 12 T4 − T2 + yd ≥ 6 T4 − T3 + ye ≥ 4 T5 − T2 + yc ≥ 18 T5 − T4 + yf ≥ 8 T6 − T5 + yg ≥ 12 T6 = 34 ya ≤ 8 yb ≤ 4 yc ≤ 4 yd ≤ 2 ye ≤ 2 yf ≤ 2 yg ≤ 4 Ti. T5 ≥ T4 + (8 − yf ) ou T5 − T4 + yf ≥ 8 Finalmente temos a restrição para o evento 6: T6 ≥ T5 + (12 − yg ) ou T6 − T5 + yg ≥ 12 Vamos supor que queremos encontrar o melhor custo para fazer o projeto em 34 semanas.000. para resolver o modelo. ∗ yc = 2 ou seja a atividade c ou (2 – 5) ficou na duração 18 − 2 = 16 semanas.600. a seguinte solução ótima é encontrada: ∗ ∗ ∗ ∗ ∗ T2 = 6 T3 = 12 T4 = 14 T5 = 22 T6 = 34 ∗ ya = 8 o que indica que a atividade a ou (1 – 2) foi acelerada de 8 semanas ficando com a duração igual a 14 − 8 = 6 semanas. A função objetivo é uma função de minimização pois queremos minimizar o valor correspondente as acelerações que as atividades vão sofrer. logo o menor custo para se fazer o projeto em 34 semanas é o somatório do custo de se fazer todas as atividades na duração normal ($6. Logo a função objetivo será equivalente a yi × (Custo Incremental)i. ou seja $9. Devemos colocar a restrição T6 = 34. yi ≥ 0 .600.Linear.66 PERT/CPM Usando-se o módulo de P. O valor ótimo da função objetivo foi igual a $2. para 34 semanas. Este resultado é exatamente igual ao encontrado. Os valores ótimos dos demais yi ficaram igual a zero indicando que as respectivas atividades ficaram na duração normal.

Podemos modificar o nosso modelo colocando no lugar da restrição T6 = 34 a restrição yi × (Custo Incremental)i = 3450 ou seja. encontramos T6 = 32 semanas.850 para fazer o projeto. se determinar as durações das atividades para fazer o projeto em 32 semanas. Este valor é $3. Nosso modelo fica então como: (Min) Z = T6 sujeito a 225ya + 750yb + 350yc + 1600yd + 50ye + 250yf + 425yg = 3450 T2 + ya ≥ 14 T3 + yb ≥ 12 T4 − T2 + yd ≥ 6 T4 − T3 + ye ≥ 4 T5 − T2 + yc ≥ 18 T5 − T4 + yf ≥ 8 T6 − T5 + yg ≥ 12 ya ≤ 8 yb ≤ 4 yc ≤ 4 yd ≤ 2 ye ≤ 2 yf ≤ 2 yg ≤ 4 Ti. o que permite.400 necessários se usamos as durações normais. ainda no nosso exemplo. Vamos supor. ou seja o mesmo valor encontrado quando resolvemos usando a técnica de compressão da rede. 225ya + 750yb + 350yc + 1600yd + 50ye + 250yf + 425yg = 3450 O objetivo passa a ser minimizar T6 . de forma análoga a mostrada acima.4 O Modelo CPM 67 ∗ Mais uma vez usando-se o software PO para resolver o modelo.450 acima dos $6. Um outro tipo de situação encontrada em projetos é quando se tem uma certa quantia e se deseja conhecer qual o tempo mínimo para se fazer o projeto usando aquela quantia. yi ≥ 0 .2. A solução também fornece os valores ótimos dos yi. que se tem disponível $9.

000 3.000 9.000 4. poderá ser usado o programa PO que pode ser encontrado na página www. Ele é para o ambiente Windows e roda em qualquer versão a partir do Windows 95.000 .000 20. a saída do programa permite a comparação com o que foi feito manualmente na aplicação dos algorítimos.000 1.000 1.000 5.68 PERT/CPM 2.5 Exercícios Para ajudar na resolução dos exercícios a seguir.000 18. inclusive. tanto de PERT como de CPM. 1) Os dados abaixo referem-se a atividades de um determinado projeto: Atividade 1– 2 1– 3 2– 4 3– 5 1– 6 1– 7 6– 7 4– 7 5– 7 7– 8 8– 9 9 – 10 8 – 10 10 – 11 11 – 12 Duração (semanas) Otimista Mais provável Pessimista 10 15 20 3 5 10 20 25 40 50 60 80 2 3 10 6 10 20 0 0 0 20 30 35 25 30 35 30 40 50 4 8 10 0 0 0 2 3 5 26 35 45 3 5 10 Qual a probabilidade de que o projeto fique pronto em 180 ou menos semanas ? 2) Para um determinado projeto os seguintes dados estão disponíveis: Atividade 1– 2 1– 5 1– 3 2– 5 3– 4 4– 5 5– 6 6– 7 Duração (semanas) Normal Acelerada 3 1 2 1 5 3 3 1 6 3 2 1 2 1 8 6 Custo ($) Normal Acelerado 3.br Na própria página podem ser encontradas as explicações de como “baixar” e instalar o aplicativo.000 2.000 10.000 50.com.000 10.000 15.000 9.mpsantos.000 1. Nos exercícios.

) e pela equação 120. Qual a duração ótima para o Projeto ? 4) Para um determinado projeto temos os seguintes dados: Atividade 1– 2 1– 4 1– 6 1– 7 2– 3 3– 4 4– 5 5– 6 6– 7 7– 8 6– 8 8– 9 5– 9 9 – 10 7 – 11 Duração (semanas) Otimista Mais provável Pessimista 0 1 8 5 7 27 0 3 6 1 1 1 3 6 15 1 3 5 0 6 6 1 2 15 2 4 6 0 0 0 2 3 4 3 5 13 3 3 3 1 8 9 2 3 10 Qual a probabilidade do projeto ficar pronto em 35 ou menos dias ? .2..t se o projeto dura menos de 13 dias (12. onde t é a duração em dias.11..000.14.).t se o projeto dura mais de 12 dias (13.. Qual a duração ótima para o projeto ? 3) Para um determinado projeto temos os seguintes dados: Atividade 1– 2 1– 4 1– 3 2– 4 3– 4 2– 5 4– 5 3– 5 Duração (semanas) Normal Acelerada 4 3 7 5 3 2 5 3 2 2 10 8 7 5 2 1 Custo ($) Normal Acelerado 100 200 280 520 50 100 200 360 160 160 230 350 200 480 100 200 Os custos indiretos são dados pela equação 134.5 Exercícios 69 Os custos indiretos são de $5. Existe uma cláusula contratual que estipula que por cada semana que o projeto passar de 17 semanas. será paga uma multa de $2....000 por semana.

70 5) Para um determinado projeto temos os seguintes dados: Atividade 1– 2 1– 3 1– 4 2– 5 3– 4 3– 5 4– 5 5– 6 Duração (semanas) Otimista Mais provável Pessimista 4 8 12 8 10 12 8 14 24 5 8 10 2 5 8 2 4 8 6 10 14 1 3 6 PERT/CPM a) Qual a probabilidade de que o projeto dure mais de 26 semanas para ficar pronto ? b) Ao longo do caminho. qual a probabilidade de que ele dure mais de 26 semanas ? c) Qual a probabilidade de que o caminho (1 – 2) (2 – 5) (5 – 6) dure mais de 26 semanas ? 6) Para um determinado projeto temos os seguintes dados: Atividade 1– 2 1– 3 2– 4 2– 5 4– 5 3– 6 3– 7 5– 8 6– 9 8– 9 9 – 10 7 – 11 10 – 11 11 – 12 5 – 13 Duração (semanas) Otimista Mais provável Pessimista 2 2 2 1 3 7 3 7 7 4 7 8 0 0 0 2 6 9 5 9 11 3 6 8 2 6 9 0 0 0 1 3 4 4 8 11 0 0 0 2 5 7 3 5 8 a) Qual a probabilidade de que o projeto termine em 26 ou menos semanas ? b) Idem para 23 ou menos semanas ? c) Qual deverá ser a duração estipulada para que se tenha 90% de certeza de que a data será cumprida ? . não crítico. (1 – 4) (4 – 5) (5 – 6).

Os dados referentes à cada atividade estão mostrados a seguir: Duração (semanas) Normal Acelerada 3 2 6 4 5 4 7 5 4 3 5 4 4 4 2 2 8 5 6 4 7 5 6 4 5 4 3 2 Custo ($) Normal Acelerado 320 360 575 700 500 550 750 850 420 490 475 535 425 425 180 180 850 1060 650 750 675 735 650 750 525 575 280 335 Atividade 1– 2 1– 3 1– 4 2– 4 2– 6 3– 5 3– 6 4– 6 2– 5 5– 7 3– 8 6– 8 8– 9 7 – 10 O contrato especifica que a instalação deve estar pronta em 18 dias. Há uma multa diária de $100 por cada dia que o projeto exceder de 18 dias.2. Em que prazo deve a firma acabar a instalação de maneira que seu custo seja mínimo ? 8) Qual o maior caminho entre os nós 1 e 10 na rede abaixo: 2 2 8 5 5 4 7 3 9 5 9 3 2 1 6 1 2 1 3 10 7 2 7 3 1 4 8 1 .5 Exercícios 71 7) Uma firma eletrônica assinou um contrato para instalar um equipamento de controle em um aeroporto. A instalação completa pode ser dividida em 14 atividades distintas.

72 9) Qual o maior caminho entre os nós 1 e 7 na rede abaixo: PERT/CPM 2 4 1 6 7 5 5 1 4 6 1 5 7 8 3 2 6 5 4 10) Para um determinado projeto temos os seguintes dados: Duração (semanas) Normal Acelerada 7 5 4 3 5 3 3 2 10 8 2 2 2 1 7 5 Custo ($) Normal Acelerado 100 200 280 520 50 100 200 360 160 360 230 230 200 480 100 200 Atividade 1– 2 1– 4 1– 3 2– 4 3– 4 2– 5 4– 5 3– 5 Qual o menor custo para se fazer o projeto em 13 semanas ? 11) Para o projeto do exercício 10. 12) Para o projeto do exercício 10. formule um modelo de P.570.Linear cuja solução dê o custo e as durações das atividades para o projeto ser feito em 13 semanas. .Linear supondo que se deseja fazer o projeto na menor duração possível tendo disponível $1. formule o modelo de P.

3% b) 73% c) 0% 6) Duração esperada do projeto = 24.1 Respostas dos exercícios 1) Duração esperada do projeto = 185.16 semanas a) 86.3 semanas 7) Z ∗ = 18 dias 8) (1 – 2) (2 – 5) (5 – 6) (6 – 9) (9 – 10) 9) (1 – 3) (3 – 4) (4 – 6) (6 – 7) 10) Z ∗ = $1.5 semanas P (Dur ≤ 180) = 22% 2) 17 semanas 3) 12 dias 4) Duração esperada do projeto = 38 dias P (Dur ≤ 35) = 23.61% b) 20.5.2.5 Exercícios 73 2.66 semanas a) 74. yi ≥ 0 .570 11) (Min) Z = 50ya + 240yb + 25yc + 160yd + 100ye + 280yg + 50yh sujeito a T2 + ya ≥ 7 T3 + yc ≥ 5 T4 − T2 + yd ≥ 3 T4 − T3 + ye ≥ 10 T5 − T2 ≥ 2 T5 − T4 + yg ≥ 2 T5 − T3 + yh ≥ 7 T5 = 13 ya ≤ 2 yb ≤ 1 yc ≤ 2 yd ≤ 1 ye ≤ 2 yg ≤ 1 yh ≤ 2 Ti. 7% 5) Duração esperada do projeto = 28.4% c) 27.

74 12) (Min) Z = T5 sujeito a 50ya + 240yb + 25yc + 160yd + 100ye + 280yg + 50yh = 250∗ T2 + ya ≥ 7 T3 + yc ≥ 5 T4 − T2 + yd ≥ 3 T4 − T3 + ye ≥ 10 T5 − T2 ≥ 2 T5 − T4 + yg ≥ 2 T5 − T3 + yh ≥ 7 ya ≤ 2 yb ≤ 1 yc ≤ 2 yd ≤ 1 ye ≤ 2 yg ≤ 1 yh ≤ 2 Ti. yi ≥ 0 (*) $1570 .Custo na duração normal ($1320) = $250 PERT/CPM .

para pagar em um supermercado. etc. O pioneiro no estudo das filas de espera foi A. para comer um hamburguer.1 Porque as filas são “estudadas” As filas são estudadas porque em toda fila. a legislação internacional que regulamenta o tráfego marítimo determina que se ao chegar a um porto (obviamente na data certa) não houver berço para atracar. existem os locais onde os navios podem atracar. Em qualquer porto. embora nem sempre se perceba. por qualquer motivo. dona do navio. para colocar gasolina. vamos examinar um exemplo clássico de fila: a atracação de navios em um porto. como por exemplo uma “fila” de navios esperando para atracar em um porto. ou seja não tão visível.. E este problema econômico surge porque em qualquer fila (mesmo a da padaria da esquina!) existem 2 custos envolvidos: O Custo da Fila e o Custo do Serviço. a administração do porto tem que indenizar a companhia. que publicou. pelo tempo que ele ficar ao largo esperando berço livre para atracar. todos os berços de um porto estão ocupados. ou seja. Assim o número de berços dá o número máximo de navios que podem estar atracados em um porto. Para que possamos entender o que vem a ser estes 2 custos. existe embutido um problema econômico. 3. Por sua vez. Filas podem existir na forma de pessoas ou objetos esperando por algum tipo de serviço ou podem existir em um sentido abstrato. um engenheiro dinamarquês. para pagar uma conta no banco. o do Rio de Janeiro por exemplo. Quanto mais berços oferecidos. na década 1910-1920. os navios que chegam formam uma fila (lógica) aguardando a sua vez.Erlang. O Custo do Serviço é o custo de construir e manter em funcionamento os berços de atracação. Estes locais são chamados de “berços”. .Capítulo 3 Teoria das Filas Esperar em uma fila é uma das ocorrências mais comuns no nosso dia a dia. quanto maior o nível de serviço oferecido.K. Podemos agora definir os custos da fila e do serviço envolvidos no caso de um porto. vários trabalhos sobre o assunto quando da implantação do serviço telefônico em Copenhague. Em resumo quando. Nós esperamos na fila para fazer matrícula. maior este custo..

Este custo é inversamente proporcional ao custo do serviço (número de berços). Qual o custo da fila. A quantificação disto não é simples até porque na fila de uma agência bancária. embora possa ser trabalhoso. . em uma agência bancária ? Temos pessoas na fila e o custo da fila é o equivalente monetário do tempo que as pessoas ficam na fila. Genericamente podemos definir: Custo do Serviço: É o custo de construir e manter em funcionamento as estações que prestam determinado serviço. o custo da fila será pequeno. por exemplo. Custo Total: É a soma do Custo da Fila mais o Custo do Serviço. Achar o custo da fila é bem mais complexo. o custo do serviço será grande mas em compensação.76 Teoria das Filas O Custo da Fila é o custo que a administração do porto tem pelo pagamento das indenizações aos navios que esperam na fila. Já se tivermos muitos berços. achar o nível de serviço que minimiza o custo total. achar o custo do serviço. Se temos poucos berços o custo do serviço será pequeno mas como a fila será grande. podemos ter pessoas com “valor-hora” bastante diferentes. ou seja. Em quase todos os sistemas de filas é relativamente fácil. o custo da fila será grande. A figura a seguir é uma representação destes custos: $ (custo do Serviço + custo da Fila) Custo Total Custo do Serviço Custo da Fila Nível ótimo Nível de Serviço O objetivo em qualquer sistema de filas é achar o ponto ótimo que minimiza a função do custo total. Custo da Fila: É o custo que se incorre devido ao fato de usuários de um sistema de fila terem que esperar na fila propriamente dita. como a fila será pequena.

Ela é considerada ser infinita quando o número de elementos é tal que a presença de um ou mais elementos na fila não influi no comportamento do sistema como um todo. as chegadas são aleatórias. deve ser definido o tamanho da amostra que garanta.2. podem entrar no sistema de fila. Vamos supor que os resultados coletados na amostragem foram os seguintes: . Na grande maioria dos sistemas de filas. ou seja 5 horas de amostragem (300 minutos). 3.3. precisamos definí-lo através de uma distribuição probabilística. a população. não ocorrem de maneira ordenada. alunos. 3. Assim para descrever um processo de chegada. O passo inicial é fazer uma amostragem das chegadas dos clientes na agência em questão. que. Um exemplo de fila finita é o caso da fila para conserto de máquinas (poucas) existentes em uma indústria. Quando a presença no sistema de elementos da população potencial influi no comportamento do sistema. Como exemplo.2 Componentes básicos de um processo de fila Um sistema de fila pode ser representado como: Mundo Externo População Chegadas Processo de Chegada Fila(s) Serviço Disciplina da Fila Mecanismo de Serviço Mundo Externo A fila propriamente dita é apenas um dos componentes de um sistema de fila.2 Componentes básicos de um processo de fila 77 3.2 O Processo de Chegada O processo de chegada descreve como os elementos da população chegam para o sistema de filas. Estatisticamente. em um sistema de filas. pessoas da vizinhança.1 A População É o conjunto de elementos pertencentes ao mundo externo.. a confiabilidade dos resultados. Assim no sistema de fila da agência bancária da UERJ. pode ser classificada como infinita ou finita. Vamos supor que no nosso exemplo a amostra é coletar.2. ou seja. potencialmente. a fila é dita ser finita. são todas as pessoas que podem eventualmente usar a agência: funcionários. inicialmente. Devemos lembrar que. vamos supor que queremos definir a distribuição probabilística que rege o processo de chegada em uma determinada agência bancária. estatisticamente. etc. em um único dia. professores. por exemplo. as chegadas entre 11:00 e 16:00 horas..

02 σ = 2. Com os dados podemos achar a média e a variância (desvio padrão): xi fi = 2 chegadas/minuto Média = x = fi x2 fi − fi x2 √ i = 2.000 seg Como podemos observar na planilha acima.. o que não seria necessário. 0. ou seja. 8 / 25 18. . 42 chegadas/minuto σ2 = fi − 1 . . Veremos mais adiante porque só seria necessário registrar uma delas. 2 600 chegadas o Intervalo entre chegadas (seg) 28 / 11 23 / 46 / 6 54 27 / 42 . 15:59:02 / 15:59:27 Teoria das Filas Período 11:00 – 11:01 11:01 – 11:02 11:02 – 11:03 11:03 – 11:04 . 1. 02 = 1. . 2. a amostragem coletou tanto o número de chegadas por período (no nosso exemplo. . se a taxa média for de 2 chegadas por minuto. Com os dados coletados podemos construir 2 distribuições de freqüência: A 1a com a distribuição do número de chegadas por minuto: Chegadas / min (xi) 0 1 2 3 4 5 6 7 No de Observações fi 41 81 81 54 27 11 3 2 Esta distribuição é uma distribuição discreta pois os valores só podem ser inteiros. por exemplo. o intervalo médio entre chegadas só pode ser de 30 segundos e vice-versa.78 Instante da chegada de cada usuário Hr:min:seg 11:00:28 / 11:00:39 11:01:02/11:01:48/11:01:54 11:02:48 11:03:15 / 11:03:57 .. 15:59 – 16:00 300 períodos N de chegadas no período 2 3 1 2 . 1 minuto) como o intervalo entre chegadas. . . etc. lembrando por ora que. . .

Respostas diferentes para cada uma das perguntas acima mudam o tipo de modelo a ser estudado. Podemos ter LIFO (last in. first out). quando a fila pode ter qualquer tamanho ou limitado quando a fila só pode acomodar um no determinado de usuários. o último a entrar é o primeiro a sair. sem entrar no sistema. etc.2 Componentes básicos de um processo de fila 79 A 2a com a distribuição do intervalo entre chegadas: Intervalo entre chegadas (segundos) 0 . Podemos ter uma fila com esquema de prioridade.000 = = 30 segundos Média = x = n 600 √ x2 i − x2 = 900 σ = 900 = 30 segundos σ2 = n Veremos mais adiante que será fundamental saber se estas distribuições se “enquadram” em alguma distribuição teórica. ou seja.. c) Há limite para o tamanho da fila ? O tamanho da fila pode ser considerado como infinito. ou seja.30 30 – 60 60 – 90 90 – 120 120 – 150 150 – 180 180 – 210 No de Observações 387 132 51 19 7 3 1 Esta é uma distribuição contínua pois é a distribuição do intervalo entre chegadas (tempo). no caso individuais (não mostrados aqui na apostila). Neste último caso quando a fila está cheia.. etc. o primeiro que entra é o primeiro que sai. a chamada para receber serviço obedece a um esquema de prioridade. podemos achar a média e a variância (desvio padrão): xi 18. Precisamos ter respostas a perguntas do tipo: a) Quantas filas existem no sistema ? b) Como os usuários são escolhidos da(s) fila(s) para receber serviço ? Podemos ter um esquema FIFO (first in.2.3 A Disciplina da Fila A chamada disciplina da fila trata das questões relativas a fila propriamente dita. podendo assumir qualquer valor. os usuários que chegam vão embora. . Com os dados coletados na amostragem. first out) . ou seja. ou seja. 3.3.

por outro lado. Podemos. Como no processo de chegada. podemos ter: (A) canal único. fase única. fases múltiplas. Isto é esperado pois estas são apenas as categorias básicas. sem muito esforço.2. Um exemplo da categoria (B) seria o caso de uma agência bancária com fila única e várias caixas.80 Teoria das Filas 3. Fila (A) Estação de Serviço Estações de Serviço Fila (B) Fila (C) Estações de Serviço Estações de Serviço Fila (D) O número de canais é simplesmente o número de estações de serviço paralelas que prestam serviço às chegadas. Um exemplo da categoria (A) seria um pequeno posto bancário com somente 1 caixa para atendimento. como podemos ver na figura a seguir. genericamente. O número de fases. Para exemplificar o caso (C) poderíamos citar um pequeno hospital onde o paciente recebe um atendimento inicial por parte de um médico residente e a seguir é atendido pelo médico titular. (B) canais múltiplos. Para esquemas de filas mais complexos. inviável. . a duração do serviço prestado é aleatória e para descrevê-la precisamos definir uma distribuição probabilística. a dificuldade em se obter soluções analíticas é imensa e. Assim.4 O Mecanismo de Serviço Um sistema de fila pode ser. Se tivéssemos vários residentes e vários médicos teríamos um exemplo do caso (D). catalogado em 4 estruturas básicas conforme o seu esquema de prestação de serviço. na grande maioria dos sistemas de filas. na maioria das vezes. (D) canais múltiplos. fase única. identificar vários tipos de filas conhecidas que não se encaixam nas 4 categorias básicas. (C) canal único. fases múltiplas. indica o número de etapas seqüenciais que cada chegada individual tem que passar.

800 seg Da mesma forma que fizemos no processo de chegada. Neste caso no entanto. 15:59 – 16:00 180 períodos Duração do serviço (seg) 22 / 15 30 / 15 / 22 63 . após ter sido definido o tamanho da amostra. que estamos estudando um posto bancário e para estudarmos o atendimento dado foi feita uma amostragem. temos um complicador: A distribuição probabilística deve refletir a “capacidade” da estação de serviço e por isto não tem sentido incluir na amostra os períodos em que a estação fica ociosa. Com os dados coletados na amostragem podemos construir 2 distribuições probabilísticas. . 2 540 serviços o Período 13:00 – 13:01 13:01 – 13:02 13:02 – 13:03 13:03 – 13:04 . precisamos fazer uma amostragem no sistema em questão. 15:59:15 / 15:59:34 N de serviços prestados no período 2 3 1 0 . Foram coletados então os seguintes dados: Instante do fim do serviço para cada usuário Hr:min:seg 13:00:22 / 13:00:37 13:01:07/13:01:22/13:01:44 13:02:47 . Também repetindo o citado no processo de chegada. para se obter uma distribuição probabilística que descreva o serviço prestado. . a duração média da prestação de serviço será de 15 segundos. As maneiras usuais de se fazer isto são contar somente o tempo em que a estação não fica ociosa ou. . . registramos nesta amostragem tanto a duração de cada serviço prestado (medida contínua pois se trata de tempo) como o número de serviços prestados por período (também 1 minuto neste exemplo) que é uma medida discreta pois só pode ser um valor inteiro. bastava coletar apenas uma das medidas pois as 2 estão relacionadas e é claro que se a média for de 4 serviços prestados por minuto. 26 / 19 10. A 1a forma é geralmente mais usada pois a 2a pode provocar distorções por ser artificial. . como exemplo. para garantir ocupação. .2 Componentes básicos de um processo de fila 81 Também como no processo de chegada. . gerar usuários artificiais para serem servidos no sistema. Vamos supor.3. das 13:00 às 16:00 horas. ou seja durante 3 horas (180 minutos). . em um único dia. .

A técnica estatística que avalia se uma distribuição empírica se adequa a uma distribuição teórica é chamada de Teste de Aderência e é o que veremos a seguir. por exemplo. que foram desenvolvidas para sistemas de filas estão. estamos interessados em testar se ela é uma Poisson. através de fórmulas matemáticas. 3.30 30 – 60 60 – 90 90 – 120 120 – 150 No de Observações 410 103 19 7 1 x = 20 segundos σ = 20 segundos Como no caso do processo de chegada. Assim se. chamado de Teste de Aderência.82 Teoria das Filas A 1a (discreta) vai ser a distribuição do números de serviços prestados por minuto e apresenta os seguintes valores: Serviços / min (xi) 0 1 2 3 4 5 6 7 8 No de Observações 8 28 40 40 31 18 9 4 2 Sua média e desvio padrão são: x = 3 serviços/minuto σ = 1. Este tipo de teste. restritas aos casos onde as distribuições discretas seguem a distribuição de Poisson e as distribuições contínuas seguem a Exponencial Negativa. no processo de chegada obtemos uma distribuição para a taxa de chegada (discreta). tem várias formas e veremos . 71 serviços/minuto A 2a (contínua) vai ser a distribuição da duração do serviço e apresenta os seguintes valores: Duração do serviço (segundos) 0 . com poucas exceções.3 O Teste de Aderência As soluções analíticas. também estamos interessados em saber se estas distribuições se “enquadram” em uma distribuição teórica. ou seja.

3.3 O Teste de Aderência

83

uma delas conhecida como Teste do Qui-Quadrado (χ2 ). Exemplo: Testar, usando o teste do χ2 , se a distribuição abaixo, obtida em uma amostragem, é uma distribuição de Poisson com média λ = 2/min. Chegadas / min (xi) 0 1 2 3 4 5 6 7 No de Observações 39 91 67 59 28 10 4 2 300

Média λ = 2/min O teste do χ2 é uma “comparação” entre a freqüência observada e a freqüência teórica. Assim sendo, como já temos a freqüência observada na amostragem, temos que calcular a freqüência teórica usando a fórmula da distribuição de Poisson: e−λλk Probabilidade(no observações= k)= k! Temos então: No de chegadas / min 0 1 2 3 4 5 6 7 P(no obs= k) e−2 20 = 0, 135 0! e−2 21 = 0, 270 1! 0,270 0,180 0,090 0,036 0,012 0,003 Freqüência Esperada 300 × 0, 135 = 40, 5 300 × 0, 270 = 81 81 54 27 10,8 3,6 0,9

No teste do χ2 quando a freqüência esperada é menor que 5, deve-se agrupar até se tornar maior ou igual a 5. Assim, no nosso exemplo, as 3 últimas linhas devem ser somadas (0, 9+3, 6+10, 8) dando o valor de 15, 3. Deve-se fazer o mesmo agrupamento na freqüência 0bservada, ou seja somar 2 + 4 + 10 = 16 em uma única linha. No teste do χ2 temos que calcular: (Freq. Observada − Freq. Esperada)2 χ2 = calculado Freq. Esperada

84 No nosso exemplo temos: (39 − 40, 5)2 (91 − 81)2 (16 − 15, 3)2 χ2 = + + ··· + = 4, 24 calc 40, 5 81 15, 3

Teoria das Filas

Teste: Se χ2 > χ2 calc tabelado rejeitamos a hipótese de que a distribuição é uma Poisson. Para se obter o χ2 temos que calcular o no de graus de liberdade (ν): tab ν = No de pares(Freq.Obs / Freq. Esp) −1− No de parâmetros estimados pela amostra. Na Poisson, o único parâmetro estimado pela amostra é a média λ. Logo temos: ν =6−1−1=4 Outro dado necessário para se obter o χ2 é o nível de significância α, que é o risco tab de que a hipótese seja rejeitada quando deveria ser aceita. No teste de aderência, o padrão usual é usar 5% para o nível de significância, ou seja, α = 0, 05. Pesquisando em uma tabela (pág. 241), com ν = 4 e α = 0, 05, obtemos χ2 = tab 9, 48. Como o χ2 é menor que o χ2 aceitamos a hipótese, ou seja a distribuição das calc tab chegadas segue uma Poisson. Vejamos outro exemplo: Testar, usando o teste do χ2 , se a distribuição a seguir, obtida em uma amostragem de uma estação de serviço, é uma exponencial com média 1/µ = 20 segundos ou seja, taxa média de serviço µ = 3/minuto. Duração do serviço (segundos) 0 - 30 30 – 60 60 – 90 90 – 120 120 – 150 Freq. Observada 480 33 19 7 1 540

Como a distribuição exponencial é uma distribuição contínua, temos:
t2

P (t1 ≤ t ≤ t2 ) =

µe−µtdt
t1 t2

P (t1 ≤ t ≤ t2 ) = −eµt t1 = e−µt1 − e−µt2 Podemos calcular então a freqüência esperada (teórica): Duração do serviço (segundos) 0 – 30 30 – 60 60 – 90 90 – 120 120 – 150 P (x) e −e = 0, 7768 −3×0,5 −3×1 e −e = 0, 1773 0,0386 0,0086 0,0019
−3×0 −3×0,5

Freq. Esperada 540 × 0, 7768 = 419, 47 540 × 0, 1773 = 93, 58 20,84 4,64 1,02

3.4 O Processo de Poisson

85

Lembrando que temos que juntar em única categoria as 2 últimas linhas da frequencia esperada (4,64 e 1,02), podemos fazer então: (33 − 93, 58)2 (8 − 5, 66)2 (480 − 419, 47)2 2 + + ··· + = 49, 08 χcalc = 419, 47 93, 58 5, 66 ν = 4 − 1 − 1 = 2 (na Exponencial só a média é estimada pela amostra) Com α = 0, 05 obtemos da tabela (pág. 241): χ2 = 5, 99. tab Como o χ2 é maior que o χ2 nós rejeitamos a hipótese de que a distribuição da calc tab duração do atendimento siga uma exponencial.

3.4 O Processo de Poisson
As propriedades do chamado Processo de Poisson se ajustam muito bem aos modelos básicos de filas. Este fato fez com que as soluções analíticas para modelos de filas pudessem ser obtidas para àqueles modelos. A obtenção de soluções analíticas para modelos que não seguem o Processo de Poisson são, quando viáveis, matematicamente complexas e extremamente trabalhosas. Vejamos as propriedades fundamentais do Processo de Poisson, já adaptando-as para sistemas de filas, lembrando que estas propriedades são provadas matematicamente: 1. O no de chegadas (ou de serviços completados) em uma unidade de tempo especificada é independente do no de chegadas (ou término de serviços) em qualquer outra unidade. Esta propriedade se adequa perfeitamente a um sistema de filas e para exemplificar vamos imaginar as chegadas de clientes à uma agência bancária. É óbvio que o no de chegadas no minuto entre 11:34 e 11:35 é independente das chegadas no minuto entre 14:51 e 14:52. 2. O no médio de chegadas (ou de término de serviços) por unidade de tempo é proporcional ao tamanho da unidade de tempo. Assim se na agência bancária a média é de 2 chegadas/min, ela será de 120 chegadas/hora e 720/dia (considerando dia de 6 horas). 3. A probabilidade da ocorrência de 2 chegadas simultâneas (ou término de 2 serviços) em uma unidade de tempo muito pequena (∆t) tende a zero. Vamos supor que a taxa de chegada a um determinado sistema de fila seja λ = 5/hora. Se fizermos ∆t muito pequeno, 1 segundo por exemplo, a probabilidade de 1 chegada em 1 segundo será igual a λ∆t = 5 ∗ 1/3600 = 0, 0013. A probabilidade de 2 chegadas em qualquer segundo será igual a 0, 0013 ∗ 0, 0013 = 0, 000006, ou seja, praticamente zero. 4. A probabilidade de 1 chegada (ou término de serviço) ocorrer em uma unidade de tempo muito pequena, ∆t, é sempre a mesma independente do instante de ∆t. Desta forma se a probabilidade de 1 chegada em 1 segundo é de 0,0013, esta probabilidade será a mesma em qualquer segundo escolhido.

86

Teoria das Filas

5. Se a distribuição das chegadas (discreta) segue a distribuição de Poisson, então a distribuição do intervalo entre chegadas (contínua) segue a Exponencial. Se a distribuição da duração do serviço (contínua) segue a Exponencial, então a distribuição dos serviços completados (discreta) segue a Poisson. Esta propriedade é a razão porque dissemos anteriormente, nas amostragens, que embora tivessem sido coletados tanto os dados discretos como os contínuos, bastava trabalhar com uma delas, tanto no caso das chegadas como no caso do serviço, pois provada uma, via teste de aderência, está provada a outra. Desta forma se as chegadas seguem, por exemplo, uma Poisson, verificado via teste de aderência, com taxa média de λ = 3/minuto, então o intervalo entre chegadas segue a Exponencial com média (1/µ) igual a 20 segundos. Da mesma forma se a duração do serviço segue, por exemplo, uma Exponencial com média (1/µ) de 30 segundos, então a distribuição dos serviços completados por unidade de tempo segue uma Poisson com média λ = 2/minuto. Em filas criou-se uma convenção em que se diz que as chegadas seguem a Poisson (claro se passar no teste de aderência), ou seja, se trabalha com a taxa média de chegadas (discreta) enquanto que para o serviço, trabalha-se com a sua duração (contínua), ou seja, se diz que ela segue a Exponencial. Mas como vimos acima, está correto dizer exatamente o inverso. É uma mera convenção.

3.5 Notação de Kendall
O professor D.G.Kendall criou, em 1953, uma notação para sistemas de filas que é hoje largamente usada. Ela tem, na sua forma simplificada, o seguinte formato: (a/b/c) onde, a representa a distribuição das chegadas, b representa a distribuição do serviço e c indica o número de estações de serviço. Como a distribuição de Poisson inclui as propriedades do processo Markoviano, a notação usada para a e b é M quando temos um processo de Poisson. Assim um modelo de fila em que a distribuição das chegadas segue a Poisson, a distribuição da duração do serviço segue a Exponencial e com 1 estação de serviço, teria a notação M/M/1.

3.5 Notação de Kendall

87

3.5.1 Convenção para textos de Filas
Outra convenção em filas é que, se nada for dito em contrário, considera-se: • Tamanho da população: infinito • Tamanho permitido para a fila : infinito • Distribuição das chegadas: Poisson • Distribuição do serviço: Exponencial • Fila: única • Seleção para atendimento: FIFO

3.5.2 Estado transiente e de regime (ou estacionário)
Antes de entrarmos em detalhes, devemos observar que todos os modelos, com suas fórmulas, a serem apresentados tem como pré-requisito o sistema de fila estar em estado de regime, ou seja, estar com o seu processo de chegadas e atendimento dentro de condições normais. Para exemplificar vamos considerar uma agência bancária que tenha grande movimento. Quando a agência abre pela manhã, já existe normalmente uma grande aglomeração na porta e, obviamente, as chegadas não obedecem a qualquer padrão. Da mesma forma no início do trabalhos o atendimento não atinge sua velocidade normal pois, de certa forma, os funcionários que fazem o atendimento ainda não estão “aquecidos”. Até o funcionamento da agência se normalizar dizemos que o sistema está em regime transiente. O estudo do comportamento de sistema de filas em regime transiente é de extrema complexidade e foge ao escopo deste curso.

Existem 3 eventos possíveis durante ∆t: a entrada de 1 unidade no sistema. . ou seja. Caso isto não aconteça a fila tende ao infinito. Se λ∆t é a probabilidade de 1 chegada durante ∆t. . Fazendo: λ ⇒ taxa de chegada µ ⇒ taxa de serviço ∆t ⇒ unidade de tempo muito pequena λ∆t ⇒ probabilidade de ocorrer 1 chegada durante ∆t µ∆t ⇒ probabilidade de ocorrer fim de 1 serviço durante ∆t A condição básica para que um sistema de fila seja estável é que a taxa de chegada seja menor do que a taxa de serviço . Pn k=2 . . µ∆t 1 − (λ∆t + µ∆t) λ∆t Estado no instante t + ∆t k=0 =1 =0 =1 =2 =1 =2 =3 . . fila única com seleção FIFO e 1 estação de serviço. Vamos desenvolver a seguir. a saída de 1 unidade do sistema ou nenhuma alteração. De forma semelhante se µ∆t é a probabilidade de fim de 1 serviço. onde k é o número de unidades no sistema e Pn é a probabilidade de existirem n usuários no sistema: Probabilidade do estado P0 Estado no instante t k=0 Probabilidade do evento 1 − λ∆t λ∆t µ∆t 1 − (λ∆t + µ∆t) λ∆t µ∆t 1 − (λ∆t + µ∆t) λ∆t . . as fórmulas que permitem medir as características principais deste tipo de modelo. . a fila tenderá ao infinito. então 1 − µ∆t é a probabilidade de que nenhum serviço seja completado. chegadas seguindo a Poisson. λ/µ tem que ser menor do que 1. Veremos mais adiante que é necessário na verdade que λ seja razoavelmente menor que µ pois mesmo sendo menor. . então 1−λ∆t é a probabilidade de nenhuma chegada. duração do serviço seguindo a Exponencial. . k=n . Os estados do sistema nos instantes t e t + ∆t com os 3 eventos possíveis durante ∆t são mostrados na tabela a seguir. ou seja tamanho população infinito. ou seja. Pn (µ∆t) Pn (1 − λ∆t − µ∆t) Pn (λ∆t) P1 k=1 P2 . nenhuma chegada ou nenhum término de serviço.6 O Modelo I: M/M/1 Este é o modelo mais simples de fila. . é dada por: [1 − λ∆t][1 − µ∆t] = 1 − λ∆t − µ∆t + λµ(∆t)2 Como ∆t é muito pequeno podemos considerar (Λt)2 como = 0 e desta forma a probabilidade de nenhuma alteração é 1 − (λ∆t + µ∆t). durante ∆t.88 Teoria das Filas 3. A probabilidade conjunta de nenhuma chegada e nenhum término de serviço. . tamanho permitido para a fila infinito. k =n−1 k=n k =n+1 k k k k k k k Probabilidade do estado P0 (1 − λ∆t) P0 (λ∆t) P1 (µ∆t) P1 (1 − λ∆t − µ∆t) P1 (λ∆t) P2 (µ∆t) P2 (1 − λ∆t − µ∆t) P2 (λ∆t) . se tiver um valor muito próximo de µ.

a probabilidade de termos 1 unidade no sistema é igual a: P1 = P0 (λ∆t) + P1 (1 − λ∆t − µ∆t) + P2 (µ∆t) (Eq. temos: µ+λ λ P2 = P1 − P0 µ µ Tirando o valor de P1 da equação (4) temos: λ λ+µ λ P2 = P0 − P0 µ µ µ . somente 2 eventos podem ocorrer: ou não há nenhuma chegada. A probabilidade de termos zero unidades no instante t + ∆t é a probabilidade de zero no instante t + ∆t . a probabilidade de termos n unidades no sistema no instante t + ∆t é dada por: Pn = Pn−1 (λ∆t) + Pn(1 − λ∆t − µ∆t) + Pn+1 (µ∆t) (Eq. temos: (µ∆t)Pn+1 = Pn − Pn(1 − λ∆t − µ∆t) − Pn−1 (λ∆t) (µ∆t)Pn+1 = Pn − Pn + Pn(λ∆t) + Pn(µ∆t) − Pn−1 (λ∆t) (µ∆t)Pn+1 = Pn(λ∆t) + Pn(µ∆t) − Pn−1 (λ∆t) λ∆t µ∆t λ∆t Pn+1 = Pn + Pn − Pn−1 µ∆t µ∆t µ∆t λ λ Pn+1 = Pn + Pn − Pn−1 µ µ λ λ Pn+1 = Pn 1 + − Pn−1 µ µ λ µ+λ − Pn−1 Pn+1 = Pn µ µ Substituindo n por 1. 2) Para o caso geral. Quando k ≥ 1 no instante t. 3) Resolvendo a equação (1) para P1 em função de P0 .3. temos: P0 = P0 (1 − λ∆t) + P1 (µ∆t) P1 (µ∆t) = P0 − P0 (1 − λ∆t) P1 (µ∆t) = P0 [1 − (1 − λ∆t) P1 (µ∆t) = P0 (λ∆t) (λ∆t) P1 = P0 (µ∆t) λ (Eq. ou seja P0 (1 − λ∆t). Voltando a tabela nós vemos que existem 2 maneiras de se ter zero unidades no sistema no instante t + ∆t: Quando k = 0 no instante t e nenhuma chegada ocorre e quando k = 1 no instante t e uma saída ocorre. ou seja P1 (µ∆t). Isto dá: P0 = P0 (1 − λ∆t) + P1 (µ∆t) (Eq. vezes a probabilidade de nenhuma chegada. 1) De forma análoga. com probabilidade 1 − λ∆t ou há uma chegada com probabilidade λ∆t.6 O Modelo I: M/M/1 89 Quando existem zero unidades no sistema (k = 0) no instante t. existem 3 eventos possíveis como mostrado na tabela para k = 1. 4) P1 = P0 µ Resolvendo a equação (3) para Pn+1 em função de Pn e Pn−1 . k = 2 e k = n. mais a probabilidade de termos uma unidade no instante t. vezes a probabilidade de uma saída.

5) µ Da teoria da probabilidade nós sabemos que a soma de todas as probabilidades é igual a 1. 6) µ Das equações (5) e (6) vem: λ λ n Pn = 1 − Eq. para . (7) µ µ A média de uma variável x é definida como xPx . ∞ Pn = 1 ou da equação (5): ∞ λ n =1 P0 µ n=0 1 P0 = ∞ λ n n=0 ou µ n=0 O denominador desta expressão é uma série geométrica infinita que converge. λ µ 1− µ Temos então: 1 P0 = λ 1− µ λ P0 = 1 − (Eq.90 = P0 λ λ+µ − λ Teoria das Filas µ µ µ λ λ+µ = P0 −1 µ µ λ2 + λµ − λµ = P0 µ2 2 λ P2 = P0 µ Se resolvermos para P3 vamos obter: λ 3 P3 = P0 µ Por indução inferimos que: λ n Pn = P0 (Eq. Logo. se 1 λ for menor que 1. logo o número médio de unidades no sistema (representado por L) é dado por: ∞ L= n=0 nPn .

então o tempo total gasto no sistema para λ chegadas é λW . 10) Lq = λWq O tempo médio gasto no sistema (W ) deve ser igual ao tempo médio gasto na fila mais o tempo de serviço esperado (1/µ). W unidades de tempo. se chegam em média 2 usuários por hora e cada chegada passa 3 horas no sistema. em média. Temos então: 1 (Eq. usuários 1 e 2 na sua 3a hora. em média no sistema. Wq = tempo médio que uma unidade fica na fila. W = tempo médio que uma unidade fica no sistema. Isto implica que existem 6(L = 6) usuários. no sistema (isto é. 8) µ−λ Nosso propósito é determinar várias medidas da performance de um sistema de filas tais como: L = número médio de unidades no sistema.6 O Modelo I: M/M/1 91 Substituindo pelo valor de Pn da equação (7) temos: ∞ λ λ n L= n 1− µ µ n=0 λ ∞ λ n n = 1− µ n=0 µ O somatório da equação acima é uma série geométrica infinita que converge para: λ µ λ 2 µ Logo temos: 1− L= 1− λ µ      λ µ 1−   2 λ   µ Que se reduz a: λ L= (Eq. então o total de horas gasto pelos 2 usuários no sistema é 6. usuários 3 e 4 na sua 2a hora e usuários 5 e 6 na 1a hora). Lq = número médio de unidades na fila. Isto nos dá a relação: L = λW (Eq.3. tirar o valor de W : L 1 W = = λ µ−λ Podemos com W calcular o valor de Wq . 11) W = Wq + µ Logo uma vez que tenhamos obtido o valor de L da equação (8) podemos. da equação (9). 9) O mesmo raciocínio pode ser inferido para a relação do número médio de usuários na fila e o tempo que eles passam na fila: (Eq. da equação (11): 1 1 1 λ Wq = W − = − = µ µ−λ µ µ(µ − λ) . Se nós esperamos λ chegadas por unidade de tempo e se cada unidade gasta. Por exemplo.

1 Sumário das fórmulas do modelo M/M/1 λ = taxa média de chegada (1/λ = intervalo médio entre chegadas) µ = taxa de serviço média (1/µ = duração média do serviço) n = número de unidades no sistema (inclui as da fila e a sendo servida). a matemática envolvida seja bem mais complexa. a probabilidade do sistema estar vazio: λ P0 = 1 − µ Probabilidade n existirem n unidades no sistema: de λ Pn = P0 µ Probabilidade de existirem mais de k unidades no sistema: λ k+1 P (n > k) = µ Número médio (esperado) de unidades no sistema: λ L= µ−λ Número médio (esperado) de unidades na fila: λ2 Lq = µ(µ − λ) Tempo médio (esperado) que cada unidade permanece no sistema: 1 W = µ−λ Tempo médio (esperado) que cada unidade permanece na fila: λ Wq = µ(µ − λ) Fator de utilização da estação de serviço: λ ρ= µ Probabilidade de 1 unidade demorar mais de t unidades de tempo no sistema: P (T > t) = e−µ(1−ρ)t Podemos ter ainda as seguintes relações entre as medidas básicas: λ Lq = L − = λWq µ λ L = Lq + = λW µ 1 Lq Wq = W − = µ λ L 1 W = Wq + = µ λ .6. apesar de que para algumas. 3. ou seja. Probabilidade de zero unidades no sistema.92 Finalmente da equação (10) podemos calcular Lq : λ2 λ = Lq = λWq = λ µ(µ − λ) µ(µ − λ) Teoria das Filas As demais fórmulas não só deste modelo como dos demais que veremos a seguir são desenvolvidas de forma análoga ao que vimos até aqui.

2 fregueses/hora 4−λ . Na verdade (L − Lq ) representa o percentual médio de clientes atendidos por unidade de tempo e o resultado é menor que 1 porque as vezes o barbeiro fica ocioso. 25 horas 1 1. ou seja. 61 = 61% f) Queremos λ de modo que W = 1. de um único barbeiro. O barbeiro gasta em média 15 minutos com cada cliente. 25 = 25% µ 4 λ 3 b) L = = = 3 fregueses µ−λ 4−3 λ2 Lq = = 2. a) Qual a probabilidade de um cliente não ter que esperar para ser servido ? b) Qual o no esperado de clientes no salão de barbeiro ? na fila ? c) Quanto tempo. 1 c) W = = 1 hora µ−λ λ d) Wq = = 0.5 = 0. um cliente espera na fila ? e) Qual a probabilidade de que um cliente tenha que ficar mais de 30 minutos no salão ? f) O barbeiro está estudando a possibilidade de colocar outro barbeiro desde que o tempo de permanência médio de cada cliente no salão passe a 1.3. 5) = e−µ(1−ρ)t = e−4(1− 4 )0. em média. 25 horas. o freguês que está sendo atendido pelo barbeiro. um cliente permanece no salão ? d) Quanto tempo. 75 horas µ(µ − λ) 3 e) P (T > 0. Para quanto deve aumentar a taxa de chegada de modo que este segundo barbeiro fique justificado ? Solução λ = 3/hr µ = 4/hr 3 a) P0 = 1 − = 1 − = 0. com uma duração média entre chegadas de 20 minutos.6 O Modelo I: M/M/1 93 Exemplo 1 Clientes chegam a uma barbearia. 25 fregueses µ(µ − λ) λ Como pode ser visto acima L − Lq = 0. 75 e a primeira vista poderá parecer que a diferença entre o número médio de clientes no sistema (L) e o número médio de clientes na fila (Lq ) deveria ser 1. em média. 25 = ⇒ λ = 3.

5 = 2 minutos.5 minutos para chegar ao seu lugar após comprar o seu ingresso. 01 1 e−µ(1−ρ)t = 0. a medida que ρ vai se aproximando de 1. mesmo sendo menor que 1. 3) = 0. tem que ser sempre menor que 1 pois. mostramos os valores de L. para um µ fixo igual a 3/min. 5 minutos. 63 = 63% c) Queremos achar t de modo que: P (T > t) = 0. IMPORTANTE Como já foi dito anteriormente. Podemos ver que. . ela estará sentada antes do jogo começar ? b) Qual a probabilidade da pessoa do ítem a estar sentada antes do jogo começar ? c) Com que antecedência deve a pessoa chegar para ter 99% de certeza de estar sentada antes do jogo começar ? Solução λ = 1/min µ = 3/min 1 = 0. a taxa de ocupação (λ/µ). 3 minutos Logo: P (T > 2. 5+2. Lq . Cada pessoa gasta em média 20 segundos para comprar um ingresso. 5 + 1. 3) = 0. 99 Como a pessoa gasta 1. 3 = 3. 01 ⇒ e−3(1− 3 )t t = 2. em caso contrário.5 P (T ≤ 0. b) É igual a probabilidade do ingresso ser comprado em tempo menor ou igual a 0. 5) = 0. 01 P (T ≤ 2. se ela se aproxima de 1 a fila já tende ao infinito. W (em minutos) e Wq (em minutos) para valores crescentes de λ. a pessoa deverá estar sentada antes do jogo começar.94 Teoria das Filas Exemplo 2 Pessoas chegam para comprar ingressos para um jogo à taxa de uma por minuto. a fila se torna inviável. No quadro a seguir. 5 minutos a) W = µ−λ Logo o tempo médio para comprar o ingresso e achar o lugar é 0. ou seja. 1 P (T ≤ 0. Vamos aproveitar este exemplo para mostrar que. 5) = 1 − e−µ(1−ρ)t = 1 − e−3(1− 3 )0. a fila tende ao infinito. 8 minutos antes do jogo começar. 5) = 1 − P (T > 0. e conseqüentemente de ρ. a) Se uma determinada pessoa chega 2 minutos antes do jogo começar e se ela gasta exatamente 1. 5 minutos para achar seu lugar ela deve chegar 1.

03 58.667 1. 125 horas ×8/hr = $1 Custo da fila = $1 × 12 fregueses/hr × 12 hr/dia = $144 Custo total = $36 + $144 = $180/dia Situação Proposta µ = 42/hora W = 0. 266 Custo da fila = $0. O empregado recebe $3/hora enquanto que o tempo que os fregueses “perdem” na padaria está estimado em $8/hora. 0333 horas ×$8/hr = $0.996 0.3. 40/dia Resp: A situação proposta é melhor. 125 horas Custo = 0.667 λ 1. Considerando que a padaria funciona 12 horas/dia.500 1.667 19. justifique economicamente se o equipamento de auto-serviço deve ou não ser comprado ? Solução λ = 12/hora Situação Atual µ = 20/hora Custo do empregado = $3/hr ×12 hr/dia = $36/dia ⇒ Custo do serviço W = tempo médio que um freguês permanece na padaria. O dono da padaria está considerando a instalação de um equipamento de auto-serviço que fará com que a taxa de atendimento aos fregueses passe para 42 fregueses/hora.167 0.00 2.999 Exemplo 3 Fregueses chegam aleatoriamente a uma padaria à taxa média de 12/hora.99 2.67 1 2 10 20 100 1000 Wq 0. 0333 horas Custo = 0. W = 0.95 2.167 0.50 2.00 1. 40/dia Custo do serviço = $36 + $30 = $66/dia Custo total = $66 + $38.667 99.50 2.50 0.333 0.833 0. 266 × 12 fregueses/hr ×12 hr/dia = $38. O custo do equipamento de auto-serviço é de $30/dia.966 0. O único empregado da padaria pode servir fregueses à taxa média de 20/hora.5 1 2 5 29 59 299 2999 Lq 0.01 298 2998 W 0. 40 = $104.999 L 0.667 999.6 O Modelo I: M/M/1 95 ρ 0.333 4.333 0.667 28.667 0. .500 0.983 0.667 9.90 2.

2. s − 1 P0 p/n ≥ s s+1 P0 µ Lq = s × s!(1 − ρ)2 λ µ L = Lq + W = Wq = L λ Lq λ   λ s    P0    µ −µt P (T > t) = e × 1+ µt  s!(1 − ρ)      P (T > t) = e−µt× 1 +                         λ  −µt s−1−      λ s  µ   P0 1 − e    µ      s!(1 − ρ) s − 1 − λ µ            λ µ se s − 1 − λ µ =0 se s−1− =0 .7 Modelo II: M/M/s (s > 1) Neste tipo de modelo. considera-se que as estações de serviço são equivalentes e prestam serviço.. individualmente. a mesma taxa média µ. ρ= λ sµ s−1 n=0 P0 = 1 1 n! λ µ n n + 1 s!(1 − ρ) λ µ s   1 λ   n! µ Pn = 1    s!sn−s λ P0 λ µ n p/n = 1... .96 Teoria das Filas 3.

incrementando o número de estações de serviço de 1. a fila tenderia ao infinito. Como podemos ver. 461 = 46. 30 clientes por hora. 0. 0499 Lq = 3. Com fila individual demorará. 333 hr) = 0. com uma única fila. 6 cartas por hora. Solução λ = 40/hr µ = 30/hora s = 1 ⇒ ρ = 1. em média. Quanto tempo em média uma carta demora para ficar pronta ? Solução Modelo M/M/3 com λ = 15/hr e µ = 6/hr a) Lq ? P0 = 0.39 6. em média. 40 horas (24 minutos) para ficar pronta.3. em média. em média. 1% d) Modelo I λ = 5/hr W = 1 hora Este exemplo serve para exemplificar a vantagem em se ter uma fila única quando temos várias estações de serviço prestando o mesmo tipo de atendimento. s 2 3 4 Custo da Fila/hr $5. 011 cartas W = 0.00 Custo Total/hr 20. para datilografar. 1 hora.λ.s 8. passa por um mínimo e volta a crescer. em média. .00 7. 40 horas c) P (T > 0. Como já vimos.00 12. em média.W 12. O tempo que cada cliente “perde” dentro da agência está estimado em $5/hora e o custo de funcionamento de uma caixa bancária é de $4/hora.00 16. Exemplo 2 Deseja-se determinar o no ótimo de caixas em uma agência bancária. uma carta demora para ficar pronta ? c) Qual a probabilidade de que uma carta demore mais de 20 minutos para ficar pronta ? d) Vamos supor que cada datilógrafa receba individualmente 5 cartas por hora. 333 > 1. Os clientes chegam a taxa média de 40 por hora e as caixas podem atender. As cartas chegam para serem datilografadas a taxa média de 15 por hora. a curva de custo total vem diminuindo.7 Modelo II: M/M/s (s > 1) 97 Exemplo 1 Um escritório tem 3 datilógrafas e cada uma pode datilografar.72 Custo do Serviço/hr 4. 511 cartas b) W = ? L = 6. cada carta demora.72 Para se resolver este tipo de problema tem que se ir por tentativa.00 19.39 22. a) Qual o no médio de cartas esperando para serem datilografadas ? b) Quanto tempo. No nosso exemplo o mínimo é s = 3.

Deve ser observado que neste caso a taxa de chegada (λ) não precisa ser menor que a taxa de serviço (µ) pois a fila tem um tamanho fixo.8 Modelo III: M/M/1: Fila finita Esta é a situação na qual a fila pode acomodar somente um número finito de unidades. As demais fórmulas ficam então como: L W = λef Wq = ρ= Lq λef λef µ λef = µ(1 − P0 ) = λ(1 − PM )      M    2 p/λ = µ .98 Teoria das Filas 3. No entanto algumas unidades chegam e encontram a fila cheia. As fórmulas para este modelo são:  λ   1−   µ   p/λ = µ  λ M+1 P0 =  1− µ     1   p/λ = µ M +1  n  λ P0 p/λ = µ Pn = µ  P p/λ = µ 0 L=          λ µ−λ (M + 1) 1− − λ µ M+1 λ µ M+1 p/λ = µ Lq = L − (1 − P0 ) A taxa de chegada das unidades no sistema é λ. ela vai embora sem esperar o atendimento. A taxa de chegada efetiva (λef ) dá a taxa média das unidades que realmente permanecem no sistema. ou seja. vão embora. ou seja (λef ) é a taxa média de entrada de unidades no sistema. que é o no máximo de unidades que podem estar no sistema. se uma unidade chega e a fila está cheia. ou seja. sendo M − 1 o número máximo permitido na fila. Neste tipo de modelo aparece uma nova variável (M ).

78% b) L = 2.3. a) Qual a probabilidade de um freguês chegar e ir direto para a cadeira do barbeiro ? b) Qual o no médio de fregueses esperando atendimento ? c) Qual a taxa de chegada efetiva ? d) Quanto tempo. Os fregueses que chegam quando as 6 cadeiras estão cheias. 963 = 0. 11 fregueses Lq = 1. Os fregueses chegam a taxa média de 3/hr e ficam em média 15 minutos na cadeira do barbeiro. em média. vão embora sem esperar. 963 ⇒ Percentual de fregueses atendidos e) λ 3 Resp: 1 − 0. 037 = 3. 89 λef = = 0. 7% . 2778 = 27. 89 fregueses/hr d) W = 0. 39 fregueses c)λef = 2. 73 horas 2. um freguês fica na barbearia ? e) Que percentual dos fregueses potenciais vai embora sem esperar atendimento ? Solução M =7 λ = 3/hr µ = 4/hr a) P0 = 0.8 Modelo III: M/M/1: Fila finita 99 Exemplo 1 Uma barbearia com 1 barbeiro tem 6 cadeiras para acomodar fregueses esperando atendimento.

O tempo perdido pelos fregueses na fila de espera está estimado em $2/hora e como o serviço feito pelo barbeiro é muito cansativo. 20209 hr λef = 2. cada hora que ele descansa é como se tivesse ganho $4. A barbearia só tem lugar para acomodar 2 pessoas esperando e os eventuais fregueses que chegam quando o salão está cheio. o barbeiro está pensando em mudar o seu método de trabalho. tem de ir embora. Após alguns estudos ele identificou 2 alternativas: a) Trabalhar um pouco mais rápido do que atualmente. 21/dia $ Equivalente do tempo ocioso = P0 × 8hr/dia ×$4 = $3. ou seja. Neste caso sua taxa de serviço média passaria a 4 fregueses por hora. faça a análise econômica para o barbeiro. 21 + $3. 94 − $17. O barbeiro deseja fazer uma avaliação econômica entre a situação atual e as 2 alternativas estudadas. diminuindo um pouco a qualidade do corte de cabelo mas diminuindo o preço do corte para $6 para evitar reclamações.100 Teoria das Filas Exemplo 2 Em uma barbearia de um único barbeiro a taxa média de chegadas é de 3 fregueses por hora. Solução Situação atual λ = 3/hr µ = 2/hr M = 3 Receita com os cortes = No médio de fregueses atendidos/dia ×$7/corte = λef × 8hr/dia ×$7 = 98. 94/dia $ Equivalente do tempo perdido = Wq × λef × 8hr/dia ×$2/hr = $17. ao tempo que ele pode descansar (por não ter nenhum freguês esperando) foi atribuído o valor de $4/hora. 42/dia Alternativa a λ = 3/hr µ = 3/hr M = 3 P0 = 0. cobrando somente $5 por corte de cabelo pois haveria uma queda acentuada na qualidade. 96/dia A alternativa b é a melhor solução. O barbeiro é capaz de atender em média 2 fregueses por hora e cobra $7 por cada corte de cabelo. Considerando que o dia tem 8 horas de trabalho. 3657 Wq = 0. 250 Wq = 0. 537 fregueses/hr Rendimento líquido = $104. 73 Rendimento líquido = $98. 333 hr λef = 2. . Como muitos fregueses estão indo embora sem poder serem atendidos. 73 = $84. Com esta alternativa a sua taxa de serviço média iria para 3 fregueses por hora. b) Trabalhar bem mais rápido do que atualmente. 25 fregueses/hr Rendimento líquido = $104/dia Alternativa b λ = 3/hr µ = 4/hr M = 3 P0 = 0.

3.9 Modelo IV: M/M/s: Fila finita

(s > 1)

101

3.9 Modelo IV: M/M/s: Fila finita

(s > 1)

Lq =

Vamos definir 2 variáveis (a e c) ressaltando que elas não tem nenhum significado e são usadas apenas para simplificar a escrita das fórmulas: λ λ a= c= µ sµ Temos então: 1 P0 = M s 1 1 n a + as cn−s n! s! n=0 n=s+1   1 n  p/ n ≤ s   n! a P0   anP0 Pn = p/ s < n ≤ M   S! S n−s     0 p/ n > M P0 asc s! (1 − c)2 1 − cM−s − (M − s) cM−s (1 − c) (s − n)Pn (s − n)Pn
s−1 n=0 s−1

L = Lq + s − λef = µ s − Wq = W = ρ= Lq λef L λef

n=0

λef sµ

Exemplo 1 Uma barbearia com 2 barbeiros tem 5 cadeiras de espera. Os fregueses que chegam quando as 5 cadeiras estão ocupadas, vão embora. Os fregueses chegam a uma taxa média de 6/hora e ficam em média 15 minutos na cadeira de barbeiro. a) Qual a probabilidade de um freguês chegar e ir direto para a cadeira de barbeiro ? b) Qual o no médio de fregueses esperando para serem atendidos ? c) Qual a taxa de chegada efetiva ? d) Quanto tempo, em média, um freguês fica na barbearia ? e) Que percentual de fregueses vai embora ?

102 Solução M =7 λ = 6/hr µ = 4/hr a) P0 + P1 = 0, 4032 = 40, 32% b) Lq = 1, 014 fregueses c) λef = 5, 741 fregueses/hr d) W = 0, 426 horas λef = 0, 0431 = 4, 31% e) 1 − λ

Teoria das Filas

s=2

Exemplo 2 Uma oficina mecânica tem 4 mecânicos sendo que cada carro necessitando conserto é atendido por um único mecânico. Além dos carros sendo consertados só cabem mais 6 automóveis no pátio da oficina e quando ele está cheio os fregueses tem que procurar outra oficina. A taxa média de chegadas de carros para conserto é de 3 por dia. Cada mecânico conserta, em média, 1 carro por dia. a) Qual a probabilidade da oficina estar vazia ? b) Qual o no médio de carros esperando conserto ? c) Qual o no médio de carros na oficina ? d) Dos automóveis que procuram a oficina, quantos em média ficam ? e) Quanto tempo em média um carro espera na fila ? f) Quanto tempo em média um carro fica na oficina ? g) Qual a probabilidade de um carro chegar e ter vaga na oficina ? Solução M = 10 λ = 3/dia µ = 1/dia s=4 a) P0 = 0, 040 = 4% b) Lq = 0, 91 carros c) L = 3, 83 carros d) λef = 2, 92 carros/dia e) Wq = 0, 31 dias f) W = 1, 31 dias g) Pvaga = 1 − P10 = 1 − 0, 02 = 0, 98 = 98%

3.10 Modelo V: M/M/s: População finita

103

3.10 Modelo V: M/M/s: População finita
Em muitos problemas práticos a consideração de que a população é de tamanho infinito leva a resultados distorcidos porque na verdade a população é pequena para ser considerada de tamanho infinito. Quando isto ocorre, a presença de uma ou mais unidades no sistema tem um forte efeito na distribuição das chegadas futuras e o uso de um modelo com população infinita conduz a resultados errados. Um exemplo típico é de um pequeno grupo de máquinas que quebram de tempos em tempos necessitando conserto. Um outro exemplo é o caso de um pequeno grupo de mecânicos que vão a determinado balcão pegar peças ou ferramentas. No caso extremo, por exemplo, se todas as máquinas estão quebradas, nenhuma chegada pode ocorrer. Isto contrasta com os modelos de população infinita nos quais a taxa de chegada é independente do número de unidades que já estão no sistema. Neste tipo de modelo, a taxa de chegada λ , é a taxa de chegada de cada unidade, ou seja, 1/λ é o tempo médio entre chegadas de cada unidade. No caso das máquinas, por exemplo, seria o tempo médio entre quebra de cada máquina. A taxa de chegada efetiva λef dá a taxa média de chegada, considerando-se todos as unidades. As fórmulas para este tipo de modelo são bastante complexas e por causa disto tem sido calculadas e tabeladas para facilitar o seu uso. Para entrar nas tabelas (pág. 244) precisamos de 3 informações: λ X= ⇒ Fator de Serviço λ+µ S ⇒ no de estações de serviço. M ⇒ Tamanho da população. Da tabela obtemos a seguinte medida: F ⇒ Fator de Eficiência. Temos então:

104 Lq = M (1 − F )

Teoria das Filas

λef = M F Xµ 1 W = Wq + µ L = λef W Wq = ρ= Lq λef

MF X s 1
s−1 n=0

P0 =

M! (M − n)! n!

λ µ

n

M

+
n=s n

M! (M − n)! s! sn−s p/ 1 ≤ n < s

λ µ

n

Exemplo 1 Uma companhia pesqueira tem 2 estaleiros para conserto de seus barcos. Cada barco quebra, em média, de 4 em 4 semanas. Cada estaleiro gasta, em média, 1 semana para consertar cada barco. A frota atual da companhia é de 10 barcos. a) Qual a probabilidade do estaleiro estar vazio ? b) Em média quantos barcos quebrados ficam aguardando conserto ? c) Em média quantos barcos estão parados no estaleiro ? d) Qual a taxa de chegada de barcos no estaleiro ? e) Quanto tempo, em média, um barco aguarda para começar a ser consertado ? f) Quanto tempo, em média, um barco fica parado ? Solução λ = 0, 25/semana µ = 1/semana 0, 25 = 0, 2 X= 0, 25 + 1 F = 0, 854 ⇒ (tabela pág. 246) a) P0 = 0, 065 = 6, 5% b) Lq = 1, 46 barcos c) L = 3, 16 barcos d) λef = 1, 708 barcos/semana e) Wq = 0, 85 semanas f) W = 1, 85 semanas s=2 M = 10

 M! λ   P0    (M − n)! n! µ   M! Pn =  P0   (M − n)! s! sn−s     0

λ µ

n

p/ s ≤ n ≤ M p/ n > M

3.10 Modelo V: M/M/s: População finita

105

Exemplo 2 Dois mecânicos tem a tarefa de consertar 5 máquinas. Cada máquina quebra a uma taxa média de uma vez a cada hora. Cada mecânico pode reparar as máquinas a taxa média de 4/hora. a) Qual o no médio de máquinas esperando reparo ? b) Qual o no médio de máquinas que estão fora do serviço ? c) Qual a taxa de chegada quando consideramos as 5 máquinas ? d) Quanto tempo. em média, uma máquina quebrada espera na fila ? e) E no sistema ? Solução M =5 X= λ = 1/hr µ = 4/hr s=2

= 0, 2 1+4 Da tabela (pág. 244): F = 0, 976 a) Lq = 0, 12 máquinas b) L = 1, 093 máquinas c) λef = 3, 904 máquinas/hr d) Wq = 0, 03 horas e) W = 0, 28 horas Exemplo 3 Uma empresa de frete aéreo tem 20 terminais (buferizados) em uma linha de comunicação. Os terminais são usados para entrada de dados no sistema central de computação. O tempo médio necessário pra digitar uma entrada no buffer do terminal é 80 segundos e este tempo de digitação é exponencialmente distribuído. Cada mensagem enviada de um terminal, consome, em média 2 segundos de CPU (exponencial). Calcule quantas requisições dos terminais são enviadas para a CPU e qual o tempo de resposta médio para cada requisição. Solução M = 20 s=1 λ = 0, 75/min µ = 30/min 0, 75 X= = 0, 0244 ≃ 0, 024 0, 75 + 30 Da tabela ⇒ F = 0, 982 Requisições enviadas para a CPU: (λeff ) λeff = M F Xµ = (20)(0, 982)(0, 024)(30) = 14, 14/min

1

196/min = 4. Cada terminal submete um job ao processador a cada 3 segundos (seguindo uma distribuição exponencial). 0196 minutos = 1. 768) = 4. 64 Lq 4.106 Tempo médio de resposta: (W ) Lq = M (1 − F ) = 20(1 − 0. 36 0. 0163 minutos = λeff 285. 53 segundos Exemplo 4 Considere um sistema de time sharing com 20 terminais ativos. 36 Wq = = 0.000 instruções por segundo e cada job. 768 λeff = M F Xµ = (20)(0.000/100. 7533)(1.000 = 5/segundo = 300/minuto 20 = 0. 1762) = 5. 14 Teoria das Filas W = Wq + 1/µ = 0. 0625 ≃ 0.000 instruções. 0255 minutos 14. 982) = 0. em média. O processador central tem capacidade de processar 500. 062 X= 320 Da tabela ⇒ F = 0. 0558 minutos = 3.0255 + 1/30 = 0. Solução M = 20 s=1 λ = 20/min µ = 500. 196 Tempo de resposta médio: (W ) 1 W = Wq + = 0. Determine quantos jobs. 062)(300) = 285. estão no processador central e qual o tempo médio de resposta para cada job submetido. 64 Wq = = 0. 7533/segundo Lq = M (1 − F ) = 20(1 − 0. necessita do processamento de 100. em média (exponencial). 768)(0. 59 jobs . 1762 segundos µ Jobs no processador: (L) L = λeff W = (4.

As fórmulas para o modelo são: λ ρ= µ P0 = 1 − ρ Lq = λ 2 σ 2 + ρ2 2(1 − ρ) L = Lq + ρ Lq λ Wq = 1 µ As equações para Pn(n > 0) são muito complexas. 30)2 = 0. 1 Quando σ 2 = 2 a distribuição é a exponencial e caímos no Modelo I.11 Modelo VI: M/G/1 A distribuição das chegadas segue a Poisson mas a distribuição do serviço segue uma distribuição qualquer (Geral) da qual se conhece a média 1/µ e a variância σ2. 3. 5 = 50% (e) Lq = 0. 09 ρ = 0. Exemplo 1 Pessoas chegam a um pequeno posto do correio a taxa de 30 por hora. uma pessoa espera na fila ? b) Quanto tempo. a análise matemática de modelos de filas com distribuições diferentes da Poisson (Exponencial) é muito difícil e poucos modelos tem solução analítica.11 Modelo VI: M/G/1 107 Distribuições diferentes da Exponencial/Poisson Como já citamos. em média. 2725 pessoas (c) L = 0. W = Wq + a) Quanto tempo. O serviço é executado por apenas 1 funcionário e o tempo de serviço é normalmente distribuído. 5/minuto µ = 1/minuto σ 2 = (0. 30 minutos. µ 2 Quando σ = 0. temos o chamado modelo com duração do serviço constante.3. 5 P0 = 0. ou seja. 545 minutos (b) . segue um distribuição normal com média de 1 minuto e σ = 0. em média. 7725 pessoas (d) Wq = 0. uma pessoa fica no posto do correio ? c) Qual o no médio de pessoas na fila ? d) Qual o no médio de pessoas no posto de serviço ? e) Qual a probabilidade do funcionário estar ocioso ? Solução λ = 0. 545 minutos (a) W = 1.

Solução ρ = 0. ou seja. 5 P0 = 0. 5 minutos (a) W = 1. 75 pessoas (d) Wq = 0. σ 2 = 0. 5 minutos (b) . 25 pessoas (c) L = 0. 5 = 50% (e) Lq = 0.108 Teoria das Filas Exemplo 2 Repetir o exemplo 1 supondo a duração do serviço constante.

Na verdade para cada k temos uma distribuição e por isto podemos considerar a distribuição de Erlang como uma família de distribuições..12 Modelo VII: M/Ek /1 109 3. No último exemplo do modelo anterior supomos uma variação igual a zero para a duração do serviço (σ = 0) enquanto que a distribuição exponencial tem um alto grau de variabilidade (σ = 1/µ).12 Modelo VII: M/Ek /1 Neste tipo de modelo. + Tk segue uma distribuição de Erlang com parâmetros µ e k. a distribuição da duração do serviço segue uma distribuição de Erlang com parâmetro k.Tk são k variáveis aleatórias independentes com uma distribuição exponencial idêntica cuja média é 1/kµ.. Para este modelo temos: (1 + k)λ2 Lq = 2kµ(µ − λ) 2kµ(µ − λ) 1 W = Wq + µ L = λW Wq = (1 + k)λ .... A distribuição de Erlang também é muito importante em teoria das filas pela seguinte propriedade: Suponha que T1 . Assim a constante (σ = 0) e a exponencial ( σ = 1/µ) são elementos desta família com k = ∞ e k = 1..3. Então a duração total (ou seja a execução das k tarefas) segue uma distribuição de Erlang com parametros k e µ. respectivamente. Uma distribuição que “preenche” este intervalo é a chamada distribuição de Erlang. É muito comum que o serviço prestado a uma unidade em um sistema de filas seja constituído de k tarefas consecutivas onde a duração de cada uma delas segue a mesma distribuição exponencial.T2 . com média 1/kµ. Entre estes 2 casos extremos temos uma área intermediária (0 < σ < 1/µ) onde cai uma boa parte das distribuições reais da duração do serviço. Então a soma T = T1 + T2 + . Sua média e desvio padrão são: 1 x= µ 1 1 onde k ≥ 0 e inteiro σ= √ kµ Pode-se ver que k é o parâmetro que especifica o grau de variabilidade das durações de serviço em relação a média.

25/dia T = T1 + T2 + T3 + T4 ⇒ Erlang com k = 4. consecutivamente. 5 µ = 0. 11458/hr Wq = 55 horas 1 W = Wq + = 63 horas µ . O alfaiate faz as 4 tarefas de cada terno antes de começar outro. 25 dias W = 3. Quanto tempo em média um terno demora para ficar pronto ? Solução 1 k=4 =2 kµ 1 =2 µ = 0. 5 1/4µ = 0. 5/semana= 0. Exemplo 2 Um alfaiate faz ternos sob medida. Os pedidos chegam a taxa média de 5. Cada terno. Embora isto quadruplicasse o tempo esperado de serviço.110 Teoria das Filas Exemplo 1 Uma oficina de manutenção de uma linha aérea só tem meios para fazer a manutenção de um motor de cada vez. 25 < 4). Por isso. para ser feito. O tempo necessário para reparar um motor (uma vez que se tenha iniciado o trabalho) tem uma distribuição exponencial com média de 0. cada vez que o avião for a oficina. Existe uma proposição de se trocar a política de maneira que se reparem os 4 motores. 5/dia Wq = 1. 25 dias A situação proposta é melhor (3. O tempo para executar cada tarefa segue uma distribuição exponencial com média de 2 horas. a freqüência com que os aviões necessitariam ir a oficina seria 1/4 da atual.5 dia. 1/kµ = 0. para fazer com que os aviões regressem ao serviço tão logo seja possível. 6 dias por semana). implica na execução de 4 tarefas distintas.5 por semana (8 horas por dia. 125/hora 4µ λ = 5. Deve-se implantar a nova proposta ? Solução Situação atual Modelo I: λ = 1/dia µ = 2/dia W = 1/(µ − λ) = 1 dia Como temos 4 motores para cada avião temos: W = 4 × 1 = 4 dias Situação proposta Modelo VII: λ = 0. Sob esta política os aviões tem chegado segundo um Processo de Poisson a taxa média de 1 por dia. a política adotada tem sido de alternar a manutenção dos 4 motores de cada avião ou seja só se faz a manutenção de 1 dos motores cada vez que o avião vai para a oficina.

2. A taxa de chegada justifica tal contratação ? d) Qual a probabilidade de termos 4 clientes no sistema ? 4) A taxa média de chegada de máquinas quebradas para uma oficina é 80 por semana e a sua capacidade de conserto é de 120 por semana. a) Qual a probabilidade de que uma pessoa chegando ao centro não tenha que esperar ? b) Qual a probabilidade de que a pessoa chegando ao centro tenha que esperar ? c) Qual a probabilidade de termos 3 pessoas no sistema ? d) O diretor da organização irá contratar um outro atendente se ele se convencer que uma pessoa tenha que esperar no mínimo 3 minutos. o empregado fica ocioso por dia ? b) Quantos relógios. a) Que proporção de tempo a oficina fica ociosa ? b) Qual a probabilidade de termos n máquinas na oficina para n = 0. O empregado que conserta tem um tempo médio de serviço de 30 minutos por relógio.13 Exercícios 111 3. O serviço de atendimento leva em média 4 minutos. a) Qual a probabilidade de que um freguês não tenha que esperar ? b) Qual a probabilidade de que se tenha uma fila de espera ? c) O proprietário irá contratar um atendente se ele verificar que um freguês tenha que esperar. . 1.3. Adotar semana de 6 dias com 10 horas de trabalho por dia. a) Se ele conserta os relógios na ordem de chegada. 3 e 4 ? c) Qual o número esperado de máquinas quebradas em um certo instante na oficina ? d) Qual o tempo médio de espera de uma máquina que chega até ela começar a ser atendida ? e) Quanto tempo em média uma máquina fica na oficina ? OBS. O tempo que as pessoas gastam recebendo informação de um tipo ou de outro é suposto como sendo de 3 minutos (Exponencial).13 Exercícios 1) Chegadas a uma oficina que conserta relógios são com uma taxa de 10 por cada 8 horas. quanto tempo. 2 minutos ou mais para ser servido. De quanto o fluxo de chegadas deve aumentar de maneira a justificar o segundo atendente ? 3) O proprietário de uma firma distribuidora de gás espera um cliente a cada 5 minutos. em média. estarão na frente de um relógio que acabou de chegar ? 2) Chegadas a um centro de informações que tem apenas um atendente são com tempo médio de 10 minutos entre uma chegada e a próxima (Poisson). em média. em média.

que podem consertar as máquinas. O modelo real de chegadas tende a seguir uma distribuição de Poisson. Se o lucro for de $22.00 a hora. Uma proposta de re-instalação do consultório.5 máquinas por hora. numa distribuição que se aproxima da exponencial. Existem 2 oficinas. a) Suponha que existem 5 máquinas e apenas um técnico para consertar. para qual oficina deve-se mandar as máquinas ? b) Qual é a escolha se a oficina A pedir $15 por hora e a oficina B pedir $18 por hora. qual será a alteração no lucro horário ? 7) Os veículos chegam a uma estação de pedágio a razão de 10 por minuto de acordo com uma distribuição de Poisson. 5 máquinas/hora. utilizando mais espaço e tornando possível menor perda de tempo. Qual é o número médio de máquinas esperando serem reparadas ? b) Suponha que existem 20 máquinas e 3 técnicos para consertar (cada um com µ = 5 máquinas/hora). permitiria ao médico aumentar o ritmo de atendimento para um paciente de 6 em 6 minutos. o tempo que um veículo espera na estação de pedágio ? c) Se o atendente fosse substituído por uma máquina com um ritmo constante de 12 por minuto. a) Sabendo-se que as informações de A e B são verdadeiras. quais seriam as respostas dos itens a e b ? 8) Sabe-se que a taxa de quebras de certas máquinas é λ = 0.4 máquinas por hora.112 Teoria das Filas 5) Em uma firma as máquinas quebram com uma taxa de 0. A oficina B pede $20 por hora e informa que pode consertar 1. O atendimento real atual é de um paciente de 10 em 10 minutos (exponencial).) a razão de 12 por minuto. Ele programa as chegadas dos pacientes a um ritmo médio de uma de 15 em 15 minutos. A oficina A pede $25 por hora e informa que pode consertar 1. em média.. etc. troco. a) Qual é o comprimento médio da fila de espera ? b) Qual é.50 por cliente e o médico não desejar aumentar o tempo médio de espera dos clientes. 2 máquinas/hora (Poisson). mantidas as demais condições ? 6) Um médico tem mais consultas do que é capaz de dar conta..8 por hora e o custo de cada máquina parada é estimado em $25. A e B. Qual é o número médio de máquinas esperando serem reparadas ? c) Em qual das situações a máquina espera mais para ser reparada ? . O tempo de reparo segue a lei exponencial com µ = 0. O atendente pode atender (dar nota.

em média.000 ? b) Qual é a perda total do sistema se o custo semanal do sistema de atendimento é $6. estimada. a) Quantas horas. estimada. a) Qual a perda semanal. está uma estação de serviço ocupada ? b) Qual a probabilidade que todas as estações estejam ociosas em um certo instante ? c) Qual o comprimento médio da fila ? d) Qual o numero médio de máquinas no sistema de reparos ? 10) Ainda em relação ao problema no 9 responda as seguintes perguntas: a) Qual a probabilidade de se ter somente uma estação ociosa ? somente duas estações ? b) Qual é o número esperado de estações de reparo ociosas ? c) Qual é. Existem atualmente 3 setores de reparos. para uma jornada de 8 horas por dia.13 Exercícios 113 9) Uma firma têxtil tem um grande número de máquinas idênticas cuja taxa de falhas é estimada em 60 por dia.000 ? c) Vale a pena aumentar o número de setores de atendimento para 4 ? . da companhia se cada máquina que não trabalha dá um prejuízo de $300 por dia ? 11) A taxa de chegada a uma oficina de reparos é de 180 por dia.3. Existem 3 estações de reparo cada uma tendo uma taxa de serviço de 25 por dia. Qual é a probabilidade de que: a) A oficina esteja sem clientes ? b) Um freguês tenha que esperar ? c) Somente 2 setores estejam ociosos ? d) Somente um setor esteja ocioso ? e) Que proporção média do tempo um setor está ocioso ? f) Qual é o tempo médio de espera de um freguês que chega ? g) Qual o comprimento médio da linha de espera ? 12) Uma firma textil tem um grande número de máquinas idênticas cuja taxa de falhas é estimada em 50 por semana. da companhia se cada máquina que não trabalha dá uma perda semanal de $10. o tempo que uma máquina que chega no sistema tem de esperar ? d) Qual é a perda diária. A oficina tem 3 setores de atendimento com uma taxa de 100 por dia. cada um tendo uma taxa de serviço de 20 máquinas por semana.

b) Podemos dizer que os resultados seguem uma Poisson com λ = 1. b) A chamada ficará na linha de espera.5 minuto. aumentar para 5 ou manter em 4 o número de funcionários ? 14) Temos as seguintes informações quanto a chegadas de operários no guichet do almoxarifado: X ⇒ no de chegadas em cada 10 minutos. a) Quantas horas. . X 5 6 7 8 9 10 11 12 13 14 15 Fo 1 0 1 2 1 3 5 6 9 10 11 X Fo 16 12 17 8 18 9 19 7 20 5 21 4 22 3 23 1 24 1 25 1 a) Calcule o número médio de chegadas para o intervalo de tempo igual a 10 minutos. c) A chamada receberá o sinal de ocupado.114 Teoria das Filas 13) Há 4 guichês em um banco para atender os clientes.25 por minuto. A taxa de chegada dos clientes é 60 por 6 horas de serviço. perguntase o que é melhor: reduzir para 3. um funcionário gasta executando o seu serviço ? b) Qual é o tempo médio que um cliente fica preso no sistema ? c) Qual é a probabilidade de que um funcionário esteja esperando por um cliente? d) Qual o número esperado de funcionários sem trabalhar num certo instante ? e) Supondo que cada funcionário recebe $5 por hora e se soubermos que para cada cliente que tiver que esperar há uma perda de $0. 6 chegadas/min ? 15) O escritório de uma empresa aérea tem 2 funcionárias atendendo telefonemas para reserva de voos. Se as 3 linhas estão ocupadas a chamada recebe o sinal de ocupado e a reserva é perdida. Em cada guichê um funcionário gasta um tempo variável servindo os usuários. Fo ⇒ freqüência observada. Os clientes são atendidos a medida que chegam. As chamadas ocorrem aleatoriamente (Poisson) a uma taxa média de uma por minuto. Ache a probabilidade de que: a) Uma chamada seja imediatamente atendida por uma funcionária. porém o tempo médio de atendimento é 20 minutos por cliente. A duração de cada ligação tem uma distribuição exponencial com uma média de 0. por cada 30 horas de serviço de uma semana. Além disso uma chamada pode ficar em espera até uma das funcionárias estar disponível para atender.

caçadores chegam a um posto de controle a taxa média de 10/hr. Assumindo entrada Poisson e serviço exponencial responda: a) Qual o número médio de usuários esperando serviço ? b) Quanto tempo um usuário esperará para ser servido ? c) Qual a probabilidade de que um usuário fique menos de 15 minutos no sistema ? d) Qual a probabilidade que um usuário fique mais de 10 minutos no sistema ? 17) Suponha que em média 9 usuários cheguem a cada 5 minutos (Poisson) e o mecanismo de serviço pode servir usuários a uma taxa média de 10 usuários a cada 5 minutos. A taxa média de chegadas é 4/hr. Qual deve ser a taxa de serviço mínima ? 20) Uma máquina Xerox é operada por um funcionário que ganha $3 por hora.13 Exercícios 115 16) Uma estação de serviço espera um usuário a cada 4 minutos em média. b) O tempo médio de espera de uma tarefa no sistema.3. quando a distribuição da verificação é: a) Constante b) Exponencial As chegadas são Poisson. Assuma chegada Poisson com taxa média de 5 tarefas/hora. O tempo médio no sistema não deve exceder 1 hora. Se um dia de 8 horas é usado determine: a) A ociosidade (em %) da máquina. O tempo de serviço é exponencial. Qual deve ser a taxa mínima de verificação para assegurar que a espera do caçador não será maior que 20 minutos. qual o ganho médio diário do funcionário ? 21) Durante a estação de caça. c) Se o funcionário só ganhar por horas trabalhadas. O tempo de execução de cada tarefa varia de acordo com uma distribuição exponencial com média de 6 minutos. . qual deve ser a taxa de serviço em média (exponencial) para que o número de usuários no sistema seja menor que 4 ? 19) Considere um sistemas de filas com entrada Poisson. a) Qual o no médio de usuários esperando serviço ? b) Qual o tempo médio de espera na fila ? c) Como a) e b) são afetados se a taxa de serviço é dobrada ? 18) Se usuários chegam para serviço de acordo com uma distribuição de Poisson a taxa média de 5/dia. O serviço dura em média 3 minutos.

2. a) Qual a probabilidade da máquina estar ociosa ? b) Qual é a probabilidade das 3 secretárias terem que usar a máquina ao mesmo tempo ? c) Qual o no médio de secretárias usando a máquina ? . O barbeiro atende em média 4/hr (exponencial). Os fregueses chegam de acordo com uma distribuição de Poisson com média de = 5/hr. b) O comprimento médio da fila. A taxa de chegada é Poisson com λ = 4/hr. W . 24) Uma barbearia de 1 barbeiro pode acomodar um máximo de 5 pessoas de cada vez (4 esperando e 1 sendo atendida). Lq . Considere chegadas Poisson com uma média de 10 minutos entre chegadas. calcule L. a) Que percentagem do tempo o barbeiro está ocioso ? b) Qual a taxa de chegada efetiva de fregueses ? c) Que fração de fregueses potenciais vão embora ? d) Qual o no esperado de fregueses esperando para serem atendidos ? e) Quanto tempo em média um freguês fica no barbeiro ? 25) Um escritório tem uma única linha telefônica. Determine: a) A duração média de cada tarefa no sistema. 3. Cada chamada tem uma duração média de 3 minutos e variância de 2 minutos. 1.116 22) No exemplo anterior que fração do tempo o posto estará ocupado ? Teoria das Filas 23) Uma loja tem 4 vendedores. Cada tarefa deve passar através de 3 fases de preparação e uma fase final de montagem. Wq e Pn para n = 0. Se o tempo de fornecer serviço é exponencialmente distribuído com uma média de 20 minutos/freguês. Qual a probabilidade da linha estar ocupada em um dado instante ? 26) Tarefas chegam a uma estação de serviço de acordo com uma distribuição de Poisson com uma média de 10 minutos entre cada chegada. 27) As secretárias de 5 Departamentos em uma Universidade devem periodicamente copiar folhas em uma máquina xerox. A duração do serviço é exponencial com µ = 6/hr. Também considere que qualquer vendedor pode fornecer o serviço desejado para qualquer freguês. As chamadas são feitas e recebidas a taxa de 10/hr (Poisson). O tempo gasto em cada fase é independente do tempo gasto em qualquer das outras fases e é considerado ser exponencial com média de 2 minutos.

Um segundo assistente deve melhorar a taxa de serviço em 80%. d) Se o posto oferecesse aos fregueses bombons.30 e o desvio padrão 0. Compare as alternativas: 1 bomba com um atendente. O posto está aberto das 7:00 as 22:00 horas. Considerando o dia com 8 horas de trabalho.5 minutos. Dois atendentes na mesma bomba podem fornecer serviço em 2. Um atendente pode servir um freguês em 4 minutos. O tempo dos mecânicos é avaliado em $7 por hora.. a taxa de chegada passaria a um a cada 3 minutos mas em compensação o lucro por freguês passaria a $0.5 minutos. Como os mecânicos estão reclamando.. Os mecânicos chegam aleatoriamente para serviço à taxa de 10 por hora.50 por hora deve-se contratá-lo ? (máximo de 3 carros no sistema). faça a justificativa econômica da situação. $36 por dia. Um assistente custa no entanto. Se o atendente ganha $2.30. belas recepcionistas. deve-se implantar esta política ? e) E com 2 atendentes ? . Um simples atendente pode prestar serviço completo em 4 minutos. 31) Um posto de gasolina com uma única bomba recebe fregueses aleatoriamente à taxa de um cada 5 minutos. Um assistente deve melhorar a taxa de serviço em 50%. Cada freguês produz um lucro líquido de $0. 29) Durante as horas de pico. Os mecânicos são atendidos aleatoriamente à taxa de 12 por hora. independente do seu tamanho. Ele tem registrado o tempo de serviço para 100 fregueses. Considerando 1 atendente.70. um barbeiro tem fregueses chegando aleatoriamente à taxa de um a cada 25 minutos. Cada freguês dá em média um lucro de $1. Sabe-se que se já existem 3 carros no sistema. etc. qual o tamanho esperado da fila ? b) Se o tempo de serviço fosse de exatamente de 20 minutos. qual seria o lucro diário esperado ? c) Se o posto contratasse um segundo atendente a taxa média de serviço poderia ser reduzida para 2. a) Considerando que as taxas de chegada e de serviço são aplicáveis para todas as horas em que o posto está aberto. Em horas a média é de 0.13 Exercícios 117 28) Um posto de gasolina com uma única bomba tem as seguintes informações: A taxa média de chegada é de 1 freguês a cada 4 minutos.. qual o lucro diário esperado ? b) Se os fregueses esperassem na fila. O posto fica aberto 15 horas por dia. Chegadas e serviço são Poisson e exponencial respectivamente. a) Durante as horas de pico. os fregueses procuram outro posto.092. 1 bomba com 2 atendentes e 2 bombas cada uma com 1 atendente. Não mais que 2 fregueses esperarão na fila. chaveiros. a oficina está pensando em contratar assistentes para o balcão de peças. qual o tamanho esperado da fila ? 30) Uma grande oficina de automóveis tem uma sala com um balcão onde os mecânicos vão apanhar as peças necessárias para consertar os carros.3.

66667 relógios µ−λ 2 − 1. em 1993. então o fluxo de chegadas deve ser 10/h Exercício 3 Modelo M/M/1 1 λ= = 12/h 5 min Duração média do serviço = 4 min ⇒ µ = 15/h a) Probabilidade de que um freguês não tenha que esperar λ 12 P0 = 1 − = 1 − = 1 − 0.05 h λ λ ⇒ 0. 89% µ 20 d) λ = ? µ = 20/h Wq = 3 min = 0. 8 − 80% . 2 = 0. na frente de um relógio que acabou de chegar: λ 1. 3 ou 30% c) Probabilidade de 3 pessoas no sistema: λ 3 6 3 P3 = P0 = 0. 8 = 0. 7 = 0. 25 Exercício 2 Modelo M/M/1 Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h duração média do serviço = 3 min ⇒ µ = 20/h a) Probabilidade de que uma pessoa chegando ao centro não tenha que esperar: 6 λ = 0. 7 ou 70% P0 = 1 − = 1 − µ 20 b) Probabilidade de que uma pessoa chegando ao centro tenha que esperar: P (n > 0) = 1 − P0 = 1 − 0. Exercício 1 Modelo M/M/1 10 = 1.1 Solução dos exercícios Estes exercícios foram resolvidos por Leonardo Barroso Gonçalves. 25 P0 = 1 − = 1 − = 0.5% do tempo µ 2 Tempo esperado que o empregado fica ocioso por dia=0. 375 ou 37. em média. 25 L= = = 1.118 Teoria das Filas 3. 2 = 20% µ 15 b) Probabilidade de que se tenha uma fila de espera P (n > 0) = 1 − P0 = 1 − 0. 7 = 0. 0189 = 1. 05 = ⇒ λ = 10/h Wq = µ(µ − λ) 20(20 − λ) Como Wq ≥ 3 min. 25/h λ= 8h Duração média do serviço = 30 minutos ⇒ µ = 2 / h a) Chegadas para atendimento: FIFO Proporção do tempo que o empregado fica ocioso: λ 1.13. aluno do Curso de Estatística e da cadeira.375 × 8h = 3 horas b) No de relógios que estarão.

5 horas e) W = Wq + = 0.3. 8 Custo= 1.57/h Oficina B µ = 1.5714/h Custo total = $ 25+$ 28. 8/h Custo máquina parada = $25. 2 = 0.71425 × 0. 192% µ 15 Exercício 4 Semana = 6 dias Dia = 10 horas Modelo M/M/1 λ = 80/semana µ = 120/semana a) Proporção do tempo que a oficina fica ociosa λ 80 P0 = 1 − = 1 − = 0. 584% o c) N esperado de máquinas quebradas na oficina em um certo instante λ 80 L= = = 2 máquinas µ−λ 120 − 80 d) Tempo médio de espera de uma máquina que chega até ser atendida λ 80 Wq = = = 0. a taxa de chegada de 12/h já justifica um 2o atendente. 8765% P4 = 0. d) Probabilidade de ter-se 4 clientes no sistema λ 4 12 4 P4 = P0 = 0.71425 Custo da Fila = $35. 4/h Custo do serviço = $ 20/h Tempo médio que uma máquina fica parada: c) Wq = .5714 = $ 53.42857h × $ 25/h= $35.00/h a) Oficina A µ = 1. 098765 = 9. 025 semanas = 1. 148148 = 14. 2666 horas = 16 min µ(µ − λ) 15(15 − 12) Tempo médio que um freguês espera para ser servido = 16 min Como tal tempo é superior a 2 min. 065584 = 6. 016667 ∼ 1 hora = µ(λ − µ) 120(120 − 80) 1 1 = 0. 3333 = 33. 42857 horas µ−λ 1. 5 − 0. 33% µ 120 b) Probabilidade de n máquinas na oficina P0 = 0. 33% 1 80 n Pn = 3 120 P1 = 0. 3333 = 33. 5/h Custo do serviço = $25/h Tempo médio que uma máquina fica parada: 1 1 W = = = 1. 016667 + µ 120 Exercício 5 Modelo M/M/1 λ = 0. 2222 = 22. 22% P2 = 0.8/h = $ 28. 08192 = 8. 8148% P3 = 0.13 Exercícios 119 λ = 12 = 0.

6923/h Wq = Wq ⇒ = ∗) 3 10(10 − λ 13 Lucro por cliente = $ 22.66 × 0.08/h Alteração no lucro horário: 173.50 × 4/h = $ 90/h Situação Proposta λ∗ =? µ∗ = 10/h λ∗ λ∗ ∗ Wq = ∗ ∗ = µ (µ − λ∗) 10(10 − λ∗) λ∗ 100 1 ∗ ⇒ 100 − 10λ∗ ⇒ λ∗ = = 7.32/h CTB < CTA ⇒ Oficina B é melhor b) Oficina A custo do serviço = $30/h custo total = $ 15 + $28.50 Lucro horário = $ 22.6923/h=$ 173. 8 Custo = 1.8/h = $33.120 = 1. 666 horas µ−λ 1. 4 − 0.57/h Oficina B custo do serviço = $ 15/h custo total = $ 18 + $ 33. 08 Exercício 7 Modelo M/G/1 λ = 10/min µ = 12/min a) Comprimento médio da fila de espera .66 Custo da fila = $41.328 = $ 51.5714 = $43.50 × 7.50 Lucro horário = $22.328 = $ 53. 08 − 90 = $83.50 Proposta: µ∗ = 1/6 min = 10/h Tempo médio de espera dos clientes inalterado ⇒ Wq = W∗ q Situação Atual λ = 4/h µ = 6/h λ 4 1 Wq = = = 0.666h × $ 25/h = $ 41. 3333 = h µ(µ − λ) 6(6 − 4) 3 Lucro por cliente = $22.32/h CTA < CTB ⇒ Neste caso a oficina A seria melhor W = = 1 1 Teoria das Filas Exercício 6 Modelo M/M/1 1 = 4/h λ= 15 min 1 = 6/h µ= 10 min Lucro por cliente = $ 22.328/h Custo total = $ 20+ $ 33.

167 veículos µ(µ − λ) 12(12 − 10) b) Tempo que um veículo espera na estação de pedágio 1 1 W = = = 0. 2 + 0. 5 Da tabela ⇒ F = 0. 46046 máq/h ⇒ Wq = 1.3. 038 × 5 = 3. 29 min λ µ 10 12 Exercício 8 λ = 0. 644) × 0. 999) × 0. 999) = 0. 7962 = 0. 999 Número de máquinas esperando serem reparadas: Lq = N (1 − F ) = 20(1 − 0. 644 no médio de máquinas esperando serem reparadas: Lq = M (1 − F ) = 5(1 − 0. 78 máquinas b) Modelo M/M/3 população finita. 038 (Fator de Serviço) X= λ+µ 0. 286 × 0. 7962 máq/h ⇒ Wq = 0. 286 (Fator de Serviço) ≡ 0.13 Exercícios 121 102 = 4. 2/h µ = 0. 00527 hr a b Como Wq > Wq . 02/3. 644) = 1. 78/0. 2 λ = = 0. 02 máquinas c) Tempo médio de espera de uma máquina para ser reparada: λef = M F Xµ Lq Wq = λef a) λef = 5(0. 46046 = 3. 5 = 0. temos que na situação A a máquina espera mais para ser reparada Lq = = λ2 . M= 20 máquinas µ = 5/h 0. 5 min µ−λ 12 − 10 c) Máquina constante ⇒ µ = 12/min σ 2 = 0 λ 10 5 ρ= = = µ 12 6 Comprimento médio da fila de espera 5 2 102 × 0 + λ 2 σ 2 + ρ2 6 = 2. 083 veículos = Lq = 5 2(1 − ρ) 2 1− 6 Tempo que um veículo espera na estação de pedágio Lq 1 2. 8657 hr b) λef = 20(0.290 λ+µ 0. 2 + 5 Da tabela ⇒ F = 0. 5/h a) Modelo M/M/1 população finita M = 5 máquinas S=1 λ 0.083 1 W = + = + = 0. 2 X= = = 0.

18% 2 25 Probabilidade de termos somente duas estações ociosas: 60 × 0. 05618 = 0. 4832% P1 = 25 b) Número esperado de estações de reparo ociosas: Seja k o número de estações ociosas. 618% 2 60 1 60 60 3 1 1+ + + 25 2 25 6(1 − 0. 8)2 d) Número médio de máquinas no sistema de reparos: 60 λ = 4. 589 máquinas s s! (1 − ρ)2 3 × 6 × (1 − 0. 05618 = 0. 989 máquinas= 5 máquinas L = Lq + = 2. 1618 = 16.134832 + 3 ×0. E(k) = 0 × P(n ≥ 3) + 1 × P(n = 2) + 2 × P(n = 1) + 3 × P(n = 0) = 0 + P2 + 2P1 + 3P0 =0. 134832 = 13. 8 = 80% Sµ 3(25) Número de horas por dia em que uma estação de serviço está ocupada: ρ × 8 h/dia = 0. 05618 µ 25 Lq = = = 2. 04315 dias λ 60 d) Máquina parada ⇒ $300/dia . 4 h/dia b) Probabilidade de que todas as estações estejam ociosas em certo instante: 1 P0 = s−1 n 1 λ s 1 λ + µ s!(1 − ρ) µ n=0 n! 1 P0 = = 0. 6 estações ou ⇒ E(k) = (1 − ρ) × 3 c) Tempo médio que uma máquina que chega ao sistema tem que esperar: Lq 2. 589 + µ 25 Exercício 10 Modelo M/M/3 a) Probabilidade de termos somente uma estação ociosa: 1 λ n P0 Pn = n! µ 1 60 2 P2 = × 0. 05618 = 0.122 Teoria das Filas Exercício 9 λ = 60/dia µ = 25/dia S=3 Modelo M/M/3 a) Proporção média do tempo que uma estação está ocupada: λ 60 ρ= = = 0. 8) 25 c) Comprimento médio da fila: λ s+1 60 4 P0 × 0. 8 × 8h/dia = 6. 05618 = 5. 589 Wq = = = 0. 1618 + 2 × 0.

145985) = 0.262773 + 0. 6) b) Probabilidade de que um freguês tenha que esperar: 1 λ n P0 Pn = n µ P1 = 1. 82 P2 = (0.236496) = 0. 6)2 Tempo médio de espera de um freguês que chega: 0. 84 × 0.70/dia Perda diária estimada da companhia = $1496.945 × 60/dia = $1496.4746% c) Probabilidade de que somente dois setores estejam ociosos: P(2 setores ociosos) = P1 = 0. 8(0. 08315 dias λ λ λ µ 25 Custo = 0.13 Exercícios 123 Tempo médio que uma máquina fica parada: λ λ Lq + λWq + L 1 1 µ µ W = = = = Wq + = 0.3.262773 = 26.70/dia Exercício 11 λ = 180/dia µ = 100/dia S=3 Modelo M/M/3 a) Probabilidade de que a oficina esteja sem clientes: 1 P0 = s−1 n 1 λ 1 λ s + µ s!(1 − ρ) µ n=0 n! λ 180 = = 1.945 Custo da fila = $24. 145985) = 0. 6 × (1 − 0. 236496 2 P(n ≥ 3) = 1 – P(n < 3) = 1 – (P0 + P1 + P2 ) = 1 – (0. 53212 Lq = = 0. 04315 + = 0. 002956 dias Wq = λ 180 .6496% e) Proporção média do tempo que um setor está ocioso = 1 − ρ = 1 − 0. 53212 clientes s s! (1 − ρ)2 3. 5985% P0 = 2 1. 145985 = 14. 6 = 0. 83 2 6(1 − 0. 8 µ 100 180 λ = = 0.354746 = 35.2773% d) Probabilidade de que somente um setor esteja ocioso: P(1 setor ocioso) = P2 = 0. 6 ρ= Sµ 300 1 = 0.236496 = 23. 8 1 1 + 1. 8 + + 1.8315 dia × $300/dia = $24. 4 = 40% λ s+1 P0 1. 262773 1.145985 + 0. 145985 µ f) Lq = = = 0.

120225 máquinas Perda semanal estimada da cia = 0. 5 + + + 2. 044944 P0 = 2. 625) 2. 54 2 6 24(1 − 0. 5 µ 50 λ = = 0.50/semana c) λ = 2. 5 1 1 + 2.112. 625 ρ= Sµ 4(20) S=4 1 P0 = = 0.112.000/semana 1 P0 = s−1 n 1 λ 1 λ s + µ s!(1 − ρ) µ n=0 n! 50 λ = = 2. 54 × 0. 5 + + 2.07369 2 3 2.50/semana b) Custo do serviço = $ 6. 52 1 3 1 + 2.112.124 g) Comprimento médio da fila de espera: Lq = 0. 044944 µ = = 3. 52 × 0. 073695 = 0.120225 semanas × $ 10. 51125 máquinas Lq = s s! (1 − ρ)2 1 2 3×6× 6 λ L = Lq + = 3.50/semana Perda total do sistema = $ 66. 53212 fregueses Teoria das Filas Exercício 12 λ = 50/semana µ = 20/semana S=3 Modelo M/M/3 a) Máquina parada = $10.000 + 60. 053309 máquinas Lq = 4 × 24 × (1 − 0. 625)2 . 5 µ 20 λ 50 5 ρ= = = Sµ 3(20) 6 1 = 0. 01125/50 = 0. 5 = 6. 5 2.000/semana × 50/semana = $ 60. 5 1 2 6 6 λ s+1 P0 2. 51125 + 2.000/semana Custo de máquinas paradas = $ 6.50 = $ 66. 01125 máquinas µ Tempo médio que uma máquina fica parada W = L/λ = 6.112.

330.330. 66219 horas= 39. 621914/10 = 0. 28858 clientes Lq = s s! (1 − ρ)2 4 × 24 × (1 − 0.90 = $ 38. 03309 W = = = 0. 28358 + = 6. 02131 µ 3 = = 3. 621914 clientes µ 3 Tempo médio que um cliente fica preso no sistema W = L/λ = 6. 7314 minutos .83333 × 30h/semana = 25h/semana 1 b) P0 = s−1 n 1 λ 1 λ s + µ s!(1 − ρ) µ n=0 n! 1 = 0.330.000 = $8.90/semana Como com 4 setores a perda total diminui. 03309 máquinas $6. 053309 + 2.90/semana Perda total do sistema = $ 38. 5 = 3.0213 P0 = 2 10 1 10 10 4 1 10 3 1 1+ + + + 3 2 3 6 3 24(1 − 0.13 Exercícios 125 L = 0.330. 83333)2 λ 10 L = Lq + = 3. então vale a pena aumentar o número de setores para 4.90/semana Custo total estimado = $ 8. Exercício 13 S=4 60 λ= = 10/h 6h Modelo M/M/4 Duração do serviço = 20 min ⇒ µ = 3/h a) Proporção média do tempo que um funcionário está executando o seu serviço. 0606618 semanas λ 50 Custo do serviço = $ 8. 10 λ ρ= = = 0.606618 semanas × $ 10.000 + $ 30. 83333 Sµ 4(3) Número de horas por semana que um funcionário está ocupado = 0.000 Custo semanal do sistema = 4 × 3 Tempo médio que uma máquina fica parada: L 3.000/semana Custo das máquinas paradas = 0.3.000/semana × 50/semana = $ 30. 83333) 3 10 5 λ s+1 P0 × 0.

328858h × $15/h= $4. 6667 funcionários e) Cada funcionário = $5/h Cliente esperando = $0. 28858 Wq = = 0. 328858 horas 10 Custo = 0. 1183889) + 3(0.126 Teoria das Filas c) Probabilidade de que um funcionário esteja esperando por um cliente (P ∗) 1 λ n Pn = P0 n µ 10 × 0. S=4 Custo do serviço = 4 × $5/h = $20/h Tempo médio que um cliente fica esperando na fila: 3. 9329 Custo da fila = $4. 131543 = 0. 02131 + 0. 11832289 + 0. 329/h . 342275 = 34. 02131 = 0. 02131 = 0. 131543 2 3 1 10 3 P3 = 0. 02131) = 0. 9329 × 10/h = $49. 071033 P1 = 3 1 10 2 P2 = 0. 329 = $69. 329/h Custo total = $20 + $49. 131543 + 2(0. 131543 6 3 P∗ = P(n < 4) = P0 + P1 + P2 + P3 = 0.25/min = $15/h S=3 Fila e Custo tendendo ao infinito pois λ > sµ. 071033) + 4(0. 02131 = 0. 2275% d) Número esperado de funcionários sem trabalhar num certo instante: Seja k o número de funcionários ociosos Ek = 0×P (n ≥ 4)+1×P (n = 3)+2×P (n = 2)+3×P (n = 1)+4×P (n = 0) Ek = P3 + 2P2 + 3P1 + 4P0 Ek = 0. 071083 + 0.

o melhor é aumentar o número de funcionários para 5. 06533h × $15/h= $0. 6533 = 0. 7995 Como o menor custo total foi para S = 5. 7995 = $34. 06533 horas Wq = 10 Custo = 0. 6533 clientes Lq = 5 × 120 × (1 − 0. 6666)2 Custo do serviço = 5 × $5/h = $25/h Tempo médio que um cliente fica esperando na fila: 0.3. 97995 × 10/h= $9.13 Exercícios 127 S=5 P0 = 1+ 0.03175 1 10 3 + 6 1 2 10 3 2 + 1 6 10 3 3 + 1 24 10 3 4 + 1 120(1 − 0. 97995 Custo da fila = $0. 6666) 10 3 5 = × 0. 0239338 3 = 0. 10 . 7995/h Custo total = $25 + $9.

61 por 10 minutos fobs 100 b) Poisson com λ = 1. 6 chegadas/min = 16 chegadas/10 min Seja k = no de observações A frequência esperada teórica) é dada pela fórmula: e−λλk P (k) = k! = Média = x = ¯ xi × fobs 1561 Teoria das Filas .128 Exercício 14 a) X ⇒ número de chegadas a cada 10 minutos (xi) fobs ⇒ frequência observada xi f obs xi × f obs 5 1 5 6 0 0 7 1 7 8 2 16 9 1 9 10 3 30 11 5 55 12 6 72 13 9 117 14 10 140 15 11 165 16 12 192 17 8 136 18 9 162 19 7 133 20 5 100 21 4 84 22 3 66 23 1 23 24 1 24 25 1 25 Σ = 100 1561 = 15.

6 8.2 2.02 0.06 0.9 9.3 7.03 0.08 0.03 0.04 0.13 Exercícios 129 P(k) 0 0 0.02 0.9 =10 0.90 Fobs 1 0 1 2 1 3 5 6 9 10 11 12 8 9 7 5 4 3 1 1 1 (Fobs – Fesp)2 / Fesp Chegadas por 10 min 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 =7.4 5.3.0 6. ou seja a distribuição observada segue uma discalc tab tribuição de Poisson com λ = 16/10 min.0 5. 05 ν = 12 − 1 − 1 = 10 χ2 = 18.10 0.6 4.00 0.12 0. Nível de significância α = 0.01 0.08 0.10 0.1 9.40 0.3 3.06 =11.18 0.07 0.1 0.07 0.01 0.06 0. .3 9. 394 = χ2 calc H0 : A distribuição observada segue uma distribuição de Poisson com λ = 16/10 min.9 9.011 0 0.7 =8 0.20 1.09 0.09 0. H1 : A distribuição observada não se ajusta a uma distribuição de Poisson com λ = 16/10 min.303 1.01 Fesp 0.1 3.10 2.01 0.6 1.10 0.06 0. 31 tab Como χ2 < χ2 aceitamos H0 .05 0.3 8.05 0.45 0.3 0.

01887 = 1. 5 µ 2 1 λ = = 0.25 = = 1 − e−1. 15 horas = 9 minutos λ 15 c) Probabilidade de que um usuário fique menos de 15 min no sistema. 7135 = 71.75)016667 = e−0. 2865 = 0. 60377) = 0. 46% . 30188 P = P0 + P1 = 0. 887% P3 = 2×2 Exercício 16 Modelo M/M/1 Intervalo entre as chegadas = 4 min ⇒ λ = 15/h Duração média do serviço = 3 min ⇒ µ = 20/h a) Número médio de usuários esperando o serviço. 35% d) Probabilidade de que um usuário fique mais de 10 minutos no sistema.25 h λ ρ= = 0.25 = 1 − 0. 60377 + 0. 4346 = 43. 5655% b) Probabilidade da chamada ficar na linha de espera 1 P2 = (0. 60377 = 0. 60377) = 0. 5 × 0. 25 Wq = = = 0. 5)3 (0. 5) 2 2 1 n a P0 Pn = n! P1 = 0. 5 min ⇒ µ = 2/min a) Probabilidade de uma chamada ser atendida por um funcionário (P) λ 1 a= = = 0.83335 = 0. 5) (0. 25 usuários Lq = µ(µ − λ) 20(20 − 15) b) Tempo médio de espera de um usuário para ser servido. 60377 1 1 2 + 2 (0. 905655 = 90. 152 λ2 = = 2. 5% 2 c) Probabilidade da chamada receber sinal ocupado anP0 Pn = s! sn−s (0. 75 µ P (T < 0. 25 c= Sµ 2(2) 1 P0 = = 0. 10 minutos = 0. 301885 = 0. 25) = 1 − P (T ≥ 0.75)0. 15 min = 0. 5)2 (0. 075 = 7.130 Teoria das Filas Exercício 15 Modelo M/M/2 Fila finita M =3 S=2 λ = 1/min Duração média do serviço = 0. 25) = 1 − e−20(1−0. 25) = 1 − P (T > 0.16667 horas P (T > 0. 166667) = e−20(1−0. Lq 2. 5 + (0. 25) 1 + 0.

5 λ = 0.5 × 8h/dia = $12/dia . 8) b) Tempo médio de espera na fila.13 Exercícios 131 Exercício 17 Modelo M/M/1 9 = 1. 8. 25/dia µ−5 Exercício 19 Modelo M/M/1 λ = 4/ h µ =? 1 1 W <1⇒W = ⇒ <1⇒1<µ−4⇒µ<5h µ−λ µ−4 Taxa de serviço mínima µ = 5/h Exercício 20 λ = 5/ h dia = 8 horas Duração média do serviço = 6 min⇒ µ = 10/h a) Proporção média do tempo que a máquina fica ociosa. 8 ′ c) µ = 4/ min 1. 5 Ganho médio diário do funcionário = $3/h ×0. 5 = 50% P0 = 1 − = 1 − µ 10 b) Tempo médio de uma tarefa no sistema. 368/1. 1 usuários Lq = µ(µ − λ) 2(2 − 1. 20 minutos Exercício 18 Modelo M/M/1 λ = 4/ h µ =? 5 L<4⇒ < 4 ⇒ 5 < 4µ − 20 ⇒ 4µ > 25 ⇒ µ > 6. 8) ′ ′ Wq = Lq λ = 0. 5 minutos Wq = λ 1. 1 1 W = = = 0. 1. 8/ min λ= 5 min 10 µ= = 2/ min 5 min a) Número médio de usuários esperando o serviço. 368 usuários 4(4 − 1. 82 ′ Lq = = 0. 2h = 12 min µ−λ 10 − 5 c) Fator de utilização da estação de serviço. 1 Lq = = 4.3. ρ = 1 − P0 = 0. 8 = 0. 82 λ2 = = 8.

72 λ 10 b) ρ = = = 0. 72 b) Modelo M/M/1 λ = 10/h µ =? 1 W ≤ 20 min ⇒ W ≤ h 3 1 1 1 1 ⇒W ≤ ⇒ < ⇒ µ − 10 > 3 ⇒ µ > 13/h W = µ−λ 3 µ − 10 3 Exercício 22 Fração do tempo que o posto está ocupado. 72 Logo µ ≥ 11.132 Teoria das Filas Exercício 21 Modelo M/G/1 λ = 10/h µ = ? Duração do serviço constante ⇒ σ 2 = 0 1 W ≤ 20 min W ≤ h 3 Lq 1 1 1 λ 2 σ 2 + ρ2 1 λ2 /µ2 100/µ2 W = + = + = + = + = λ 10 λ µ 2(1 − ρ)λ µ µ µ 2λ 1 − 20 1 − µ µ 100 µ 1 5 1 5 + µ − 10 µ−5 = 2 × + = + = = = µ 20µ − 200 µ µ(µ − 10) µ µ(µ − 10) µ(µ − 10) 1 µ−5 1 3µ − 15 − µ(µ − 10) µ−5 = ⇒ − =0⇒ =0 = µ(µ − 10) 3 µ(µ − 10) 3 3µ(µ − 10) 3µ − 15 − µ2 + 10µ =0 ⇒ 3µ(µ − 10) −µ2 + 13µ − 15 =0 3µ(µ − 10) Para dar zero o numerador tem que ser = 0. 28 ⇒ a fila se tornaria infinita. 7692 = 76. µ2 = 11. 32% a) ρ = µ 11. 8532 = 85. 5 ρ= Sµ 12 . logo: µ2 + 13µ − 15 = 0 Resolvendo temos: µ1 = 1. 10 λ = = 0. 92% µ 13 Exercício 23 Modelo M/M/4 s=4 Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h Duração média do serviço = 20 min ⇒ µ = 3/h 6 λ = =2 µ 3 6 λ = = 0.

0888) = 3. 1739 + 2 = 2. 086% 2 1 3 P3 = 2 (0. 1739 fregueses s s! (1 − ρ)2 4(24)(1 − 0. 27104 = 27.13 Exercícios 133 1 P0 = s−1 n=0 1 n! λ µ 1 n n + 1 6 1 s!(1 − ρ) 1 + 1 λ µ s P0 = 1+2+ Pn = 1 λ = 0. 104% λ 5 . 17391 = 17. 13043 = 13. 391% 6 λ S+1 P0 25 (0.3. 13043) = 0. 086% 1 P2 = 22 (0. 5)2 λ L = Lq + = 0. 1739 fregueses µ L W = = 2. 6448 fregueses/hora c) Fração de fregueses potenciais que vão embora. 3623 horas λ Lq 0. 13043) = 0. 6448 = = 0. 26086 = 26. 5) P0 n! µ P1 = 2(0. 0888 = 8. 1739/6 = 0. 1739 Wq = = = 0. 26086 = 26. 13043) = 0. 13043) µ Lq = = = 0. λef = µ(1 − P0 ) = 4(1 − 0. λ − λef 5 − 3. 02888 horas λ 6 Exercício 24 Modelo M/M/1 Fila Finita s=1 M =5 λ = 5/ h µ = 4/ h a) Percentagem do tempo que o barbeiro está ocioso. λ 1− µ P0 = λ=µ λ M+1 1− µ 5 1− 4 = 0. 043% 24 2 22 + 23 24(1 − 0. 88% P0 = 5 6 1− 4 b) Taxa de chegada efetiva de fregueses.

13167 − (1 − 0. 1+k λ2 Lq = = 2 tarefas 2k µ(µ − λ) . 8592 horas= 51. 5 b) Comprimento médio da fila. 5 − 6) 1 1 = 0. 5/h kµ 30 4µ 30 a) Duração média de cada tarefa no sistema. 333 horas Wq = 2kµ(µ − λ) 2(4)(7. 55 min λef 3.134 Teoria das Filas d) Número esperado de fregueses esperando para serem atendidos. L 3. 5)(7. 22047 fregueses e) Tempo médio que um freguês fica no barbeiro. 5(6) (1 + k)λ = = 0. 5 = 50% µ 20 Exercício 26 Modelo M/E4 /1 k=4 T = T1 + T2 + T3 + T4 Intervalo médio entre chegadas = 10 min ⇒ λ = 6/h 1 1 1 1 = 2 min = h ⇒ = ⇒ µ = 7. 03333 horas Probabilidade da linha estar ocupada em um dado instante λ 10 1 − P0 = 1 − ρ = 1 − = 1 − = 0. 0888) = 2. λ M+1 (M + 1) λ µ λ=µ L= − µ−λ λ M+1 1− µ 6 5 6 5 4 L= − = 3. 46666 horas= 28 minutos W = Wq + = 0. 6448 Exercício 25 Modelo M/G/1 s=1 λ = 10/ h Tempo de serviço: média = 3 min ⇒ µ = 20/h σ 2 = 2 min = 0. 333 + µ 7. 13167 fregueses 5−4 5 6 1− 4 Lq = L − (1 − P0 ) = 3. 13167 W = = = 0.

493)(0. 986 S P0 = 1 − ρ = 1 − 0. 52 secretárias Exercício 28 Modelo M/M/1 Fila Finita s=1 1 = 15/ h λ= 4min 1 atendente ⇒ duração média do serviço = 4 min ⇒ µ1 = 15/h 2 atendentes ⇒ duração média do serviço = 2. 5 min ⇒ µ2 = 24/ h Freguês Lucro $0. 25214 = 25. 014 = 1. 916 2. 214% P3 = 0. 4 X= λ+µ 4+6 Da tabela ⇒ F = 0. 4% P0 = 1 S−1 n−0 ou λ µ 4 6 4 n M! (M − n)! n! 4 6 + 5(4) λ µ 4 6 n M + n=S 2 M! (M − n)! s! n! 1 4 6 3 P0 = 1+5 + 5(4)(3) + (5)(4)(3)(2) + (5)(4)(3)(2) 4 6 5 P0 = 0. 014 = 1. 42849 + = 0. sendo S = 1 MF X ρ= = 5(0. 916 × 0. 4) = 0.70 M −1=2⇒M =3 Dia = 15/ h . λ n M! s≤n≤M Pn = P0 (M − n)! s! sn−s µ n M! λ Pn = P0 s≤n≤M (M − n)! s! sn−s µ 4 3 = 0. 535 Lq = = 0. 014183 × 3(4)(5) 6 c) Número médio de secretárias usando a máquina. 493) = 2. 5951656 = 3.3. 535 λef = M F Xµ = 5(0.13 Exercícios 135 Exercício 27 Modelo M/M/1 População Finita λ = 4/ h µ = 6/ h s=1 M =5 4 λ = = 0. 5951656 µ 6 L = λef W = 5. das 3 secretárias terem que utilizar a máquina ao mesmo tempo. 986 = 0. 4% b) Prob. 916 1 1 W = Wq + = 0.493 a) Probabilidade da máquina estar ociosa. 428499 Wq = λef 5. 493)(0. 4)6 = 5. Lq = M (1 − F ) = 5(1 − 0.

136

Teoria das Filas

Alternativa A 1 bomba com um atendente 1 λ=µ P0 = M +1 1 = 0, 25 P0 = 3+1 λef = µ(1 − P0 = 15(1 − 0, 25) = 11, 25 fregueses/hora Lucro = $0, 70/ freguês ×11, 25 fregueses/h ×15h/dia = $118, 13/dia Alternativa B 1 bomba com 2 atendentes λ 1− µ P0 = λ=µ λ M+1 1− µ 15 1− 24 P0 = = 0, 4425 = 44, 25% 15 4 1− 24 λef = µ(1 − P0 ) = 24(1 − 0, 4425) = 13, 38 fregueses/hora Lucro = $0, 70/ freguês ×13, 38 fregueses/hora ×15h/dia = $140, 49/dia Alternativa C 2 bombas, cada uma com 1 atendente Modelo M/M/2 Fila Finita 1 P0 = s M 1 n 1 a + as cn−s n! s! n=s+1 n=0 s=2 λ a= = 15 = 1 15 µ 15 λ = = 0, 5 c= 5µ 30 1 n Pn = a P0 P1 = P0 = 0, 36364 n!
s−1

fregueses/hora Lucro = $0, 70/ freguês ×13, 6362fregueses/h ×15h/dia = $143, 18/dia Melhor alternativa : C

λef = µ s −

n=0

(s − n)Pn

= 15 {2 − (2)(0, 36364) + 0, 36364} = 13, 6362

3.13 Exercícios

137

Exercício 29 Modelo M/G/1 1 = 2, 4/ h λ= 25 min 1 10 = 0, 30h ⇒ µ = /h σ = 0, 092 ⇒ σ 2 = 0, 00846 µ 3 a) Tamanho esperado da fila. (2, 4)2 (0, 008464) + 0, 722 λ 2 σ 2 + ρ2 = = 1, 0128 fregueses Lq = 2(1 − ρ) 2(1 − 0, 72) λ 24 = 0, 72 ρ= = 10 µ 3 b) Tamanho esperado da fila. σ2 = 0 Duração do serviço = 20 min ⇒ µ = 3/ h 24 λ = = 0, 8 ρ= µ 3 0, 82 Lq = = 1, 6 fregueses 2(1 − 0, 8)

Exercício 30 λ = 10/h Tempo mecânico ⇒ $7/h µ = 12/h Custo assistente ⇒ $36/ dia Dia = 8 horas Situação atual Modelo M/M/1 Tempo médio que um mecânico gasta no sistema. 1 1 W = = = 0, 5 h µ−λ 12 − 10 Custo da fila = 0.5 h ×$7/ h ×10/h ×8h/ dia = $280/dia = Custo total Situação com 1 assistente Modelo M/M/1 Nova taxa µ = 18/h Custo do serviço = $36/dia 1 Tempo médio que um mecânico gasta no sistema ⇒ W = = 0, 15 horas 18 − 10 Custo da fila = 0.125 h ×$7/h ×10/h ×8h/dia = $70/dia Custo total = $36 + $70 = $106/dia Situação com 2 assistentes Modelo M/M/1 Nova taxa µ = 21, 6/h Custo do serviço = 2 ×$36 = $72/dia 1 Tempo médio que um mecânico gasta no sistema ⇒ W = = 0, 0862 21, 6 − 10 horas Custo da fila = 0, 0862 h ×$7/h ×10/h ×8h/dia = $48, 27/dia

138 Custo total = $72 + $48, 27 = $120, 27/dia A melhor alternativa é a com 1 assistente.

Teoria das Filas

Exercício 31 1 λ= = 12/h 5 min 1 atendente Duração média do serviço = 4 min ⇒ µ = 15/h Lucro por freguês = $1 Dia = 15 h a) Lucro diário. Modelo M/M/1 Fila Finita M =3 λ 1− µ P0 = λ=µ λ M+1 1− µ 12 1− 15 = 0, 33875 P0 = 12 4 1− 15 λef = µ(1 − P0 ) = 15(1 − 0, 33875) = 9, 91875 fregueses/hora Lucro = $1/ freguês ×9, 91875 fregueses/h ×15h/dia = $148, 78/dia b) Modelo M/M/1 (Fila Infinita) Lucro = $1/freguês ×12/h ×15h/dia = $180/dia c) Lucro diário (2 atendentes - 1 bomba) Modelo M/M/1 Fila Finita M =3 1 Nova taxa ⇒ µ = = 24/h 2, 5 min 12 1− 24 P0 = = 0, 5333 12 4 1− 24 λef = µ(1 − P0 ) = 24(1 − 0, 5333) = 11, 2 fregueses/hora Lucro “bruto” = $1/ freguês ×11, 2 fregueses/h ×15h/dia = $168/dia Custo do segundo atendente = $2, 50/h ×15h/dia = $37, 50/ dia Lucro “líquido” = $168 − $37, 50 = $130, 50/dia Não, pois o lucro diminuiu. d) Lucro Diário (Brindes - 1 atendente) Modelo M/M/1 Fila Finita M = 3 1 = 20/h Nova taxa ⇒ λ = 3 min µ = 15/h

3.13 Exercícios

139

Novo lucro ⇒ $0, 30/freguês 20 1− 15 P0 = = 0, 15429 20 4 1− 15 λef = µ(1 − P0 ) = 15(1 − 0, 15429) = 12, 68565/hora Lucro = $0, 30/freguês ×12.68565 freg/hora ×15h/dia = $57, 09/dia Não pois o lucro diminuiu e) Lucro diário (brindes/2 assistentes - 1 bomba) Modelo M/M/1 Fila finita M =3 µ = 24/h λ = 20/h 20 1− 24 = 0, 3219 P0 = 20 4 1− 15 λef = µ(1 − P0 ) = 24(1 − 0, 319) = 16, 2744 fregueses/hora Lucro “bruto” = $0, 30/freguês ×16, 2744 fregueses/h ×15h/dia = $73, 23/dia Custo do 2o assistente = $37, 50/dia Lucro “líquido” = $73, 23 − $37, 50 = $35, 73/dia Não, pois o lucro diminuiu.

140

Teoria das Filas

. sistemas de transporte. podem ser testados sem se comprometer recursos na sua aquisição. O comportamento do sistema é estudado pela construção de um Modelo de Simulação.com.1 Vantagens e Desvantagens da Simulação As vantagens principais da simulação são: • Novas políticas.Capítulo 4 Introdução à Simulação Uma simulação 1 é a imitação.. Assim. do sistema. Estas considerações são expressas através de relações matemáticas. ou objetos de interesse.. 4. a Simulação pode usada tanto como uma ferramenta de análise para prever o efeito de mudanças em sistemas já existentes. e a partir desta história artificial a inferência de como o sistema real funcionaria... ou seja antes do sistema ser construído. etc. A Simulação também pode ser usada para estudar sistemas no estágio de projeto.” sobre o sistema do mundo real. Feita a mão (raramente) ou em um computador (quase sempre).. a simulação envolve a geração de uma história artificial do sistema. regras de negócio. um modelo pode ser usado para investigar uma grande quantidade de questões do tipo “e se. Uma vez construído e validado. etc. fluxos de informação. • Hipóteses sobre como e porque certos fenômenos ocorrem podem ser testados visando verificar sua praticabilidade. Alterações no sistema podem ser inicialmente simuladas para se prever as consequências no mundo real. Este capítulo é um resumo do material contido na apostila de Simulação que pode ser encontrada no site www.. durante determinado período de tempo. podem ser estudadas sem se alterar o mundo real.mpsantos. • Novos equipamentos. procedimentos operacionais.. lógicas e simbólicas entre as entidades. 1 . quanto como uma ferramenta para prever a performance de novos sistemas sobre as mais variadas circunstâncias. layouts. Este modelo normalmente toma a forma de um conjunto de considerações relacionadas a operação do sistema. da operação de um sistema ou de um processo do mundo real.br.

é difícil determinar se uma observação é o resultado do relacionamento entre as variáveis do sistema ou consequência da própria aleatoriedade. • Um modelo de simulação pode ajudar a entender como um sistema funciona como um todo. mas será altamente improvável que sejam iguais.. • A Simulação é usada em muitos casos onde uma solução analítica é possível. Economizar por sua vez pode levar a modelos incompletos. Como a maioria das saídas de uma simulação são variáveis aleatórias (elas estão normalmente baseadas em entradas aleatórias). • Os resultados de uma Simulação podem ser difíceis de interpretar. eles terão semelhanças.2 Áreas de aplicação Existem inúmeras áreas de aplicação da simulação.” podem ser respondidas. . A simulação não dá resultados exatos. 4. • Questões do tipo “e se. onde novos sinais estão para ser instalados. A seguir estão listadas algumas das mais importantes: • Simulação das operações de uma companhia aérea para testar alterações em seus procedimentos operacionais. • A construção e análise de Modelos de Simulação pode consumir muito tempo e. muito dinheiro. como consequência.142 Introdução à Simulação • O tempo pode ser comprimido ou expandido permitindo acelerar ou retardar o fenômeno sob investigação.. As desvantagens a serem consideradas são: • A construção de Modelos de Simulação requer treinamento especial. Além disto se 2 modelos são construídos por 2 profissionais competentes. • Pode-se entender melhor sob a interação das variáveis do sistema. • Pode-se entender melhor a participação das variáveis na performance do sistema. • Simulação de operações de manutenção para determinar o tamanho ótimo de equipes de reparo. É uma arte que é aprendida com tempo e experiência. em relação a como se pensa que o sistema opera individualmente. • Simulação da passagem do tráfego em um cruzamento muito grande. Isto é extremamente útil na fase de design de um projeto.

• Simulação de uma barragem em um determinado rio para avaliar os problemas advindos com a sua construção. As máquinas. consome uma certa quantidade de tempo.3 Componentes de um Sistema Um Sistema é definido como um grupo de objetos que estão juntos em alguma interação ou interdependência. O Estado do sistema é definido como sendo como a coleção de variáveis necessárias para descrever o sistema em um dado instante. De forma a entender e analisar um sistema. Um Atributo é uma propriedade de uma entidade.3 Componentes de um Sistema 143 • Simulação de uma siderúrgica para avaliar alterações nos seus procedimentos operacionais. A tabela a seguir mostra alguns exemplos para os termos definidos acima: Sistema Banco Produção Comunicação UERJ Exemplo Entidade Clientes Máquinas Mensagens Aluno Exemplo Atributo Saldo na C/C Taxa Quebra Tamanho CR Exemplo Atividade Depositar Soldagem Transmissão Matrícula Exemplo Evento Chegada à Agência Quebra Chegada Cadeira Cancelada Exemplo Variáveis Estado o N clientes Esperando Máquinas Paradas Mensagens Esperando o N Alunos Matriculados . componentes. (Business Games) • Simulação de sistemas de comunicações para determinar o que é necessário para fornecer um determinado nível de serviço. 4. • Simulação da economia de um setor de um país para prever o efeito de mudanças econômicas. visando a produção de veículos de qualidade. objetivando a realização de algum objetivo. peças e trabalhadores operam em conjunto. Um exemplo poderia ser um sistema de produção de automóveis. para ser realizado. • Simulação de uma empresa como um todo para avaliar o impacto de grandes mudanças ou como treinamento para seus executivos. Uma Atividade é algo que. Um Evento é definido como a ocorrência instantânea que pode mudar o estado do sistema. • Simulação de uma linha de produção em determinada indústria. • Simulação de sistemas de distribuição e controle de estoque. em uma linha de montagem. • Simulação de batalhas militares visando avaliar o desempenho de armas estratégicas.4. O termo Endógeno é usado para descrever atividades e eventos ocorrendo dentro do sistema e Exógeno é usado para descrever atividades e eventos que ocorrem fora do sistema. para melhorar o funcionamento destes sistemas. para avaliar efeitos de mudanças previstas no processo produtivo. alguns termos precisam ser definidos: Uma Entidade é um objeto de interesse no sistema.

embora o tempo nunca pare. devem ser tratadas como estimativas estatísticas das medidas reais do sistema. considera-se somente os eventos onde há alteração do sistema. medidas como o número médio de clientes esperando e o tempo médio de espera de um cliente. Um modelo de simulação estática. enfatizando assim que a discretização se refere apenas à ocorrência dos eventos ao longo do tempo. Numa Simulação Contínua o sistema se altera a cada fração de tempo. Modelos de Simulação Dinâmicos representam sistemas cujos resultados variam com a passagem do tempo. ou seja. algumas vezes chamado de Simulação de Monte Carlo. o estado do sistema não se altera. Exemplos clássicos são a simulação de um avião voando e a passagem de água por uma barragem. Alguns autores a chamam de Simulação de Eventos Discretos. Um modelo estocástico de simulação tem uma ou mais variáveis aleatórias como entrada. Um exemplo seria a simulação de uma agência bancária onde entre a chegada (ou a saída) de clientes. a simulação (estocástica) do funcionamento de uma agência bancária envolve variáveis aleatórias como o intervalo entre chegadas e a duração dos serviços prestados. Logo. Em uma simulação discreta. 4. . é um modelo onde a passagem do tempo é irrelevante. Modelos de simulação que não contém nenhuma variável aleatória são classificados como determinísticos. por exemplo.4 Tipos de Modelos Modelos de Simulação podem ser Estáticos ou Dinâmicos. Um modelo de simulação pode ser ainda Determinístico ou Estocástico. Assim. para um conjunto conhecido de dados de entrada teremos um único conjunto de resultados de saída.5 Modelos Discretos e Contínuos Os modelos de simulação dinâmicos podem ser Discretos ou Contínuos. ou seja. Estas entradas aleatórias levam a saídas aleatórias que podem somente ser consideradas como estimativas das características verdadeiras de um modelo. o tempo decorrido entre alterações do estado do sistema não é relevante para a obtenção dos resultados da simulação.144 Introdução à Simulação 4.

400 1. Precisamos estabelecer um horizonte de tempo para fazer esta comparação. vamos ver alguns exemplos simples: 4.30 0. Alguém sugeriu que ao quebrar um dos rolamentos.10 Cada minuto que a máquina fica parada custa $5 e o custo do mecânico é de $1/minuto trabalhado substituindo rolamento. Como a vida útil dos rolamentos e a espera pelo mecânico são variáveis aleatórias .05 0.02 0.6. Cada rolamento novo custa $20.05 Quando um rolamento quebra.60 0.1 Quebra de rolamentos Uma grande máquina industrial tem 3 rolamentos diferentes que quebram de tempos em tempos.500 1. O mecânico demora 20 minutos para trocar 1 rolamento.100 1.4. 30 minutos para trocar 2 e 40 minutos para trocar os 3.700 1.10 0.200 1.900 Probabilidade 0. vamos estabelecer um horizonte de 20.12 0.09 0. O tempo que o mecânico demora para chegar ao rolamento quebrado também é uma variável aleatória. se fizesse logo a troca dos 3.000 horas (um pouco mais de 2 anos) para fazer a comparação.800 1.06 0.000 1.25 0. a máquina para e um mecânico é chamado para instalar um novo rolamento no lugar do que quebrou.13 0. A probabilidade da vida útil (em horas de operação) de um rolamento está dada na tabela abaixo: Vida do Rolamento (horas) 1.300 1. Considerando que a menor vida útil de um rolamento é 1.6 Exemplos de modelos de Simulação 145 4.600 1. Solução Temos que comparar o custo da alternativa atual e da alternativa proposta. com a distribuição dada na tabela abaixo: Tempo de espera (minutos) 5 10 15 Probabilidade 0.13 0.6 Exemplos de modelos de Simulação Para entender como funciona uma simulação. Deseja-se avaliar a situação do ponto de vista econômico.000 horas (mais de 1 mês).

700 1.400 1.000 1.61 0.06 0.05 Probabilidade Acumulada 0.100 1.84 0.12 0.000 horas) tem 10% de probabilidade de ocorrer. neste caso.30 0.48 0. ou seja 13 números.146 Introdução à Simulação que seguem as distribuições vistas anteriormente.05 0.90 0.70 0. vamos atribuir a esta duração a faixa de 0 a 9 inclusive.10 Probabilidade Acumulada 0. podemos executar a simulação que.900 Probabilidade 0.100 horas). Podemos continuar para as demais durações prováveis dos rolamentos como pode ser visto na tabela a seguir.02 0. Assim sendo.09 0.13 0. Tempo de Espera (minutos) 5 10 15 Probabilidade 0.800 1. Para a 2a duração provável (1.00 No Aleatório Atribuído 00 – 59 60 – 89 90 – 99 Com os dados das tabelas acima. Como a 1a vida útil (1. Vida do Rolamento (horas) 1.500 1. foi realizada numa planilha EXCEL. ou seja 100 números. ressaltando que a probabilidade acumulada dá o limite das faixas escolhidas. apresentando os seguintes resultados para o rolamento 1: .23 0.82 0.200 1. vamos imaginar que temos um gerador de números aleatórios capaz de gerar qualquer inteiro entre 0 e 99.95 1.10 0.90 1.10 0.00 No Aleatório Atribuído 0–9 10 – 22 23 – 47 48 – 60 61 – 69 70 – 81 82 – 83 84 – 89 90 – 94 95 – 99 Tabela semelhante pode ser construída para a espera pela chegada do mecânico.25 0.13 0.300 1. com 13% de probabilidade de ocorrência. ou seja 10 números (10% dos 100 números). temos que relacionar àquelas distribuições com uma tabela de números aleatórios. Vamos atribuir a cada duração de vida útil uma faixa destes números que me garanta que a distribuição probabilística seja mantida.600 1.60 0. vamos atribuir a faixa de 10 a 22 inclusive.60 0.

100 4.900 9.200 1.100 10. Processos semelhantes foram executados para os outros 2 rolamentos.100 1.900 12. após esta vida útil.800 N Aleatório 61 10 46 28 55 64 63 75 54 67 90 14 80 84 9 o Espera (Min) 10 5 5 5 5 10 10 10 5 10 15 5 10 10 5 =120 Podemos observar na planilha que para cada seqüencia ou seja.200 1. Tendo quebrado.000 7. é gerado um número aleatório que indica qual a vida útil daquela rolamento. .100 15.700 19.000 horas.600 20.800 11.6 Exemplos de modelos de Simulação 147 Seqüencia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 N Aleatório 62 85 89 24 99 27 89 12 2 34 7 75 22 97 37 o ROLAMENTO 1 Vida Vida Acumulada (Horas) (Horas) 1. paramos a execução do processo.200 1.100 1.900 14.100 16. ou seja a duração da simulação.4.000 1.700 1.600 17. como visto a seguir.400 3.900 1.900 1.500 1.400 1. rolamento novo. o mecânico é chamado e um 2o número aleatório é gerado para definir o tempo de espera até a troca do rolamento ser iniciada.700 1.200 1.800 6.700 1. Quando a vida acumulada ultrapassa 20.000 1.

200 12.300 2.400 7.300 1.300 1.300 N Aleatório 58 88 20 98 26 97 41 79 0 3 58 84 61 43 15 97 o Espera (Min) 5 10 5 15 5 15 5 10 5 5 5 10 10 5 5 15 = 130 Seqüencia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 N Aleatório 49 26 2 83 21 20 60 34 63 69 44 76 55 85 21 5 o ROLAMENTO 3 Vida Vida Acumulada (Horas) (Horas) 1.000 11.400 20.148 Introdução à Simulação Seqüencia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 N Aleatório 89 47 60 3 40 64 9 30 32 8 94 66 53 17 72 0 o ROLAMENTO 2 Vida Vida Acumulada (Horas) (Horas) 1.200 1.300 20.300 1.800 15.400 1.100 1.200 14.800 11.800 19.300 19.700 2.800 1.000 1.500 3.000 1.600 18.200 1.400 1.300 1.200 6.400 16.700 1.000 15.000 1.200 1.600 13.000 1.500 1.600 9.200 1.800 8.200 1.400 N Aleatório 44 45 72 87 19 81 56 74 93 36 71 97 59 81 21 1 o Espera (Min) 5 5 10 10 5 10 5 10 15 5 10 15 5 10 5 5 =130 .100 1.800 10.000 1.200 5.500 1.100 1.300 16.600 1.900 4.700 17.300 1.000 1.200 7.300 8.200 1.400 1.100 1.100 6.400 1.500 5.200 12.700 1.200 1.

400 ROL.000 1.200 1.000 1.500 1.000 3.000 1.500 1.700 9.900 14.100 1.200 1.6 Exemplos de modelos de Simulação 149 Com os dados obtidos na simulação.000 1.300 5.900 20.100 1. 1 Vida NA hr 96 70 96 48 32 36 41 71 4 69 13 36 75 76 71 98 98 68 1.500 1.700 18. .600 7.000 1.000 1.200 1.700 + 940 = $8.700 1.100 1.100 1.200 1.300 1.100 1.700 1.200 1.100 1.800 12.600 + 720 = $5.200 1.900 1.200 4.200 1.700 10. podemos calcular os custos: Custo dos rolamentos = (18 × 3) × $ 20 = $1.900 Custo da máquina parada trocando rolamento = (15 + 16 + 16) × 20 × $5 = $4.900 1.300 1.400 6.400 1.300 Vida Acum.200 1.600 16.700 8.300 1. 1.700 1.100 1. 2 Vida NA (hr) 2 7 46 17 93 94 17 2 22 21 89 12 57 78 5 43 47 61 1.900 1.100 1.800 1.100 1.100 1.200 1.000 1.200 1.080 Custo da máquina parada esperando pelo mecânico = 105 × $5 = $525 Custo da máquina parada trocando rolamento = 18 × 40 × $5 = $3.300 1.100 1.200 1.400 1.480 A simulação da situação proposta apresentou os seguintes resultados: ROL.300 1a Quebra 1.700 11.000 1.700 Custo do mecânico = (15 + 16 + 16) × 20 × $1 = $940 Custo Total = 940 + 1.500 1.000 1.500 1.900 1.500 1.200 1. 3 Vida NA (hr) 34 47 49 42 20 98 53 20 86 0 58 66 29 95 86 22 60 57 1.100 1.400 ROL.4.100 15.100 1.925 Assim a simulação nos mostrou que a situação proposta é bem melhor em termos econômicos.200 1.200 ESPERA NA (Min) 21 36 21 7 58 83 14 75 5 65 15 12 32 2 31 51 20 35 5 5 5 5 5 10 5 10 5 10 5 5 5 5 5 5 5 5 =105 Seq.100 1.000 1.500 1.200 1. podemos calcular o custo da situação atual: Custo dos rolamentos = (15 + 16 + 16) × $20 = $940 Custo da máquina parada esperando pelo mecânico = (120 + 130 + 130) × $5 = $1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 NA = No aleatório Feita a simulação da situação proposta.600 17.300 1.000 1.000 2.900 1.300 1.080+ 525 + 3.200 1.000 1.800 1.600 Custo do mecânico = 18 × 40 × $1 = $720 Custo Total =1.900 1.100 1.900 + 4.

6.30 0. entre eles.750 0.125 0.2 Fila com uma estação de serviço Uma loja tem somente 1 atendente. temos que construir tabelas relacionando as probabilidades com números aleatórios gerados: Tempo entre chegadas (min) 1 2 3 4 5 6 7 8 Probabilidade 0. Os fregueses chegam aleatoriamente com intervalo.125 A duração do atendimento aos clientes varia de 1 a 6 minutos com probabilidades mostradas na tabela a seguir: Duracão do servico (minutos) .125 0.125 0.250 0.125 0.20 0.10 0.125 0. variando de 1 a 8 minutos.125 0.150 Introdução à Simulação 4.10 0.125 0. 1 2 3 4 5 6 Probabilidade 0. Cada valor possível do intervalo entre chegadas tem a mesma probabilidade de ocorrência.000 No Aleatório Atribuído 000 – 124 125 – 249 250 – 374 375 – 499 500 – 624 625 – 749 750 – 874 875 – 999 .125 Probabilidade Acumulada 0.125 0.375 0.125 0.125 0.25 0.875 1.125 0.125 0.125 0.125 0.05 Como no exemplo anterior. .625 0.500 0. como mostrado na tabela a seguir: Tempo entre chegadas (minutos) 1 2 3 4 5 6 7 8 Probabilidade 0.125 0.

servico (min) .6 Exemplos de modelos de Simulação 151 Probabilidade Acumulada 0. inferir alguns resultados: .10 0.4.30 0. 1 2 3 4 5 6 Probabilidade 0.60 0.85 0.25 0.20 0.95 1.30 0.00 No Aleatório Atribuído 0–9 10 – 29 30 – 59 60 – 84 85 – 94 95 – 99 Duracão do . fila servico na loja(min) atendente(min) . .10 0.10 0. 8 6 1 8 3 8 7 2 3 1 1 5 6 3 8 1 2 4 5 = 0 8 14 15 23 26 34 41 43 46 47 48 53 59 62 70 71 73 77 82 84 9 74 53 17 79 91 67 89 38 32 94 79 5 79 84 52 55 30 50 4 1 4 3 2 4 5 4 5 3 3 5 4 1 5 4 3 3 2 3 68 0 8 14 18 23 26 34 41 45 50 53 56 61 65 66 71 75 78 81 83 0 0 0 3 0 0 0 0 2 4 6 8 8 6 4 1 4 5 4 1 56 4 9 18 21 25 30 39 45 50 53 56 61 65 66 71 75 78 81 83 86 4 1 4 6 2 4 5 4 7 7 9 13 12 7 9 5 7 8 6 4 124 0 4 5 0 2 1 4 2 0 0 0 0 0 0 0 0 0 0 0 0 18 Podemos. a partir da simulação. chegadas(min) chegada NA servico servico .05 A simulação para os primeiros 20 clientes apresentou os seguintes resultados: NA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 913 727 15 948 309 922 753 235 302 109 93 607 738 359 888 108 212 493 535 Intervalo entre Instante Duracão Início Espera Fim do Tempo total Tempo ocioso .

30) + 4(0. 65 20 A proporção de tempo que o atendente fica ocioso é 21%. algumas inferências podem ser obtidas: A maioria dos clientes tem que esperar mas a espera não é excessiva. Podemos obtê-lo de: Tempo de serviço médio (min) = Duração total do serviço Número total de clientes 68 = = 3. O atendente não fica muito tempo ocioso.21 O atendente está ocupado 100 − 21 = 79% do tempo.2 minutos.4 minutos.4 minutos 20 Este resultado pode ser comparado com o tempo de serviço esperado achando-se a média da distribuição do tempo de serviço usando a equação: ∞ E(s) = s=0 sp(s) Temos então: 1(0. Este valor é encontrado de : Tempo médio de espera (min) = = Tempo total dos clientes na fila (min) Número total de clientes 56 20 = 2. Isto vem de: Probabilidade(espera) = Número de clientes que esperaram Número total de clientes 13 = = 0. O tempo de serviço médio é de 3.8 minutos.20) + 3(0.152 Introdução à Simulação O tempo de espera médio de um cliente foi de 2. Obviamente seria necessário uma simulação mais demorada para se conseguir resultados mais precisos. 8 minutos A probabilidade de que um cliente tenha que esperar na fila é 65%.25) + 5(0. Alguém que fosse tomar decisões estaria interessado nos resultados obtidos acima.10) + 2(0. do atendente estar ocioso = = Tempo total de ociosidade (min) Duração da Simulação 18 86 = 0. Entretanto.2 minutos O resultado da simulação é um pouco maior porque o tamanho da simulação foi pequeno. O objetivo a ser alcançado vai depender do balanço entre o custo de espera e o custo de se colocar mais atendentes. . Vem de: Prob.05) = 3.10) + 6(0. Quanto maior a duração da simulação mais o resultado se aproximará de 3.

Para propósitos práticos o período deve ser.4. Como contornar este fato ? Se os números passam por uma série de testes estatísticos de aleatoriedade então. Os números aleatórios. grande o suficiente para não se repetir durante uma simulação. 2. a expressão números aleatórios mas considere isto. Além disto o gerador não deve usar muita memória. É comum se usar. podemos considerálos como se fossem realmente aleatórios. sempre. 3. 4. Como se usa o computador para fazer a simulação. A quantidade de números gerados até a seqüencia começar a se repetir é chamada de Período. a série. . o gerador de números aleatórios deve gerar estes números gastando o mínimo de tempo de computador. Estas fórmulas fazem com que. Sempre desejamos o maior período possível.7 A geração de Números Aleatórios 153 4. obviamente. em simulação. Eficiência Computacional Como alguns modelos de simulação podem necessitar de que um grande número de variáveis aleatórias sejam geradas. no mínimo. Aleatoriedade É essencial que a seqüência gerada exiba as propriedades dos números verdadeiramente aleatórios. o que viola o princípio básico da aleatoriedade. Por este fato eles são conhecidos como números Pseudo-aleatórios.7. se repete. não são realmente aleatórios pois veremos mais adiante que eles são gerados em seqüências que podem ser reproduzidas. Grande Período Todos os geradores de números aleatórios são baseados no uso de fórmulas determinísticas precisas. gerados em computador. Este comportamento aleatório deve ser confirmado por testes estatísticos.7 A geração de Números Aleatórios Pudemos reparar nos exemplos acima que a chave para simular eventos aleatórios discretos é a geração de números aleatórios.1 Propriedades desejáveis de um gerador de números aleatórios Um gerador de números aleatórios deveria possuir todas as características abaixo: 1. como um sinônimo de números pseudo-aleatórios. precisamos de métodos rápidos e eficientes para gerá-los. Com a evolução dos computadores esta última propriedade está perdendo um pouco de sua importância. seja gerada uma série de números aleatórios (pseudo-aleatórios). voltamos a semente e como a série é gerada por uma fórmula. a partir de um valor inicial chamado semente. Em um determinado ponto da série. para efeitos práticos.

. são obtidos da relação recursiva: xn+1 = (axn + c) mod m A função z mod t dá o resto da divisão inteira de z por t (ex. Este método foi desenvolvido por John Von Neumann na década de 40... números pseudo aleatórios de 2 dígitos tendo 44 como semente. Exemplo: Gerar uma seqüência de números aleatórios de 4 dígitos. x0 = 3187 (3187)2 = 10 | 1569 | 69 ⇒ x1 = 1569 (1569)2 = 02 | 4617 | 61 ⇒ x2 = 4617 (4617)2 = 21 | 3166 | 89 ⇒ x3 = 3166 (3166)2 = 10 | 0235 | 56 ⇒ x4 = 235 (235)2 = 00 | 0552 | 25 ⇒ x5 = 552 (552)2 = 00 | 3047 | 04 ⇒ x6 = 3047 e assim por diante. cujos pontos básicos foram propostos por Lehmer em 1951. A técnica começa com um número inicial chamado de semente.154 Introdução à Simulação 4. O número é então elevado ao quadrado e os dígitos do meio do número gerado formam o próximo número da seqüência. o método só apresenta zero! Exemplo: Gerar. gerados sucessivamente. .2 Métodos para a geração de números aleatórios Método dos quadrados médios Um dos primeiros métodos de geração de números aleatórios foi o chamado Método dos Quadrados Médios. Este segundo número é então elevado ao quadrado e os números do meio do número gerado são o próximo número da seqüência e assim por diante. Seja 3187 a semente normalmente rotulada como x0 .7. 23 mod 5 = 3).. x0 = 44 (44)2 = 1 | 93 | 6 ⇒ x1 = 93 (93)2 = 8 | 64 | 9 ⇒ x2 = 64 (64)2 = 4 | 09 | 6 ⇒ x3 = 9 (9)2 = 0 | 08 | 1 ⇒ x4 = 8 (8)2 = 0 | 06 | 4 ⇒ x5 = 6 (6)2 = 0 | 03 | 6 ⇒ x6 = 3 (3)2 = 0 | 00 | 9 ⇒ x7 = 0 (0)2 = 0 | 00 | 0 ⇒ x8 = 0 Métodos Congruentes A maioria dos métodos usados hoje em dia são variações do chamado Método Congruente Linear. Este método apresenta 2 problemas sérios: normalmente os períodos são curtos e se o no gerado é 0. pelo método dos quadrados médios. Neste método os números aleatórios.

Para conseguir isto.1) Como já explicado anteriormente.1) 155 A constante a é chamada de multiplicador. dividir por m ou (m−1) é irrelevante. a constante c é o incremento e m é o módulo. distribuída em [0. e m afeta drasticamente as propriedades estatísticas da geração bem como o tamanho do período.1940298 x2 = (13 × 13) mod 67 = 35 ÷ 67 = 0. Na verdade como m é sempre um número muito grande.8 Números Aleatórios uniformemente distribuídos em [0. que o número aleatório gerado é o resto inteiro da divisão por m. O Método da Congruência Linear (c = 0). . Uma convenção estabelece que um gerador de números aleatórios básico deve gerar números no intervalo [0. todo gerador de números aleatórios divide o número gerado por m. o método é chamado de Congruência Multiplicativa. é menos usado hoje em dia.7910447 . x0 é a semente. m − 1). 4. usando o método congruente multiplicativo.522388 x3 = (13 × 35) mod 67 = 53 ÷ 67 = 0. a = 2 e m = 10. mas não suficiente. Assim. teríamos: x0 = 1 ÷ 67 = 0. A fórmula congruente é necessária para se gerar números aleatórios.8 Números Aleatórios uniformemente distribuídos em [0. para a = 13. neste pequeno exemplo. x0 = 3 x1 = (2 × 3) mod 10 = 6 x2 = (2 × 6) mod 10 = 2 x3 = (2 × 2) mod 10 = 4 x4 = (2 × 4) mod 10 = 8 x5 = (2 × 8) mod 10 = 6 Como podemos observar o período desta geração foi muito curto (=4). Desta forma o que se obtém é uma distribuição uniforme. a fórmula congruente gera números aleatórios inteiros no intervalo [0. 1). ou seja um número inteiro entre 0 e (m − 1).4. Como antes. . Ficou claro também. por exemplo. m = 67 e x0 = 1. c. Alguns geradores dividem por m − 1 o que dá uma distribuição [0. Exemplo: Gerar números aleatórios.0149253 x1 = (13 × 1) mod 67 = 13 ÷ 67 = 0. tendo os seguintes valores: x0 = 3 . 1]. por gerar números aleatórios que tendem a ter mais dificuldades em passar nos testes estatísticos de aleatoriedade dos que os gerados pelo método da Congruência Multiplicativa (c = 0). Quando c = 0. A seleção dos valores de a.1). .

RANDU : = semente / m.. . End. End. r = 32774. t e s t : longint .257907 .. Não houve qualquer preocupação em otimizá-los ou usar as técnicas mais refinadas de programação. foi desenvolvido pela IBM e durante quase 20 anos foi usado por praticamente todos os modelos de simulação nas décadas de 60 e 70. codificada em Pascal2 é a seguinte: (a rotina original era em Fortran) Function RANDU: Double . .483. A RANDU utilizava os valores a = 65. Outro fator a ser considerado é que certos comandos usados nos programas podem não funcionar. RANDU : = semente / m End Else Begin semente : = t e s t + m.0573133 X3 = (65539 × 123079425) mod 2147483648 = 553853187 ÷ 2147483648 = 0. dependendo do compilador que estiver sendo usado. por exemplo.0095524 X2 = (65539 × 20513707) mod 2147483648 = 123079425 ÷ 2147483648 = 0. m = 2147483647. l o : = semente mod q . Var lo . t e s t : = a ∗ l o − r ∗ hi . ou seja xn+1 = (65539 × xn) mod 2147483648 Assim considerando uma semente igual a 313. teríamos: X0 = 313 X1 = (65539 × 313) mod 2147483648 = 20513707 ÷ 2147483648 =0. etc.156 Introdução à Simulação 4.539 e m = 231 = 2.147. hi . Begin hi : = semente div q . I f t e s t >= 0 Then Begin semente : = t e s t . Basic. Java. 2 .9 O gerador RANDU e a formação de treliças O método da congruência multiplicativa pode facilmente ser implementado em linguagens de programação como Pascal. q = 32766. Const a = 65539. Todos os programas listados a seguir foram desenvolvidos com a finalidade exclusiva de ilustrar a matéria apresentada.. A função.648. chamado de RANDU. Um gerador.

x3 ). x4 .9 O gerador RANDU e a formação de treliças 157 A seguir um programa Pascal que utiliza o gerador acima. O programa pede a semente. { $I RANDU.000 pontos.4. ALEAT: Real . End. Um dos problemas era a formação de treliças (lattice em inglês) quando se traçava gráficos com sucessivos números aleatórios gerados pela RANDU. Para uma semente igual a 313. {USO DA RANDU} {$N+ } { $E+ } Var SEMENTE. Readln(SEMENTE ) . 0. como podemos ver no gráfico a seguir: . I : Integer . x3 . 0. Na década de 70 diversos trabalhos provaram que a rotina RANDU apresentava resultados estatisticamente ruins.00955244. Nenhum ponto cai entre os planos. Vamos marcar 5. For I :=1 to 5 do Begin ALEAT : = RANDU(SEMENTE ) .03162802 e 0. SEMENTE : = 0 . O que ocorre no entanto é que todos os pontos aparecem em 15 planos formando o que parece ser uma treliça (daí o nome). que deve ser um inteiro entre 1 e 32767. O que deveríamos esperar ? Que o cubo fosse preenchido uniformemente pelos pontos plotados. Vamos imaginar um cubo com lados igual a 1... Writeln (ALEAT ) . (x3 . x2 .(x2 . ALEAT: = RANDU(SEMENTE ) .05731332.86859621.25790799. End. onde xi é um número gerado pela RANDU.32767) ?’ ) . x4 ) . os números impressos por este programa são: 0. e imprime os 5 primeiros números aleatórios gerados. etc. Vamos marcar pontos neste cubo com coordenadas (x1 . ou seja variando de 0 a 1.. 0.PAS} Begin Writeln ( ’Qual a semente (1 . x5 ).

10 O gerador RAND1 Foi apresentado pela IBM para substituir a RANDU e está baseado na relação xi+1 = (16807 × xi) mod 2147483647. 4. exceto a RANDU. . fez com que esta rotina fosse abandonada como geradora de números aleatórios. deve ficar claro que.158 Introdução à Simulação Este aspecto. identificado claramente na RANDU. No entanto. assim como outros nomes que usaremos mais adiante. O nome RAND1. a = 16807 e m = 231 − 1. A partir daí apareceram diversas alternativas como veremos a seguir. ou seja. nenhum outro gerador tem. foram dados no sentido de facilitar o entendimento da matéria. na literatura técnica. nome próprio.

Var HI15 . semente : = g . g : = ( ( (LOWPRD LOW15∗B2E16)−MODLUS) + ( HI31− − OVFLOW∗B2E15 ) ∗ B2E16)+OVFLOW. LOWPRD : = ( g−HI15∗B2E16 ) ∗MULT1. Z . LOWPRD : = ( g−HI15∗B2E16 ) ∗MULT2. End. HI15 : = g DIV B2E16 . Begin g : = trunc ( semente ) . HI15 : = g Div B2E16 . HI31 . Roberts: Implementing a Portable Fortran Uniform (0. deve ser um inteiro entre 1 e 2147483646.. MULT2 = 26143. MODLUS = 2147483647. OVFLOW : = HI31 Div B2E15 . LOW15 : = LOWPRD Div B2E16 . B2E16 = 65536. B2E15 = 32768. 0 . HI31 : = HI15∗MULT1+LOW15. LOW15 : = LOWPRD Div B2E16 . g : = ( ( (LOWPRD LOW15∗B2E16)−MODLUS) + ( HI31− − OVFLOW∗B2E15 ) ∗ B2E16)+OVFLOW. O programa a seguir imprime os 5 primeiros números gerados pela RAND2. RAND2 : = ( 2 ∗ ( semente / 2 5 6 ) + 1 ) / 1 6 7 7 7 2 1 6 . A seguir apresentamos a sua implementação em Pascal: Function RAND2: Double . I f g < 0 Then g : = g + MODLUS.11 O gerador RAND2 Este gerador está baseado no trabalho de Marse e Robert [Marse. Z1 : Double .LOWPRD. OVFLOW. g : Longint .LOW15. K. and S. ou seja.11 O gerador RAND2 159 4. 41: 135-139 (1983)] e tem sua base na relação: xi+1 = (630360016 × xi) mod 2147483647. Const MULT1 = 24112.1) Generator. D. OVFLOW : = HI31 Div B2E15 . Simulation. a = 630360016 e m = 231 − 1. . HI31 : = HI15∗MULT2+LOW15. A semente que é pedida no início do programa. I f g < 0 Then g : = g + MODLUS.4.

4. vamos apresentar a seguir um gerador que rotulamos de RAND4. para simulações mais complexas.PAS} Begin Writeln ( ’Qual a semente ? (1 .Jack Chen and W.59288078. seus períodos são relativamente curtos (109 ) o que tem levado ao desenvolvimento de novos métodos de geração de números aleatórios. For I :=1 to 5 do Begin ALEAT : = RAND2. { $I RAND2.1 × 1057 .61790948 e 0. todos com a característica comum de ter grandes períodos (> 1030 ). Para exemplificar o que dissemos acima. cada uma delas com 1038 números aleatórios !! A rotina em Pascal (RAND4) é a seguinte: .43645671. No entanto. ALEAT: Double . David Kelton – 2000”. No caso deste gerador. seu período é de 3. 0. os 5 primeiros números gerados são 0. { Va ri a vel u t i l i z a d a p el a RAND2} I : Integer . Para uma semente igual a 20006270. End. A sua descrição pode ser vista no paper “An objectoriented random-number package with many long streams and substreams –Pierre L’Ecuyer.76899712. baseados na regra de que o período de 2 geradores “embaralhados” é maior do que de um gerador só. 0. inclusive a RANDU!.55657768. As fórmulas de geração são: Ai = (1403580 × Ai−2 − 810728 × Ai−3 )mod(232 − 209) Bi = (527612 × Bi−1 − 1370589 × Bi−3 )mod(232 − 22853) Yi = (Ai − Bi)mod(232 − 209) Yi Ui = 32 2 − 209 A implementação do método permite que sejam geradas 1019 séries diferentes.12 Métodos com períodos maiores Os métodos vistos anteriormente ainda são muito usados. End.160 Introdução à Simulação {USO DA RAND2} Var semente : double . Este gerador pertence a uma classe de geradores que nada mais são do que a combinação de 2 ou mais geradores congruentes. Readln( semente ) . Writeln (ALEAT: 1 0 : 8 ) . Richard Simard.2147483646) ’ ) . 0. E.

PAS} Type MATRIZ1 = Array [ 0 .0. M2: Double = 4294944443.0) . V : = V ∗ TWO17 + A ∗ S + C. NORM: Double = 1 .0.0 . 5 0 . VETOR6 = Array [ 0 .12 Métodos com períodos maiores 161 {RAND4. A13N : Double = 810728. 3580155704. 0 / (4294967087.0) ).0 + 1 .0 . ( 226153695. 1464411153. A : = A − ( A1 ∗ TWO17) .0. 5 ] of Double . .0 . 277697599. ( 2824425944. I f (V < 0 . {− − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − −} −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− . 2093834863.0 ) ). V : = V − ( A1 ∗ M) . 32183930. VETOR3 = Array [ 1 . A23N : Double = 1370589. ( 1988835001. IG : VETOR3. . A2P127 : MATRIZ1 = ( ( 1464411153. M: Double ) : Double .0 .0 . I f ( ( V >= TWO53) or (V <= −TWO53) ) then Begin A1 : = trunc (A / TWO17) . . A1 : = trunc (V / M) .4. 0 ) then MULTMODM : = V + M else MULTMODM : = V. A1P127 : MATRIZ1 = ( ( 2427906178. 0 . Var CG.0 . Const M1: Double = 4294967087. {− − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − −} −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Function MULTMODM (A.0.0.0 . A21 : Double = 527612. . End. A12 : Double = 1403580. 2 . 0 ) . V : = A1 ∗ S .0 .0 .0.0 . 5 ] of Double . C. S .0 ) . End.0 . 1230515664. 0 . Var V: Double .0) .0. 2 ] of Double .0 . 1610723613. Semente : VETOR6. ( 32183930. TWO17: Double = 131072. .0. 949770784. 3580155704. SERIE : Integer . TWO53: Double = 9007199254740992. A1 : = trunc (V / M) . 1230515664. 1022607788. Begin V : = A ∗ S + C.0 ) . BG. 986791581. A1 : Longint . V : = V − ( A1 ∗ M) .

S [ 1 ] . {− − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − −} −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Function RAND4 : Double . { Componente 2 } P2 : = A21 ∗ CG[ SERIE ] [ 5 ] − A23N ∗ CG[ SERIE ] [ 3 ] . K : = trunc ( P1 /M1 ) . End. P2 . 2 ] of Double . For I : = 0 to 2 do Begin X[ I ] : = MULTMODM (A[ I ] [ 0 ] . End. Var S : array of Double . Begin . ZERO. J : Integer . X[ I ] . 0 . . TEMP: array [ 0 . . Begin { Componente 1 } P1 : = A12 ∗ CG[ SERIE ] [ 1 ] − A13N ∗ CG[ SERIE ] [ 0 ] . i f ( P2 < 0 . M: Double ) . CG[ SERIE ] [ 2 ] : = P1 . End. P1 . ZERO: Double . M) . {− − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − −} −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− Procedure PASSASEMENTE. Begin ZERO : = 0 . Var K: Longint . { Combinacao } i f ( P1 > P2 ) then U : = ( P1 − P2 ) ∗ NORM else U : = ( P1 − P2 + M1) ∗ NORM. K : = trunc ( P2 /M2 ) . S [ 2 ] . 0 ) then P2 : = P2 + M2. X[ I ] . Var V: Array of Double . S [ 0 ] . RAND4 : = U. CG[ SERIE ] [ 1 ] : = CG[ SERIE ] [ 2 ] . X : Array [ 0 . 0 ) then P1 : = P1 + M1. P1 : = P1 − (K ∗ M1) . i f ( P1 < 0 .162 Introdução à Simulação Procedure MATVECMODM ( Var A: MATRIZ1. CG[ SERIE ] [ 3 ] : = CG[ SERIE ] [ 4 ] . End. CG[ SERIE ] [ 0 ] : = CG[ SERIE ] [ 1 ] . X[ I ] : = MULTMODM (A[ I ] [ 1 ] . X[ I ] : = MULTMODM (A[ I ] [ 2 ] . 2 ] of Double . P2 : = P2 − (K ∗ M2) . Var I . M) . CG[ SERIE ] [ 5 ] : = P2 . Var I : Integer . CG[ SERIE ] [ 4 ] : = CG[ SERIE ] [ 5 ] . For I : = 0 to 2 do Begin V[ I ] : = X[ I ] . U: Double . M) .

For I : = 0 to 2 do Begin Semente [ I + 3 ] : = TEMP[ I ] . ele imprime os 5 primeiros números gerados. End. For J : = 2 to 50 do Begin For I : = 0 to 2 do Begin TEMP[ I ] : = Semente [ I ] . utiliza a RAND4 para gerar números aleatórios. 4294967087]. MATVECMODM ( A1P127 . End. IG [ 1 ] [ I ] : = Semente [ I ] .4. IG [ J ] [ I ] : = Semente [ I ] . . For I : = 0 to 2 do Begin TEMP[ I ] : = Semente [ I + 3 ] . A partir das 6 sementes informadas e da série escolhida. End. End.12 Métodos com períodos maiores 163 For I : = 0 to 5 do Begin BG[ 1 ] [ I ] : = Semente [ I ] . todas no intervalo [1. End. CG[ 1 ] [ I ] : = Semente [ I ] . CG[ J ] [ I ] : = Semente [ I ] . End. cada um com 1038 números aleatórios ! Para a RAND4 são necessárias 6 sementes iniciais. MATVECMODM ( A2P127 . M2) . Esta versão da função só permite que se use 50 séries. O programa a seguir. TEMP. End. End. mas devemos ressaltar que isto equivale a se ter 50 geradores diferentes. For I : = 0 to 5 do Begin BG[ J ] [ I ] : = Semente [ I ] . TEMP. For I : = 0 to 2 do Begin Semente [ I ] : = TEMP[ I ] . TEMP. TEMP. M1) .

os números aleatórios impressos foram: 0. . 2731847.164 Introdução à Simulação {USORAND4} var I : Longint ..51779478 .50824212. 0 ) or ( Semente [ I ] > 4294967087.. Basic.57235506.13 Geradores de números aleatórios embutidos Praticamente todas as linguagens de programação (Pascal.50}’ ) . Readln( SERIE ) . etc. For I : = 1 to 5 do Begin ALEAT : = RAND4. ALEAT: Double . Writeln (ALEAT: 1 0 : 8 ) . Para as sementes 78975. como o Excel por exemplo. 0. End. C. 15873476. 7590 e 6150 e série igual a 4. { $I Rand4 . pas } Begin For I : = 0 to 5 do Begin Writeln ( ’Semente ’ . End. I +1 . 0. rotinas para gerar números aleatórios.4294967087] ? ’ ) . End. Java. 4.) tem comandos para gerar números aleatórios uniformemente distribuídos em [0. 1]. também tem. 0.0) then Begin Writeln ( ’Semente fora da faixa permitida !’ ) . { ========================================================} PASSASEMENTE.94493137 e 0. End. Readln ( semente [ I ] ) . já programado. {−−−>> Chamada o b r i g a t o r i a a ntes de s e usar a RAND4} { ========================================================} Writeln ( ’Informe a Serie a ser usada [1 . I f ( Semente [ I ] < 1 . Exit . Os chamados programas aplicativos.89428253. 1300.’ [1 .

13. Cada vez que a função Random é chamada.86646369. uma variável.91209727.71591308. O Pascal tem. 0. observando que o Randomize deve vir logo no início do programa. 0. For I :=1 to 5 do Begin Writeln (Random : 1 0 : 8 ) . se escolhermos a semente igual a 45. End. End. End. O Pascal tem também uma instrução chamada Randomize que atribui a semente do gerador (variável RandSeed) um valor calculado a partir da hora corrente do computador no momento da execução do programa. Assim se fizermos RanSeed igual a um valor no intervalo [1 .73001087. os 5 números impressos são: 0. já predefinida. 32767] estaremos fornecendo a semente para o gerador. chamada RandSeed. { Gerador embutido do Turbo Pascal } { Uso do Randomize } Var I : Integer . não conseguimos repetir a mesma seqüência de números gerados já que a semente muda em cada execução do programa. { Gerador embutido do Turbo Pascal } Var Semente .13 Geradores de números aleatórios embutidos 165 4.86789456 e 0. 1].4. 0. Readln( Semente ) .1 O gerador do Turbo Pascal Para exemplificar podemos ver a seguir um programa em Pascal para gerar e imprimir números aleatórios. temos a geração de um número aleatório em [0. No programa acima. I : Integer . RandSeed : = Semente . que é a semente para a rotina interna do Turbo Pascal para a geração de números aleatórios. End. For I :=1 to 5 do Begin Writeln ( Random : 1 0 : 8 ) .32767) ? ’ ) . Begin Randomize . É óbvio que usando-se o Randomize. Temoss a seguir um exemplo de um programa utilizando o comando Randomize. O gerador do Turbo Pascal está baseado na seguinte fórmula congruente linear: xi+1 = (134775813 × xi + 1) mod 4294967296 . Begin Writeln ( ’Qual a semente (1 .

211327) mod 1 Usar “mod 1” é equivalente a se pegar a parte fracionária da conta (9821 × xi + 0.13. conhecendo-se a e b. 1]. 1]. Seja U uma variável aleatória uniformemente distribuída no intervalo [0.14 Números aleatórios com outras distribuições uniformes Uma vez que temos uma rotina para gerar números uniformemente distribuídos no intervalo [0. March .A. A partir da versão 2003 (inclusive) o gerador passou a ser o descrito no paper “Building a Random Number Generator – Wichman. B. é largamente utilizada na simulação de modelos de pequeno e médio porte. já publicados mostram que este gerador.D. Hill. é fácil gerá-los com outras distribuições uniformes. pp. onde a < b. 0 a X U 1 b Aplicando proporcionalidade simples temos: X−a b−a ou = U −0 1−0 X = a + (b − a) × U Assim é muito simples gerar X de um dado U . 4. 127 – 128. Este gerador é a combinação de 3 geradores e tem período de 1013 . embora não tão ruim como a RANDU. uniformemente distribuída dentro do intervalo (a. também tem problemas de uniformidade e aleatoriedade. Até a versão 2003 o Excel usava um gerador baseado na seguinte fórmula congruente: xi+1 = (9821 × xi + 0. b). Desta forma. and I.14.1987”. o gerador embutido do Excel tem sido objeto de muitos estudos de avaliação da sua qualidade “estatística”. 4. principalmente o Excel que tem mais de 90% do mercado.2 O gerador do Excel O uso de planilhas. . Byte.166 Introdução à Simulação 4.1 Variáveis aleatórias contínuas Suponha que X é uma variável aleatória contínua. Suas fórmulas são: Ai+1 = (171 × Ai) mod 30269 Bi+1 = (172 × Bi) mod 30307 Ci+1 = (170 × Ci) mod 30323 ALEAT = [(Ai+1 ÷ 30269) + (Bi+1 ÷ 30307) + (Ci+1 ÷ 30323)] mod 1 Inúmeros trabalhos técnicos mostraram que este é um gerador de boa qualidade. Inúmeros trabalhos.211327).

Com uma semente da RAND2 igual a 7777. Observe que como 0 ≤ U < 1. U. 1. Readln( semente ) . a + 1. Readln( a ) . a que elimina a parte decimal.44774.25192. o programa gera e imprime os seguintes números: 3. Writeln (X : 1 0 : 5 ) . { $I RAND2. então: X = a + INT[(b − a + 1) × U ] onde INT é a função inteiro. 2. Logo X só pode tomar valores a..4. . Assim X será igual a: X = 1 + INT[(6 − 1 + 1) × U ] X = 1 + INT[6 × U )] .. 4. a igual a 1 e b igual a 4. a + 1. a quantidade INT{(b − a + 1) × U } toma os valores inteiros 0. Writeln ( ’Qual o limite inferior (a) ?’ ) . { Va ri a vel u t i l i z a d a p el a RAND2} I : Integer . a < b. b]. Se U é contínua e uniformemente distribuída no intervalo [0. (b − a). X. b..PAS} Begin Writeln ( ’Qual a semente ? (1 .. b : Double . O programa usa a RAND2 como gerador básico. ou seja. 2.. End. a .37664. Assim X só pode tomar valores iguais a a. End. b − 1.. a + 2. Vejamos um exemplo: Seja a = 1 e b = 6.2147483646) ’ ) .93325. X : = a + ( b − a ) ∗ U. { Variáveis a l e a tó r i a s [ a − b ] } Var semente : double . 3. For I :=1 to 5 do Begin U : = RAND2. 1.. b. a + 2. 1].80820 e 3.14 Números aleatórios com outras distribuições uniformes 167 O programa Pascal a seguir gera e imprime os 5 primeiros números aleatórios uniformemente distribuídos no intervalo [a. e X é uma variável aleatória discreta (só valores inteiros) uniformemente distribuída no intervalo [a.2 Variáveis aleatórias discretas Agora suponha que a e b sejam quantidades inteiras. Readln( b ) . Writeln ( ’Qual o limite superior (b) ?’ ) .. . . b].14.

O program a seguir simula a jogada de 2 dados e utiliza a RAND2 como gerador básico. dado = ’ . { $I RAND2. U : = RAND2. o programa gera e imprime os seguintes valores (para a soma): 7. ’ Soma = ’ . X1 : = 1 + Trunc ( 6 ∗ U) . ’ 2o. (6 × U ) só pode ficar entre 0 e 5.X1 . X = 1 + um valor de 0 a 5. inteiro.99999. For I :=1 to 5 do Begin U : = RAND2. existe. { Variáveis a l e a tó r i a s I n te i r a s [ a − b ] } { Simulacao de j o g a r 2 dados } Var semente : Double . Também. é uma das áreas em que há mais pesquisas hoje em dia. X1 . 4. 1. 5 ou 6. não só em função do crescimento do uso das técnicas de Simulação mas também em função do crescimento da criptografia. . como acontece com muitos geradores “embutidos”. Obs. X2 : = 1 + Trunc ( 6 ∗ U) . End.X2 .168 Introdução à Simulação Como U só pode estar entre 0 e 0.2147483646) ’ ) . dado = ’ . 3. 2. 5 e 2. 8. O conceito importante a se guardar é que só devemos usar geradores de números aleatórios que tenham sido amplamente testados. Writeln ( ’1o. 4. uma cobrança muito maior na execução de testes estatísticos rigorosos nos novos geradores publicados. X2 : Integer . Readln( semente ) . 10. ou seja. U: Double . devemos fugir de geradores cuja fórmula de geração seja desconhecida. Depois do que aconteceu com a RANDU.15 Testes estatísticos Existem numerosos testes estatísticos para garantir que os números pseudos-aleatórios estão sendo gerados aleatoriamente. { Va ri a vel u t i l i z a d a p el a RAND2} I . X1+X2 ) . Logo. hoje em dia. A geração de números aleatórios em computador.9999.PAS} Begin Writeln ( ’Qual a semente ? (1 . Escolhendo uma semente igual a 875 para a RAND2. a não ser em aplicações mais simples. Em Pascal o comando para pegar só a parte inteira de um número é TRUNC. End.

perdemos ou se temos que jogar os dados uma outra vez. Ele permite que a cada execução se escolha quantas vezes queremos jogar. .4. ou seja. simula a jogada simultânea de 2 dados. Se repetir o que deu na 1a jogada você ganha. 8. Cada vez que ganhamos. 9 ou 10 você tem direito a jogar os dados outra vez. A 2a. como ilustração. 3 ou 12 você perde. O programa usa o gerador embutido do Turbo Pascal como gerador básico de números aleatórios .3% obtida da teoria das probabilidades. 4. chamada SUB1. No final dos N jogos. Se não.16 Alguns modelos elementares de Simulação 169 4. o programa imprime a divisão de SOMA por N. O programa a seguir é a implementação do jogo. Se a soma for 2. 5. vamos ver 2 exemplos de simulação em que só é necessário ter um gerador de números aleatórios uniformemente distribuídos. chamada de SUB2. A probabilidade de se ganhar neste jogo é de 49. o percentual de jogos ganhos.Unidos é o chamado “craps” no qual 2 dados são jogados simultaneamente. No entanto. A 1a. Se a soma for 7 você perde. 6. Se der 4.16 Alguns modelos elementares de Simulação A maioria dos problemas estudados através de modelos de simulação que acontecem na vida real necessitam do uso de variáveis aleatórias não uniformemente distribuídas.1 Jogo de Dados (“Craps Game”) Um jogo popular nos E. você pode jogar os dados outra vez e assim por diante. o programa soma 1 a variável SOMA.16. Se a soma for 7 ou 11 você ganha. Podemos observar que o programa tem 2 “procedures”. verifica à cada jogada dos dados se ganhamos.

{ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a Semente (0 a 32767) ?’ ) . RESULTADO : = −9. EXIT . 0 ∗ Random ) ) . End. 0 . End. EXIT . End. SOMA: Real . I f (JOGADA = 2 ) or (JOGADA = 3 ) or (JOGADA = 12) then Begin RESULTADO : = 0 . I : longint . Begin SUB1(JOGADA) . 0 + 6 .RESULTADO: Integer . End. 0 ∗ Random) ) + TRUNC( ( 1 . For I : = 1 to N do Begin SUB2(RESULTADO) . Writeln ( ’Quantos Jogos ?’ ) . { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Procedure SUB1 ( Var JOGADA: Integer ) . I f (JOGADA = 7 ) or (JOGADA = 11) then Begin RESULTADO : = 1 . Readln(N) . EXIT . End. Repeat SUB1(JOGADA) . . SOMA : = SOMA + RESULTADO. I f JOGADA = GUARDA then Begin RESULTADO : = 1 . { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } PROCEDURE SUB2 ( Var RESULTADO: Integer ) . EXIT . GUARDA : = JOGADA. End. EXIT . I f JOGADA = 7 then Begin RESULTADO : = 0 . 0 + 6 . End. ’%’ ) . N. Until (RESULTADO = 0 ) or (RESULTADO = 1 ) . End. Writeln ( (SOMA / N) ∗ 1 0 0 : 5 : 2 . SOMA : = 0 .170 Introdução à Simulação {CRAPS GAME} Var JOGADA. Readln( RandSeed ) . Begin JOGADA : = TRUNC( ( 1 .GUARDA.

Comparar Uy com f (Ux).16 Alguns modelos elementares de Simulação 171 A execução deste programa 5 vezes. Para uso do método. Suponha que se deseja calcular a integral: b I= a f (x)dx onde f (x) representa uma curva contínua no intervalo a ≤ x ≤ b. 1]. 6.000 jogos. Este procedimento é chamado de Método de Monte Carlo e não necessita mais do que um gerador de números aleatórios uniformemente distribuídos em [0. ou seja. 3. 4.2 Cálculo de Integrais Definidas Uma aplicação interessante da simulação é o cálculo de integrais definidas.04 4.42 49.26 49. acumulando os pontos que caíram dentro da área da integral. Gerar um no aleatório uniformemente distribuído. . cada vez com 10. As etapas do método de Monte Carlo são: 1. precisamos conhecer também o valor máximo (Fmax) da função no intervalo (a. Gerar um 2o número aleatório. b). Uy ) cairá em cima ou abaixo da curva.4. dentro da área que representa a integral. apresentou os seguintes resultados: Semente 8744 123 10000 7361 313 Média Ganho (%) 48. cujo valor está entre 0 e Fmax. Ux. 2. Calcular f (Ux).33 49. Se Uy ≤ f (Ux) então o ponto (Ux. Calcule o percentual (P ERC) de pontos que caíram na área da integral. no sentido em que um método probabilístico é usado para resolver um problema determinístico.21 48. 5. dividindo pelo total de números tentados (n). cujo valor está entre a e b. Estes 2 números aleatórios (Ux e Uy ) representam as coordenadas de um ponto no espaço. uy . Repita n vezes as etapas de 1 a 4.16.97 49.

LIMSUP. End.785398. { $I RAND2.PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function VFUNCAO (X : Real ) : Real .INTEGRAL: Real .FMAX. Begin VFUNCAO : = SQRT(1−X∗X ) . { Va ri a vel u t i l i z a d a p el a RAND2} N. 1 − x2 no nosso exemplo. Neste exemplo a é 0 e b é 1. A integral. I : Integer . O programa a seguir implementa o método de Monte Carlo para cálculo de integrais definidas. X. A area do retângulo e igual a (b − a) × Fmax. . LIMINF.UX. A usaremos para mostrar que a simulação produz resultados consistentes. 785398 F (x) Fmax = 1 F (Ux) Uy -1 0 Ux 1 x A area da parte do gráfico abaixo da curva. a area abaixo da curva sera igual a (b − a) × Fmax× % de pontos que caem em cima ou abaixo da curva. 1 × 1 = 1. é colocada. { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 . O Fmax é 1. U: Double .172 O valor da integral é obtido por: I = P ERC × (b − a) × Fmax Exemplo: Considere a integral abaixo: 1 0 Introdução à Simulação O valor desta integral pode ser obtida pelo cálculo e é igual 0.2147483646) ’ ) . ou seja.FUX. {CALCULO DE INTEGRAIS} VAR semente : double .UY. Ele usa a RAND2 como gerador básico e tem uma função (VFUNCAO) √ onde a função a ser integrada. O gráfico da função e da “integral” pode ser visto a seguir: 1 − x2 dx = 0. é o valor da integral procurada.IDENTRO. no 1o quadrante. ou seja.

no entanto.INTEGRAL: 1 0 : 5 ) . U : = RAND2. . UY : = U ∗ FMAX. INTEGRAL : = (IDENTRO / N) ∗ (LIMSUP −LIMINF ) ∗FMAX. não se tem solução analítica. Executando-se este programa. Na verdade o Método de Monte Carlo é mais um dos métodos numéricos para a solução de integrais definidas que não tem solução analítica. I f UY <= FUX then IDENTRO : = IDENTRO +1. Exit . For I : = 1 to N do Begin U : = RAND2. End. I f (LIMINF >= LIMSUP) Then Begin Writeln ( ’ERRO NOS LIMITES !! ’ ) . a simulação pode dar respostas bastante aproximadas.7848.16 Alguns modelos elementares de Simulação 173 Readln( semente ) .000 números. Writeln ( ’Qual o valor maximo da funcao no intervalo de integracao ?’ ) . com a semente 555666 para a RAND2 e escolhendose 10. o valor da integral é dado pelo programa como igual a 0. End.4. IDENTRO : = 0 . Readln(LIMSUP ) . Writeln ( ’Qual o limite inferior de integracao (a) ?’ ) . Readln(LIMINF ) . UX : = LIMINF + (U ∗ (LIMSUP − LIMINF ) ) . Readln(N) . Soluções analíticas darão sempre respostas “mais exatas” que as respostas fornecidas pela simulação. Quando. End. Writeln ( ’VALOR DA INTEGRAL = ’ . Writeln ( ’Qual o limite superior de integracao (b) ?’ ) . Writeln ( ’Quantos Numeros ?’ ) . A integral usada no último exemplo é apropriada para se reforçar a regra básica do uso da simulação: Problemas que tem solução analítica nunca devem ser resolvidos por meio da simulação. FUX : = VFUNCAO(UX) . Readln(FMAX ) .

174

Introdução à Simulação

4.17 Variáveis aleatórias não uniformes
Na maioria dos problemas do mundo real, as variáveis aleatórias seguem distribuições diferentes da uniforme tal como a de Poisson, a Exponencial, a Normal, etc... Neste capítulo veremos como números aleatórios uniformemente distribuídos em [0, 1] podem ser usados para gerar variáveis aleatórias, não uniformes, como as citadas acima.

4.17.1 O Método da Transformação Inversa
Suponha que temos uma distribuição probabilística, com função de densidade f (x) e função de distribuição acumulada igual a F (x). Desejamos gerar uma variável aleatória que siga esta distribuição probabilística. O método da Transformação Inversa oferece uma maneira simples de resolver o problema. O método está baseado no fato de que a distribuição acumulada, F (x), tem valor entre 0 e 1 ou seja, no mesmo intervalo de um no aleatório, U , gerado por um gerador básico. Assim sendo, tendo U , consideramos este valor como sendo um valor de F (x). Para achar o valor de x, basta resolver a equação, ou seja achar a inversa de F (x). A figura a seguir mostra, graficamente, o princípio no qual o método está baseado:

F (x) 1

U = y0

0

x0

x

4.17 Variáveis aleatórias não uniformes

175

Isto é, se y0 = F (x0 ), então podemos escrever: x0 = F −1 (y0 ) Substituindo y0 por U , temos: x0 = F −1 (U ) Exemplo: Aplique o método da transformação inversa para a seguinte função de densidade probabilística: x em 1≤x≤3 f (x) = 4 f (x) = 0 fora do intervalo acima Use o método para gerar 6 valores sucessivos para X, dados os seguintes valores aleatórios uniformemente distribuídos em [0, 1]: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43. Inicialmente determinamos a função cumulativa:
x

y = F (x) =
1

x 4

dx =

x2 8

x

=
1

x2 8

1 8

=

(x2 − 1) 8

para 1 ≤ x ≤ 3.

Resolvendo para x obtemos: √ x = 8y + 1 que pode ser escrita como: √ xi = 8Ui + 1 onde Ui é uma variável aleatória uniformemente distribuída em [0, 1]. Quando Ui = 0.35 nós podemos obter o valor correspondente para xi como: xi = (8) × (0.350) + 1 = 1.95 Procedendo de forma idêntica, podemos obter os demais valores: i 1 2 3 4 5 6 Ui 0.35 0.97 0.22 0.15 0.60 0.43 xi 1.95 2.96 1.66 1.48 2.41 2.11

O valor esperado e o desvio padrão podem ser calculados de: 3 +∞ 3 3 2 x x x3 E(x) = xf (x)dx = x × dx = = 2.167 dx = 4 4 12 1 −∞ 1 1 3 +∞ 3 x4 2 2 2 2 2x − 2.1672 = 0.30555 − 2.167 = σ = x f (x) − E(x) = x 4 16 1 −∞ 1 √ σ = 0.30555 = 0.552

176

Introdução à Simulação

Veremos a seguir como aplicar o método da transformação inversa para várias distribuições bem conhecidas. Entretanto é bom esclarecer que este método não pode ser aplicado para todas as distribuições. Existem algumas, como a normal, cuja função de distribuição probabilística não pode ser integrada analíticamente e, logicamente, não se pode achar a sua inversa. Há casos ainda em que não é possível obter uma equação explícita para x mesmo se tendo uma expressão analítica para a função cumulativa. Existem outras técnicas para estes casos.

A Distribuição Exponencial
Muitos problemas de simulação necessitam usar a distribuição exponencial. Isto é verdadeiro nos problemas que envolvem chegadas e partidas (filas), como a simulação de uma agência bancária, da saída (caixas) de um supermercado, de um aeroporto, etc... A função de densidade probabilística da exponencial é igual a: f (x) = αe−αx onde α é uma constante conhecida e a média (µ) é igual a A função de distribuição acumulada é dada por: F (x) = 1 − e−αx 1 . α

De modo a se fazer uso do método da transformação inversa devemos resolver para x. Assim temos: ln[1 − F (x)] α Como a função acumulada, F (x), é uniformemente distribuída em [0, 1], a quantidade 1 − F (x) também será uniformemente distribuída em [0, 1]. Assim podemos escrever 1 ln(U ) α onde x é a variável aleatória exponencialmente distribuída e U é um número aleatório uniformemente distribuído em [0, 1], gerado por um gerador básico. Suponha agora que x deve ser maior ou igual a um determinado valor positivo, x0 , isto é 0 < x0 < x. A equação acima fica: x=− x = x0 − A media (µ) fica como: µ = x0 + 1 α ln(U ) x=− 1

1 α

4.17 Variáveis aleatórias não uniformes

177

Podemos tirar então a relação entre α e µ: α= 1 (µ − x0 )

Exemplo: Gerar 6 variáveis exponencialmente distribuídas maiores que 2 e com média igual a 6, usando os seguintes números uniformemente distribuídos em [0, 1]: 0.35, 0.97, 0.22, 0.15, 0.60, 0.43. Temos então: x0 = 2 e µ = 6. Calculando o valor de α: 1 α= = 0.25 (6 − 2) Podemos então calcular as variáveis da distribuição exponencial: 1 X1 = 2 − ln(0.35) = 6.20 0.25 1 ln(0.97) = 2.12 X2 = 2 − 0.25 Os demais valores encontrados são: i 1 2 3 4 5 6 Ui 0.35 0.97 0.22 0.15 0.60 0.43 Xi 6.20 2.12 8.06 9.59 4.04 5.38

O programa a seguir, escrito em Pascal, implementa a geração de números aleatórios que seguem a distribuição exponencial. O programa permite que se informe quantos números queremos gerar, o limite inferior da distribuição e a média. Como saída ele imprime os 5 primeiros números gerados e a média de todos os números gerados. O programa usa a RAND2 como o gerador básico de números aleatórios.

178

Introdução à Simulação

{EXPONENCIAL} Var semente : double ; { Va ri a vel u t i l i z a d a p el a RAND2} N, I ,NUMIMP: Integer ; U,SOMA: Double ; LIMINF,ALFA,MEDIA: Real ; { $I RAND2.PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function EXPONENCIAL (ALFA, LIMINF : Real ; U: Double ) : Double ; Begin EXPONENCIAL : = LIMINF − ( 1 /ALFA) ∗ LN(U) ; End; { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 - 2147483646) ’ ) ; Readln( semente ) ; Writeln ( ’Quantos Numeros ?’ ) ; Readln(N) ; Writeln ( ’Qual o Limite Inferior ?’ ) ; Readln(LIMINF ) ; Writeln ( ’Qual a Media ?’ ) ; Readln(MEDIA) ; ALFA : = 1 . 0 / (MEDIA − LIMINF ) ; SOMA : = 0 . 0 ; NUMIMP : = 0 ; For I : = 1 to N do Begin U : = RAND2; U : = EXPONENCIAL(ALFA, LIMINF,U) ; NUMIMP : = NUMIMP + 1 ; I f NUMIMP < 6 then Writeln (U: 1 0 : 8 ) ; SOMA : = SOMA + U; End; Writeln ( ’MEDIA = ’ ,SOMA / N: 1 0 : 6 ) ; End.

Em uma execução, usando-se a semente 1234 para a RAND2, em que foram gerados 10.000 números com limite inferior igual a 2 e média igual a 6, os seguintes resultados foram apresentados: Primeiros 5 números gerados: 8.03343632; 10.61596329; 13.38207724; 7.21078637 e 2.45744007. Média dos 10.000 números gerados: 6.00481.

17 Variáveis aleatórias não uniformes 179 A Distribuição Triangular A distribuição Triangular tem um uso bastante difundido em Simulação. podemos escrever: U = . f (x) A C 2(x − A) B x Sua função de densidade é dada por: f (x) = para A ≤ x ≤ C (C − A)(B − A) 2(B − x) para C ≤ x ≤ B = (B − C)(B − A) Podemos usar o Método da Transformação Inversa mas a descontinuidade da função faz com que seja necessário desenvolver 2 geradores separados: um para x ≤ C e um para x ≥ C. principalmente quando os dados disponíveis são poucos ou mesmo inexistentes.4. variam em [0 . mais provável (C) e mais pessimista (B) de uma determinada variável. A função de distribuição acumulada F (x) é igual a: F (x) = 2(x − A) dx A (C − A)(B − A) x2 − 2Ax + A2 = (C − A)(B − A) x2 − 2Ax + A2 (C − A)(B − A) x Como F (x) e U gerado por um gerador básico. e seus limites. Sua forma permite que dados não conclusivos sejam a ela adaptados. Inicialmente vamos desenvolver um para x ≤ C. C (moda) e B (limite superior) sejam interpretados como os parâmetros mais otimista (A). como pode ser visto na figura a seguir. ou seja A (limite inferior). 1].

. Como saída ele imprime os 5 primeiros números gerados.97 (maior que 0. 0. para obter o valor de x. implementa a geração de números aleatórios que seguem a distribuição triangular.35)(8 − 4)(8 − 2) = 4. 0. moda (C) igual a 4 e limite superior (B) igual a 8. Use os seguintes números aleatórios uniformemente distribuídos em [0. O programa usa a RAND2 como o gerador básico de números aleatórios. (8 − 2) Assim para o 1o U.97)(8 − 4)(8 − 2) = 7. a média e o desvio padrão dos números gerados. O programa permite que se informe quantos números queremos gerar e os 3 parâmetros (A. chegamos a : x=A+ Esta fórmula pode ser usada se U < U (C − A)(B − A) (C − A) .22 (menor que 0.35 (maior que 0. (C − A) ou A fórmula a ser usada depende se o valor de U é maior ou menor que (B − A) (4 − 2) seja = 0.33) temos: X3 = 2 + 0. pois a razão Introdução à Simulação (B − A) nal a área sob o triângulo de x = A até x = C.3333.22(4 − 2)(8 − 2) = 3.624 O programa a seguir.35.33) temos: X1 = 8 − (1 − 0.180 Fazendo as simplificações necessárias. Para x ≥ C temos: x (B − A) (C − A) é proporcio- F (x) = U = Operando.B e C) da distribuição. 0. (B − A) A media e o desvio padrão da Distribuição Triangular são: Esta fórmula deve ser usada quando U ≥ A+B+C 3 A2 + B 2 + C 2 − AB − AC − BC 18 x = σ = Exemplo: Gerar 3 variáveis aleatórias seguindo a Distribuição Triangular com limite inferior (A) igual a 2.22.97. 1]: 0. obtemos: x=B− (B − C)(B − A) 2 −x + 2Bx − B 2 +1 U = (B − C)(B − A) C 2(B − x) dx (1 − U )(B − C)(B − A) (C − A) .33) temos: X2 = 8 − (1 − 0. escrito em Pascal.050 Para 0.151 Para 0.

DESVIO : = 0 . 2. Writeln ( ’MEDIA = ’ . Readln(B ) . A. NUMIMP : = 0 . Readln(A ) . Writeln ( ’Qual o limite inferior (A) ?’ ) . Writeln ( ’Qual a moda (C) ?’ ) . U.2147483646) ’ ) . End. B = 8 e C = 4 da triangular. 3. O desvio padrão obtido foi igual a 1.62950. { Va ri a vel u t i l i z a d a p el a RAND2} N. I .PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function TRIANGULAR ( A. Begin I f (U < ( ( C A ) / ( B A ) ) ) then − − TRIANGULAR : = A + Sqrt (U∗ (C A) ∗ ( B A ) ) − − Else TRIANGULAR : = B − Sqrt ((1−U) ∗ ( B C) ∗ ( B A ) ) . SOMA : = 0 .66210. B.83501. . { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } BEGIN Writeln ( ’Qual a semente ? (1 . I f NUMIMP < 6 then Writeln ( T : 1 0 : 5 ) . B.24890. A média dos 10. 0 . T : = TRIANGULAR(A.SOMA / N: 1 0 : 5 ) . A média teórica é igual a 4. C. DESVIO : = DESVIO + T ∗ T .000 números com os parâmetros A = 2. 3. { $I RAND2. DESVIO. − − End. usando-se a semente 1234 para a RAND2. Readln(N) .U : Double ) : Real . 0 . For I : = 1 to N do Begin U : = RAND2.17 Variáveis aleatórias não uniformes 181 {TRIANGULAR} Var semente : double . em que foram gerados 10.17993.SQRT ( ( DESVIO/N) −(SOMA/N) ∗ (SOMA/N) ) : 1 0 : 5 ) .4. Writeln ( ’Quantos Numeros ?’ ) . END. Readln( semente ) . Em uma execução. Writeln ( ’DESVIO PADRAO = ’ .66666. T : Real .U ) . os seguintes resultados foram obtidos: Primeiros 5 números gerados: 3.80598 e 6. Writeln ( ’Qual o limite superior (B) ?’ ) . O desvio padrão teórico é igual a 1. C : Real .38956.SOMA: Double .MEDIA. NUMIMP : = NUMIMP + 1 .000 números gerados foi igual a 4. Readln(C ) . B. SOMA : = SOMA + T .NUMIMP: Integer .247. C.

Já vimos (página 176) que podemos gerar variáveis exponenciais (Ei) através da relação: 1 Ei = − ln Ui λ Logo a variável “poisson” é o valor de k − 1 quando. por exemplo. acontece: k Ei > t i=1 ou k i=1 − 1 λ ln Ui > t que pode ser escrita como: k i=1 − ln Ui > λt . com média λt.182 Introdução à Simulação 4. onde k é a variável Poisson. temos: Sk ≤ t < sk+1 . no somatório. ou seja o intervalo entre as chegadas.2 Simulação Direta O método da Transformação Inversa só pode ser usado se uma expressão analítica puder ser obtida para a função de distribuição acumulada e ela possa ser resolvida explicitamente para x. se o tempo entre sucessivas chegadas (ou partidas) é exponencialmente distribuído. A distribuição de Poisson A distribuição de Poisson está intimamente relacionada com a distribuição exponencial e é usada em muitos problemas de simulação que envolvem chegadas e partidas. Uma técnica alternativa para estes casos é o uso da simulação direta do processo sob consideração. como para a distribuição normal.17. Em particular. k Fazendo Sk = i=1 Ei . sejam os instantes da chegada de clientes em um posto bancário: E1 E2 E3 E4 tempo × × × × 0 t Seja Ei uma variável aleatória exponencialmente distribuída com média 1/λt. então o número de eventos que ocorrem em um intervalo de tempo finito t será distribuído de acordo com uma distribuição de Poisson. Existem muitas situações onde isto não é possível. Suponha que as marcações (×) na linha do tempo mostrada abaixo. então para o intervalo t. ou seja o número de chegadas no intervalo t (k = 3 no exemplo gráfico acima).

223 < 0.79.20) X5 = (2 − 1) = 1 pois 0.60 × 0.43.10. 0.4.57. 0. 0.97. Como saída ele imprime os 5 primeiros números gerados e a média de todos os números gerados.35 × 0.223.43 × 0.22) Logo X1 = (k − 1) = 2. implementa a geração de números aletórios que seguem a distribuição de Poisson.81 × 0. 3 números aleatórios uniformemente distribuídos são necessários como podemos ver a seguir: k = 1 ⇒ 0.223 > 0.20.35. Exercício: Gerar 5 variáveis aleatórias seguindo a distribuição de Poisson com média (λ) = 1.60.35 × 0. 0.22. escrito em Pascal.15.5 temos e−λ = 0. 0.35 k = 2 ⇒ 0.5.055(= 0.057(= 0.204(= 0.075(= 0.223 > 0. 0. k = 1 ⇒ 0.223 > 0.15 Logo X2 = (k − 1) = 0 X3 = (3 − 1) = 2 pois 0.65 × 0. Faça os cálculos usando o seguinte conjunto de números aleatórios uniformemente distribuídos: 0.223 > 0.10) O programa a seguir.81.223 > 0. De maneira a obter a primeira variável aleatória. 0.79) X4 = (4 − 1) = 3 pois 0.52 × 0.223 < 0. 0.52.97 × 0. O programa usa a RAND2 como o gerador básico de números aleatórios. O programa permite que se informe quantos números queremos gerar e o valor de λ. 0.97) k = 3 ⇒ 0. 0.340(= 0. 0.57 × 0. a variável “poisson” é igual a k − 1 quando a relação acima passa a ser verdadeira.65. 0. Como λ = 1. temos: k i=1 ln Ui < −λt Fazendo t = 1 e exponenciando ambos os lados chegamos a: k Ui < e−λ i=1 ou k e−λ > i=1 Ui ou seja.17 Variáveis aleatórias não uniformes 183 Multiplicando ambos os lados da equação por −1. .

VMULT : Real .184 Introdução à Simulação {POISSON} Var semente : double . 0 .2147483646) ’ ) .MEDIA. Writeln ( ’MEDIA = ’ .50530. SOMA : = 0 . End. { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 . Em uma execução. SOMA : = SOMA + J . 1. J : Integer . usando-se a semente 9999 para a RAND2. Writeln ( ’Quantos Numeros ?’ ) . VMULT : = 1 . Readln( semente ) . NUMPOISSON : Integer . I . While (VMULT > F) do Begin ALEAT : = RAND2.000 números com λ = 1.PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function POISSON ( F : Real ) : Integer . { $I RAND2. { Va ri a vel u t i l i z a d a p el a RAND2} N. SOMA: Double . 1. Readln(LAMBDA) .000 números gerados foi igual a 1. os seguintes resultados foram obtidos: Primeiros 5 números gerados: 0. em que foram gerados 10. VMULT : = VMULT ∗ ALEAT. A média (λ) dos 10. Begin NUMPOISSON : = 0 . NUMPOISSON : = NUMPOISSON + 1 . Readln(N) . End. For I : = 1 to N do Begin J : = POISSON( F ) . I f NUMIMP < 6 then WRITELN( J ) . 0 .5. NUMIMP : = NUMIMP + 1 . Var ALEAT : Double . POISSON : = NUMPOISSON − 1 . .NUMIMP. F : = EXP(−LAMBDA) . LAMBDA.SOMA / N: 1 0 : 5 ) . Writeln ( ’Qual o valor de Lambda ?’ ) . End. NUMIMP : = 0 . End. F : Real . 2 e 1.

0. 0. A função de densidade normal não pode ser integrada analíticamente e desta forma não podemos usar o método da transformação inversa. Exemplo: Gerar uma variável aleatória que siga a distribuição normal com média 5 e desvio padrão 2. 1] segue uma distribuição Normal com µ = 2 N σ= . .4. (x − µ) . Use o seguinte conjunto de variáveis aleatórias uniformemente distribuídas em [0. Pelo teorema do limite central sabemos que a soma de N variáveis aleatórias uniN e formemente distribuídas em [0.43. Podemos. gerar a variável aleatória desejada por simulação direta. 12 Podemos escrever: N Z= i=1 Ui − N 12 N 2 Como esta consideração é válida para N > 10. 0.81. 0. uma vez mais. podemos fazer N = 12 para facilitar o procedimento computacional.20.79.65.35. 1]: 0.57. Simplesmente somamos 12 números aleatórios uniformemente distribuídos em [0. obtendo então: 12 Z= i=1 Ui − 6 Temos agora um procedimento simples para gerar uma variável aleatória normalmente padronizada. 0. geramos primeiro Z e então calculamos a variável aleatória desejada X usando: X = µ + σZ. obtendo um valor para Z. 0. 0. entretanto. 0. 0. 1] e então subtraímos 6. Esta distribuição é caracterizada por uma densidade probabilística dada por: − 1 σ f (x) = √ e 2 σ 2π onde µ é a média e σ é o desvio padrão.15.52.97. 0.17 Variáveis aleatórias não uniformes 185 A distribuição Normal Muitos tipos de eventos aleatórios são governados pela distribuição Normal.22.60. 0. Para fazer isto considere o caso especial onde σ = 1 e Z = σ Temos então:   1 x−µ  2 Z2 1 − f (Z) = √ e 2 2π Esta é a função de densidade probabilística para a distribuição normal padronizada (standard). Se desejarmos gerar uma variável normal com média µ e desvio padrão σ.

DESVIO: Double .26 Calculamos então o valor de Z = (6. End. Z . Writeln ( ’Qual o desvio padrao ?’ ) . NORMAL : = MU + DELTA ∗ (SOMA12 − 6 . O programa permite que se informe quantos números queremos gerar. 0 . Var SOMA12 : Double . Readln(MU) . SOMA : = 0 . SOMA. End. Readln( semente ) .DELTA: Real .57 = 6. a média de todos os números gerados e o desvio padrão.26 − 6) = 0.DELTA: Real ) : Double . . Writeln ( ’Qual a media ?’ ) . I . { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 . DESVIO : = 0 .52 O programa a seguir. J : Integer .DELTA ) . escrito em Pascal. { $I RAND2. Begin SOMA12 : = 0 . O programa usa a RAND2 como o gerador básico de números aleatórios. a média µ e o desvio padrão σ. For I : = 1 to N do Begin Z : = NORMAL(MU. 0 ) .26. Readln(N) . . N. NUMIMP : = 0 . MU. DESVIO : = DESVIO + ( Z ∗ Z ) .26) = 5. 0 . {NORMAL I } Var { Va ri a vel u t i l i z a d a p el a RAND2} semente : double .186 A soma dos 12 números dá: 12 Introdução à Simulação Ui = 0. NUMIMP : = NUMIMP + 1 . 0 . Writeln ( ’Quantos Numeros ?’ ) . A variável aleatória normal pode então ser obtida por: X = 5 + (2)(0.35 + 0.2147483646) ’ ) . Como saída ele imprime os 6 primeiros números gerados.PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function NORMAL(MU. implementa a geração de números aleatórios que seguem a distribuição Normal. + 0.97 + . Readln(DELTA ) .NUMIMP. For J : = 1 to 12 do Begin SOMA12 : = SOMA12 + RAND2. i=1 . SOMA : = SOMA + Z .

000 números gerados foi igual a 5.DESVIO: 1 0 : 6 ) . END.518116. Writeln ( ’DESVIO PADRAO = ’ . Use o seguinte conjunto de números aleatórios uniformemente distribuídos em [0. Exemplo: Gere 2 números aleatórios que sigam uma distribuição normal com média 5 e desvio padrão 2. Um método alternativo para gerar variáveis aleatórias normalmente distribuídas é usar uma das seguintes expressões: Z= ou Z= (−2 ln U1 ) sin (2πU2 ) (−2 ln U1 ) cos (2πU2 ) Ambas as expressões geram variáveis aleatórias normais padronizadas. a média µ e o desvio padrão σ. raiz quadrada e seno (ou coseno) é muito mais demorado que uma soma.000099 O desvio padrão (σ) foi igual a 2.82 O programa a seguir.22) sin [(2π)(0.97)] = −0.41 X2 = 5 + (2)(1. O programa permite que se informe quantos números queremos gerar.675719.15.000 números com µ = 5 e σ = 2.17 Variáveis aleatórias não uniformes 187 I f NUMIMP < 6 then Writeln ( Z : 1 0 : 6 ) .15)] = 1.4. 6.SOMA / N: 1 0 : 6 ) .35. Como saída ele imprime os 5 primeiros números gerados. 1]: 0. os seguintes resultados foram obtidos: Primeiros 5 números gerados: 2.27) = 4. O programa usa a RAND2 como o gerador básico de números aleatórios. Writeln ( ’MEDIA = ’ . . End. implementa a geração de números aleatórios que seguem a distribuição Normal utilizando a fórmula do seno. 2. Observe que o método anterior necessita de 12 valores de Ui para cada valor de Z enquanto que este último só necessita de 2. em que foram gerados 10.085512.46 Z1 = (−2) ln (0. A média (µ) dos 10.41) = 7. Assim aparenta ser mais eficiente do ponto de vista computacional mas o cálculo de logarítimo. Temos então: Z1 = (−2) ln (0. 0. DESVIO : = SQRT ( ( DESVIO / N) − (SOMA /N) ∗ (SOMA / N ) ) .27 X1 = 5 + (2)(−0.22.587349 e 0. Na verdade os 2 métodos se equivalem em termos de tempo computacional. escrito em Pascal. 0.35) sin [(2π)(0. a média de todos os números gerados e o desvio padrão. 0.97.008877. 0. Em uma execução.899317. usando-se a semente 9999 para a RAND2.

DELTA: Real . End. Writeln ( ’Qual a media ?’ ) . em que foram gerados 10. Writeln ( ’DESVIO PADRAO = ’ . For I : = 1 to N do Begin Z : = NORMAL(MU. Readln( semente ) . I f NUMIMP < 6 then Writeln ( Z : 1 0 : 6 ) .SOMA / N: 1 0 : 6 ) . 7. Z . DESVIO : = SQRT ( ( DESVIO / N) − (SOMA /N) ∗ (SOMA / N ) ) . Readln(MU) . NORMAL : = MU + DELTA ∗ ALEAT. Begin ALEAT : = SQRT(( −2. DESVIO : = DESVIO + ( Z ∗ Z ) . End. 0 ∗ PI ∗ RAND2) .PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function NORMAL(MU. DESVIO : = 0 . { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 . usando-se a semente 9999 para a RAND2. 5.000 números gerados foi igual a 4. 2. { $I RAND2. { Va ri a vel u t i l i z a d a p el a RAND2} N. Readln(DELTA ) . Em uma execução. NUMIMP : = 0 . Writeln ( ’Quantos Numeros ?’ ) . SOMA : = SOMA + Z . .983037.DESVIO: Double . SOMA : = 0 . NUMIMP : = NUMIMP + 1 .DELTA ) . os seguintes resultados foram obtidos: Primeiros 5 números gerados: 3.621057. O desvio padrão (σ) foi igual a 2.018632. 0 . Readln(N) . A média (µ) dos 10.188 Introdução à Simulação {NORMAL I I } Var semente : double .SOMA. End. ALEAT. 0 . Writeln ( ’Qual o desvio padrao ?’ ) .000 números com µ = 5 e σ = 2. MU.0 ∗ LN(RAND2) ) ) ∗ SIN ( 2 .NUMIMP: Integer .2147483646) ’ ) .DESVIO: 1 0 : 6 ) .882391. Writeln ( ’MEDIA = ’ . I .DELTA: Real ) : Double .281765.879522.491422 e 7.

determinar f (K). 2. isto é. Obter uma variável aleatória. usando a relação Y = fmax × U2 . Os pontos Y e K representam as coordenadas de algum ponto no espaço como ilustrado nas figuras a seguir: f (x) fmax f (K) Y x 0 a K b Y < f (K). uniforme dentro do intervalo 0 ≤ Y ≤ fmax. De maneira a se obter a variável aleatória X.17. Gerar um par (U1 . Obter uma variável aleatória. Y . necessitamos que 0 ≤ f (x) ≤ fmax dentro do intervalo a ≤ x ≤ b. 3.4. K. logo aceitamos K . isto é.3 O Método da Rejeição O Método da Rejeição é um procedimento geral para gerar variáveis aleatórias para qualquer distribuição cuja densidade probabilística f (x) é contínua e limitada dentro de uma região finita. deve-se proceder da seguinte forma: 1. Avaliar a densidade probabilística no ponto K. dentro do intervalo a ≤ K ≤ b. usando a relação K = a + (b − a) × U1 . 4.1). U2 ) de números aleatórios uniformemente distribuídos em (0.17 Variáveis aleatórias não uniformes 189 4.

Comparar Y com f (K). no método da rejeição. A distribuição Beta Para ilustrar o uso do método da rejeição. Se Y não é maior que f (K) então o ponto (Y. 6. Pode ser mostrado que a média e a variância para esta distribuição são: µ= β1 (β1 + β2 ) µβ2 (β1 + β2 ) + (β1 + β2 + 1) σ2 = Como 0 ≤ x ≤ 1 para a distribuição Beta. As etapas de 1 a 5 são repetidas sucessivamente até ser encontrado um ponto que satisfaça a condição. a = 0 e b = 1. Se Y é maior que f (K). ele é ineficiente por causa das diversas tentativas que se tem que fazer para se obter uma variável aleatória desejada. Esta distribuição tem a densidade probabilística dada por: f (x) = (β1 + β2 − 1)!x(β1 −1) (1 − x)(β2 −1) (β1 − 1)!(β2 − 1)! onde β1 e β2 são inteiros positivos e 0 ≤ x ≤ 1. K) cairá em cima ou abaixo da curva de densidade probabilística como indicado na primeira figura acima.190 Introdução à Simulação f (x) fmax Y f (K) x 0 aK b Y > f (K). vamos considerar a distribuição Beta. Embora o método da rejeição possa ser usado com muitas distribuições diferentes. ou seja. Por esta razão só deve ser usado se não existir outro método. fazemos X = K. temos. Neste caso nós aceitamos K como a variável aleatória desejada. logo não aceitamos K 5. rejeitamos o ponto. .

79.16 1. Em particular vamos gerar várias variáveis beta com β1 = 2 e β2 = 3.22 0. 0.35 1.65. 0. 0. e o valor Fmax.15 0. 0.35 0.77 1. 0.81 0. baseado na seguinte sequência de números aleatórios uniformemente distribuídos em (0. Como saída ele imprime os 5 primeiros números gerados.78 × U2 Os resultados obtidos com a aplicação do método estão mostrados a seguir: U1 0. 0. 0.17 Variáveis aleatórias não uniformes 191 Exemplo: O modo mais fácil de gerar uma variável aleatória Beta é usar simulação direta.60 0. K = a + (b − a) × U1 = 0 + (1 − 0) × U1 = U1 K = U1 A função de densidade probabilística pode ser escrita como: (2 + 3 − 1)!x(2−1)(1 − x)(3−1) f (x) = (2 − 1)!(3 − 1)! f (x) = 12x(1 − x)2 A função toma seu valor máximo em x = 1/3. O programa usa a RAND2 como o gerador básico de números aleatórios. escrito em Pascal.35. 0.57 K 0. 0. 0. O programa a seguir.65 0.22 0.77 0. como exemplo.35. .73 0. nós geramos 4 variáveis beta cujos valores são 0.22 0. 1].81.22.27 0. Ele imprime também quantos números aleatórios em [0.78 = 3 3 9 Como Y é igual fmax × U2 . Vamos no entanto.52 0.35 0.20 U2 0.81 0.57.43 0.60 0.1): 0. temos: Y = 1.20. O programa permite que se informe quantos números queremos gerar.61 1.20. usar o método da rejeição.60 e 0.97 0.42 0.60.97.20 Assim com 6 pares de números aleatórios em [0. 0.52.35 0.20 f (K) 1.60 0.01 Y ≤ f (K)? SIM SIM SIM NÃO NÃO SIM X 0.79 0. 0. 0. Temos então: 1 2 2 16 fmax = 12 = 1. implementa a geração de números aleatórios que seguem a distribuição Beta utilizando o método da rejeição.15.43.93 1.79 0.54 Y 1. a média de todos os números gerados e o desvio padrão.22. 1] foram necessários.4.15 0.

0 . I f Y < VFUNCAO(X) then Begin I := I + 1. Var semente : double . Readln(N) . Readln( semente ) . DESVIO : = SQRT ( ( DESVIO / N) − (SOMA ∗ SOMA) ) . { $I RAND2. End. J : Longint . End. NUMIMP : = NUMIMP + 1 . U : = RAND2.FMAX. Begin VFUNCAO : = 12 ∗ X ∗ ( 1 − X) ∗ ( 1 − X ) . J / 2 : 1 0 : 0 . NUMBETA : = X . I f NUMIMP < 6 then Writeln (NUMBETA: 1 0 : 6 ) . Writeln ( ’Desvio Padrao = ’ . MEDIA. NUMIMP : = 0 . X : = A + (B − A) ∗ U. DESVIO : = DESVIO + NUMBETA ∗ NUMBETA. SOMA : = SOMA / N. I . Readln(FMAX ) . Writeln ( ’Quantos Numeros ?’ ) .192 Introdução à Simulação {BETA} Const A = 0. 0 . Y.PAS} { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Function VFUNCAO (X : Real ) : Real . I := 0. End. Y : = FMAX ∗ U. J := J + 1. X. B = 1. Writeln ( ’Usados ’ . SOMA : = 0 . J : = J +1. { ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗ } Begin Writeln ( ’Qual a semente ? (1 . DESVIO. J := 0. DESVIO : = 0 . U: Double .NUMBETA: Real . Writeln ( ’MEDIA = ’ . While I < N do Begin U : = RAND2.SOMA.NUMIMP: Integer . SOMA : = SOMA + NUMBETA. ’ pares de numeros aleatorios’ ) . { Va ri a vel u t i l i z a d a p el a RAND2} N. Writeln ( ’Qual o valor de Fmax ?’ ) . .DESVIO: 1 0 : 6 ) .2147483646) ’ ) .SOMA / N: 1 0 : 6 ) .

Em uma execução.401867.18 Simulação de um pequeno posto bancário Veremos uma aplicação construída para simular o funcionamento de um pequeno posto bancário com uma único caixa e uma única fila. foram necessários 17. 4.273952 e 0.372518. Dados obtidos por amostragem indicam que o intervalo entre chegadas de clientes segue uma Distribuição Exponencial e a duração do serviço prestado.4 × 3 σ= = = 0. O desvio padrão teórico é igual a: µβ2 0.187698. escrito em Pascal. os seguintes resultados foram obtidos: Primeiros 5 números gerados: 0.4 β1 + β2 2+3 O desvio padrão (σ) foi igual a 0.114248. a l e a t o r i o s [ 0 . chegadas e s e r v i c o s p resta d o s ) INSTANTE_ULTIMO_EVENTO − I n sta n te da o c o r r e n c i a do ultimo even to usada para a t u a l i z a r TEMPO_SERVIDOR_OCUPADO .200748. A média teórica é igual a: β1 2 µ= = = 0. o que mostra a ineficiência do método.000 números gerados foi igual a 0. ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ V a ri a vei s p r i n c i p a i s usadas no programa CLIENTES_NA_FILA − Numero de c l i e n t e s esperando na f i l a CLIENTES_RECEBENDO_SERVICO − C l i e n t e s sendo s e r v i d o s ( 0 ou 1 ) CHEGADA( I ) − I n sta n te da chegada do ( iesimo −1) c l i e n t e a s e r atendido .000 números.2 (β1 + β2 )(β1 + β2 + 1) (2 + 3)(2 + 3 + 1) Para se gerar os 10. O programa a seguir.18 Simulação de um pequeno posto bancário 193 End.304275. assim CHEGADA( 2 ) e ’ o i n s t a n t e de chegada do primeiro na f i l a de espera e CHEGADA( 1 ) e ’ o i n s t a n t e da chegada do c l i e n t e sendo atendido INSTANTE_PROXIM0_EVENTO( I ) − I n sta n te da o c o r r e n c i a do proximo even to [ 1 ( chegada ) ou 2 ( saida ) ] TIPO_PROXIMO_EVENTO − Tipo de proximo even to ( 1 ou 2 ) DURACAO_SERVICO − Duracao do s e r v i c o do ultimo c l i e n t e a r e c e b e r s e r v i c o RELOGIO − R el o g i o de c o n t r o l e da simulacao NUMERO_EVENTOS − Numero de even to s (=2 ou sej a .000 números beta. 0. em que foram gerados 10. Posto bancario Duracao do s e r v i c o : Exponencial com 1 caixa Usa a RAND2 como gerador de nos . Neste tipo de simulação. 1 ] . 0. 0. { F i l a com 1 s e r v i d o r : I n t e r v a l o e n t r e chegadas : Exponencial Ex . A média (µ) dos 10. implementa a simulação desejada e utiliza a RAND2 como o gerador de números aleatórios uniformemente distribuídos. devemos utilizar 2 sementes diferentes. pelo caixa. usando-se a semente 9999 para a RAND2. também segue uma Distribuição Exponencial.664 pares de números aleatórios gerados pela RAND2. em que temos 2 eventos aleatórios (intervalo entre chegadas e duração do serviço). uma para cada tipo de evento.4.

MEDIAEXP. CHEGADA: Array [ 1 . .SOMA_TEMPOS_NO_SISTEMA. a l e a t o r i o s exponencialmente d i s t r i b u i d o s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Function EXPONENCIAL(ALFA: Real . G1:= semente . CLIENTES_NA_FILA : Longint . Var semente : double .NO_SERVICOS_PRESTADOS. MAIS_DE_4: Longint .0E30 . ou sej a . { Variavel u t i l i z a d a pela RAND2} G1.TEMPO_NO_SISTEMA. { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Gera a primeira chegada Faz INSTANTE_PROXIMO_EVENTO [ 2 ] i g u a l a i n f i n i t o para i n d i ca r que uma partida e ’ i m p o ssi vel com o sistema va z i o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } semente := G1 . INSTANTE_PROXIMO_EVENTO : Array [ 1 .U) . CLIENTES_NA_FILA : = 0 . ALFA1 : Real . 0 . NUMERO_EVENTOS. U: Double ) : Real . INSTANTE_PROXIMO_EVENTO [ 2 ] : = 1 . . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } { $I RAND2.RHO. Begin NUMERO_EVENTOS: = 2 . 1 0 0 ] of Real . UNIDADE_DE_TEMPO : String [ 9 ] . End. RELOGIO. Begin EXPONENCIAL:= −(1/ALFA) ∗ LN(U) .ALFA. Label VOLTA.TIPO_PROXIMO_EVENTO. U:= RAND2. c l i e n t e s atendidos MAIS_DE_4 − Numero de c l i e n t e s que ficaram mais de 4 unidades de tempo na f i l a MAXIMO_NA_FILA − Maior numero de c l i e n t e s na f i l a durante toda a simulacao INSTANTE_ULTIMO_EVENTO − I n sta n te da o c o r r e n c i a do ultimo even to NUMERO_DE_CLIENTES − numero de c l i e n t e s tra ta d o s pela simulacao RHO − Taxa de ocupacao do s e r v i d o r PERC_MAIS_4 − Percentua l de c l i e n t e s que ficam mais de 4 unidades de tempo na f i l a TEMPO_TOTAL_NA_FILA − Soma dos tempos g a sto p e l o s c l i e n t e s na f i l a UNIDADE_DE_TEMPO − Unidade de medicao do tempo ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Uses wincrt . CLIENTES_RECEBENDO_SERVICO: = 0 . TEMPO_TOTAL_NA_FILA : Real .TEMPO_SERVIDOR_OCUPADO. MAIS_DE_4: = 0 . PERC_MAIS_4 : Real . U: Double . 2 ] of Real .CLIENTES_RECEBENDO_SERVICO: Integer .MEDIAEXP1. TEMPO_SERVIDOR_OCUPADO : = 0 . INSTANTE_PROXIMO_EVENTO [ 1 ] : = RELOGIO + EXPONENCIAL(ALFA.DURACAO_SERVICO: Real . PAS} { ////////////////////////////////////////////////////////////////////// Funcao para a geracao de nos . { ////////////////////////////////////////////////////////////////////// Inicializacao ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Procedure INICIALIZACAO. TEMPO_TOTAL_NA_FILA := 0 . SOMA_TEMPOS_NO_SISTEMA: = 0 . I : Integer . G2. { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } MAXIMO_NA_FILA . MAXIMO_NA_FILA: = 0 . 0 . INSTANTE_ULTIMO_EVENTO. NO_SERVICOS_PRESTADOS: = 0 . NUMERO_DE_CLIENTES.194 Introdução à Simulação TEMPO_SERVIDOR_OCUPADO − Tempo t o t a l de ocupacao da caixa TEMPO_NO_SISTEMA − Tempo que um c l i e n t e f i c a no sistema SOMA_TEMPOS_NO_SISTEMA − Soma tempos no sistema de to d o s os c l i e n t e s NO_SERVICOS_PRESTADOS − Numero de s e r v i c o s prestados . RELOGIO: = 0 . .FMIN. 0 .

For I := 1 to NUMERO_EVENTOS do Begin I f INSTANTE_PROXIMO_EVENTO [ I ] < FMIN Then Begin FMIN := INSTANTE_PROXIMO_EVENTO [ I ] . RELOGIO:=INSTANTE_PROXIMO_EVENTO [TIPO_PROXIMO_EVENTO] .4. G2:= semente . Aumente dimensoes’ ) . Atualiza o estado do sistema e r e g i s t r a i n s t a n t e da nova chegada ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Else Begin CLIENTES_NA_FILA:=CLIENTES_NA_FILA + 1 . End { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ O s e r v i d o r esta ’ ocupado . CHEGADA[ 1 ] : =RELOGIO. Menor que 1 esta ’ l i v r e . End. ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Begin I f CLIENTES_RECEBENDO_SERVICO < 1 Then Begin CLIENTES_RECEBENDO_SERVICO:= 1 . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Determina se o s e r v i d o r esta ’ ocupado .18 Simulação de um pequeno posto bancário 195 End. End. INSTANTE_PROXIMO_EVENTO [ 2 ] : =RELOGIO + DURACAO_SERVICO. End . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Atualiza MAXIMO_NA_FILA e INSTANTE_ULTIMO_EVENTO ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } INSTANTE_ULTIMO_EVENTO := RELOGIO. I f I > 100 Then Begin Writeln ( ’Fila maior que 100. TIPO_PROXIMO_EVENTO: = 0 . DURACAO_SERVICO:= EXPONENCIAL(ALFA1. Begin FMIN: = 1 . CHEGADA[ I ] : =RELOGIO. HALT. I f CLIENTES_NA_FILA > MAXIMO_NA_FILA Then MAXIMO_NA_FILA := CLIENTES_NA_FILA . End. TIPO_PROXIMO_EVENTO:= I . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Gera uma duracao de s e r v i c o para a nova chegada e programa a partida desta nova chegada ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } semente := G2 . { ////////////////////////////////////////////////////////////////////// Tratamento de uma chegada ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Procedure CHEGADAS.ERRO’ ) . U:= RAND2. I f TIPO_PROXIMO_EVENTO = 0 Then Begin Writeln ( ’LISTA DE EVENTOS FUTUROS VAZIA . HALT.U) . End. . { ////////////////////////////////////////////////////////////////////// Rotina de avanco do tempo para determinar proximo even to e avancar r e l o g i o para o i n s t a n t e do proximo even to ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Procedure AVANCA. I := CLIENTES_NA_FILA + 1 . 0 E20 .

.196 Introdução à Simulação { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Atualiza e s t a t i s t i c a s cumulativas TEMPO_SERVIDOR_OCUPADO e MAXIMO_NA_FILA ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } TEMPO_SERVIDOR_OCUPADO := TEMPO_SERVIDOR_OCUPADO + (RELOGIO − INSTANTE_ULTIMO_EVENTO ) . End . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ V e r i f i c a a condicao da f i l a ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } I f CLIENTES_NA_FILA < 1 Then { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ F i l a vazia .U) . End. SOMA_TEMPOS_NO_SISTEMA:= SOMA_TEMPOS_NO_SISTEMA + TEMPO_NO_SISTEMA . INSTANTE_ULTIMO_EVENTO := RELOGIO. NO_SERVICOS_PRESTADOS:= NO_SERVICOS_PRESTADOS + 1 . IF CLIENTES_NA_FILA >= MAXIMO_NA_FILA Then MAXIMO_NA_FILA := CLIENTES_NA_FILA . INSTANTE_ULTIMO_EVENTO := RELOGIO. NO_SERVICOS_PRESTADOS e MAIS_DE_4MIN . U:= RAND2. INSTANTE_PROXIMO_EVENTO [ 2 ] : = 1 . G2:= semente . CLIENTES_NA_FILA e ’ diminuida de modo que MAXIMO_NA_FILA nao muda . INSTANTE_PROXIMO_EVENTO [ 1 ] : =RELOGIO+EXPONENCIAL(ALFA. ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Begin TEMPO_SERVIDOR_OCUPADO:= TEMPO_SERVIDOR_OCUPADO + (RELOGIO − INSTANTE_ULTIMO_EVENTO ) . End. TEMPO_TOTAL_NA_FILA :=TEMPO_TOTAL_NA_FILA + (RELOGIO − CHEGADA[ 1 ] ) . Servidor desocupado . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Atualiza estado do sistema ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } CLIENTES_NA_FILA:= CLIENTES_NA_FILA −1. TEMPO_NO_SISTEMA:= RELOGIO − CHEGADA[ 1 ] . End { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Pelo menos 1 c l i e n t e na f i l a . Mover cada c l i e n t e 1 p o si ca o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Else Begin For I :=1 to CLIENTES_NA_FILA do Begin CHEGADA[ I ] : =CHEGADA[ I + 1 ] . SOMA_TEMPOS_NO_SISTEMA. { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Atualiza e s t a t i s t i c a s cumulativas TEMPO_SERVIDOR_OCUPADO. 0 E30 . { ////////////////////////////////////////////////////////////////////// Rotina de s e r v i c o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Procedure SERVICO. { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Gera um i n t e r v a l o e n t r e chegadas e programa o proximo even to de chegada ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } semente := G1 . I f TEMPO_NO_SISTEMA > 4 Then MAIS_DE_4 := MAIS_DE_4 + 1 . Proxima saida i g u a l a i n f i n i t o ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Begin CLIENTES_RECEBENDO_SERVICO := 0 . G1:= semente . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Gera nova duracao de s e r v i c o para o c l i e n t e chegando para s e r v i c o e programa proxima saida ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } semente := G2 . U:= RAND2.

UNIDADE_DE_TEMPO ) . Writeln ( ’Tempo medio gasto por cliente na fila = Wq = ’ . Writeln ( ’--------------------------------------------------------’ ) .PERC_MAIS_4 ∗ 1 0 0 : 0 : 2 . em ’ .EXPONENCIAL ?’ ) . ’ %’ ) . ’ ’ . ’ . Writeln ( ’Intervalo entre chegadas (Exponencial) = ’ . ’ = ’ . Writeln ( ’Simulacao de um Sistema de Fila com 1 estacao de servico’ ) .Intervalo entre Chegadas ’ ) . ’ ’ .2147483646) . GOTO VOLTA. ’ ’ . Readln (NUMERO_DE_CLIENTES) .UNIDADE_DE_TEMPO ) .MEDIAEXP1: 2 : 3 . Writeln ( ’Duracao do servico (Exponencial) = ’ . Readln (UNIDADE_DE_TEMPO ) .UNIDADE_DE_TEMPO.4. ALFA1:= 1 . . Writeln ( ’Tempo medio gasto por cliente no sistema = W = ’ . Writeln ( ’Qual a unidade de tempo a ser usada ?’ ) .MAXIMO_NA_FILA ) . (SOMA_TEMPOS_NO_SISTEMA/NO_SERVICOS_PRESTADOS) : 3 : 3 . While (NO_SERVICOS_PRESTADOS < NUMERO_DE_CLIENTES) do Begin DURACAO_SERVICO:= EXPONENCIAL(ALFA1. { ////////////////////////////////////////////////////////////////////// Impressao dos r e s u l t a d o s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Procedure RESULTADOS. Writeln ( ’Qual a semente ? (1 .2147483646) .UNIDADE_DE_TEMPO. G2 := semente . Writeln ( ’Quantos clientes na simulacao ?’ ) .UNIDADE_DE_TEMPO ) .UNIDADE_DE_TEMPO.ERRO!!’ ) . Begin RHO:=TEMPO_SERVIDOR_OCUPADO /RELOGIO. End. Writeln ( ’Qual a media. Writeln ( ’Total de clientes atendidos = ’ . 0 /MEDIAEXP.RHO: 0 : 3 ) . ’ ’ . CLRSCR .da duracao do servico . Writeln ( ’Taxa de ocupacao do servidor = RHO = ’ . Writeln ( ’--------------------------------------------------------’ ) . { ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } INICIALIZACAO.UNIDADE_DE_TEMPO ) . Readln (MEDIAEXP) . ’. em ’ . PERC_MAIS_4 :=MAIS_DE_4/NO_SERVICOS_PRESTADOS.NO_SERVICOS_PRESTADOS ) .MEDIAEXP: 3 : 3 . VOLTA: Writeln ( ’Qual a semente ? (1 .entre chegadas .18 Simulação de um pequeno posto bancário 197 End. IF G1 = G2 Then Begin Writeln ( ’SEMENTES IGUAIS .RELOGIO: 6 : 3 . Readln ( semente ) . ALFA: = 1 . Writeln ( ’Tempo total de simulacao = ’ . Writeln ( ’Maximo de clientes na fila = ’ . End. { ////////////////////////////////////////////////////////////////////// ROTINA PRINCIPAL ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Recebe os parametros de entrada e sementes para a geracao de numeros a l e a t o r i o s ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ } Begin CLRSCR . End.U) . INSTANTE_PROXIMO_EVENTO [ 2 ] : =RELOGIO + DURACAO_SERVICO. Readln ( semente ) .UNIDADE_DE_TEMPO ) . (TEMPO_TOTAL_NA_FILA /NO_SERVICOS_PRESTADOS) : 3 : 3 . 0 /MEDIAEXP1. Writeln ( ’Qual o intervalo. ’ ’ .Duração do Atendimento ’ ) . Readln (MEDIAEXP1) . G1:= semente .EXPONENCIAL ?’ ) . Writeln ( ’Percentual de clientes que esperaram mais de 4 ’ .

5 minutos Tempo médio gasto por cliente no sistema = W = 6. AVANCA. para o intervalo entre chegadas: 4444 Semente para a RAND2.5 minutos Número de usuários a serem simulados: 10. RESULTADOS. I f TIPO_PROXIMO_EVENTO = 1 Then CHEGADAS Else SERVICO. Aplicando as fórmulas teóricas chegamos aos seguintes resultados: Taxa de ocupação do servidor = ρ (rho) = 0. Obviamente não teria sentido se construir um modelo de simulação para a situação acima onde temos solução analítica. . podemos observar que a simulação apresenta resultados totalmente aderentes aos resultados teóricos o que demonstra a potencialidade da técnica.265 minutos Este tipo de fila.064 minutos Tempo total de simulacao = 19667.563 minutos Tempo medio gasto por cliente no sistema = W = 6.34% Tempo médio gasto por cliente na fila = Wq = 4. para a duração do serviço: 12345 Intervalo entre chegadas (exponencial): 2 minutos Duração do Serviço: 1. A execução deste programa com os seguintes dados de entrada: Semente para a RAND2.000 Apresentou a seguinte tela de saída: Simulacao de um Sistema de Fila com 1 estacao de servico ——————————————————– Intervalo entre chegadas (Exponencial) = 2.198 Introdução à Simulação End. O objetivo foi apenas mostrar o uso das técnicas de simulação. End.000 minutos Duracao do servico (Exponencial) = 1.89% Tempo medio gasto por cliente na fila = Wq = 4.764 Maximo de clientes na fila = 21 Percentual de clientes que esperaram mais de 4 minutos = 51.750 Percentual de clientes que esperaram mais de 4 minutos = 51.500 minutos ——————————————————– Total de clientes atendidos = 10000 Taxa de ocupacao do servidor = RHO = 0.0 minutos Comparando-se os resultados da simulação com os resultados teóricos. tem solução analítica pois se trata do chamado Modelo M/M/1 da Teoria das Filas.

normal. que pode ser obtido de www.br . aleatoriamente. a distribuição do intervalo entre chegadas (exponencial. um pouco mais versátil do que acabamos de ver. Pode-se escolher também a unidade de tempo a ser usada. uniforme ou empírica). Ele simula um sistema de filas e permite que se escolha o número de estações que prestam serviço. No caso de se executar replicações. séries e sementes diferentes são criadas em cada uma das execuções individuais da replicação. no caso das replicações.19 Um software mais versátil Veremos a seguir um outro programa (simulacao)3 . entre 1 e 50. As sementes e as séries usadas são escolhidas.19 Um software mais versátil 199 4. 3 É um dos módulos do programa PO.4. para o intervalo entre chegadas e para a duração do serviço.com. normal. uniforme ou empírica) e a duração da simulação. o número máximo de clientes que podem ficar no sistema. a distribuição da duração do serviço prestado (exponencial. ou seja quantas vezes deseja-se executar a simulação para o mesmo conjunto de dados de entrada. O programa usa a RAND4 como o gerador de números aleatórios e usa “séries” diferentes. pelo programa. as médias obtidas com as diversas execuções. Pode-se determinar também o número de replicações (até o máximo de 100). Os resultados mostrados na saída são.mpsantos.

Após se colocar os valores desejados. clica-se em SIMULAR e a Simulação será executada. bastando para isto clicar nele e apagar o valor existente com as teclas [Delete] ou [Backspace]. Vamos simular o sistema de filas de uma agência bancária.1 Alguns exemplos usando o programa “Simulação” Como exemplo do uso do programa. A distribuição do tempo de atendimento dos caixas também segue uma distribuição exponencial com atendimento médio igual a 4 minutos.19. O valor em qualquer dos campos pode ser mudado. Distribuição das chegadas e Distribuição do Serviço podem ser mudados com o simples click do mouse no novo ítem desejado. A duração da simulação foi de 10. na agência. com 3 caixas de atendimento. Os campos Unidade de tempo. ao mesmo tempo. A tela de entrada do programa para execução desta simulação seria a seguinte: Como não existe limitação para o número de clientes. o campo “Máximo usuários permitido no Sistema” ficou com 100. vamos simular um sistema de filas que tenha solução analítica para compararmos os resultados.000 minutos e solicitamos que 100 replicações fossem executadas.200 Introdução à Simulação 4. em que as chegadas sigam uma distribuição exponencial com intervalo médio entre chegadas igual a 2 minutos. No nosso exemplo aparecerá a seguinte tela: .000.

4.7% Podemos observar que a simulação deu resultados praticamente iguais aos teóricos o que demonstra a robustez da técnicas de simulação além de servir para demonstrar que o programa está se comportando de maneira adequada. voltando-se para o software Po.789 minutos Teórico : 1.776 minutos Número Médio de clientes na fila (Lq ): Simulação : 0. Como este modelo simulado é um exemplo do modelo M/M/s.19 Um software mais versátil 201 Caso se tenha uma impressora esta tela poderá ser impressa.5% Teórico : 66. .888 clientes Taxa de ocupação das estações de serviço (caixas): Simulação : 66. Clicando-se no botão VOLTAR saímos do programa. podemos comparar os resultados obtidos na simulação com os resultados teóricos obtidos das fórmulas analíticas daquele modelo de filas: Tempo médio que um cliente permanece na fila (Wq ): Simulação : 1.894 clientes Teórico : 0.

A tela de entrada desta simulação seria: A saída. Vamos supor uma agência bancária.202 Introdução à Simulação Vamos usá-lo agora para simular uma situação de fila em que não existem. onde as chegadas chegam seguindo uma distribuição normal com intervalo médio entre chegadas de 2 minutos e desvio padrão de 0. A duração do atendimento prestado pelos caixas também segue uma distribuição normal. pelo menos de forma fácil. apresentou os seguintes resultados: . cada uma com 20.. 5 minutos. com 4 caixas de atendimento.000 minutos de simulação. após 100 replicações. com média de 8 minutos para a duração do atendimento e desvio padrão de 1. fórmulas teóricas. 5 minutos.

Para melhorar a qualidade do serviço prestado vamos examinar os resultados da simulação se colocamos mais 1 caixa de atendimento.19 Um software mais versátil 203 Os resultados da simulação mostram que esta agência bancária não está prestando um serviço de boa qualidade pois.4. Alterando a entrada e executando a simulação. em média. cada cliente tem que esperar mais de 30 minutos na fila e. chegamos aos seguintes resultados: . em média a fila tem quase 16 clientes.

Veremos a seguir.204 Introdução à Simulação Como pode ser visto. Mesmo se tirarmos as 5 ou 6 páginas de código que são necessários para o ambiente Windows. temos que construir programas de computador cuja complexidade é proporcional a complexidade do modelo simulado. Embora bastante versátil. Este fato fez com que fossem desenvolvidos programas voltados exclusivamente para a construção de modelos de simulação. o tempo que se leva para se obter os primeiros resultados normalmente invalida aquela vantagem. a não ser que sejam muito semelhantes como nos exemplos acima. Se alteramos as condições básicas. a fila praticamente desaparece. Apesar da vantagem advinda de se ter um programa “sob medida”. principalmente em modelos complexos. . lembramos que o fonte do programa tem 20 páginas de código de programação. o programa é limitado a determinados tipos de sistema de fila. temos que alterar o programa alterandose rotinas já existentes ou incluindo novas rotinas. um dos mais usados na atualidade. Para cada modelo. Como ilustração da dificuldade e do custo de se fazer isto. ainda restariam 15 páginas de codificação!.

. Podemos representar nosso posto da seguinte forma: . Dispose.1 Simulação de um pequeno posto bancário Vamos ver o exemplo de um pequeno posto bancário com um único caixa. Process.. ou seja estes são os blocos básicos e poderemos acrescentar outros a medida que eles forem sendo necessários. vamos construir nosso modelo lógico. 4. na sua forma mais simplificada. interligando-os. no Arena trabalhamos com blocos e. como veremos mais adiante.20. etc.20 O software ARENA A tela principal do ARENA é a seguinte: A esquerda temos a área dos painéis (templates) como Create. Observe que o título da área de painéis é “Basic Process”. Na verdade. criamos modelos no ARENA construindo “desenhos” lógicos com os painéis. Antes de ver como se faz no Arena. construímos o modelo. Como já dissemos.20 O software ARENA 205 4. Os modelos de simulação são construídos com estes painéis.4.

que é a maior área branca da tela inicial. fazemos o mesmo com o template Dispose e a colocamos à direita da Process1. E. ou seja a chegada de clientes. Soltamos o mouse e uma caixa Create1 aparece no espaço em branco. Esta caixa vai representar a saída dos clientes.206 Introdução à Simulação Clientes Chegam Clientes são Atendidos Clientes vão embora Vamos agora para o Arena. para finalizar. ou seja clicamos. Clicando e segurando o mouse. A seguir temos que criar o bloco que representa o atendimento aos clientes. Vai ser criada uma caixa chamada Process1. tem que ser criado. O ARENA conecta automaticamente as 2 caixas (isto pode ser desligado). seguramos o mouse e o arrastamos para a direita da caixa Create1. Para isto. arrastamos o template Create do lado esquerdo para a área de trabalho. abre-se o seguinte quadro: . O nosso 1o bloco. Dando um duplo click na caixa Create1. temos que usar o template Process. A aparência da nossa tela deverá ser a seguinte: Na parte abaixo da área de trabalho aparece uma espécie de planilha com alguns dados que ficarão mais claros a medida que formos avançando.

a série 23 da RAND4. embora seja opcional. A 2a linha trata da distribuição do intervalo entre chegadas (Time Between Arrivals). Colocamos então no campo Value a expressão EXPO(2.0. vamos escolher Expression e em Value escolhemos EXPO(Mean). O tipo da entidade (Entity Type) de Entity 1 para Clientes. Antes de introduzirmos este valor. Em princípio não deve-se usar a série 10 pois esta é a série que o Arena usa quando não se informa nada. vamos trocar o nome (Name) de Create 1 para Chegada de Clientes. devemos saber que o ARENA usa a RAND4 como gerador de números aleatórios. ou seja o início da simulação. A seguir devemos trocar o campo Units para minutos.4.23). Não existe limite para o número de clientes que podem chegar.20 O software ARENA 207 Podemos entrar com os dados da nossa aplicação. assim Max Arrivals é igual a Infinito e o instante de criação (First Creation) da 1a chegada é o instante 0. convém informar. ou seja estamos dizendo que o intervalo entre chegadas segue uma distribuição exponencial. A 3a linha fica como está pois Entidades por Chegada (Entities per Arrival) é igual a 1. Assim. No exemplo que queremos simular. além da média. Vamos usar a série 23. o intervalo entre chegadas tem média igual a 2 minutos. Em Type. ou seja cada cliente chega sozinho. Na 1a linha. ou seja média igual a 2 usando-se na simulação. qual a série que deve ser usada para gerar as chegadas de clientes. Nosso quadro fica então desta forma: .

No campo Action. Ao se escolher a ação acima abre-se um novo campo Prioridade (Priority) que deve . deve ser escolhida a opção Seize Delay Release. Um novo quadro se abre: Mudamos o Name para Atendimento aos Clientes. Vamos agora dar um duplo click no bloco Process 1. o tipo fica Standard. que é o que um caixa faz com os clientes.208 Introdução à Simulação Basta clicar em OK para confirmar as alterações. ou seja Captura–Retém por algum tempo–Libera.

20 O software ARENA 209 ser deixado como Medium(2). Abre-se. Devemos clicar na opção Add para incluir o recurso (Caixa) no modelo. como mostrado a seguir: . também um novo quadro para a definição dos recursos (resources) que. no nosso exemplo.4. é um único caixa.

devemos marcar o campo Report Statistics.210 Introdução à Simulação Como pode ser visto acima. Finalmente clicamos em OK para confirmar nossos dados.5. Se não estiver marcado. Minutes (em Units). pois vamos usar a série 7 da RAND4 para a geração da duração do serviço. Value Added (em Allocation) e EXPO(Mean) (em Expression). Escolhemos então: Expression (em Delay Type). no nosso exemplo. segue uma distribuição exponencial com média de 1.5 minutos. Repetimos o processo para a caixa Dispose.7). Devemos a seguir substituir o (Mean) por (1. Precisamos informar agora o tipo de distribuição do atendimento feito pelo caixa que. O seguinte quadro aparecerá: . Caixa (em Resource name) e 1 (em quantity). escolhemos Resource (em Type).

Assim.4. se for o caso. temos que ajustar alguns parâmetros. para Replication Parameters aparecerá: . aparece uma planilha com as informações pertinentes a cada bloco. Esta linha representa a fila que se forma no caixa. marcamos o campo Record Entity Statistics e clicamos em OK. a medida que se clica em um dos blocos. Podemos alterar. Podemos reparar que aparece uma linha em cima do bloco Atendimento aos Clientes. obtendo-se o seguinte quadro. as informações na planilha que elas passarão a valer para o bloco. O quadro a seguir (já com as alterações feitas). devemos clicar em Run → Setup.20 O software ARENA 211 Mudamos o nome para Saída de Clientes. o modelo está construído mas antes de executar a simulação. A área de trabalho do ARENA estará da seguinte forma. Na parte de baixo. no menu. Neste ponto.

etc. descrição do projeto. podemos entrar com os parâmetros do projeto tais como nome do projeto. nome do analista..212 Introdução à Simulação Vamos fazer apenas uma simulação (1 replicação) com duração de 10. Também no Run → Setup. aba Project Parameters. Devemos também marcar os ítens para os quais queremos que sejam gerados relatórios: .000 minutos..

Vamos mostrar alguns destes relatórios e ver os resultados obtidos. durante a simulação. Ao final da simulação. 5 estavam na fila e 1 estava sendo atendido. o ARENA emite dezenas de relatórios que podem ser acessados a partir da “aba” Reports que existe na parte esquerda da tela. a tecla <ESC>): Neste ponto já tinham chegado 509 clientes.4. Para executar a simulação clicamos. 503 já tinham sido atendidos. no menu. em Run → Go.20 O software ARENA 213 Para finalizar clicamos em OK. O 1o é o Queues que dá informações sobre a fila em si: . Passamos a ver então a simulação dinamicamente acontecendo como no “retrato” a seguir (obtido apertando-se.

69 minutos.59 minutos. .25 clientes. O teórico (Lq ) é igual a 2. O número máximo de clientes na fila foi 21.30 clientes. no nosso exemplo é o caixa. O próximo relatório que podemos examinar é o de Resources que. O número médio de clientes na fila é 2. A maior espera foi de 44. é 4. modelo M/M/1.214 Introdução à Simulação O tempo de espera médio na fila é de 4.50 minutos. O teórico (Wq ).

de acordo com uma distribuição exponencial. com gráficos inclusive. que vão viajar em determinada companhia aérea. o Caixa ficou ocupado 75% do tempo. eles podem se dirigir aos portões de embarque. desde do momento em que entram no aeroporto até chegar ao balcão de check-in. demoram entre 2 e 3 minutos com distribuição uniforme entre estes 2 valores. deseja-se determinar uma série de variáveis tais como o tempo médio . 4.76.85 minutos. Como citamos anteriormente.91 e β = 7. chegam ao aeroporto com intervalo médio de 1. os viajantes tem que entrar em uma fila única até que um dos 5 atendentes o atenda. o atendimento mais demorado foi 14.2 Simulação de um check-in Vamos imaginar a seguinte situação: passageiros. No check-in. Outro relatório que pode ser visto é o de Processes: Ele mostra que a maior espera total de um cliente foi de 46. Este resultado é exatamente igual ao teórico (ρ = 0. vários outros relatórios.75).4.71 minutos e a maior espera na fila foi de 44. são impressos e podem ser examinados. Estes viajantes.002 clientes. Mostra também que o Caixa atendeu 5.20 O software ARENA 215 Como podemos observar. Após o check-in.6 minutos. Visando melhorar o atendimento.20.69 minutos.O tempo no check-in segue uma Distribuição de Weibull com parâmetros α = 3.

. vamos construir um modelo equivalente no ARENA. para chegar até o balcão. Vamos chamar de Passageiros a entidade que vai circular na simulação. usando a série 7 da RAND4. O modelo desta situação pode ser representado pelo gráfico a seguir: Chegada dos Passageiros Procura pelo Check–In Check–In Saída para Embarque Como fizemos no 1o exemplo. Temos então: O 2o bloco é referente a procura pelo balcão de check-in.6. etc. o no de passageiros atendidos no check-in de 8:00 horas da manhã até 22:00 horas.216 Introdução à Simulação que um passageiro gasta desde de que chega no aeroporto até ser liberado para o embarque. Nossos blocos básicos ficam como: O bloco de chegada é idêntico ao que já fizemos no exemplo anterior e escolhemos EXPO(1. neste caso é só Delay porque só há um atraso.7) para a distribuição exponencial. o número médio de viajantes na fila do check-in.. A ação. O quadro preenchido fica da seguinte forma: . uniformemente distribuído.

91.76.23). Temos então: .20 O software ARENA 217 O bloco do check-in também é bastante similar ao que vimos anteriormente com a diferença de que escolhemos o nome de Atendentes para o recurso e a distribuição do atendimento é escolhida como WEIB(7. ou seja uma Weibull com os parâmetros dados e usando-se a série 23 da RAND4.3.4.

como mostrado a seguir: Podemos agora escolher um símbolo que represente os passageiros na dinâmica da simulação. em baixo a direita. Clicando nela vai aparecer. Vai abrir. a planilha relativa aos passageiros. na parte inferior. Deve ser alterado para 5. uma planilha referente aos recursos (atendentes no nosso caso). No campo Initial Picture. Neste momento devemos nos lembrar que temos 5 atendentes no balcão de checkin. clicamos a planilha Entity.women que é um boneco representando uma mulher. No lado esquerdo. como podemos ver a seguir: .218 Introdução à Simulação No bloco Dispose muda-se apenas o nome para Saída para o embarque. Um dos campos da planilha é Capacity que deverá estar com 1. rolando com o mouse vão aparecer desenhos de planilhas e uma delas é referente a Resources. Como informar isto ao modelo ? No lado esquerdo da tela do ARENA (onde estão os blocos). escolhemos a figura Picture.

20 O software ARENA 219 Vamos alterar a forma de representação da fila de linha para pontos. No final clica-se em OK.. clicando no botão Add. Dando um duplo click na linha. na 2a barra de botões em cima.4. podemos ir colocando pontos ou seja lugares na fila (até o máximo de 14).. Para dar um toque mais realista a simulação. que fará com que a seguinte tela apareça: em . vai abrir outro quadro onde. vamos acrescentar o balcão do checkin e os 5 pontos de atendimento. o seguinte quadro aparece: Mudamos de Line para Point e depois clicando em Points. Neste exemplo colocamos 10 pontos. Iniciamos clicando.

. Podemos (clicando no open deste quadro) abrir outras bibliotecas que possuem outras figuras. devemos marcar Seize Area. podemos selecionar figuras para representar os atendentes ociosos (Idle) ou ocupados (Busy). Para tanto basta clicar no botão (clock) e arrastá-lo apara a área de trabalho. No nosso exemplo criamos 5 pontos (de maneira similar ao feito para a fila) pois temos 5 atendentes. Nosso modelo está pronto e sua aparência é: «. por exemplo. clica-se em Idle. Escolhemos 8:00 horas como a hora inicial marcada pelo relógio. É importante notar que as figuras que aparecem fazem parte da chamada biblioteca padrão. Para escolher uma figura para Idle. Para finalizar. clica-se na figura desejada e depois clica-se em Antes de clicar em OK. vamos colocar um relógio para melhor visualização do andamento da simulação.220 Introdução à Simulação Escolhendo Atendentes como Identif ier. Isto faz com que junto a figura seja criada uma linha (semelhante a da fila) para identificar os pontos de atendimento.

da entrada a saída : 29. Dos relatórios emitidos ao final da simulação. podemos extrair. A figura a seguir mostra um retrato da simulação: O relógio marca 13:44:32.5 horas de simulação sendo que 223 passageiros já chegaram. Temos também 2 passageiros procurando pelo balcão de check-in. da entrada a saída : 13. os seguintes dados: Passageiros atendidos pelo check-in das 8:00 às 22:00 : 524 Tempo total gasto.20 O software ARENA 221 Ajustamos a seguir os parâmetros da simulação (Run → Setup) e escolhemos 14 horas para a duração da simulação (das 8:00 às 22:00 horas). entre outros.35 minutos . em média.19 minutos Menor tempo gasto por um passageiro.4. ou seja já temos 5. da entrada a saída : 4. por um passageiro. 212 já passaram pelo check-in sendo que os 5 atendentes estão ocupados e 4 passageiros aguardam na fila.91 minutos Maior tempo gasto por um passageiro.

Após a preparação.4. as placas e embalagens são enviadas para a área de montagem (única para A e B) onde os componentes são soldados e o aparelho é montado. ao final.) são processos aleatórios que seguem determinadas distribuições. as placas. e uma embalagem de plástico com alguns botões.20. são “preparadas” para receber os componentes que serão soldados. etc.5. Por sua vez. preparação. as embalagens são pintadas e colocados os botões.5. A figura a seguir dá a visão geral de todo o processo: TRIA(1.. Nesta área é. tem as mesmas características quais sejam.90 minutos Como já citado.4) Montagem WEIB(2. diferentes para os aparelhos A e B.. ao chegar a indústria. Foram efetuadas amostras estatísticas em todo o processo e ficou comprovado que todas as atividades (chegadas. 4. feita uma inspeção de qualidade onde dados históricos tem mostrado que 91% dos aparelhos acabados estão perfeitos e são enviados diretamente para a seção de venda. Basicamente os 2 aparelhos.222 Introdução à Simulação Percentual de ocupação dos Atendentes : 89% do tempo Número médio de clientes na fila do check-in : 2. onde são soldados componentes.8) A EXPO(5) Preparo Conserto A TRIA(1. uma placa de circuito impresso.3 Simulação de um processo de produção Uma indústria eletrônica produz 2 medidores eletrônicos que chamaremos de A e B.26 passageiros Maior tempo gasto por um passageiro na fila do check-in : 26.3) B EXPO(45) 9% 91% 20% 80% Sucata Venda TRIA(3. montagem. Os que não passam no controle de qualidade (9%). embora com funções distintas. corrigidas. Dados estatísticos mostram que 80% dos aparelhos que caem neste setor conseguem ser recuperados e vendidos enquanto que os restantes 20% vão para sucata. Estas áreas de preparação são. são enviadas para uma área onde. dezenas de outros relatórios podem ser impressos com dados da simulação.5.3.10) B EXPO(30) Lotes de 4 Preparo . se for o caso. são enviados para um outro setor onde as causas da rejeição são analisadas e. dadas as características técnicas. As placas de circuito impresso e as embalagens são produzidas externamente e.

Já uma unidade do produto B é montada em um tempo que segue uma Weibull com β = 2. O tempo de preparação de cada unidade tipo A segue uma distribuição triangular com parâmetros 1.. chegam seguindo uma distribuição exponencial com intervalo médio de 5 minutos entre chegadas. em lotes de 4.5 e α = 5. Lá. Inicialmente vamos construir um bloco “Create” para a chegada dos componentes do produto A. Já as placas e embalagens do modelo B chegam. etc. Criamos de forma idêntica um bloco “Create” para as chegadas das placas e embalagens do produto tipo B. também seguindo uma distribuição exponencial com intervalo médio de 30 minutos entre chegadas. 4 e 8 minutos enquanto que a do produto B também segue uma triangular com parâmetros 3. Após preparados. Os produtos rejeitados vão para a seção de “reparo” onde são consertados em um tempo que também segue a distribuição exponencial com duração de 45 minutos.20 O software ARENA 223 As placas e embalagem do produto A. 5 e 10 minutos. cada unidade do produto tipo A é montada num tempo que segue uma distribuição triangular com parâmetros 1.4. tanto as placas como embalagens dos 2 produtos vão para a seção de montagem. Vamos construir o modelo no Arena. Temos então: .3.. 3 e 4 minutos. tempo total de produção. Deseja-se simular esta situação para determinar algumas varáveis tais como no de unidade na fila.

Depois de chegar e ser preparado. Para contornar isto. Temos então: . os componentes do modelo A vão para a seção de montagem. vamos definir um atributo Tempo de Montagem a quem atribuiremos o tempo de montagem apropriado para cada tipo de produto. ou seja ambos usam a seção de montagem mas com tempos seguindo distribuições diferentes. Não podemos definir 2 distribuições para o mesmo processo nem definir 2 processos porque na verdade só existe uma seção de montagem.224 Introdução à Simulação Devemos notar que “Entities per Arrival” foi alterado para 4. pois as placas e embalagens de B chegam em lotes de 4. O bloco que faz estas atribuições no Arena é o Assign. Neste ponto temos que nos preocupar com um ponto que não apareceu nos modelos anteriores. No entanto com o modelo tipo B ocorre a mesma coisa.

4).3. Cliando em Add mais uma vez. O Tempo de Montagem. TRIA(1. A seguir. para o produto A está completo: . ou seja. Usamos a variável TNOW que é uma variável do Arena que contém o instante do evento que acabou de ocorrer.4. clicamos no botão Add e criamos o atributo Tempo de Montagem informando a distribuição do tempo de montagem para o produto tipo A.20 O software ARENA 225 Demos o nome de Definição Montagem A. no caso a chegada dos componentes de um modelo tipo A. vamos criar o atributo Instante da Chegada informando o instante da chegada das peças de um modelo A.

Podemos agora criar os blocos (Process) para a etapa de preparação.226 Introdução à Simulação Temos que fazer o mesmo para o produto B só tendo o cuidado de escolher os atributos Tempo de Montagem e Instante da Chegada que tínhamos escolhido anteriormente (eles vão aparecer no Listbox dos atributos). Para o tipo A temos: .

Temos então: . Para o tipo B temos que fazer a mesma coisa: Temos agora a Montagem onde devemos usar o atributo Tempo Montagem que criamos anteriormente.20 O software ARENA 227 Podemos observar que criamos um recurso que chamamos de “Preparador para A”.4. Após montados. os produtos passam por uma inspeção de qualidade. Podemos representá-la usando o bloco Decide.

no Arena. Estes rejeitados vão para a área de conserto que. será representado por mais um bloco Process. Adicionamos o recurso que vai consertar os produtos rejeitados (Técnico). . no caso 9% de rejeição.228 Introdução à Simulação Podemos escolher o percentual.

nós obtemos estatísticas sobre a utilização dos recursos. Para os que vão para a sucata. precisamos nos preocupar com a obtenção das informações que queremos analisar. queremos também informações sobre a duração do ciclo para os produtos que passam no controle de qualidade e para os que não passam.4.20 O software ARENA 229 Temos após o conserto uma re-inspeção para verificar as que podem ser comercializadas. Temos então mais um bloco de decisão. queremos conhecer o ciclo dos que são “consertados” e dos que vão para a sucata. como parte da própria simulação.Lembre-se que. Para os demais itens (comercializadas direto e comercializados após reparo). o procedimento é o mesmo como podemos ver s seguir: . Temos então: Tendo definido todas as operações. No entanto. temos: Para Type. Podemos representá-lo usando o bloco Decide. Com isto o Arena vai registrar cada duração desde que as partes do produto chegam até irem para a sucata. escolhemos Time Interval e no atributo escolhemos Instante da Chegada. O bloco Record permite que se tenha estes dados. tamanho das filas e espera em cada uma das filas.

Em um modelo deste tipo é usual que vá se construindo os “blocos” sem nos preocuparmos com a ligação lógica entre eles.230 Introdução à Simulação Finalmente não podemos esquecer dos módulos de saída. Temos 3 “saídas” possíveis: Sucata. Vendas Pós Conserto e Vendas Diretas. quando todos os blocos já estão prontos. Temos que ter 3 blocos Dispose. ou seja Dispose. devemos fazer a ligação ente eles de modo a que o Arena possa executar a simulação. Após fazer esta tarefa. Neste momento. nosso modelo tem a seguinte aparência: .

4.20 O software ARENA 231 .

Para se melhorar o processo de produção. onde temos um modelo de uma agência bancária onde além do normal em uma agência.52 0. os seguintes resultados foram obtidos nos relatórios impressos pelo Arena: Espera média na Fila (Wq ) Na prep A Na prep B Na montagem No conserto Tamanho médio da Fila (Lq ) Na prep A Na prep B Na montagem No conserto Vendas Direto Consertados Utilização do Recurso (ρ) Prep A Prep B Montagem Conserto Minutos 14. Modelos bastante sofisticados e análise de custos são possíveis de serem realizados.16 2. os mesmos resultados são obtidos se trabalhamos só com os blocos dos templates. Ao final da simulação. obviamente. embora muito interessante como ferramenta de “venda” do modelo. Este exemplo vem no cd do software Arena e ilustra o que comentamos acima sobre modelos com “animação”.84 15.52 536. 4. Pode-se ver também que a área está ocupada quase 100% do tempo.97 Quantidade 728 39 % 75 90 85 96 Os resultados mostram que temos um problema na área de conserto. existiam 32 modelos na fila aguardando reparo.98 28. consome tempo para ser construída e. Um exemplo pode ser visto na página a seguir. O Arena permite também que modelos de “animação” sejam criados. até aqui. devemos ressaltar que a animação. No entanto. temos caixas de atendimento para clientes motorizados.4 Enfeitando o modelo O que vimos.79 3. do ARENA deve representar de 10% a 20% do que é possível fazer com o software. Na página a seguir temos um modelo de uma agência bancária com 3 filas: a dos 2 caixas.20. . teríamos que aumentar a capacidade de produção da seção de conserto. das máquinas ATM e de carros na caixa tipo drive-in.232 Introdução à Simulação Executando a simulação para um período de 40 horas.18 3.

20 O software ARENA 233 .4.

para a seguinte distribuição probabilística: f (x) = 8) Idem para: e2x. 7) Desenvolva um gerador de números aleatórios.  0≤x≤2  3   1 f (x) =  . calcule os 12 primeiros números gerados.  1. 1]. gere 10 números seguindo a distribuição de Poisson com média (λ) igual a 2. a partir de uma semente igual a 7308. 3) Encontramos algum problema no exercício anterior se x0 = 0 ? 4) Considere o método congruente multiplicativo para os seguintes casos: a) a = 11 m = 16 b) a = 11 m = 16 c) a = 7 m = 16 d) a = 7 m = 16 x0 = 7 x0 = 8 x0 = 7 x0 = 8 Gere. a = 8. O que podemos inferir dos resultados encontrados ? 5) Construa. 6) Pesquise na internet para descobrir qual a fórmula usada pela planilha Excel no seu gerador de números aleatórios padrão. 2 < x ≤ 10  24     0. usando o método da transformação inversa. 5. 0 < x < ∞ 9) Com uma calculadora que tenha a função para gerar números aleatórios uniformemente distribuídos em [0. para cada caso. todo o período. com 4 dígitos. c = 47 e m = 100. Use x0 = 27. x > 10 .234 Introdução à Simulação 4. um cubo idêntico ao mostrado na página 157 para o gerador RANDU. 2) Use o método congruente linear para gerar um seqüencia de 3 números aleatórios de 2 dígitos.21 Exercícios 1) Usando o método dos quadrados médios. −∞ < x ≤ 0 e−2x. para a RAND2.

que não são ambulâncias. 8 minutos (exponencial). por exemplo).4.0629. faça um modelo para simular as vendas diárias. Realize 300 replicações e obtenha a média de vendas diárias. 1] podem ser usados para simular as vendas diárias. vão imediatamente para o . por exemplo). com média (µ) igual a 1. formam uma fila única. 11) A gerente de uma loja de eletro-domésticos está desconfiada que o seu estoque de fogões está acima do que seria necessário.4475. diariamente. inclusive com a escolha da semente. 12) Utilizando como sementes os valores 1234. d) Usando os números aleatórios 0. O tempo de serviço. Antes de modificar a política de estoques. c) Descreva como números aleatórios uniformemente distribuídos em [0. ela registrou o número de fogões vendidos. construa um modelo para a seguinte situação: Um posto de gasolina do governo. Os dados encontrados estão mostrados a seguir: Fogões vendidos Número de dias 2 4 3 7 4 8 5 5 6 1 a) Use os dados para estimar a distribuição de probabilidade das vendas diárias de fogões. tem uma média de 4. exponencial. exatamente. 76545.800. Um carro que chega e encontra a bomba vazia vai ser atendido imediatamente enquanto que os que chegam com a bomba ocupada. a fórmula da distribuição normal: (X − µ)2 − 1 2σ 2 f (x) = √ e 2 2πσ Compare o valor obtido pela simulação com o valor obtido da tabela normal. para todos os tipos de carros. simule as vendas diárias de 3 dias. Carros de outras repartições públicas.500 e desvio padrão (σ) igual a 300. Use. 6 minutos. a cada 30 minutos. e) Usando uma planilha eletrônica (Excel. ao chegar. 15 minutos. de 5.21 Exercícios 235 10) Modifique o programa da página 172 para calcular a probabilidade de um valor (x) de uma distribuição normal.9713 e 0. com o 1o carro chegando no “instante”. que tem somente uma bomba de gasolina. está sempre aberto e tem 2 tipos de clientes. b) Calcule a média da distribuição obtida na parte (a ). 14) Utilizando uma planilha eletrônica (Excel. 564783 e 5434 encontre os 3 primeiros números gerados pela RAND4. 88787. 13) Pesquise e descubra os comandos para a geração de números aleatórios no Turbo Pascal. com o 1o carro chegando no instante 0. Uma ambulância chega. Isto só não vale para as ambulâncias que. 0. estar entre 1. no programa. 77712.300 e 1. chegam com um intervalo médio entre chegadas. nos últimos 25 dias.

tenham sido atendidos. Execute a simulação até que 500 carros. Usando 10. As medidas de interesse no sistema são o número médio de ítens na fila. são reprovadas e viram sucata.04. entre chegadas de 10 minutos. b) Intervalo entre chegadas exponencial e duração do serviço constante. a) Intervalo entre chegadas exponencial e duração do serviço exponencial. os ítens são enviados para o processo II que é idêntico ao processo I. . no total.000 minutos como a duração a ser estudada. A distribuição do tempo de inspeção rigorosa é. em cada processo. médio. em média. 19 e 22. que são cerca de 10% do total. Estão peças.5 e 4. que um ítem permanece no sistema. os ítens deixam o sistema. igual a 95 segundos mais uma variável aleatória que segue uma distribuição de Weibull com parâmetros iguais a 48. o número médio de carros na fila para os 2 tipos de carro e a taxa de ocupação da bomba de gasolina. Assim que chegam. o número de peças sucateadas e o número de peças que são inspecionadas parcialmente e rigorosamente. c) Intervalo entre chegadas constante e duração do serviço exponencial. Os ítens chegam ao sistema com intervalo. médio. d) Intervalo entre chegadas constante e duração do serviço constante. 15) Desenvolva um modelo para um sistema com 2 processos consecutivos (I e II). esta nova chegada passa a ser a 1a da fila). Após o serviço do processo II ser completado. 16) Peças chegam a uma estação de trabalho com um intervalo. se já tem uma ou mais ambulâncias no início da fila.000 segundos para determinar o número de peças boas. As demais (90%) são enviadas para a expedição e consideradas boas. Execute a simulação para 10. As demais vão para a expedição. são enviadas para outra estação onde sofrem uma rigorosa inspeção. Após terminar o 1o processo. Após a chegada. média.236 Introdução à Simulação início da fila (assuma que. entre chegadas de 21 segundos (exponencial). do serviço de 9 minutos. Em torno de 14% das peças que sofrem inspeção. os ítens são imediatamente enviados para o processo I que tem uma fila ilimitada e um recurso simples com uma duração. as peças são processadas. Existem características visuais que determinam se uma peça tem um eventual problema de qualidade. Estime o tempo de espera médio na fila para os 2 tipos de carro. Considere que no início da simulação (instante 0). o posto está vazio. O tempo de processamento segue uma distribuição triangular com parâmetros 16. faça as 4 simulações a seguir e compare os resultados. e o tempo total. médio.

Há uma sugestão de que os 2 funcionários possam atender qualquer cliente que ficariam em uma fila única esperando atendimento. Desenvolva um modelo e rode a simulação para 5. Um único funcionário recebe o pagamento além de conferir o pedido. Rode a simulação também para 5. o cliente vai embora. variando a duração uniformemente naquele intervalo. Após receber sua mercadoria. médio. Cada um dos 2 funcionários do estoque só podem atender clientes que foram designados para ele. em média.000 minutos. entre chegadas igual a 10 minutos (exponencial). atribuído a um de 2 funcionários do estoque que separam e embalam a mercadoria para entregar ao cliente.000 minutos e compare os resultados. aleatoriamente.21 Exercícios 237 17) Clientes chegam a uma caixa com um intervalo. O tempo desta atividade é também uniformemente distribuído entre 16 e 20 minutos. . entre 8 a 10 minutos para fazer estas tarefas. o cliente é. Após esta atividade estar completada.4. Ele demora.

238 Introdução à Simulação .

00570 .11123 .33724 .09853 .01618 .00193 .09342 .28434 .9 -0.16354 .03216 .00480 .22965 .26435 .00523 .00368 .5 -2.18673 .00508 .00402 .06057 .03515 .20611 .00621 .03920 .00990 .03005 .05480 .25143 .08226 .32636 .12714 .04457 .02275 .36693 .19215 .21476 .00889 .00391 .26763 .02330 .44433 .41683 .04272 .44828 .07215 .17879 .9 -1.05592 .02118 .35569 .22663 .42858 .1 -0.31918 .00317 .32997 .11702 .46017 .21186 .17619 .07780 .43644 .42074 .39743 .03754 .10027 .05705 .08692 .01923 .02743 .00842 .27093 .24196 .6 -1.01539 .40517 .9 -2.00676 .38974 .5 -0.07078 .31561 .00164 .04182 .01500 .21770 .04093 .00494 .12924 .23576 .43251 .00336 .0 0 .02442 .44038 .00205 .02169 .12302 .17361 .08534 .01044 .25785 .13786 .15866 .00248 .00289 .2 -0.12100 .20045 .09012 .01255 .00280 .14457 .2 -2.15386 .8 -1.00240 .00169 .01072 .00657 .35942 .31207 .00149 .01222 .00347 .02938 .07636 .00272 .10204 .30854 .09680 .03288 .02680 .01831 .48006 6 .00298 .33360 .00159 .30153 .1 -1.10565 .48405 5 .06426 .06552 .05155 .01426 .00466 .00212 .48803 4 .02018 .7 -1.03593 .41294 .01743 .00554 .49202 3 .34827 .17106 .3 -2.01287 .00357 .05938 .16853 .10935 .15151 .37448 .11314 .00181 .27760 .49601 2 .03362 .10383 .38209 .00604 .08076 .02500 .39358 .05821 .13567 .06681 .34090 .00755 .09176 .6 -0.20897 .07353 .29116 .00695 .01191 .15625 .00233 .46414 .18141 .01017 .01578 .27425 .7 -2.06178 .00714 .05262 .00256 .02619 .03438 .01321 .01130 .03074 .22065 .3 -1.4 -2.29460 .1 -2.40905 .32276 .00427 .02385 .24825 .50000 1 .29806 .00199 .7 -0.19766 .8 -0.03144 .00776 .06301 .05370 .37828 .01659 .02807 .01876 .13350 .00154 .08379 .04363 .00219 .14007 .07493 .00820 .0 -0.35197 .3 -0.01101 .40129 .00914 .00539 .04551 .42466 .23885 .00264 .00453 .01160 .47608 7 .04648 .03836 .4 -1.00379 .02068 .00226 .12507 .05050 .00639 .03673 .00798 .20327 .47210 8 .45224 .00734 .37070 .00866 .38591 .26109 .28096 .6 -2.28774 .30503 .14686 .10749 .36317 .18943 .2 -1.04846 .34458 .00964 .Apêndice A Tabela Normal Parte I Z -2.8 -2.06811 .00939 .02222 .04746 .00440 .00587 .01700 .02872 .00187 .06944 .04006 .01390 .18406 .23270 .07927 .11900 .14231 .00307 .16602 .14917 .09510 .02559 .04947 .16109 .4 -0.01463 .0 -1.00326 .19489 .00144 .01970 .01355 .22363 .5 -1.08851 .25463 .13136 .24510 .00175 .01786 .46812 9 .00139 .00415 .45621 .11507 .

8 1.98574 .84134 .9 2.88298 .99343 .99856 9 .88493 .97441 .99664 .99266 .98809 .87900 .99702 .98778 .93943 .91924 .56356 .94408 .68439 .99683 .99781 .67003 .99774 .53586 .92507 .96164 .87076 .59871 .78814 .99396 .57926 .96926 .66640 .81594 .74857 .75804 .69497 .74537 .98983 .99560 .99825 3 .84849 .99711 .98257 .98382 .72907 .97558 .51595 .85083 .96407 .3 0.99621 .97670 .62172 .2 0.86650 .6 0.99801 .85314 .98645 .99752 .90147 .89617 .98840 .99760 .79103 .71566 .92647 .95637 .99180 .82121 .98537 .240 Parte II Z 0.51197 .99224 .55172 .65910 .77035 .69146 .5 2.99788 .98870 .2 2.86214 .99520 .96562 .98928 .99653 .98341 .96246 .99036 .53983 .73565 .95907 .99807 .97882 .0 1.59483 .91308 .2 1.96712 .90490 .94520 .83147 .55567 .99846 7 .96080 .99430 .58706 .81859 .95053 .99324 .88877 .64803 .52790 .54776 .84614 .98956 .99813 1 .76115 .80511 .93319 .99861 .55962 .78524 .99286 .7 1.99609 .88100 .97257 .94738 .72575 .99446 .93189 .76424 .99585 .69847 .95254 .92073 .87698 .84375 .88686 .98500 .97982 .91621 .99819 2 .85543 .77637 .63307 .62930 .71226 .99851 Tabela Normal 8 .53188 .99477 .92220 .99086 .6 1.92364 .92922 .99831 4 .99010 .97193 .98610 .97381 .99492 .89065 .95818 .50399 .94062 .94179 .99720 .96327 .98679 .99361 .73237 .70194 .93574 .50000 .94950 .97062 .83646 .99061 .81057 .57142 .92785 .90658 .90320 .95728 .3 2.87286 .66276 .95994 .57534 .65173 .85769 .78230 .74215 .68793 .97831 .98713 .91774 .89435 .99632 .52392 .98077 .73891 .93056 .86433 .99534 .80785 .97725 .61409 .61791 .0 0.98030 .1 2.99795 .80234 .68082 .64058 .8 2.75490 .99643 .89796 .99693 .50798 .82381 .99744 .99573 .75175 .1 1.3 1.70884 .76730 .99547 .90824 .97778 .96856 .8 0.58317 .81327 .97500 .4 1.85993 .5 1.79389 .0 2.82894 .95449 .5 0.95543 .79955 .67724 .98899 .91466 .77935 .83891 .6 2.51994 .99736 .89251 .91149 .4 0.7 2.9 1.97320 .77337 .56749 .86864 .96995 .7 0.99245 .99674 .98169 .97615 .64431 .93699 .67364 .60642 .96784 .90988 .98461 .93448 .94295 .87493 .98300 .98124 .4 2.99379 .99134 .97932 .72240 .99158 .97128 .63683 .99461 .99413 .99598 .94845 .82639 .94630 .60257 .99111 .89973 .61026 .98745 .95352 .65542 .99841 6 .98422 .98214 .59095 .99767 .93822 .96638 .99836 5 .62552 .79673 .99506 .96485 .54379 .9 0 .99728 .71904 .95154 .99202 .1 0.83398 .70540 .99305 .

77 55.43 31.76 79.11 27.66 ⇐α .47 56.84 30.64 46.55 46.33 0.59 14.24 29.15 38.48 21.33 53.26 49.19 37.02 22.46 45.48 28.47 20.76 25.21 11.17 52.17 36.06 22.61 56.06 15.27 18.92 35.90 34.59 12.96 48.48 21.54 19.25 7.38 35.07 39.30 29.79 48.31 43.65 38.83 14.14 12.82 45.005 7.81 18.17 35.34 11.00 33.92 23.58 31.52 32.41 37.10 2.81 21.54 24.72 51.82 24.36 23.62 54.33 30.62 33.80 45.77 9.80 63.64 12.99 26.30 19.55 43.87 29.58 28.14 28.97 59.67 21.19 34.71 34.41 29.88 40.37 9.72 26.36 20.98 17.Apêndice B Tabela do χ2 ν ⇓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 40 50 0.41 32.33 24.61 30.07 12.84 5.05 55.98 17.99 41.52 36.84 9.09 21.19 44.31 46.42 0.74 37.85 34.99 52.26 32.00 33.71 23.40 86.14 31.33 42.92 48.81 9.86 30.34 13.92 43.001 10.68 15.54 13.64 50.58 39.81 32.50 0.81 16.16 0.49 0.26 18.66 23.40 42.52 32.11 18.31 45.30 23.025 5.20 28.89 58.93 26.46 20.73 26.38 12.34 71.99 7.08 16.18 45.21 27.58 50.31 32.57 32.03 10.45 24.69 39.05 3.40 34.70 73.91 18.95 23.27 15.14 30.28 41.83 14.18 26.27 21.50 16.36 14.11 41.29 27.98 44.44 16.48 11.03 27.69 76.26 35.51 22.15 0.72 46.79 44.67 33.20 24.30 59.12 27.38 6.25 40.25 1.29 49.60 6.19 31.32 26.23 10.93 40.01 17.21 11.53 19.82 13.01 13.47 36.02 7.02 20.63 42.67 66.81 31.71 37.86 16.25 51.58 25.87 10.10 5.75 67.75 28.64 41.70 14.79 43.68 29.78 38.84 15.98 27.89 63.56 38.27 49.75 18.08 40.24 19.68 24.32 2.12 37.56 36.80 34.01 6.63 9.62 7.36 40.77 4.80 36.60 22.91 39.54 20.70 4.

242 Tabela do χ2 .

Quando esta acaba. ao chegar ao final. 1958 .Peck and R. descemos até embaixo na página e. os exercícios apresentados só tratam modelos com populações de um daqueles tamanhos. subimos para a 3a coluna e quando chegamos ao final. embaixo na página. 10. só abrangem os modelos com população igual a 5. 1 extraída de L. mudamos para a próxima página onde a sequencia é a mesma. 20 e 30 elementos. cada uma com 4 valores: X.N.G.Hazelwood. Finite Queuing Tables. A sequencia dos valores é por coluna. S. Sendo assim. D e F. subimos para a 2a coluna. por problema de espaço. No acesso a tabela. deve-se observar que. após encontrar impresso População 10. existem 3 colunas. iniciamos na 1a coluna.Apêndice C Tabelas para modelos com população finita As tabelas a seguir 1 tem como objetivo facilitar os cálculos para modelos de filas com população de tamanho finito. As tabelas aqui contidas. Sendo assim. por exemplo. Na própria tabela está impresso onde ela começa a valer para uma determinada população. John Wiley & Sons. Assim. passam a valer os valores para esta população. em cada página.

695 .988 .993 .052 .990 .999 .402 .303 .054 F .332 .066 .955 .109 .323 .085 .987 .032 .997 .046 .090 .060 .404 .155 .439 .456 .049 .230 .950 .999 .044 .689 .013 .999 .853 .145 .999 .240 .140 .827 .042 .999 .992 .064 .244 X S D POPULAÇÃO 5 .944 .914 .220 S 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 D .260 .997 .984 .987 .214 .995 .521 .985 .198 .250 .861 .115 .950 .912 .665 .973 .994 .992 .996 .983 .177 .955 .237 .130 .885 .229 .170 .125 .071 .044 .999 .993 .999 .995 .362 .012 .907 .990 .009 .016 .553 .920 .161 .644 .568 .999 .135 .253 .100 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 .280 .190 .040 .071 .023 .082 .068 .783 .611 .881 .983 .294 .247 .842 .932 .175 .095 .031 .994 .976 .989 .765 .969 .999 .007 .993 .999 .756 .994 .960 .422 .869 .064 .988 .143 .597 .206 .089 .613 .260 .811 .998 X .677 .350 .079 .012 .999 .819 .070 .183 .998 .102 .120 .977 .997 .076 .058 .998 .965 .973 .194 .028 Tabelas para modelos com população finita F .990 .628 .100 .505 .794 .999 .150 S 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 D .421 .058 .969 .999 .222 .991 .999 .382 .939 .026 .036 .999 .024 .268 .284 .998 .275 .473 .211 .945 .735 .059 .582 .998 .998 .747 .999 .025 .120 .024 .103 .270 .869 .775 .938 .167 .123 .926 .115 .313 .985 .018 .019 .040 .900 .086 .892 F .050 .159 .022 .999 .105 .991 .992 .919 .730 .989 .137 .145 .165 .034 .997 .713 .981 .015 .017 .008 .290 .995 .062 .160 .836 .877 .933 .999 .019 .035 .712 .989 .342 .999 .180 .052 .021 .997 .998 .027 .892 .245 .135 .999 .979 .200 .030 .960 .056 .638 .130 .041 .080 .801 .489 .054 .597 .988 .927 .994 .065 .094 .010 .995 .046 .110 .980 .537 .996 .011 .100 .300 .310 .048 .982 .075 .993 .229 .076 .978 .095 .036 .661 .320 .856 .999 .020 .368 .965 .265 .997 X .200 .210 .996 .386 .

987 .700 .994 .998 .950 .960 .985 .532 .410 .112 .686 .021 .238 .907 .871 .896 .996 .144 .952 .036 .981 .044 .580 .927 X .470 .400 .327 .471 .608 .188 .560 .838 .296 .995 .750 .021 .440 .085 .065 .432 .053 .994 .918 .404 .040 .999 .460 .048 .986 .969 .999 .702 .017 .998 .689 .285 .026 .936 .980 .652 .232 .100 .985 .957 .989 .963 .426 .978 .992 .999 .996 .308 .902 .340 .950 .666 .650 .631 X S D POPULAÇÃO 10 .046 .240 .501 .875 .991 .480 .224 .034 .470 .540 .540 S 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 4 3 2 4 3 2 4 3 2 4 3 D .106 .997 .863 .972 .186 .815 .016 .052 .616 .532 F .670 .719 .998 .520 .050 .042 .999 .330 S 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 D .999 .993 .998 .997 .055 .973 .033 .211 .953 .991 .179 .032 .399 .500 .054 .767 .900 .945 .708 .359 F .421 .360 .250 .062 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 .900 .415 .779 .980 .354 .058 .997 .880 .970 .517 .988 .268 .462 .060 .013 .999 .437 .568 .995 .975 .384 .060 .997 .763 .750 .542 .130 .486 .094 .850 .522 .998 .420 .841 .388 .442 .748 .994 .113 .999 .904 .807 .520 .461 .037 .516 .944 .997 .076 .302 .113 .982 .420 .141 .600 .949 .806 .583 .998 .996 .997 .444 .500 .088 .454 .826 .656 .998 .927 .787 .972 .911 .960 .028 .501 .996 .320 .333 .728 .357 .266 .995 .163 .883 .966 .960 .815 .451 .941 .206 .046 .037 .030 .497 .975 .345 .845 .999 .984 .986 .967 .800 .984 .953 .986 .991 .678 .569 .012 .989 F .777 .990 .850 .245 X .056 .945 .895 .996 .996 .031 .956 .976 .992 .050 .739 .121 .370 .337 .071 .038 .972 .831 .906 .045 .993 .019 .998 .999 .073 .917 .041 .380 .924 .652 .961 .063 .286 .588 .026 .988 .082 .316 .371 .023 .981 .170 .098 .025 .579 .854 .493 .392 .

547 .036 .931 .415 .800 .994 .996 .020 .984 .986 .999 .737 .591 .999 .133 .028 .999 .961 .992 .170 .753 .958 .571 .366 .919 .064 .013 .049 .987 .795 .993 .140 .165 .400 .026 .066 .155 .369 .999 .060 .614 .205 .987 .549 .873 .919 .503 F .995 .995 .072 .043 .986 .973 .984 .921 .997 .996 .392 .078 .092 .954 .996 .843 .124 .947 .183 .216 .142 .999 .100 .974 .938 .997 .020 .562 .981 .968 .150 .081 .400 .914 .044 .926 .333 .988 .999 .822 .070 .750 .699 .180 .434 .022 .085 .899 .835 .993 .230 .483 .928 .995 .662 .980 .144 .126 .324 .066 .854 .031 .037 .090 .850 .997 .761 .994 .497 .237 .776 .994 .794 .240 .594 .997 .867 .936 .907 .999 .756 .121 .474 .999 .983 .010 .966 .961 .210 .913 .246 X .776 .718 .990 .998 .978 X .999 .978 .300 .095 .013 .180 .054 .680 .995 .940 .952 .125 .209 .999 .998 .260 .929 .692 .999 .016 .522 .627 .052 .999 .022 .692 .994 .815 .550 .120 .434 .025 .132 .040 .220 .814 .182 .158 .998 .049 .962 .997 .110 .016 .939 .238 Tabelas para modelos com população finita F .056 .115 .878 .990 .982 .135 .947 .453 .130 S 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 5 4 3 D .250 .105 .156 .975 .258 .301 .991 .728 .108 .064 .195 .995 .999 .997 .528 .579 .722 .119 .090 .090 .999 .160 .982 .269 .999 X .460 .774 .068 S 2 1 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 4 3 2 1 4 D .992 .037 .610 .469 .660 .998 .416 .644 .025 .967 .986 .044 .890 .654 .998 .844 .190 S 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 D .019 F .627 .100 .998 .169 .125 .162 .110 .145 .929 .075 .883 .279 .999 .990 .505 .196 .999 .994 .177 .954 .989 .971 .906 .080 .996 .200 .346 .997 .998 .832 .893 .861 .947 .791 .935 .998 .990 .577 .437 .032 .819 .941 .140 .988 .030 .

987 .816 .994 .994 .658 .635 .998 .476 .993 .141 .460 .972 .997 .603 .617 .758 .270 S 2 1 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 1 6 5 4 3 2 6 5 4 3 2 6 5 4 3 2 7 D .360 .858 .978 .903 .999 .575 .553 .018 .646 .732 .961 .387 .999 .341 .954 .026 .357 .292 .963 .887 .635 .787 .845 .580 .998 .057 .135 .799 .997 .454 .600 .646 .999 .700 .252 .995 .896 .905 .031 .986 .278 .798 .535 .560 .999 .533 .840 .049 .370 .867 .015 .980 .445 .978 .999 .440 .996 .517 .943 .927 .966 .171 .952 .939 .525 .999 .316 .168 .986 .474 .130 .260 .945 .072 .923 .982 .996 .345 .991 .280 .672 .120 .884 .752 .420 .995 .064 .994 .010 F .992 .968 .340 .205 .829 .416 .949 .385 .864 .886 .712 .972 .977 .993 .991 .901 .553 .435 X .988 .480 S 8 7 6 5 4 3 2 8 7 6 5 4 3 2 8 7 6 5 4 3 2 8 7 6 5 4 3 8 7 6 5 4 3 8 7 6 5 4 3 9 8 7 D .105 .968 .653 .417 .036 .706 .998 .747 .106 .606 .979 .044 .384 .359 .666 .247 .160 .791 .015 .848 .151 .584 .074 .995 .994 .204 .330 .081 .918 .300 .026 .034 .070 .400 .598 .500 .973 .320 .952 .872 .753 .093 .957 .999 .893 .011 .831 .937 .555 .058 .392 .540 .698 .961 .380 .971 .998 .400 .228 .986 .333 .998 .866 .976 .999 X .729 .537 .600 .271 .707 .775 .997 .465 .042 .998 .304 .247 X .999 .983 .331 .684 .999 .363 .300 .242 F .692 .916 .621 .991 .999 .728 .034 .019 .340 S 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 8 7 6 5 4 3 2 D .822 .990 .993 .571 .991 .947 .999 .520 .014 .938 .932 .998 F .884 .499 .930 .984 .830 .413 .672 .045 .193 .998 .499 .958 .963 .310 .875 .997 .943 .022 .994 .906 .999 .972 .750 .989 .290 .917 .999 .230 .999 .723 .083 .986 .026 .591 .908 .845 .695 .999 .010 .928 .866 .093 .020 .995 .115 .

358 .062 .934 .965 .666 .056 .859 .066 .990 .879 .500 .088 .449 .998 .095 .997 .996 .412 .996 .815 .986 .009 .992 .032 .024 .036 .973 .881 .021 .053 .283 .996 .614 .996 .999 .134 .044 S 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 D .882 .019 .772 .519 .020 .999 .060 .750 .999 .876 .052 .988 .307 .066 .461 .082 .064 .999 .005 .996 .881 .059 .651 .999 .938 .992 .013 .785 .916 .751 .431 .995 .500 .802 . 1 2 1 3 2 1 3 .587 152 .124 .835 .950 .022 .972 .040 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2.651 .484 .998 .984 .999 .991 .988 .996 .999 .978 .682 .999 .978 .979 .997 .137 .957 .123 .332 .255 .080 .999 .048 .134 .750 .040 .980 .993 .987 .466 .994 .997 .185 .667 .997 .293 .777 .963 .105 .058 .028 .232 .929 .929 .998 .011 .484 .993 .023 .353 .922 .050 .850 .870 .237 .982 .036 .759 .122 .600 S 6 5 4 3 9 8 7 6 5 4 3 9 8 7 6 5 4 9 8 7 6 5 4 9 8 7 6 5 4 9 8 7 6 5 9 8 7 6 9 8 7 D .947 .376 .999 .953 .992 .980 .994 F .433 .980 .017 .940 .073 .036 F .712 .711 .518 .979 .841 .571 .908 .321 .553 .955 .836 .108 .168 .999 X .982 .075 .998 .792 .954 .747 .999 .900 .413 .392 .737 X S D POPULAÇÃO 20 .991 .202 .991 .025 .064 .999 .792 .934 .819 .906 .989 .918 .978 .312 .866 .795 .999 .998 .625 .248 X .016 .650 .944 .997 .999 .999 .094 .620 .975 .200 .938 .038 .075 .989 .048 .029 .984 .054 .995 .897 .700 .705 .785 .026 .998 .768 .763 .047 .171 .999 .809 .999 .851 .767 .994 .994 .858 .246 .998 .387 .997 .894 .021 .053 .999 .446 .041 Tabelas para modelos com população finita F .208 .800 .968 .339 .630 .893 .046 .626 .995 .998 .975 .115 .962 .999 .998 .818 .040 .352 .611 .026 .219 .986 .837 .944 .088 .939 .999 .030 .372 .988 .394 .042 .302 .663 .533 .740 .015 .014 .058 .878 .588 .097 .034 .018 .032 .274 .265 .070 .999 .915 .

978 .112 .997 .476 .813 .545 .033 .928 .438 .999 .879 .996 .299 .514 .029 .997 .589 .088 .101 .151 .998 .988 .586 .768 .953 .022 .992 .980 .039 .021 .025 .363 .099 .555 .913 .995 .388 .295 .975 .998 .245 .773 .988 .837 .065 .144 .997 .140 .997 .913 .942 .155 S 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 8 7 6 5 4 3 2 8 7 D .999 .526 .699 .080 .115 .552 .716 .945 .860 .787 .999 .150 .495 .842 .595 .748 .830 .999 .999 .248 .200 .983 .037 .999 .991 .958 .130 .131 .980 .328 .998 .976 .661 .038 .474 .998 .987 .025 .838 .994 .044 .997 .400 .725 .988 .659 .172 .066 .990 .165 .166 F .257 .870 .131 .858 X .887 .135 .930 .998 .997 .058 .575 .998 .996 .970 .051 .990 .953 .225 .226 .999 .100 .966 .326 .996 .185 .154 .995 .476 .077 .180 .090 .980 .999 .999 .641 .526 .148 .345 .948 .967 .085 .984 .770 .933 .626 .095 .995 .961 .976 .816 .999 .964 .728 .068 .999 .031 .999 .026 .962 .999 .271 .110 S 1 5 4 3 2 5 4 3 2 6 5 4 3 2 6 5 4 3 2 6 5 4 3 2 6 5 4 3 2 6 5 4 3 2 6 5 4.419 .636 .999 .055 .987 .513 .661 .914 .249 X .990 .195 .994 .066 .068 S 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 D .982 .793 .998 .941 .874 .993 .074 F .971 .996 .957 .916 .454 .165 .682 .998 .621 .733 .912 .995 .219 .960 .990 .994 .809 F .878 .968 .043 .482 .170 .992 .799 .986 .080 .587 .999 .205 .999 .950 .046 .733 .043 .018 .896 .993 .145 .155 .999 .995 .291 .900 .190 .116 .998 .088 .031 .963 .095 .125 .080 .689 .986 .703 .895 .972 .358 .695 .150 .075 .845 .105 .059 .951 .500 .991 X .450 . 3 2 7 6 5 D .996 .076 .969 .983 .643 .120 .054 .194 .969 .993 .105 .999 .997 .554 .017 .622 .604 .934 .024 .070 .999 .125 .160 .998 .993 .758 .923 .999 .

944 .878 .061 .907 .999 .380 X .961 .999 .986 .998 .973 .643 .900 .973 .347 .863 .989 .736 .989 .731 .438 .793 .828 .999 .451 .104 .685 .043 .727 .997 .031 .852 .973 .649 .015 .205 .677 .999 .967 .555 .513 .187 .639 .573 .091 .924 .932 .200 S 6 5 4 3 2 8 7 6 5 4 3 2 8 7 6 5 4 3 9 8 7 6 5 4 3 9 8 7 6 5 4 3 9 8 7 6 5 4 3 9 8 7 D .970 .536 .305 .476 .029 .130 .996 .544 .981 .085 .994 .199 .766 .237 .999 .985 .865 .980 .977 .901 .708 .924 .125 .016 .306 .179 .054 .018 .938 .394 .893 .895 .998 .014 .684 Tabelas para modelos com população finita F .983 .804 .075 .065 .310 .892 .529 .664 .954 .999 .446 .592 .500 .988 .788 .021 .780 .992 .045 .958 .140 .023 .599 .992 .993 .260 S 6 5 4 3 10 9 8 7 6 5 4 3 10 9 8 7 6 5 4 3 10 9 8 7 6 5 4 3 10 9 8 7 6 5 4 3 11 10 9 8 7 6 D .867 .848 .351 .263 .999 .812 .290 .755 .398 .240 .706 .555 .613 .971 .963 .027 .757 .999 .777 .998 .846 .605 .309 .250 X .999 .351 .664 .985 .999 .981 .998 .079 .093 .149 .943 .018 .874 .989 .033 .505 .943 .712 .223 .034 .039 .901 .999 .994 .954 .992 .997 .874 .995 .154 .999 .917 .999 .340 .978 .210 .996 .748 .935 .999 .270 .915 .230 .272 .995 .987 .933 .995 .971 .237 .309 .943 .884 .993 .729 .999 .397 .320 S 5 4 11 10 9 8 7 6 5 4 11 10 9 8 7 6 5 4 11 10 9 8 7 6 5 4 12 11 10 9 8 7 6 5 4 12 11 10 9 8 7 6 D .988 .998 .588 .981 .112 .168 .997 .154 .049 .997 .360 .624 .938 .992 .270 .969 .660 .310 .998 .483 .999 .909 F .995 .990 .949 .115 .230 .495 .797 .990 .833 .961 .993 .220 .024 .693 .953 .975 .953 .176 .260 .250 .745 .043 .998 .560 .997 .300 X .739 .517 .024 .110 .985 .999 .996 .996 .691 .330 .808 .967 .053 .500 .068 .802 .958 .998 .998 .834 .067 .828 .978 .280 .931 .576 .623 .870 .233 F .920 .429 .988 .768 .862 .

969 .988 .689 .035 .998 .867 .600 .662 .624 .870 .824 .891 .994 .095 .051 .882 .999 .911 .845 .961 .998 .615 .941 .997 .289 .963 .266 .714 .982 .996 .824 .748 .974 .751 .977 .407 .540 .047 .986 .161 .194 .835 .896 .017 .750 .999 .972 .957 .732 .432 .970 .137 .061 .952 .420 .560 .692 .518 .998 .872 .912 F .996 .015 .980 .311 .997 .998 .873 .997 .713 .209 .532 .595 .846 .171 .069 .962 .914 .129 .991 .999 .078 .929 .866 .944 .109 .941 .994 .988 .620 .846 .641 .898 .999 .023 .778 .744 .999 .984 .958 .872 .713 .543 .999 .586 .358 .023 .698 .131 .926 .987 .440 .580 S 8 7 16 15 14 13 12 11 10 9 8 7 16 15 14 13 12 11 10 9 8 7 17 16 15 14 13 12 11 10 9 8 17 16 15 14 13 12 11 10 9 18 D .755 .022 .973 .583 .976 .976 .987 .265 .997 .994 .072 .710 .869 .889 .228 .577 .821 .998 .700 .295 .908 .029 .984 .962 .791 .785 .938 .643 .672 .540 .480 S 11 10 9 8 7 6 14 13 12 11 10 9 8 7 6 15 14 13 12 11 10 9 8 7 6 15 14 13 12 11 10 9 8 7 6 15 14 13 12 11 10 9 D .819 .666 .989 .726 .815 .998 .720 .568 .651 .990 .560 .849 .095 .939 .992 .625 .120 .807 .998 .019 .147 F .711 .063 .380 .458 .625 .998 .990 .175 .314 .048 .796 .999 .767 .556 .480 .678 .015 .918 .783 .600 .738 .999 .948 .381 .991 .999 .962 .977 .815 .965 .939 .331 .988 .500 .999 .764 .205 .598 .954 .772 .650 X .992 .863 .156 .905 .484 .893 .400 S 5 4 13 12 11 10 9 8 7 6 5 13 12 11 10 9 8 7 6 5 13 12 11 10 9 8 7 6 5 14 13 12 11 10 9 8 7 6 5 14 13 12 D .379 .088 .996 .695 .942 .037 .965 .648 .055 .992 .933 .680 .999 .995 .999 .985 .998 .520 X .995 .455 .503 .656 .991 .764 .949 .989 .563 .248 .837 .603 .907 .993 .012 .526 .251 X .333 .847 .996 .953 .999 .033 .460 .979 .043 .978 .031 F .014 .509 .999 .999 .996 .998 .984 .908 .993 .440 .997 .943 .

984 .052 .060 .017 .750 S 17 16 15 14 13 12 11 10 19 18 17 16 15 14 13 12 11 19 18 17 16 15 14 13 12 19 18 17 16 15 14 13 19 18 17 16 15 D .346 .620 .513 .011 .085 .603 .025 .997 .939 .042 .980 .083 .894 .663 .171 .996 .316 .988 .013 .046 .996 .850 .973 .998 .722 .980 .843 .823 .054 .997 .760 .733 .138 .700 .993 .378 .703 .983 .827 .991 .203 .948 .317 .474 .639 .023 .999 .068 .023 .645 .227 .135 .018 .920 .016 .010 .007 .208 .403 .989 .798 .998 .954 .990 .943 .670 .015 .470 .998 .999 .999 X .974 .995 .163 .667 .999 .878 .694 .257 .996 .899 .086 F .071 Tabelas para modelos com população finita F .935 .999 .076 .442 .853 .991 .095 .973 .487 .977 .260 .425 .998 .242 .999 .983 .154 .999 .188 .095 .506 .040 .999 .900 .998 .046 .032 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 3 2 1 3 2 1 3 .993 .377 .139 .998 .898 .968 .959 .877 .750 .811 .038 .877 .997 .994 .040 .833 .999 .992 .286 .374 .347 .567 .995 .948 .954 .113 .175 .109 .201 .229 .034 .993 .077 .986 .999 .989 .905 .997 .842 .957 .999 .036 S 2 1 3 2 1 3 2 1 3 2 1 3 2 1 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 3 2 1 4 D .918 .689 .028 .998 .867 .999 .864 .252 X .952 .985 .999 .805 .988 .014 .998 .703 .929 .772 .451 .995 .800 .410 .050 .965 .976 .706 .026 .955 .060 .913 .009 .999 .056 .116 .994 .716 .965 .046 .987 .994 .998 .972 .431 .021 .044 .127 .999 .982 .998 .744 .999 .850 .963 .960 .869 .980 .594 .022 .458 .053 .030 .951 .272 .981 .486 .718 .778 .048 .765 .996 .950 .999 .067 .004 .998 .717 .020 .123 .969 .992 .151 .995 .859 .998 .962 .539 .032 .687 .995 .789 X S D POPULAÇÃO 30 .999 .189 .084 .997 .541 .999 F .996 .616 .289 .997 .886 .012 .994 .116 .989 .935 .571 .024 .201 .992 .051 .927 .800 .963 .247 .988 .014 .763 .876 .105 .988 .634 .019 .972 .996 .

918 .045 .885 .981 .070 .816 .867 .999 .732 .085 .897 .326 .177 .979 .357 F .071 .451 .555 .873 .607 .966 .998 .267 .421 .024 .783 .062 .579 .595 .288 .899 .289 .999 .751 .069 .979 .132 .918 .080 .996 .927 .240 .993 .914 .555 .997 .980 .884 .856 .117 .664 .936 .997 .036 F .057 .115 .995 .970 .840 .999 .058 S 3 2 1 4 3 2 1 5 4 3 2 1 5 4 3 2 5 4 3 2 5 4 3 2 5 4 3 2 5 4 3 2 5 4 3 2 6 5 4 3 2 6 D .967 .998 .991 .992 .998 .997 .996 .959 .310 .098 .999 .991 .805 .754 .944 .332 .145 .288 .991 .075 .979 .802 .999 .989 .155 .833 .085 S 5 4 3 2 6 5 4 3 2 6 5 4 3 2 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 2 7 6 5 4 3 D .758 .140 .100 .989 .995 .046 .219 .927 .147 .996 .997 .120 .984 .998 .987 .976 .986 .038 .957 .105 .095 .768 .944 .030 .253 .893 .972 .574 .999 X .950 .972 .720 .999 .908 .984 .997 .096 .918 F .999 .355 .998 .048 .665 .083 .995 .977 .697 .367 .960 .940 .125 S 2 8 7 6 5 4 3 8 7 6 5 4 3 8 7 6 5 4 3 8 7 6 5 4 3 8 7 6 5 4 3 9 8 7 6 5 4 3 9 8 7 6 D .171 .547 .037 .150 .197 .605 .712 .982 .999 .580 .999 .710 .879 .825 .857 .372 .665 .993 .038 .999 .997 .952 .486 .120 .939 .969 .130 .997 .973 .256 .991 .998 .068 .158 .047 .997 .986 .987 .056 .984 .088 .027 .426 .065 .125 .115 .994 .771 .110 .997 .948 .634 .030 .128 .520 .687 .808 X .166 .985 .999 .734 .060 .282 .043 .666 .110 .934 .849 .999 .665 .226 .066 .155 .134 .057 .029 .987 .999 .619 .995 .828 .999 .077 .030 .988 .055 .409 .108 .890 .106 .996 .984 .187 .994 .378 .991 .140 .201 .253 X .105 .993 .054 .322 .153 .998 .999 .570 .860 .999 .999 .470 .695 .998 .899 .999 .997 .955 .999 .976 .135 .793 .064 .069 .998 .999 .402 .847 .034 .777 .537 .327 .723 .959 .494 .993 .087 .090 .024 .990 .999 .929 .998 .

992 .985 .985 .874 .019 .121 .634 .117 .868 .028 .955 .823 .976 .997 .665 .999 .556 .999 .998 .997 .996 .999 .676 .616 .758 .056 .240 .995 .935 .054 F .023 .792 .693 .998 .090 .073 .946 .280 .588 .737 .961 .981 .197 .515 .220 X .763 .580 .170 .994 .552 .999 .242 .402 .864 .999 .157 .446 .842 .983 .967 .999 .644 .973 .361 .042 .913 .249 .693 .702 .165 .546 .999 .923 .394 .905 .999 .972 .023 .995 .017 .423 .250 .699 .944 .930 .864 .989 .818 .986 .952 .200 .816 .378 .279 .806 .998 .910 .948 .830 .996 .056 .999 .055 .954 .036 .930 .999 .663 .999 .712 .751 .329 .841 .880 .017 .986 .999 .999 .469 .621 .999 .986 .622 .969 .021 .254 .980 .949 .993 .862 .585 .986 .992 .595 .998 .042 Tabelas para modelos com população finita F .999 .902 .924 .260 .994 .582 .816 .995 .303 .095 .967 .998 .522 .989 .155 .074 .970 .773 .160 S 5 4 3 9 8 7 6 5 4 3 9 8 7 6 5 4 3 10 9 8 7 6 5 4 3 10 9 8 7 6 5 4 3 10 9 8 7 6 5 4 11 10 D .073 .606 .990 .291 .070 .811 .785 F .938 .905 .992 .998 .233 .023 .885 .999 .915 .031 .994 .981 .981 .043 .250 S 11 10 9 8 7 6 5 13 12 11 10 9 8 7 6 5 13 12 11 10 9 8 7 6 5 14 13 12 11 10 9 8 7 6 5 14 13 12 11 10 9 8 D .200 S 9 8 7 6 5 4 11 10 9 8 7 6 5 4 11 10 9 8 7 6 5 4 12 11 10 9 8 7 6 5 4 12 11 10 9 8 7 6 5 4 13 12 D .155 .963 .666 .254 X .789 .158 .969 .095 .892 .230 .190 .901 .652 .990 .814 .641 .200 .192 .487 .998 .997 .782 .431 .382 .617 .999 .996 .965 .223 .866 .105 .992 .606 .996 .230 .735 .989 .032 .845 .938 .976 .937 .624 .123 .227 .270 .898 .151 .773 .462 .999 .041 .975 .998 .039 .994 .345 .094 .313 .887 .093 .991 .739 .996 .733 .988 .998 .913 .997 .997 .959 .999 .995 .555 .901 .201 .715 .932 .121 .997 .051 .961 .030 .997 .185 .996 .290 X .160 .932 .980 .180 .210 .974 .721 .123 .

682 .685 .028 .090 .999 F .997 .999 .375 .988 .965 .997 .635 .697 .931 .999 .460 .953 .996 .606 .983 .999 .437 .994 .823 .856 .717 .056 .296 .869 .979 .945 .191 .926 .724 .992 .948 .999 .970 .065 .910 .985 .496 .023 .606 .985 .824 .101 .380 X .016 .993 .167 .071 .663 .041 .748 .643 .360 .420 .850 .017 .995 .883 .998 .994 .999 .995 F .924 .086 .748 .977 .288 .420 S 18 17 16 15 14 13 12 11 10 9 8 19 18 17 16 15 14 13 12 11 10 9 8 19 18 17 16 15 14 13 12 11 10 9 20 19 18 17 16 15 14 13 D .652 .625 .688 .681 .861 .960 .614 .641 .035 .997 .966 .749 .944 .996 .830 .990 .145 .575 .017 .996 .906 .858 .998 .113 .755 .232 .701 .999 .150 .857 .970 .997 .738 .046 .927 .986 .990 .340 S 16 15 14 13 12 11 10 9 8 7 6 16 15 14 13 12 11 10 9 8 7 17 16 15 14 13 12 11 10 9 8 7 17 16 15 14 13 12 11 10 9 8 D .031 .177 .821 .929 .952 .064 .480 .440 .253 .778 .950 .909 .957 .468 .998 .971 .552 .893 .984 .902 .943 .362 .993 .972 .116 .820 .240 .843 .906 .184 .793 .762 .041 .521 .666 .030 .998 .799 F .977 .993 .350 .979 .999 .300 .998 .087 .414 .998 .588 .999 .855 .324 .320 6 15 14 13 12 11 10 9 8 7 6 15 14 13 12 11 10 9 8 7 6 D .623 .995 .300 S 7 6 5 14 13 12 11 10 9 8 7 6 15 14 13 12 11 10 9 8 7 .957 .857 .997 .666 X .608 .999 .985 .990 .310 .645 .795 .213 .945 .255 X .446 .494 .999 .933 .972 .999 .020 .545 .713 .996 .988 .881 .999 .024 .918 .784 .914 .996 .019 .129 .310 .330 .937 .169 .727 .212 .886 .977 .098 .999 .929 .706 .987 .982 .982 .795 .945 .998 .999 .068 .040 .996 .986 .967 .992 .312 .990 .264 .997 .470 .889 .029 .903 .700 .290 .975 .799 .775 .997 .999 .999 .947 .876 .962 .964 .988 .578 .648 .993 .787 .139 .974 .771 .266 .076 .789 .392 .989 .836 .601 .400 .380 .994 .840 .054 .132 .048 .901 .

023 .998 .520 .580 .663 .053 .722 .784 .853 .999 .999 .963 .072 .877 .829 .941 .977 .999 .999 .993 .947 .108 .196 .481 .610 .999 .940 .035 .143 .439 .755 .996 .600 .021 .837 .823 .998 .612 .950 .957 .031 .667 .158 .953 .865 .714 .832 .500 .051 .776 .796 .667 .997 .850 .972 .974 .900 .986 .873 .143 .292 .980 .167 .910 .919 .750 X .997 .989 .970 .690 .965 .679 .856 .953 .024 .997 .990 .985 .791 .985 .683 .965 .916 .405 .827 .966 .982 .986 .977 .560 S 19 18 17 16 15 14 13 12 11 23 22 21 20 19 18 17 16 15 14 13 12 11 23 22 21 20 19 18 17 16 15 14 13 12 24 23 22 21 20 19 18 17 26 25 24 23 22 21 29 D .854 .372 .883 .039 .650 .970 .590 .818 .938 .694 .991 .994 .981 .879 .670 .356 .800 .540 .972 .842 .996 .799 .055 .480 S 12 11 10 9 20 19 18 17 16 15 14 13 12 11 10 21 20 19 18 17 16 15 14 13 12 11 10 21 20 19 18 17 16 15 14 13 12 11 10 22 21 20 22 21 20 19 29 28 27 D .941 .949 .998 .877 .998 .641 .865 .888 .983 .993 .059 .950 .511 .822 .927 .705 .993 .171 .971 .999 .745 .888 .650 S 16 15 14 13 25 24 23 22 21 20 19 18 17 16 15 26 25 24 23 22 21 20 19 18 17 16 27 26 25 24 23 22 21 20 19 18 28 27 26 25 24 23 28 27 26 25 24 D .923 .985 .997 .200 .874 .988 .079 .996 .947 .155 .811 .950 .750 .766 .999 .821 .808 .894 .046 .960 .997 .872 .702 .918 .945 .983 .226 Tabelas para modelos com população finita F .764 .718 .740 .981 .760 .421 .899 .995 .815 .967 .999 .985 .932 .038 .252 .951 .997 .538 .014 .993 .993 .912 .998 .762 .999 .994 .850 .975 .920 .281 .954 .904 .769 .972 .995 .746 .824 .215 .999 .352 .852 .574 .989 .683 .778 .711 .560 .288 .632 .767 .936 .762 .880 .500 .999 .200 .996 .999 .270 .096 .992 .256 X .920 .700 .117 .032 .920 .493 .909 .915 .854 .946 .901 .125 .998 .952 .047 .714 .230 .990 .991 .750 .958 .967 .949 .930 .118 .571 .999 .854 .992 .799 .862 .923 .831 .568 .981 .441 F .681 .999 .996 .667 .949 .625 .999 .997 .076 .973 .600 X .991 .516 .998 .085 .339 .398 .899 .587 .732 .883 .617 .986 .993 .900 .772 .443 .973 .999 .056 .331 .998 F .828 .802 .999 .733 .826 .994 .993 .655 .752 .240 .997 .999 .906 .878 .993 .842 .984 .987 .

1976. Applications of Graph Theory Algorithms. 1996. J Murdoch. Phillips and Alberto Garcia-Diaz. Teoria de las Colas. 1972. Introduction to Operations Research . Panico. McGraw-Hill. Magnanti and James B. Frederick S.K. Orlin. Basic Queueing Theory. 1990. The Butterworth Group. Prolam S. Métodos y Modelos de Investigación de Operaciones.Page. Ghare and James M. McGraw Hill . Edward Arnold. [11] Joseph A. Waveland Press. 1980. Graph Theory. [12] E. Rui Carvalho Oliveira. The MacMillan Press. Queueing Theory in OR. Hillier and Gerald J. Petrocelli Books.A Problem Solving Approach. Bunday. 1973. Bazaraa. Don T. Valadares Tavares. 1997. Ravindra K. John J. [15] Billy E. Mokhtar S. Network Flow Programming. [13] Juan Prawda. Vol. 2006.Balakrishnan. 1993. Nunes Correia..Worked Examples and Problems. Schaum’s Outline Series. Queueing Theory . Lieberman. Thomas L.L. Fundamentals of Network Analysis. 8a Edition. 2a Edtion. Linear Programming and Network Flows. V. Isabel Hall Themido e F. Sherali. McGraw-Hill. Investigação Operacional. Prentice-Hall. McGraw-Hill. Leonard Gorney. 1980.A Computer Oriented Algorithmic Approach. [10] Brian D. Jarvis and Hanif D. Wesley Barnes. . Ahuja. 1979. Gillett. Vinod Chachra. Queueing Theory . John Wiley & Sons. Jensen and J. Network Flows.A. 1978.. 1980. John Wiley & Sons. Prabhakar M. Moore. [14] L. 1986.R. Introdução à Pesquisa Operacional. Editorial Limusa S. 2.Bibliografia [1] [2] [3] [4] [5] [6] [7] [8] [9] Paul A. North Holland. 1990.Lisboa.

Fabrycky. 1998. Teoria das Filas. Interciência. McGraw-Hill. Modelagem e Simulação de Eventos Discretos. Allyn and Bacon. Van Nostrand. Torgersen. [20] Laurence J. 2007. Medina. Evans and David L. Simulation Modeling and Analysis. McGraw-Hill. Bennett. Prentice-Hall. 2007. [29] Leonardo Chwif e Afonso C. J. [22] Arnold O. [17] W.Problems and Models. Academic Press. [19] Elwood S. Academic Press. Project Management with CPM and PERT. Discret Event Simulation in C. Prentice Hall. Prentice-Hall. Lee and Bernard W.258 BIBLIOGRAFIA [16] J. Nelson and David M. 1972. Barry L. Randall P. John S. [26] Kevin Watkins. Allen. 1972. Visual Books. Simulation with Arena. 1993. 2a Edition. Sturrock. Introduction to Simulation and Risk Analysis. McGraw-Hill. White. 2a Edição Bravarte.E. Law.A. 1975. Phillips. Buffa.K. Moder and Cecil R. Carson II.W. Ghare and P. 2001. [24] W. 2007. P. John Wiley & Sons. Industrial Operations Research. 4a Edition. 4a Edition. [28] James R. Sang M. 2005. [27] Jerry Banks.M. Taylor. 1970. Olsen. [21] Joseph J. 1990. 1993. 2007. 4a Edition.J. Introdução a Modelagem e Simulação de Sistemas. Sadowski and David T. [25] Paulo José de Freitas Filho. Operations Management . . Management Science. Analysis of Queueing Systems. 3a Edition. Moore. [23] Averril M. Nicol. 2a Edition. DiscretEvent System Simulation. Probability. Statistics and Queueing Theory with Computer Science Applications. [18] Maria Cristina Fogliatti e Néli Maria Costa Mattos. Schmidt and G.David Kelton.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->