You are on page 1of 99

Universidade Púngué

Centro de Educação a Distancia


Curso de Informática Aplicada

MODELAÇÃO E SIMULAÇÃO
Modelagem Baseada em Agentes
 Quem?
 especialistas em modelagem

 especialistas no sistema

 especialistas em áreas complementares

 usuários do sistema
 clientes do sistema

2
TEORIA DAS FILAS

 Erlang desenvolveu modelos matemáticos que oferecem


soluções analíticas

TEORIA DAS FILAS

 Útil para: telefonia, malhas de transportes, redes


de computadores, manufatura, serviços, logística
 Útil para fenômenos que geram FILAS

3
1 - Processo de chegada

 Descreve a forma como os


clientes chegam no sistema:
 um por vez ou grupos
 unidades ou lotes
 intervalos entre chegadas
constantes ou variáveis
 taxa de chegada 

4
2 - Processo de atendimento

 Descreve a forma como os


clientes são atendidos :
 um por vez ou em grupos
 unidades ou lotes
 um ou mais servidores disponíveis
 série ou paralelo
 atendimento com duração sempre
constante ou duração variável
 taxa de atendimento 

5
Regra ou disciplina da fila

 Descreve a ordem em que os clientes serão


atendidos
 FIFO - primeiro a chegar é o primeiro a ser
atendido
 LIFO - último a chegar é o primeiro a ser
atendido
 aleatório em relação à chegada
 prioridades por categorias

6
População

 Fonte infinita – chegadas independem do nro de


clientes no sistema

 Fonte finita – chegadas dependem do nro de clientes no


sistema
 população pequena
 a decisão de entrar na fila depende do tamanho
atual da fila

7
Notação Kendall-Lee

1/2/3/4/5/6
1 – processo de chegada
2 – processo de atendimento
3 – número de atendentes
4 – regra da fila
5 – número máximo de clientes no sistema
6 – tamanho da população

8
exemplo:

M/M/1
1 – processo de chegada exponencial
2 – processo de atendimento exponencial
3 – número de atendentes = 1
4 – regra da fila: geral
5 – número máximo de clientes no sistema: 
6 – tamanho da população: 

9
Filas: dimensionamentos
FILAS

CLIENTE NA FILA
CLIENTE SENDO ATENDIDO
SISTEMA

chegada fila atendimento saída

IC  TF NF TA NA 
sistema
TS NS 11
FILAS

IC – tempo médio entre chegadas IC=1/ 


 - taxa de chegada
TF - tempo médio na fila
 - taxa de
atendimento NF – número médio de clientes na fila
TA - tempo médio de atendimento TA=1/
NA – número médio de clientes em atendimento
TS - tempo médio no sistema
NS – número médio de clientes no sistema

chegada fila atendimento saída

IC  TF NF c TA NA 
sistema
TS NS 12
Fórmulas básicas

NS = NF + NA
TS = TF + TA
NA = /  = TA/IC
NS = NF + NA = NF + (/ ) = NF + (TA/IC)

intensidade de tráfego  =  /

chegada fila atendimento saída

IC  TF NF c TA NA 
sistema
TS NS 13
Fórmulas de Little

Aplicáveis a sistemas estáveis:


 intensidade de tráfego  < 1, ou seja,  < 
  - taxa média de chegada constante
  - taxa média de atendimento constante

NF =  . TF
NS =  . TS
NA =  . TA

14
Teoria das Filas aplicada a sistemas M/M/1

 Lembrando M/M/1:
1 – processo de chegada exponencial
2 – processo de atendimento exponencial
3 – número de atendentes = 1
4 – regra da fila: geral
5 – número máximo de clientes no sistema: infinito
6 – tamanho da população: infinito

 Solução analítica:
 fórmulas matemáticas
 usa o conhecimento sobre o comportamento das distribuições

15
Perguntas:

1. Os eventos ocorrem sempre no momento planejado/esperado?


2. Um mesmo tipo de evento tem sempre a mesma duração?

Modelos analíticos:
 simplificações nos pressupostos
 implica em solução inadequada

Simulação

16
Perguntas:

1. Os eventos ocorrem sempre no momento planejado/esperado?


