programação avançada simulação – conceitos básicos

37
Programação Avançada Simulação – Conceitos básicos Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012

Upload: lindley

Post on 25-Jan-2016

48 views

Category:

Documents


3 download

DESCRIPTION

Programação Avançada Simulação – Conceitos básicos. Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012. Introdução. Dificuldade de resolução de grande escala - PowerPoint PPT Presentation

TRANSCRIPT

Programao Avanada

Programao AvanadaSimulao Conceitos bsicosProf. Natalia Castro FernandesMestrado em Telecomunicaes UFF2 semestre/2012IntroduoAnlise de um problemaResoluo analticaEquaes e modelos SimulaoModelo simplificadoTesteImplementao realDificuldade de resoluo de grande escalaSimplificaes podem distorcer o resultado, mas sem usar as simplificaes o modelo pode ficar muito complexoQuais partes do modelo podemos abstrair? Qual a distncia entre a realidade e o resultado da simulao?Implementar pode ser muito complexoComo fazer testes em escala?A melhor anlise tem os trs tipos: resoluo analtica, simulao e testeEm geral, basta fazer duas anlises, desde que uma valide a outra.SimulaoVantagensPode lidar com modelos mais complexos do que a anlise matemticaMelhor representao do sistema real que a anlise matemticaMais simples de implementar do que a soluo completaAbstrao de detalhesPode analisar cenrios com grande escala, o que pode ser proibitivo em implementaes reaisDesvantagensDificuldade de interpretar os resultadosO que eu fiz est certo???O que representa o resultado obtido???Longo tempo de execuoCaracterizao de um simuladorDeterminstico ou estocsticoModelo contm eventos aleatrios?Esttico ou dinmicoEvoluo do tempo influi no sistema?Contnuo ou discretoEstado do sistema evolui continuamente ou em pontos discretos no tempo?Simulao discreta de eventos--Estocstica, dinmica e discreta --Simulador estocsticoModelo contm eventos aleatriosDepende de gerador de nmeros aleatrios

Gerar nmeros pseudo-aleatriosParecem aleatrios, mas so essencialmente determinsticosUso de funo pseudo-aleatria

Mas como podemos gerar nmeros aleatrios???Gerador de nmeros aleatriosDeve gerar nmeros que paream uma varivel aleatria uniformeUniformemente distribudos entre 0 e N-1, onde N um nmero qualquerEstatisticamente independentes um do outro

J vimos que a funo random() do mdulo random faz exatamente isso.E se eu quisesse criar o my_random(), que tivesse as mesmas caractersticas de v.a. uniforme?Mtodo CongruenteMtodo para gerar v.a. uniformesUtiliza trs parmetros inteirosa e M = parmetros internos do algoritmoM determina quantos nmeros podero ser geradosx(0) = 1 valor da sequncia pseudo-aleatria, tambm chamado de sementex(i+1) = a*x(i) % MU(i+1) = x(i+1)/M

V.a. uniforme geradaMtodo CongruenteExemplosa=3, M=11, x(0)=4x(i+1) = 3*x(i) % 11Sequncia = 4, 1,3,9,5, 4, 1,3,9,5,4,...

M escolha de parmetros pode gerar uma baixa variabilidade de valores e repetio da sequncia com poucos sorteios.Propriedade de um gerador pseudo-aleatrioTodos os nmeros da sequncia so gerados?Qual o tamanho da sequncia?

Sugesto de valores para mtodo congruente:M=(2^31) -1A=7^5

Mtodo Congruente LinearMai s usado, pois costuma garantir maior variabilidade nos valoresUm parmetro a mais que o mtodo congruente: cx(i+1) = (a*x(i)+c) % MU(i+1) = x(i+1)/M

ExerccioGere mil nmeros aleatrios entre 0 e 1 com o mtodo congruente e faa um histograma com intervalos de 0.1 de larguraRepita utilizando o mtodo congruente linearRepita utilizando a funo random()Compare os resultados

O grfico pode ser feito com qualquer ferramentaLei dos Grandes NmerosFrequncia relativa do resultado de um experimento aleatrio converge para sua probabilidadeResultado fundamental em probabilidade e estatstica

