Programação Avançada Simulação – Conceitos básicos - ppt carregar
Apresentação em tema: "Programação Avançada Simulação – Conceitos básicos"— Transcrição da apresentação:
1 Programação Avançada Simulação – Conceitos básicos
2 Introdução Análise de um problema Resolução analítica Simulação Teste
Dificuldade de resolução de grande escala Simplificações podem distorcer o resultado, mas sem usar as simplificações o modelo pode ficar muito complexo Análise de um problema Resolução analítica Equações e modelos Simulação Modelo simplificado Teste Implementação real Quais partes do modelo podemos abstrair? Qual a distância entre a realidade e o resultado da simulação? Implementar pode ser muito complexo Como fazer testes em escala? A melhor análise tem os três tipos: resolução analítica, simulação e teste Em geral, basta fazer duas análises, desde que uma valide a outra.
3 Simulação Vantagens Desvantagens
Pode lidar com modelos mais complexos do que a análise matemática Melhor representação do sistema real que a análise matemática Mais simples de implementar do que a solução completa Abstração de detalhes Pode analisar cenários com grande escala, o que pode ser proibitivo em implementações reais Desvantagens Dificuldade de interpretar os resultados O que eu fiz está certo??? O que representa o resultado obtido??? Longo tempo de execução
4 Caracterização de um simulador
Determinístico ou estocástico Modelo contém eventos aleatórios? Estático ou dinâmico Evolução do tempo influi no sistema? Contínuo ou discreto Estado do sistema evolui continuamente ou em pontos discretos no tempo? Simulação discreta de eventos --Estocástica, dinâmica e discreta --
5 Simulador estocástico
Modelo contém eventos aleatórios Depende de gerador de números aleatórios Gerar números pseudo-aleatórios Parecem aleatórios, mas são essencialmente determinísticos Uso de função pseudo-aleatória Mas como podemos gerar números aleatórios???
Deve gerar números que pareçam uma variável aleatória uniforme Uniformemente distribuídos entre 0 e N-1, onde N é um número qualquer Estatisticamente independentes um do outro Já vimos que a função random() do módulo random faz exatamente isso. E se eu quisesse criar o my_random(), que tivesse as mesmas características de v.a. uniforme?
7 Método Congruente Método para gerar v.a. uniformes
Utiliza três parâmetros inteiros a e M = parâmetros internos do algoritmo M determina quantos números poderão ser gerados x(0) = 1º valor da sequência pseudo-aleatória, também chamado de semente x(i+1) = a*x(i) % M U(i+1) = x(i+1)/M V.a. uniforme gerada
8 Método Congruente Exemplos a=3, M=11, x(0)=4
x(i+1) = 3*x(i) % 11 Sequência = 4, 1,3,9,5, 4, 1,3,9,5,4,... Má escolha de parâmetros pode gerar uma baixa variabilidade de valores e repetição da sequência com poucos sorteios.
9 Propriedade de um gerador pseudo-aleatório
Todos os números da sequência são gerados? Qual o tamanho da sequência? Sugestão de valores para método congruente: M=(2^31) -1 A=7^5
10 Método Congruente Linear
Mai s usado, pois costuma garantir maior variabilidade nos valores Um parâmetro a mais que o método congruente: c x(i+1) = (a*x(i)+c) % M U(i+1) = x(i+1)/M
11 Exercício Gere mil números aleatórios entre 0 e 1 com o método congruente e faça um histograma com intervalos de 0.1 de largura Repita utilizando o método congruente linear Repita utilizando a função random() Compare os resultados O gráfico pode ser feito com qualquer ferramenta
12 Lei dos Grandes Números
Frequência relativa do resultado de um experimento aleatório converge para sua probabilidade Resultado fundamental em probabilidade e estatística Portanto, um bom gerador deveria apresentar uma frequência de ocorrências para todos os valores do histograma, no exercício anterior, igual a 1/10 Outro exemplo é o dado não viciado Se jogado muitas vezes, a frequência de cada face vale 1/6 Prova de que a probabilidade existe!!!! Números, quando em grande quantidade, convergem!!!
13 Lei dos Grandes Números
Uma grande quantidade de medidas leva a média real do experimento Ex: gere um número entre 0 e 1 com o random() várias vezes
14 Lei dos Grandes Números
Resposta = [ , , , , , , , , , , , ] Média com 1 medida: Média com 2 medidas: Média com 3 medidas: Média com 12 medidas: Média com 100 medidas: Média com 1000 medidas: Média com medidas:
15 Gerando outras variáveis aleatórias
Em um modelo de simulação, outras variáveis podem ser necessárias Exemplo: Geração de tráfego de um nó pode ser modelada com um processo de Poisson Relembrando O processo de Poisson dá a probabilidade de ocorrerem n eventos independentes com taxa média λ em um período de tempo t Tempo contínuo e estado discreto Pode-se mostrar que o intervalo entre dois eventos consecutivos em um processo de Poisson é modelado por uma variável aleatória geométrica.
16 Simulação Evolução de um sistema estocástico no tempo
Evolução do estado do sistema Estado depende das medidas de interesse Medidas de interesse = dados que você deseja medir com a sua simulação
17 Variáveis da simulação
Tempo representa o instante de tempo que o simulador se encontra Variáveis de estado Representam o estado do sistema no tempo t Variáveis de interesse Representam valores que permitem o cálculo de medidas de interesse
18 Eventos São ações que modificam o estado do sistema
Quando um evento ocorre, as variáveis são atualizadas Tempo, estado do sistema e medidas de interesse Permitem seguir o modelo no tempo Utilização de lista de eventos
19 Lista de eventos Lista contendo todos os eventos que irão ocorrer no futuro Cada evento é identificado por tipo e instante que deverão acontecer A lista deve estar ordenada pelos instantes de ocorrência dos eventos Exemplo Evento 1 T=1 Evento 2 T=7 Evento 3 T=10
20 Lista de eventos Após executar o evento atual, o simulador consulta a lista Simulador processa próximo evento e o remove da lista Quando novos eventos serão adicionados à lista? Ao processar um evento!
21 Exemplo Simulador processa Evento 1 Evento 1 gera 2 novos eventos
Simulador reordena a lista Simulador descarta evento 1 Simulador processa próximo evento Simulador Evento x T=12 Evento y T=8 Evento 1 T=1 Evento 2 T=7 Evento 3 T=10
22 Simulador genérico Inicializar variáveis
Inserir um ou mais eventos na lista de eventos Enquanto não chegar ao fim da simulação Remover próximo evento da lista de eventos Processar evento
23 Estimando medidas de interesse
Exemplo de medida de interesse: Tempo até que o sistema falhe Suponha que essa v.a. tenha distribuição desconhecida Como estimar algo sobre essa medida de interesse? Tirar média amostral Simular vários valores de X e tirar a média
24 Intervalo de Confiança
Média amostral não é igual ao valor esperado Média amostral tende ao valor esperado Exemplo: Média amostral da random() é quase 0.5, mas não é exatamente o valor esperado 0.5 Ideia Utilizar a média para calcular um intervalo onde o valor esperado pode estar
25 Teorema do Limite Central
Seja uma sequência de variáveis aleatórias identicamente independentes com valor esperado e variância (σ2) menores que ∞ A distribuição dessa sequência de variáveis converge para distribuição Normal se o tamanho da sequência (n) tende ao infinito (ou seja, se tivermos infinitas amostras, n-> ∞) É possível fazer essa aproximação para a normal, se usarmos um n suficientemente grande (ou seja, se tivermos muitas amostras)
26 Intervalo de confiança
Definição Com probabilidade o intervalo gerado contém o valor esperado μ Calcula uma barra de erro que, com =95% de chance, contém o valor correto da medida Boa chance do intervalo gerado conter o valor esperado, mas não é garantido!
27 Intervalo de confiança
Aproximação pela normal A confiança do intervalo
28 Entendendo a conta A confiança do intervalo
é a média amostral, ou seja, a média das suas medidas é o desvio padrão amostral, ou seja, o desvio padrão das suas medidas é o valor do eixo x em uma normal com média 0, de tal forma que, se considerarmos o intervalo entre e , teremos marcado da área da Normal n é o seu número de amostras Z0.9=1.65 e Z0.95=1.96
29 Entendo a conta Lembrando que o desvio padrão amostral é calculado como: Onde: Média amostral
Como apresentar seus gráficos? SEMPRE coloque a média amostral e o intervalo de confiança de cada um de seus pontos no gráfico
31 Resultado da simulação
Estado estacionário x estado transiente Existe um tempo, chamado de transiente, no qual o resultado da simulação ainda não convergiu Efeito do estado inicial Na maioria das simulações, deseja-se conhecer o estado estacionário e não o estado transiente Considerar medidas a partir da estabilização do sistema Outra possibilidade é partir de um estado inicial mais próximo do estado estacionário
32 Número de rodadas É preciso realizar uma simulação diversas vezes para obter diversas medidas e tirar a média e o desvio padrão amostral Como saber qual é um bom número de rodadas? Lembrando que o ideal seriam infinitas rodadas
33 Número de rodadas Escolher um valor para a confiança do intervalo a ser gerado, ou seja, Escolher um valor máximo para o tamanho do intervalo, que chamaremos de L O valor de L deve ser escolhido de acordo com o seu intervalo de medidas, de tal forma que a barra de erros não fique grande demais Escolher um número de amostras mínimo, nmin O desvio padrão amostral, S, depende de n Por isso, existe um valor mínimo para n nmin=20 é um bom valor mínimo Gerar amostras até que intervalo gerado seja menor do que L
34 Algoritmo Escolha e L Gerar pelo menos nmin amostras
Gerar mais amostras, para cada um dos seus pontos, até que: Calcular média amostral Montar o gráfico < L
35 Exercícios Faça um script que calcule a média amostral de um conjunto de medidas. As medidas devem estar em um arquivo, sendo colocada uma medida por linha com a seguinte configuração: Valor_eixo_x Medida O script deve escrever em um arquivo de saída a média amostral para cada um dos valores de x com o seguinte formato: Valor_eixo_x Média Exemplo: Arquivo de entrada Arquivo de saída 1 10 1 9 1 8 2 3 2 6 2 9 1 9 2 6
36 Exercícios Faça um script que calcule o desvio padrão amostral, supondo que as medidas estão dispostas como explicado no exercício anterior. O script deve retornar o desvio padrão amostral de cada ponto da mesma forma que foi feito no exercício anterior. Faça um script que mescle os dois exercícios anteriores, criando um arquivo de saída do tipo: eixo_x média desvio
37 Exercícios Crie um script que leia a saída do exercício anterior e calcule o intervalo de confiança de 95% (Sua saída deve ser referente a ). O arquivo de saída deve ser do tipo: eixo_x média intervalo