2. Um mesmo tipo de evento tem sempre a mesma duração?

- Modelos determinísticos não servem se quero considerar as chances de um evento ocorrer.


- Modelos probabilísticos analíticos:
- muito complexos
- simplificações para conseguir resolver, implicam em solução inadequada

17
Definição de Simulação

 São técnicas que usam computadores para


“imitar” ou simular diversos tipos de
operações ou processos do mundo real
(Law e Kelton, 1994).

18
Em que casos devemos usar simulação

COMPLEXIDADE

ALTA

BAIXA

DETERMINÍSTICO PROBABILÍSTICO ESTOCASTICIDADE

19
Por que usar simulação?

20
Fato: Existe um sistema real a ser estudado!

Sistema

Macro-sistema:
micro sistema:
- Banco
- Hospital - atendimento nos caixas
- Montadora de automóveis - emergência
- Universidade - linha de pintura
- Restaurante - processo de matrícula
- cozinha 21
Como posso estudar um sistema?

Sistema

22
Experimento com o sistema real

Sistema

Experimento
com o
sistema real
zoologia

Fórmula I agricultura

23
Experimento com o sistema real

Sistema  destrutivo

Experimento
Pode ser inviável:
com o
sistema real

 não existe (fase de projeto)

24
Experimentos com modelos físicos

Sistema

Experimento
com um modelo
do sistema
Maquetes arquitetônicas

Modelo
físico

Túnel de vento

25
Experimentos com modelos físicos

Sistema Dificuldade de construir

Experimento
com um modelo
do sistema Dificuldade de realizar
experimentos sem destruí-lo
Caro
Modelo
físico

26
Experimentos com modelos matemáticos

Sistema

Experimento
com um modelo
do sistema

Modelo
matemático

Funções matemáticas: Funções lógicas:


i=V/R Se A=B e B=C, então A=C
27
Modelo matemático com solução analítica

Sistema

Experimento
com um modelo Trajetória do robô
Cálculos estequiométricos
do sistema

Modelo
matemático

Equações de MRUV Solução


analítica 28
Modelo matemático com solução analítica
Terminal portuário
Sistema

Experimento
com um modelo
do sistema
Relação custo-benefício não
justifica o esforço

Modelo
matemático
clima

Solução analítica
Ex.:
é muito difícil ou Teoria das filas
Solução
inexiste analítica 29
Modelo matemático com simulação

Sistema

Experimento
com um modelo
do sistema

Modelo
matemático

Simulação
30
Sintetizando (Law e Kelton):

Sistema

Experimento Experimento
com o com um modelo
sistema real do sistema

Modelo Modelo
físico matemático

Solução Simulação
analítica 31
Razões para usar simulação - 1

Testar:
 configurações diferentes do sistema
• layout funcional, layout em linha

Funcional Linha
A A B D
D A B C D E
C C E E
C E E

32
Razões para usar simulação - 1

Testar:
para uma configuração, condições alternativas
• capacidades de máquinas
A B D A A B D
D D
C E C C E E
C E C E E

•mix produtivos
40% 30%
20%
60% 50%
33
Razões para usar simulação - 1

Avaliar desempenho
• lead time ou tempo de atravessamento

95 min 108 min

A B D A A B D
D D
C E C C E E
C E C E E

•índice de retrabalho
33%
25%
34
Razões para usar simulação - 2

•controle das experiências antes


de alterar o sistema real

• estudar ao longo de um horizonte temporal extenso...


2007 2008 2009 2010 2011

35
Razões para usar simulação - 3

 Ferramenta para tomada de decisão

Aprender sobre o processo

Testar modelos mentais

Senso de equipe/comando

Reações sob pressão

36
Razões para usar simulação - 4

• aproveita o conhecimento das pessoas


envolvidas rotineiramente no
processo
• explicita

• permite compartilhamento

• consolida o conhecimento

37
Razões para usar simulação - 5

•recupera a visão sistêmica dos


processos

38
Razões para usar simulação - 6

• hardware:
• capacidade de processamento
• custo viável

• software:
• acessíveis
• amigáveis

39
Razões para usar simulação - 7

• Aprendizagem e inovação

