1
© UNESP 6 Agosto 2008
Autor: Anibal Tavares de Azevedo
Limeira, 01 de Agosto 2013
SIMULAÇÃO DE SISTEMAS
AULA 1
2
© UNESP 6 Agosto 2008
SIMULAÇÃO DE SISTEMAS
Autopsicografia O poeta é um fingidor. Finge tão completamente Que chega a fingir que é dor
A dor que deveras sente. E os que lêem o que escreve,
Na dor lida sentem bem, Não as duas que ele teve, Mas só a que eles não têm. E assim nas calhas de roda
Gira, a entreter a razão, Esse comboio de corda Que se chama coração.
3
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
Problema: Simular o funcionamento de um rôbo em um labirinto
E
S
Labirinto
robô
4
ALGUMAS DEFINIÇÕES
Labirinto robô
SISTEMA: Coleção de entidades que agem e interagem de acordo com algum princípio lógico.
Ações Interações
Colisão !
E S
Entrou !
3
© UNESP 6 Agosto 2008
Variáveis
Coordenadas (x,y) do robô
Coordenadas (x,y) dos obstáculos Localização das paredes
Dimensões do robô
Localização da saída e da entrada Labirinto
robô Entidades
6
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
SISTEMA DISCRETO: é aquele no qual as variáveis de estado são modificadas em tempos discretos ou contáveis.
E
S E
S
T = 1
(x,y) = (9,9)
7
© UNESP 6 Agosto 2008
PROBLEMA REAL
8
5
© UNESP 6 Agosto 2008
3
2
1 4
5 6
7 8 9
(xc,yc)
Limites do ambiente
Obstáculos Veículo
10
© UNESP 6 Agosto 2008
v
c1
11
© UNESP 6 Agosto 2008
v
c1 1 0 0 0 0 0 0 0 0
Informação do radar
Decisão
1
2
SIMULADOR
12
v
c0
1 1 0 0 0 0 0 0 0 0
Informação do radar
Decisão
1
2
1 2
3
7
© UNESP 6 Agosto 2008
14
© UNESP 6 Agosto 2008
0 0 0 0 0 0 0 0 1 Extração de informação do radar
15
© UNESP 6 Agosto 2008
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1
Extração de informação do radar
0 0 0 0 0 0 0 0 1
Comparando a informação com as regras armazenadas no banco de dados
0 0 0 0 1 0 0 0 0 1 0
…
SIMULADOR
16
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1
Extração de informação do radar
Comparando a informação com as regras armazenadas no banco de dados
Movendo o veículo
9
© UNESP 6 Agosto 2008
0 100 200 300 400 500 600 700 0
100 200 300 400 500 600 700
18
© UNESP 6 Agosto 2008
R1 R1
19
© UNESP 6 Agosto 2008
R1 R1
SIMULADOR
20
R1 R1
R2
11
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1
22
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1
23
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1
R3 R1
SIMULADOR
24
R1 R1
R2 R1 R1
R3 R1
Detecta Parede !
13
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1 R3
26
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1
R3 R1
R2
27
© UNESP 6 Agosto 2008
R1 R1
R2 R1 R1 R3
Colisão !
R1
R2
R1
R1
R1
SIMULADOR
28
R1 R1
R2 R1 R1 R3
Evolução das regras:
••••Número de passos
••••Últimas regras usadas
Colisão !
R1
R2
R1
R1
R1
15
© UNESP 6 Agosto 2008
30
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
31
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
Número de presas
Número de predadores Variação do número de presas
32
ALGUMAS DEFINIÇÕES
Variação do número de presas
Número de presas
17
© UNESP 6 Agosto 2008
onde:
y – número de predadores x – números de presas t – variável do tempo
Demais parâmetros indicam a interação presa-predador Modelos que usam equações
diferenciais não serão estudados.
34
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
Modelo estático de simulação
Modelo dinâmico de simulação
Simulação de Monte Carlo
Representação do sistema para um ponto particular do tempo
35
© UNESP 6 Agosto 2008
Estudo de Caso
REVISTA EXAME, EDIÇÃO 1001, ANO 45, NO. 18, PP. 60-64, 05/10/2011
36
Estudo de Caso
19
© UNESP 6 Agosto 2008
de simulação aleatórias.
38
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
Modelo determinístico
de simulação É tal que não emprega variáveis aleatórias.
1
39
© UNESP 6 Agosto 2008
ALGUMAS DEFINIÇÕES
Modelo estocástico
de simulação É tal que emprega uma ou mais variáveis aleatórias.
Tempo de descarregamento pode ser variável em [11,13]
Pode existir a probabilidade de uma máquina quebrar.
40
ESTUDOS NA DISCIPLINA
Estudar modelos estocásticos discretos, também chamados de modelos de simulação por eventos discretos. Nestes modelos o sistema é modificado ao longo do tempo e as variáveis de estado são modificadas apenas em alguns instantes de tempo.
21
© UNESP 6 Agosto 2008
42
© UNESP 6 Agosto 2008
43
© UNESP 6 Agosto 2008
Teoria de Filas - Resumo
Fila de Navios
Atendimento no Porto
Posto de Gasolina Lanchonete
44
TEORIA DE FILAS
Estudo de caso real
23
© UNESP 6 Agosto 2008
Neste modelo existem s servidores em paralelo:
Balcão 3 atendentes
µµµµ = [3,5] min
Fila com 37 clientes Você está
aqui
λλλλ = 2 min
Qual o tempo de espera para ser atendido?
46
© UNESP 6 Agosto 2008
Teoria de Filas - Resumo
Fila de Aviões
47
© UNESP 6 Agosto 2008
Teoria de Filas - Resumo
REVISTA EXAME, EDIÇÃO 969, ANO 44, NO. 10, PP. 42-45, 02/06/2010
48
Teoria de Filas - Resumo
Chegada A
A Supõe a chegada de apenas um usuário por instante. O tempo para ocorrer uma chegada é função de prob.
Atendimento C1
C Pode ter servidores em paralelo (C2) ou em série (C1). C2
C Fila
B
25
© UNESP 6 Agosto 2008
Média de pessoas na fila
Tempo médio de espera Taxa de chegada
50
© UNESP 6 Agosto 2008
51
© UNESP 6 Agosto 2008
PROBLEMA REAL
52
Fila x Simulação Discreta por Evento
Chegada
A Atendimento
C1 C
Teoria de Filas
Função de distribuição de probabilidade Exponencial
012345678910 0 0.05 0. 1 0.15 0. 2 0.25 0. 3 0.35 0. 4 0.45 0. 5 a(t)=λe-λt t
Gráfico de a(t )=λe-λt para λ = 0.5
012345678910 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 a(t)=λ e-λt t
Gráfico de a(t)=λe-λt para λ = 0.5
27
© UNESP 6 Agosto 2008
Chegada
A Atendimento
C1 C
Função de distribuição de probabilidade empírica !!!
012345678910 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 a(t)=λ e-λt t
Gráfico de a(t)=λe-λt para λ = 0.5
Simulação pode lidar com qualquer função de distribuição para o tempo entre as chegadas = Mais flexível, porém mais cara computacionalmente !
54
© UNESP 6 Agosto 2008
Ferramenta de Simulação
Duas mulheres operando o ENIAC (fotografia pertencente ao Exército
dos Estados Unidos (U.S. Army) em Fevereiro de 1946.
Alguns dados:
•Peso de cerca de 30 toneladas
•Ocupava 270m2
•Capacidade de processamento: 5x103FLOPS/s
Alguns dados de um Laptop:
•Peso de cerca de 3 quilos
•Ocupa 30 cm2
55
© UNESP 6 Agosto 2008
O que é um Algoritmo?
É uma sequência finita de passos que resolve um dado problema ! Um bom exemplo de algoritmo é uma receita de bolo, pois a ordem
dos passos pode mudar o resultado final!
ALGORITMO
+
+
+
+
=
56 V Início Ler A,B; Se A>B Escreva(B) Escreva(A) FUSANDO O COMANDO SE/IF
Sejam duas variáveis A e B com valores
diferentes. Como imprimir o maior
valor?
Problema
Variaveis A, B; Inicio
1. Ler(A,B); 2. Se (A > B)
entao imprimir A; Senao imprimir B;
Algoritmo
29
© UNESP 6 Agosto 2008
Chegada Eventos Saída
Entidades
Cliente Fila Servidor
58
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Eventos mudam o estado (das entidades) do Sistema
Chegada Eventos Saída
Entidades Cliente
59
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Eventos mudam o estado (das entidades) do Sistema
Chegada Eventos Saída
Entidades Cliente Servidor
Estados Fila/Atendimento Ocioso/Ocupado Cliente
60
Simulação Discreta por Evento
Eventos mudam o estado (das entidades) do Sistema
Chegada Eventos Saída
Entidades Cliente Servidor
31
© UNESP 6 Agosto 2008
Chegada
62
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Chegada Atendimento
Se servidorocioso, então, clienteentra em serviço
63
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Chegada
Eventos mudam o estado do Sistema – 1 Servidor
64
Simulação Discreta por Evento
Chegada Fila
Se servidorocupado, então, clienteentra na fila
33
© UNESP 6 Agosto 2008
t = 0
Chegada
Tempo da simulação
Usar fluxograma 1
Chegada
Estado servidor Cliente entra
em serviço Cliente entrana fila
Vazio Cheio
Fluxograma 1
66
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Atendimento Saída
67
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Atendimento
Se filavazia, então, servidorfica vazio
Saída
Eventos mudam o estado do Sistema – 1 Servidor
68
Simulação Discreta por Evento
Atendimento Saída
35
© UNESP 6 Agosto 2008
Atendimento
Sefilanão-vazia, então,servidorfaz novoatendimentoefila
éreduzida
Saída
70
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
t = T1 Saída
Tempo da simulação
Usar fluxograma 2
Partida
Fila Vazia? Remover cliente da fila
e começar serviço Mudar estado p/servidor ocioso
Não Sim
Fluxograma 2
71
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Inicializar as variáveis de estado 1
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4
Tempo atual < Tempo Total?
Não
Sim
Imprima resultados e pare.
Não
5
72
Simulação Discreta por Evento
Inicializar as variáveis de estado 1
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4
Tempo atual < Tempo Total?
Não
Sim
Imprima resultados e pare.
Não
37
© UNESP 6 Agosto 2008
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4 Não
t = 0
Chegada Tempo da simulação
t = 10 Saída
74
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Inicializar as variáveis de estado 1
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4 Não
t = 0
Chegada Tempo da simulação
75
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Inicializar as variáveis de estado 1
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4 Não
Tempo da simulação
t = 10 Saída
t = 12 Chegada
76
Simulação Discreta por Evento
Inicializar as variáveis de estado 1
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4 Não
Tempo da simulação
t = 10 Saída
39
© UNESP 6 Agosto 2008
< ? 2
Processar uma chegada.
Sim 3
Processar uma saída.
4
Tempo atual < Tempo Total?
Não
Sim
Imprima resultados e pare.
Não
5
78
© UNESP 6 Agosto 2008
Simulação Discreta por Evento
Chegada Saída
Lista de Eventos
Evento | Tempo
Tempo em que cada evento ocorre
Variável Tempo do
79
© UNESP 6 Agosto 2008
Tempo entre as chegadas
...
Máquina I Fila CENÁRIO 1 Tempo entre as chegadas...
Máquina I Fila CENÁRIO 10Simulação Discreta por Evento
80 Tempo entre as chegadas
...
Máquina I Fila CENÁRIO 1 Tempo entre as chegadas...
Máquina I FilaSimulação Discreta por Evento
Valores aleatórios
41
© UNESP 6 Agosto 2008
4, 5, 6, 7, 8
9, 10
50% mulher
20% criança
1 2 3 4 5 6 7 8 9 10
30% 50% 20%
82
© UNESP 6 Agosto 2008
VARIÁVEIS ALEATÓRIAS
[0, 3)
[3,8)
[8,10]
30% homem
50% mulher
20% criança
30% 50% 20%
83
© UNESP 6 Agosto 2008
2 4 3 ••• 6
60 lançamentos
Vetor do número de ocorrências de uma
face para 60 lançamentos.
0
fr[0]
Idéia do programa
1 2 3 ••• 60
0 fr[1] +1 0 fr[2] 0 fr[3] 0 fr[4] 0 fr[5]
+1 +1 +1
GERAÇÃO DE VALORES ALEATÓRIOS
84
Simulação de Monte Carlo - Exemplo
Um padeiro deve decidir quanto deverá produzir de pães
supondo que:
(i)A produção de pães é em múltiplos de 12. (ii) A demanda também é em múltiplos de 12. (iii)O custo de cada pão é de R$ 0.25.
(iv) O preço normal de venda é de R$ 0.40, o promocional de R$ 0.10 e o preço de não atender a demanda é R$ 0.15. (v)A demanda, de acordo com um histórico, pode ocorrer em 3
níveis: alta, média e baixa com probabilidades de 0.30,
0.45 e 0.25. A Tabela 1 fornece a distribuição da demanda
por nível.
(vi)Determinar o número ótimo de pães produzidos por dia de
modo a maximizar: (venda normal + venda promocional –
43
© UNESP 6 Agosto 2008
Função de Distribuição de Probabilidade
Demanda Alta Média Baixa
36 .05 .10 .15
48 .10 .20 .25
60 .25 .30 .35
72 .30 .25 .15
84 .20 .10 .05
96 .10 .05 .05
ocorrência de cada nível:
86
© UNESP 6 Agosto 2008
Simulação de Monte Carlo - Exemplo
Criar um programa que realize a simulação das 6 políticas listadas na Tabela dada a seguir. Os valores da Tabela foram obtidos após 10000 avaliações de demanda.
Política Número de
pães produzidos por dia Lucro obtido por Simulação
A 36 R$ 1.273
B 48 R$ 4.349
C 60 R$ 6.436
D 72 R$ 6.915
E 84 R$ 6.104
87
© UNESP 6 Agosto 2008
Simulação - Passeio Aleatório 1D
+1
-1
O passeio aleatório é a formalização matemática de um caminho que é construído por meio de uma sucessão de passos aleatórios. Pode ser associado a uma cadeia de
Markov !! p =1/2
p =1/2
88
Simulação - Passeio Aleatório 2D
45
© UNESP 6 Agosto 2008
Neste livro o protagonista resolve tomar decisões empregando o resultado da jogada de um dado !
90
© UNESP 6 Agosto 2008
Simulação em Sala de Aula
Usar a dinâmica do passeio aleatório 2D em sala de aula para conhecer seus colegas de sala de aula. Siga o algoritmo:
p =1/4 Passo 1
1
2
3
91
© UNESP 6 Agosto 2008
Simulação em Sala de Aula
Usar a dinâmica do passeio aleatório 2D em sala de aula para conhecer seus colegas de sala de aula. Siga o algoritmo:
Passo 2
Fazer as seguintes perguntas: (1) Nome.
(2) Curso de graduação.
(3) Motivo pelo qual está fazendo a disciplina.
92
Simulação em Sala de Aula
Usar a dinâmica do passeio aleatório 2D em sala de aula para conhecer seus colegas de sala de aula. Siga o algoritmo:
Passo 3
47
© UNESP 6 Agosto 2008