Portanto, um bom gerador deveria apresentar uma frequncia de ocorrncias para todos os valores do histograma, no exerccio anterior, igual a 1/10Outro exemplo o dado no viciadoSe jogado muitas vezes, a frequncia de cada face vale 1/6

Prova de que a probabilidade existe!!!!Nmeros, quando em grande quantidade, convergem!!!Lei dos Grandes NmerosUma grande quantidade de medidas leva a mdia real do experimentoEx: gere um nmero entre 0 e 1 com o random() vrias vezes

Lei dos Grandes NmerosResposta = [0.8490961500569881, 0.6456630621108963, 0.7011384939674841, 0.7093239739503144, 0.008255047174339558, 0.5118803420415918, 0.9067574331321653, 0.04266981994782948, 0.19040859063960625, 0.30762765616240917, 0.2759092882464159, 0.03340334367397668]Mdia com 1 medida: 0.849096150056988Mdia com 2 medidas: 0.7473796060839422Mdia com 3 medidas: 0.7319659020451228Mdia com 12 medidas: 0.3727341022628085Mdia com 100 medidas: 0.48730569712969135Mdia com 1000 medidas: 0.5049299613079365Mdia com 10000 medidas: 0.49950420528919764

Gerando outras variveis aleatriasEm um modelo de simulao, outras variveis podem ser necessriasExemplo: Gerao de trfego de um n pode ser modelada com um processo de PoissonRelembrandoO processo de Poisson d a probabilidade de ocorrerem n eventos independentes com taxa mdia em um perodo de tempo tTempo contnuo e estado discretoPode-se mostrar que o intervalo entre dois eventos consecutivos em um processo de Poisson modelado por uma varivel aleatria geomtrica.

SimulaoEvoluo de um sistema estocstico no tempoEvoluo do estado do sistemaEstado depende das medidas de interesseMedidas de interesse = dados que voc deseja medir com a sua simulaoVariveis da simulaoTemporepresenta o instante de tempo que o simulador se encontraVariveis de estadoRepresentam o estado do sistema no tempo tVariveis de interesseRepresentam valores que permitem o clculo de medidas de interesseEventosSo aes que modificam o estado do sistemaQuando um evento ocorre, as variveis so atualizadasTempo, estado do sistema e medidas de interesse

Permitem seguir o modelo no tempoUtilizao de lista de eventosLista de eventosLista contendo todos os eventos que iro ocorrer no futuroCada evento identificado por tipo e instante que devero acontecerA lista deve estar ordenada pelos instantes de ocorrncia dos eventosExemploEvento 1T=1Evento 2T=7Evento 3T=1019Lista de eventosAps executar o evento atual, o simulador consulta a listaSimulador processa prximo evento e o remove da lista

Quando novos eventos sero adicionados lista?Ao processar um evento!Simulador

ExemploSimulador processa Evento 1Evento 1 gera 2 novos eventosSimulador reordena a listaSimulador descarta evento 1Simulador processa prximo eventoEvento 1T=1Evento 3T=10Evento 2T=7Evento yT=8Evento xT=12Simulador genricoInicializar variveisInserir um ou mais eventos na lista de eventosEnquanto no chegar ao fim da simulaoRemover prximo evento da lista de eventosProcessar eventoEstimando medidas de interesseExemplo de medida de interesse:Tempo at que o sistema falheSuponha que essa v.a. tenha distribuio desconhecidaComo estimar algo sobre essa medida de interesse?Tirar mdia amostralSimular vrios valores de X e tirar a mdiaIntervalo de ConfianaMdia amostral no igual ao valor esperadoMdia amostral tende ao valor esperadoExemplo:Mdia amostral da random() quase 0.5, mas no exatamente o valor esperado 0.5