• lápis e papel
Análises financeiras
• planilha eletrônica

Impacto gerencial

40
Razões para usar simulação - 8

• Cultura organizacional e comportamento

Perspectiva 1

41
ONDE podemos usar simulação:

SERVIÇOS

42
Exemplo 1: Bancos

43
Simulação – bancos

 Nro de caixas automáticos


 Tipos de funcionalidades nos caixas automáticos
 Arranjo físico
 Alocação de funcionários por turno
 Horários de atendimento
 Tempos de espera na fila

44
Exemplo 2: Hospitais

45
Simulação - hospitais

 Nro de leitos por setor


 Nro de médicos por tipo de especialidade em
plantões de emergência
 Distribuição de medicamentos e material
 Alocação de leitos compartilhados por
hospitais de modo a reduzir transferências

46
Exemplo 3: Manufatura

47
Simulação da manufatura

 Lead time  Layout


 Estoques intermediários  Dimensionamento de
 Turnos de trabalho capacidade
 Alocação de operadores  Mix de produção
 Balanceamento da linha  Substituição de
 Fluxo de pessoas equipamentos
 Fluxo de materiais  Manutenção

48
Exemplo 4: Logística

49
Simulação da logística

 Localização dos CDs


 Roteiros de coleta
 Tipos de veículos
 Alocação de cargas
 Lead times
 Composição das cargas
 Equipamentos de movimentação de cargas

50
Atividade 3 – Na sua empresa...

 1. Na sua empresa, há formação de filas? Onde?


 2. Quais as causas de cada uma destas filas?
 3. Quais ações deveriam ser tomadas para eliminar cada
uma dessas filas?
 4. Todas as filas deveriam ser eliminadas?
 5. Quais os processos de chegada que você percebe em
sua empresa?
 6. Eles ocorrem a taxas constantes?
 7. Faz diferença, caso as chegadas não ocorram a
intervalos
 ---
51
Atividade 3 – Na sua empresa...

 8. Você deve modelar o funcionamento de toda a


empresa?
 9. Qual seria a primeira modelagem que você realizaria?
Por que?
 10. Quais processamentos deveriam ser considerados na
sua modelagem? Por que?
 11. Estes processamentos ocorrem sempre com a mesma
duração?
 12. Quais as variações apresentadas nos tempos de
processamento?
 13. Você deve medir essas variações? Por que?

52
Modelagem matemática

 Erlang desenvolveu um modelo para o sistema

SISTEMA:
“Conjunto de entidades que interagem com o objetivo de
atingir algum fim lógico.”

MODELO:
Para estudar um sistema é preciso estabelecer
pressupostos a respeito de seu funcionamento.
Esses tomam a forma de expressões matemáticas ou
lógicas que constituem o modelo.

53
Terminologia em Simulação

Estado de um sistema

•conjunto de variáveis necessárias para


descrever o seu status em dado
momento no tempo

Ex.:
Em um banco, na medida em que os clientes chegam, são
atendidos ou partem o status do sistema muda.

54
Mudanças no Status

Para descrever cada mudança possível no estado


do sistema,
necessitamos de um conjunto de variáveis
chamadas de variáveis de estado.

Ex.:
 nº de atendentes ocupados
 nº de clientes no banco
 momento de chegada do próximo cliente
 momento de partida do cliente em atendimento

55
Num sistema

• objeto de interesse  Entidade

• propriedades de uma entidade  Atributos

Ex.: Banco
Entidade: cliente Atributo: profissão

56
Modelos de simulação

 ESTÁTICOS  DINÂMICOS

Representam o sistema
Representam o sistema modificando-se no
num momento tempo.
particular do tempo
Monte Carlo

57
Estáticos: Simulação de Monte Carlo

 Law e Kelton (1991) definem:


 técnica que usa números aleatórios e variáveis

aleatórias para resolver problemas em que a passagem


do tempo não exerce um papel significativo.
 Então, geralmente trata-se de simulações estáticas.
 Ex.: Resolver integrais e conjuntos de integrais não
passíveis de serem resolvidos analiticamente.
 P.S. Há autores que usam a denominação Monte Carlo de
