Simulação
Métodos de Análise de Sistemas Produtivos http://www.fe.up.pt/maspwww
Licenciatura em Engenharia Electrotécnica e de Computadores
2004/2005 Gil M. Gonçalves
MASP 2003/2004
Génese
• Estatística, teoria da amostragem
• Análise probabilística de sistemas físicos complexos
Utilização
• Análise, construção de protótipos, promoção de ideias
• Desenvolvimento, optimização e controlo de sistemas
• Treino e entretenimento
Ferramenta poderosa de resolução de problemas
Equivalente da experiência laboratorial
3
Métodos de Análise de Sistemas Produtivos
Passos de um estudo de simulação
Definição do problema
Recolha e análise de dados
Construção do modelo
Verificação e validação do modelo
Experimentação e optimização do modelo
Implementação dos resultados
MASP 2003/2004
Definição do problema
Appropriate solutions to inappropriate formulated problems cannot be achieved
Identificar problema
Identificar variáveis de decisão e variáveis não controláveis
Especificar restrições às variáveis de decisão
Definir medidas de desempenho e função objectivo
Desenvolver um modelo inicial
(relação variáveis do sistema ⇒ medidas de desempenho)
5
Métodos de Análise de Sistemas Produtivos
Recolha e análise de dados
Recolha de dados do sistema que estamos a estudar
(Estimativas se não existe)
Análise de dados (determinar fdp correspondentes)
MASP 2003/2004
Construção do modelo
Compreender o sistema
Identificar entidades
Identificar variáveis de estado
Identificar eventos
Construir o modelo
Desenvolver uma representação do programa a implementar
Seleccionar a linguagem de programação (genérica ou específica)
Determinar forma de gerar variáveis aleatórias
7
Métodos de Análise de Sistemas Produtivos
Verificação e validação do modelo
Verificação
Determinar a consistência interna do modelo
Validação
Determinar correspondência entre o modelo e o
sistema real
MASP 2003/2004
Experimentação e optimização do modelo
Determinar as respostas para o problema formulado
Análise estática dos resultados obtidos
(equilíbrio e final)
Testes com o modelo
9
Métodos de Análise de Sistemas Produtivos
Implementação de resultados
Último passo: adopção das soluções escolhidas
Problemas
Dificuldade de comunicação
Resistência à mudança
...
Envolver os interessados no estudo desde o início
MASP 2003/2004
Tipos de simulação
Simulação de Monte Carlo
• Simulado um único evento, sendo gerados inumeras entradas aleatórias ao mesmo tempo que é registada a distribuição dos resultados
Simulação Discreta
• Generalização do conceito de Monte Carlo para a simulação de sistemas cujo estado evolui ao longo do tempo como resultado de uma sequência de acontecimentos aleatórios
• Tempo “passa” de uma de duas formas:
- Por incrementos fixos – o tempo avança segundo a segundo (minuto a minuto, hora a hora, ou ...) sendo modelizado o número de eventos que têm lugar nesse incremento de tempo como uma variável aleatória - Por eventos – o tempo na simulação avança para o instante do próximo
acontecimento de interesse, sendo o tempo entre acontecimentos modelizado como uma variável aleatória
11
Métodos de Análise de Sistemas Produtivos
Esquema de simulação
por eventos
InicializaLista de Eventos Programados e1 t1 e2 t2 ... ... Tempo t Estado x Actualiza estado Actualiza tempo Apaga n admissíveis Adiciona admissíveis Gerador Variáveis Aleatórias x‘ x‘ t‘ Vk MASP 2003/2004
Procedimento de simulação
1. Retirar o primeiro elemento ( e1, t1) da LISTA DE EVENTOS
PROGRAMADOS
2. Actualizar TEMPO de simulação avançando para o instante t1de
ocorrência do novo evento
3. Actualizar o estado de acordo com a função de transição de estado x‘=
f( x, e1) (ou p(x‘; x, e‘) )
Apagar da LISTA DE EVENTOS PROGRAMADOS as entradas que
correspondem a eventos não admissíveis no novo estado
Adicionar à lista LISTA DE EVENTOS PROGRAMADOS todos os eventos
admissíveis ainda não programados. O instante de ocorrência desses eventos é (TIME + vi) onde vié o tempo de vida do evento gerado por
um processo aleatório
13
Métodos de Análise de Sistemas Produtivos
Exercício: Fila de Espera simples
Tempo entre chegadas
Y1= 0.4, Y2= 0.3, Y3= 0.4, Y4= 1.7, Y5= 1.7, Y6= 0.5, Y7= 0.9
Tempos de serviço
Z1= 1.6, Z2= 0.5, Z3= 1.0, Z4= 0.3, Z5= 0.9 Estruturas
TEMPO, ESTADO, LISTA DE EVENTOS PROGRAMADOS, TEMPO CHEGADA, TEMPO SERVIÇO
d a
Fila Servidor
Simule o sistema até este completar o processamento de 5 peças.
Calcule o tempo médio de permanência no sistema.
MASP 2003/2004
Construção do modelo de simulação
Identificar acontecimentos relevantes (mudanças de
estado)
Identificar entidades (elementos que alteram o estado
do sistema)
Identificar filas de espera (espaços onde as entidades
esperam)
Diagramas de sequência
Caracterização dos acontecimentos
15
Métodos de Análise de Sistemas Produtivos
Exemplo: Fila de espera c/ realimentação
λ= r + p ×λ→λ= r / (1 – p) s = (1 – p) ×λ→ s = r μ Buffer Máquina λ + r p (1-p) MASP 2003/2004
Identificar acontecimentos
(relevantes)
1. Chegada de peça (A1) 2. Início de serviço (A2) 3. Fim de serviço (A3) 4. Peça não conforme (A4)
(reprocessamento) 5. Peça conforme (A5)
(saída)
Identificar entidades
1. Peças (clientes) (E1) 2. Máquina (servidor) (E2)
Identificar filas de espera
1. Buffer de entrada (F1) (peças)
2. Máquina livre (F2) (fila lógica de servidores)
17
Métodos de Análise de Sistemas Produtivos
Diagrama de sequência
Peças
Máquina
Chegada Serviço F2 A1 F1 A2 A3 Serviço A5 A4 MASP 2003/2004Caracterização dos acontecimentos
A1
1. Incrementa #F1 2. Se F2 > 0 marca A2 3. Gera próximo A1 A2
1. dec #F1 2. Se #F2 > 0 dec #F2 3. Gera próximo A3 A3
1. Se não conforme marca A4 senão marca A5 2. Se #F1 > 0 marca A2, senão inc #F2
A4
1. inc #F1 2. Se #F2 > 0 marca A2 A5
1. inc #saídas (2. propaga a jusante)19
Métodos de Análise de Sistemas Produtivos
Relógio
• Controla a evolução do modelo de simulação
• Os acontecimentos futuros são ordenados (fila de espera
lógica) por instante de ocorrência
Gerar acontecimentos
• Distribuições através da distribuição uniforme
• e.g. distribuição de Poisson: (método da transformada inversa)
• t
e= t + (- 1/λ × ln(Rand))
Estatísticas recolhidas
• Dados que permitem calcular medidas de desempenho
pretendidas
MASP 2003/2004Exemplo
Q1 Q2 Q3 r 2,5 4 m 4 5 10 p 0,1521
Métodos de Análise de Sistemas Produtivos
Estruturas
Arrival 0 Number Arrived 0
Server Busy 0 Number Served 0
End Service 0 Total Wait Time 0
Rework 0 Avg Wait Time 0
Departure 0 Queue Length 0
Avg Queue Length 0 Max Queue Length 0
Arrival 0
End Service 0
Q1 - Initial
Status Indicators
Next Event Time
Queue Statistics
Arrival 0 Number Arrived 0,00
Server Busy 0 Number Served 0,00 End Service 0 Total Wait Time 0,00
Rework 0 Avg Wait Time 0,00
Departure 0 Queue Length 0,00
Avg Queue Length 0,00 Max Queue Length 0,00 Arrival 0,45400946
End Service 1E+12
Status Indicators
Next Event Time
Queue Statistics Q1 - Next
Arrival 0 Number Arrived 0
Server Busy 0 Number Served 0
End Service 0 Total Wait Time 0
Rework 0 Avg Wait Time 0
Departure 0 Queue Length 0
Avg Queue Length 0 Max Queue Length 0
Arrival 0
End Service 0
÷ℜ #DIV/0!
Q1 - Current
Mean Time Between Arrivals Status Indicators
Next Event Time
Queue Statistics
MASP 2003/2004
Dinâmica
Arrival =IF(Tm_Nx=Q1_Tm_Arrival_Nx;1;0)
Server Busy =IF(Q1_Arrival_Nx=1;1;IF(AND(Q1_End_Nx=1;Q1_Length=0);0;Q1_Busy)) End Service =IF(Tm_Nx=Q1_Tm_End_Nx;1;0)
Rework =IF(AND(Q1_End_Nx=1;RAND()<Q1_p);1;0) Departure =IF(AND(Q1_End_Nx=1;Q1_Rework_Nx=0);1;0)
Arrival =IF(OR(Q1_Tm_Arrival<=Tm);Tm+(-Q1_r*LN(RAND()));Q1_Tm_Arrival)
End Service =IF(Q1_Busy=0;10^12;IF(OR(Q1_Tm_End=10^12;Q1_End=1);Tm+(-Q1_Service*LN(RAND()));Q1_Tm_End))
Status Indicators
Next Event Time
Number Arrived =Q1_Arrived+Q1_Arrival_Nx+Q1_Rework_Nx Number Served =Q1_Served+Q1_End_Nx
Total Wait Time =Q1_Ttl_Tm+Q1_Length*(Tm_Nx-Tm)
Avg Wait Time =IF(OR(Tm=0;Q1_Served=0);0;Q1_Ttl_Tm/Q1_Served)
Queue Length =Q1_Length+(Q1_Arrival_Nx*Q1_Busy)+(Q1_Rework_Nx*Q1_Busy)-((Q1_End_Nx*Q1_Length)<>0) Avg Queue Length =IF(Tm_Nx=0;0;Q1_Ttl_Tm/Tm_Nx)
Max Queue Length =MAX(Q1_Max_Length;Q1_Length_Nx)
23
Métodos de Análise de Sistemas Produtivos
Resultados
0,18 1,12 63% 6,26 simulação 0,19 1,86 65% 6,50 teóricos 10 E[W] E[X] ρ3 μ3 λ3 Q3 0,40 1,53 78% 3,92 simulação 0,80 4,00 80% 4,00 teóricos 5 4 E[W] E[X] ρ2 μ2 λ2 r2 Q2 0,69 2,02 73% 2,92 simulação 0,69 2,78 74% 2,94 teóricos 0,15 4 2,5 E[W] E[X] ρ1 p μ1 λ1 r1 Q1 Tempo de Simulação - 120 MASP 2003/2004Resultados
0,21 1,39 65% 6,54 simulação 0,19 1,86 65% 6,50 teóricos 10 E[W] E[X] ρ3 μ3 λ3 Q3 0,64 2,68 84% 4,18 simulação 0,80 4,00 80% 4,00 teóricos 5 4 E[W] E[X] ρ2 μ2 λ2 r2 Q2 0,65 1,80 69% 2,77 simulação 0,69 2,78 74% 2,94 teóricos 0,15 4 2,5 E[W] E[X] ρ1 p μ1 λ1 r1 Q1 Tempo de Simulação - 36025
Métodos de Análise de Sistemas Produtivos
Simulation tools
MASP 2003/2004
To probe further
Cassandras, C.G. e S. LaFortune, Introduction to
Discrete Event Systems, Kluwer Academic Publishers,
Boston, 1999.