IdeiaUtilizar a mdia para calcular um intervalo onde o valor esperado pode estarTeorema do Limite CentralSeja uma sequncia de variveis aleatrias identicamente independentes com valor esperado e varincia (2) menores que A distribuio dessa sequncia de variveis converge para distribuio Normal se o tamanho da sequncia (n) tende ao infinito (ou seja, se tivermos infinitas amostras, n-> ) possvel fazer essa aproximao para a normal, se usarmos um n suficientemente grande (ou seja, se tivermos muitas amostras)Intervalo de confianaDefinioCom probabilidade o intervalo gerado contm o valor esperado Calcula uma barra de erro que, com =95% de chance, contm o valor correto da medidaBoa chance do intervalo gerado conter o valor esperado, mas no garantido!

Intervalo de confianaAproximao pela normal

A confiana do intervalo

Entendendo a contaA confiana do intervalo a mdia amostral, ou seja, a mdia das suas medidas o desvio padro amostral, ou seja, o desvio padro das suas medidas o valor do eixo x em uma normal com mdia 0, de tal forma que, se considerarmos o intervalo entre + e - , teremos marcado da rea da Normal n o seu nmero de amostras

Z0.9=1.65 e Z0.95=1.96Entendo a contaLembrando que o desvio padro amostral calculado como:

Onde:

Mdia amostralIntervalo de confianaComo apresentar seus grficos?SEMPRE coloque a mdia amostral e o intervalo de confiana de cada um de seus pontos no grficoResultado da simulaoEstado estacionrio x estado transienteExiste um tempo, chamado de transiente, no qual o resultado da simulao ainda no convergiuEfeito do estado inicialNa maioria das simulaes, deseja-se conhecer o estado estacionrio e no o estado transienteConsiderar medidas a partir da estabilizao do sistemaOutra possibilidade partir de um estado inicial mais prximo do estado estacionrioNmero de rodadas preciso realizar uma simulao diversas vezes para obter diversas medidas e tirar a mdia e o desvio padro amostral

Como saber qual um bom nmero de rodadas?Lembrando que o ideal seriam infinitas rodadasNmero de rodadasEscolher um valor para a confiana do intervalo a ser gerado, ou seja, Escolher um valor mximo para o tamanho do intervalo, que chamaremos de LO valor de L deve ser escolhido de acordo com o seu intervalo de medidas, de tal forma que a barra de erros no fique grande demaisEscolher um nmero de amostras mnimo, nminO desvio padro amostral, S, depende de nPor isso, existe um valor mnimo para nnmin=20 um bom valor mnimoGerar amostras at que intervalo gerado seja menor do que L

AlgoritmoEscolha e LGerar pelo menos nmin amostrasGerar mais amostras, para cada um dos seus pontos, at que:

Calcular mdia amostralMontar o grfico

2 < L

ExercciosFaa um script que calcule a mdia amostral de um conjunto de medidas. As medidas devem estar em um arquivo, sendo colocada uma medida por linha com a seguinte configurao: Valor_eixo_x Medida O script deve escrever em um arquivo de sada a mdia amostral para cada um dos valores de x com o seguinte formato: Valor_eixo_x MdiaExemplo:

1 92 6 1 101 91 82 32 6 2 9Arquivo de entradaArquivo de sadaExercciosFaa um script que calcule o desvio padro amostral, supondo que as medidas esto dispostas como explicado no exerccio anterior. O script deve retornar o desvio padro amostral de cada ponto da mesma forma que foi feito no exerccio anterior.Faa um script que mescle os dois exerccios anteriores, criando um arquivo de sada do tipo:eixo_x mdia desvioExercciosCrie um script que leia a sada do exerccio anterior e calcule o intervalo de confiana de 95% (Sua sada deve ser referente a . ). O arquivo de sada deve ser do tipo:eixo_x mdia intervalo

RefernciasAulas do Prof. Daniel Figueiredohttp://www.land.ufrj.br/~classes/model-analise-2009/slides/aula_simul_1.pdfhttp://www.land.ufrj.br/~classes/model-analise-2009/slides/aula_simul_2.pdfhttp://www.land.ufrj.br/~classes/model-analise-2009/slides/aula_simul_3.pdfhttp://www.land.ufrj.br/~classes/model-analise-2009/slides/aula_simul_4.pdf