forma mais ampla, abrangendo qualquer simulação que
use números aleatórios.

58
Dinâmicos

Representam o sistema modificando-se no tempo.

 simulação contínua
 simulação discreta ou de eventos discretos

59
Simulação

Discreta
Contínua
 Variáveis de estado
 Variáveis de mudam somente devido
estado mudam à ocorrência de eventos
continuamente ao
longo do tempo  mudam em pontos do
tempo discretos, ou seja,
aqueles pontos em que
ocorreu um evento
60
Simulação contínua
Processos químicos, biológicos

Usam equações diferenciais – resolvidas com técnicas


numéricas

61
Simulação discreta
Num banco:

Evento
 cliente tem o seu atendimento iniciado
 cliente tem o seu atendimento concluído

 variável de estado é atualizada

 Relógio ou clock é atualizado 10:00 10:15

62
Modelos de simulação

 DETERMINÍSTICO  ESTOCÁSTICO

 Valores exatos  Valores estimados


 Simplificação  Variabilidade natural
do processo é
modelada

63
Modelagem ESTOCÁSTICA
 lembrando:
 os tempos entre chegadas de clientes...

 os tempos entre chegadas de peças a serem processadas...

 a duração dos atendimentos dos clientes...

 a duração dos processamentos nas máquinas...

 as tarefas feitas pelas pessoas...

... apresentam variabilidade natural!

Por isso usamos Distribuições de Probabilidade!

64
Os tempos de execução de uma atividade
apresentam variabilidade...

Tempo medido
65
Tempo medido
66
Tempo medido
67
Tempo medido
68
Tempo medido
69
Tempo medido
70
O que esta figura lembra?

Tempo medido
71
Distribuição de probabilidade normal

72
Simulação de eventos discretos

Estática Estuda sistemas


estocásticos que mudam
Dinâmica com o passar do tempo

Contínua As mudanças ocorrem


em momentos discretos
Discreta do tempo (eventos)

Determinística
Estocástica O evento muda o
estado do sistema instantaneamente
(variáveis de
estado são atualizadas)! 73
 Considere uma instalação com um único
servidor:
 atendente do banco

 Você deseja estimar o tempo de espera na


fila (tempo desde que chegou à fila até
iniciar o atendimento)

74
 Para estimar o tempo médio na fila, você precisa das variáveis
de estado:
 status do servidor: ocupado ou ocioso
 número de clientes na fila
 instante de chegada de cada cliente na fila
 O status do servidor é necessário para determinar se o cliente
que chegou vai ser atendido imediatamente ou vai entrar na
fila
 O número de clientes na fila é necessário para saber se, ao
terminar o atendimento atual, o servidor ficará ocioso ou
ocupado com alguém que estava na fila
 O instante de chegada é necessário para calcular o tempo gasto
na fila: = tempo de início do atendimento menos instante de
chegada
75
Eventos do exemplo:

 1 - chegada de um cliente
 ou muda a variável de estado status do servidor de
ocioso para ocupado
 ou incrementa 1 na variável de estado número de
clientes na fila

 2 - finalização de um atendimento
 ou muda a variável de estado status do servidor de
ocupado para ocioso
 ou decrementa 1 na variável de estado número de
clientes na fila

76
Mecanismos de avanço no tempo

 simulation clock:
é a variável que fornece o valor atual do
tempo da simulação

 incremento fixo
 avanço no próximo evento

77
Avanço no próximo evento
e0 e1 e2 e 3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3
S1 S2

ei – instante de ocorrência do evento i Ai – tempo entre chegada dos clientes


i-1 e i
ti – instante de chegada do cliente i
Ai = ti – ti-1
tfi – tempo que o cliente i fica na fila
Si – tempo gasto atendendo o cliente i
tsi – instante em que o cliente i tem seu
atendimento concluído e sai tsi = ti + tfi + Si
78
e0 e1 e2 e3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3 e0=0
S1 S2

 Relógio é inicializado em zero: e0=0


 Status do servidor: ocioso
 Usamos distribuição de probabilidade (ddp) para
gerar o valor de A1 (tempo entre chegadas)
 Então, primeiro cliente chegará em t1 = 0 + A1

