Estatística e Modelos Probabilísticos - COE241 Aula passada Somas aleatórias Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números
Simulação de Sistemas Discretos É uma técnica de modelagem que visa a representação do comportamento do sistema para obtenção de medidas de desempenho e/ou confiabilidade O sistema é representado através de eventos que ocorrem segundo uma distribuição de probabilidade
O Ciclo de Modelagem Sistema real Criação do Modelo aproximação Influência no sistema Solução do Modelo
Modelando um Sistema Abstração do sistema Simplificação necessária Representação matemática do sistema Aleatoriedade Servidor Web pedidos Taxa de chegada de pedidos CPU pedido finalizado Disco 1 Disco 2
Algumas Medidas de Desempenho Vazão de um recurso: número de pedidos servidos por unidade de tempo Utilização de um recurso: percentual do tempo que o recurso fica ocupado Número médio de pedidos na fila do recurso Tempo médio que cada pedido fica na fila do recurso
Fila Genérica requisições CPU Como avaliar o desempenho desta fila? Qual o tamanho médio da fila? Simulação
Simulando uma Fila Genérica requisições CPU O que é uma simulação? Programa que imita comportamento do sistema Como simular este sistema? Programa deve gerar eventos de chegadas e serviço, manter estado da fila, calcular medidas de interesse
Simulando uma Fila Genérica requisições CPU N(t) Sistema ocioso Sistema ocupado Imitar evolução do sistema: N(t) Obter medidas de interesse: vazão, utilização, E[N], etc. t
Simulação Vantagens Pode lidar com modelos mais complexos Melhor representação do sistema real Desvantagens Difícil verificar a precisão dos resultados Pode ter longo tempo de execução Modelos analíticos possuem vantagens e desvantagens com relação a simulação
Caracterizando 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 instantes discretos no tempo? Simulação Discreta de Eventos estocástica, dinâmica e discreta
Primeiro Passo para Simulação Como gerar números aleatórios? Gerar números pseudo-aleatórios que pareçam aleatórios
Gerador de Números Pseudo- Aleatórios Algoritmo que gera uma sequência de números inteiros U 1, U 2,..., que pareçam ser: Uniformemente distribuídos no intervalo [0, M-1] (para algum M fixo) Estatisticamente independentes pareçam ser: sequência deve ter propriedades relevantes de uma sequência de v.a. uniforme
Método Congruente Dois parâmetros a e M (números inteiros) e o valor inicial é x 0 (semente) x i =a x i 1 mod M U i = x i M x 0 determina a sequência inteira M determina quantos diferentes números podem ser gerados
Exemplo Supor a=3 e M=11 x i =3 x i 1 mod 11 Quantos números diferentes podemos gerar? Supor x 0 =4 (semente) x 1 =3 x 0 m o d 11 x 2 =3 x 1 m o d 11 = = 12 m od 11 1 = = 3 m o d 11 3
Exemplo Supor a=3 e M=11 x i =3 x i 1 m od 11 x 0 =4 x 1 =1 x 2 =3 x 3 =9 Gerador entra em loop depois de 5 amostras E se x 0 for diferente? x 4 =5 x 5 =4 x 6 =1...
Propriedades do Gerador Qual o tamanho de uma sequência? Escolher a e M tal que para qualquer x 0 Sequência pareça aleatória Longo ciclo antes de repetição Cálculo seja eficiente
Método Congruente Linear Três parâmetros a, c e M (números inteiros) Dado x (semente) 0 x i = a x i 1 c m o d M U i = x i M diferença do outro método x 0 determina a sequência inteira Bastante utilizado
Exemplo Supor a = 3, M = 11, c = 2 Semente x 0 = 4 x 0 =4 x 1 =3 x 2 =0 x i = 3 x i 1 2 m o d 11 x 1 = 3 x 0 2 m od 11 = = 14 m od 11 3 x 3 =2 x 4 =8 x 5 =4 x 6 =3...
Geradores na Prática Linguagens de programação oferecem geradores C ou C++ (gnu) lrand48() - retorna long [0, 2 31 ] drand48() - retorna float [0, 1) Método Congruente Linear Usuário define semente (x 0 ) M =2 48 a=25214903917 c =11 Matlab utiliza múltiplos geradores usuário pode escolher
Tarefa de Casa (1) Fazer um programa para gerar números aleatórios usando o método congruente linear Escolha conjuntos de parâmetros e justifique a escolha de cada conjunto Gerar gráfico com histograma para cada conjunto de parâmetros comentando como a escolha dos parâmetros influenciou nos resultados Número de ocorrências 0 0.1 0.2 0.3 0.4 0.5 0.6... 1.0
Tarefa de Casa (2) Repetir o experimento usando o gerador da linguagem de programação Comparar resultados do seu gerador com os obtidos com o gerador da linguagem Entregar relatório contendo os resultados do seu experimento e o código do programa
Lei dos Grandes Números Média de uma sequência de v.a. (iid) converge para valor esperado Variável aleatória: X Valor esperado: E [ X ] Sequência (iid): X 1, X 2,..., X n Média amostral: X n = i=1 n n X i E [ X ]=E [ X i ] para todo i Convergência: X n E [ X ] quando n tende a infinito
Exemplo Experimento: jogar um dado X v.a. que indica o resultado X i v.a. que indica o resultado do i-ésimo experimento Quanto vale E[X]? E [ X ]=3.5 3, 1, 2, 5, 6, 3, 2, 1, 4, 4, 2, 3, 5, 6, 1, 2, 2, 5, 3, 1. Sequência de resultados de experimentos repetidos Média: X n = i=1 n n X i = 61 20 =3.05
Lei dos Grandes Números Seja X 1, X 2,..., X n uma sequencia de v.a. iid com valor esperado Seja Lei fraca dos grandes números para qualquer n X n = i=1 n X i 0 a média da sequência lim n P[ X n μ <ϵ]=1 convergência em probabilidade
Lei dos Grandes Números Seja X 1, X 2,..., X n uma sequencia de v.a. iid com valor esperado Seja n X n = i=1 n X i Lei forte dos grandes números: a média da sequência P[lim n X n =μ]=1