79
e0 e1 e2 e3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3 e 1= t 1
S1 S2

 Avançamos o relógio para: e1= t1


 O cliente 1 que chegou em t1 encontrou o servidor ocioso
 O seu atendimento iniciou sem que ele ficasse em fila: tf1 = 0
 Status do servidor passou a ocupado
 Usamos ddp para gerar o valor de S1 (tempo de atendimento
do cliente 1)
 Então, o primeiro cliente sairá em ts1 = t1 + tf1 + S1
80
e0 e1 e2 e3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3 e 1= t 1
S1 S2

 Usamos ddp para gerar o valor de A2 (tempo entre chegadas


para cliente 2)
 Então, segundo cliente chegará em t2 = t1 + A2
 Como t2 < ts1 , o cliente 2 chega enquanto o cliente 1 ainda
está sendo atendido e o relógio é avançado para e2= t2
 (Se t2 ≥ ts1 , o relógio avançaria para e2= ts1)
81
e0 e1 e2 e3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3 e 2= t 2
S1 S2

 O cliente 2 encontrou o servidor ocupado, então vai para a


fila
 A variável nro de clientes na fila é incrementada de 1 e
anotamos o instante de entrada na fila
 Usamos ddp para gerar o valor de A3 (tempo entre chegadas
para cliente 3)
 Então, cliente 3 chegará em t3 = t2 + A3
 Como ts1 < t3 , o relógio é avançado para e3= ts1 e o cliente 1
sai 82
e0 e1 e2 e3 e4 e5
tempo
0 t1 t2 ts1 t3 ts2
A1 A2 A3 e3= ts1
S1 S2

 O cliente 2 que estava na fila tem seu atendimento iniciado


 O tempo de fila é calculado: tf2 = ts1 - t2
 A variável nro de clientes na fila é decrementada de 1
 Usamos ddp para gerar o valor de S2 (tempo atendimento do
cliente 2)
 Então, cliente 2 sairá em ts2 = ts1 + S2
 Como t3 < ts2 , o relógio é avançado para e4= t3 , etc.
83
 Precisamos criar um critério de finalização 
Sintetizando:
Componentes e organização do modelo

 Estado do sistema: conjunto de variáveis para


descrever o sistema em dado instante
 Relógio ou clock: variável que fornece o valor
atual do tempo de simulação
 Lista de eventos: registra o próximo instante em
que cada tipo de evento irá ocorrer
 Contadores estatísticos: armazenam indicadores
de desempenho do sistema simulado

84
Componentes e organização do modelo

 Rotina de inicialização: subprograma que inicializa o


sistema no instante zero
 Rotina de timing: subprograma que determina qual o
próximo evento da lista e atualiza o relógio para o
instante de ocorrência deste evento
 Rotina de evento: subprograma que atualiza o estado do
sistema quando um determinado tipo de evento ocorreu
(cada tipo de evento tem sua própria rotina)
 Biblioteca de rotinas: conjunto de subprogramas para
gerar valores a partir das ddp

85
Componentes e organização do modelo

 Gerador de relatório: subprograma que calcula as


estimativas dos indicadores de desempenho do modelo
 Programa principal: controla o fluxo das ações
 chama rotina de timing para determinar próximo
evento
 transfere controle para rotina de evento atualizar
variáveis de estado
 verifica finalização

 chama gerador de relatório.

86
FLUXO DE CONTROLE
início

Rotina inicialização Programa principal Rotina timing


Relógio é 0 0. Chama rotina inicialização 1. Determina o
rado 1tipo do próximo
Inicializa 1. Chama rotina timing evento i
ado do sistema 2. Chama rotina evento i Repetidamente 2. Avança relógio
contadores i
Inicializa lista Rotina evento i 2 Biblioteca de rotinas
eventos
1. Atualiza o estado do sistema Gerador de
2. Atualiza os contadores estatísticos variáveis
3. Gera eventos futuros e adiciona à lista aleatórias
de eventos

Simulação não
concluída ?
Gerador relatórios sim
1. Calcula estimativas
2. Gera relatórios

Fim
 Objetivo da simulação:
 dimensionar o setor de manutenção com relação ao
número de funcionários para reduzir o tempo médio de
atendimento das solicitações de serviço de manutenção.

 Quais entidades devem ser consideradas?


 solicitação de serviço de manutenção.

 Há a necessidade de diferenciar as entidades


através de atributos?
 sim

88
manutenção
 Entidade: solicitação de serviço de
manutenção
 Atributo: tipo de manutenção
 corretiva
 preventiva

 Preciso de outro atributo para distinguir as


solicitações de serviço?

89
manutenção

 SIM, o tipo de máquina que vai sofrer manutenção

 MAS: Haverá diversos tipos de máquinas! Será que preciso


criar tantos valores para o atributo máquina?!

 Faça rapidamente um pareto ou use o seu conhecimento e


escolha os 3 tipos de máquinas que ocupam o maior
percentual de tempo do setor de manutenção. Inicie criando
estes 3 possíveis valores para o atributo “máquina que vai
sofrer manutenção”.
90
Como ficou até aqui:

 Entidade: solicitação de serviço


 Atributo 1: tipo de manutenção
 corretiva Att1=1
 preventiva Att1=2
 Atributo: máquina que vai sofrer manutenção
 m1 Att2=1
 m2 Att2=2
 m3 Att2=3
 Os atributos auxiliam a distinguir. Isto permite
saber que ação tomar em relação àquela entidade
específica.
91
Quais os recursos utilizados na manutenção?

 Precisamos listar todos os recursos a serem


utilizados na manutenção?
Inicialmente, liste os recursos mais nobres (gargalos):
 Funcionários

 Quais os locais envolvidos na modelagem?


 chegada de solicitações de manutenção
 setor de manutenção
 saída

92
continuação:

 Como é o processo de chegada?


Neste ponto, precisamos obter dados para as freqüências de
chegadas de solicitações de serviço dos tipos corretiva e
preventiva para as máquinas m1, m2 e m3.

Corretiva Preventiva
Att1 1 2
40% 60%
m1 m2 m3 m1 m2 m3
Att2 1 2 3 1 2 3
Nro de
16% 16% 8% 24% 24% 12%
solicit.
93
continuação:
 Como é o tempo de atendimento?
Neste ponto, precisamos obter dados para os tempos de
atendimento em cada serviço dos tipos corretiva e
preventiva para as máquinas m1, m2 e m3. Vamos
iniciar com valores determinísticos para obtermos
domínio sobre o modelo.
Corretiva Preventiva
Att1 1 2

m1 m2 m3 m1 m2 m3
Att2 1 2 3 1 2 3
Tempo
de 10 20 50 60 70 80
atend. 94
continuação:

 Quais eventos precisam ser modelados?


 1 - chegada de uma solicitação de serviço

 2 - finalização de uma manutenção

 Quais as variáveis de estado necessárias para descrever


os possíveis estados desencadeados pelos eventos?
 status do funcionário: ocupado ou ocioso
 número de solicitações na fila
 instante de chegada de cada solicitação na fila

95
Status

 1 - chegada de uma solicitação de serviço


 ou muda a variável de estado status do funcionário de
ocioso para ocupado
 ou incrementa 1 na variável de estado número de
solicitações na fila

 2 - finalização de uma manutenção


 ou muda a variável de estado status do funcionário de
ocupado para ocioso
 ou decrementa 1 na variável de estado número de
solicitações na fila

96
medições

 Quais as variáveis nos auxiliarão a determinar se estamos


nos aproximando do objetivo da simulação?
 tempo de fila

 tempo de atendimento

 tempo no sistema (=tempo fila+tempo atendimento)

 nível de ocupação dos funcionários

97
medições incrementando variáveis

 As variáveis (tempo de fila, tempo de atendimento,


tempo no sistema, nível de ocupação dos
funcionários) que nos auxiliarão a determinar se
estamos nos aproximando do objetivo da simulação
serão incrementadas ou decrementadas na medida
em que os eventos ocorrerem.

98
pressupostos

 Quais pressupostos assumimos


inicialmente?
 modelagem das manutenções de maior
impacto na ocupação do setor
 simplificação nos locais
 simplificação na qualificação dos
funcionários

 Regime: permanente

99

You might also like