Introdução aos Números Pseudo-aleatórios. Profa. Dra. Soraia Raupp Musse

Documentos relacionados
O ALEATÓRIO EM COMPUTAÇÃO. Por Diogo Anderson Integrante do Grupo PET Computação

Geração de números uniformes

Simulação: Pseudoaleatoriedade, um estudo sobre o método do meio do quadrado

Simulação estocásaca

COMO FUNCIONA A SIMULAÇÃO. Capítulo 2 - Aula 2. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Aula 11. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo 15

Modelagem e Análise de Sistemas - COS767

Unidade VII Amostragem

3 Definições. 3.1 Processos Estocásticos e Processo de Wiener

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Monte Carlo Method. Peter Frank Perroni. December 1, Monte Carlo Simulation

Estatística e Modelos Probabilísticos - COE241

, logo, para se obter uma boa precisão seria necessário aumentar, e muito, o número de

INTRODUÇÃO LINGUAGEM C

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Unidade III ESTATÍSTICA. Prof. Fernando Rodrigues

Análise de dados em Fisica de Particulas

6.Elaboração de algoritmos...13

O COMPUTADOR. O que é um computador? Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Fundamentos da Computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

6 Modelo Gamma-Cetuc (GC)

Introdução a Computação

GBC083 - Segurança da Informação Aula 3 - Pseudo-aleatoriedade. 29 de Março de 2016

Noções de Simulação. Ciências Contábeis - FEA - Noturno. 2 o Semestre MAE0219 (IME-USP) Noções de Simulação 2 o Semestre / 23

FACULDADE PITÁGORAS. Curso Superior em Tecnologia Redes de Computadores e Banco de dados

Aula 7. Aula de hoje. Aula passada

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Representando e Processando Informção

UMA APLICAÇÃO INGÊNUA DO MÉTODO DE MONTE CARLO: VISUALIZAÇÃO DE ORBITAIS ATÔMICOS MÁRIO GOTO 1 VERÍSSIMO MANOEL DE AQUINO 1

Introdução à Computação MAC0110

Arquitetura de Computadores I

Estudo comparativo de geração de números aleatórios

Organização e Arquitetura de Computadores I

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Programação Estruturada Aula - Introdução a Linguagem de Programação

Informática I. Aula 7. Aula 7-17/09/2007 1

M etodos Matem aticos e de Computa c ao II VIII XI/2016

Fundamentos de Programação Introdução

#Conceituação. Algoritmos. Eliezio Soares

Aula 06 - Máquina Multinível e Von Neumann

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA DE PRODUÇAO E SISTEMAS

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

Aula 3: Algoritmos: Formalização e Construção

Sistema Computacional

Revisão FUI. Tiago Alves de Oliveira

É neste ponto que entra o conceito de lógica de programação.

Métodos Computacionais em Física

AEDI Introdução Revisão 2

Funções - Primeira Lista de Exercícios

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Aula 5. Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

Exercícios: Comandos de Repetição

Métodos de Monte Carlo

INTRODUÇÃO À PROGRAMAÇÃO

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Capítulo 2. Representação de dados em sistemas computacionais

Lógica de Programação

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

Conceitos e Princípios Gerais

Funções Geradoras de Variáveis Aleatórias. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Graduação: Engenharia. Quadro de disciplinas e carga horária

Análise empírica de algoritmos de ordenação

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

6 Simulação de Monte Carlo - Visão Geral

Mário S. Alvim Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/01)

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Princípios de Modelagem Matemática Aula 09

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2016

3 Estimação e Compensação de movimento na codificação de vídeo

Este texto contém algumas dicas de programação para resolução de exercícios do curso de Introdução à Programação.

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Computadores, Algoritmos e Linguagens

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

Informática I. Aula 7. Aula 7-20/09/2006 1

Encriptação de Mensagens

Programação Estruturada

Binário Decimal

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Informática I. Aula Aula 22-12/11/2007 1

Análise de Dados em Astronomia. 4. Simulações de Monte Carlo

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Prova 2 - FEELT Valor: 25 pontos 14/11/2018. Data limite para entregar a prova: 22/11/2018 (quinta-feira).

Introdução à Computação

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Linguagens de Programação

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

CONSTRUINDO GERADORES DE NÚMEROS ALEATÓRIOS A PARTIR DE MAPAS CAÓTICOS DETERMINISTAS

Resolução Computacional de Problemas de Probabilidade

Transcrição:

Introdução aos Números Pseudo-aleatórios Profa. Dra. Soraia Raupp Musse

Conceito: Um gerador de número pseudo-aleatório é um algoritmo que gera uma seqüência de números, os quais são aproximadamente independentes um dos outros. A saída da maioria dos geradores de números aleatórios não é verdadeiramente aleatória; ela somente aproxima algumas das propriedades dos números aleatórios. John von Neumann enfatiza com este comentário "Qualquer um que considere métodos aritméticos para produzir dígitos está, certamente, cometendo um pecado".

Conceito: Enquanto números verdadeiramente aleatórios podem ser gerados usando hardware para geração de número aleatório, número pseudo-aleatórios são uma parte crítica da computação moderna, da criptografia até o método de Monte Carlo passando por sistemas de simulação. Uma cuidadosa análise matemática é necessária para assegurar que a geração dos números seja suficientemente "aleatória".

Conceito: Na computação, um hardware gerador de número pseudo-aleatório é um aparato que gera números aleatórios a partir de um processo físico. Estes dispositivos são normalmente baseados em fenômenos como ruído térmico, no efeito fotoelétrico ou outro fenômeno quântico. Estes processos são, em teoria, completamente imprevisíveis, e a afirmação de imprevisibilidade está sujeita a testes experimentais.

Para que serve? Números aleatórios são úteis em uma variedade de situações, como na simulação de fenômenos físicos, fumaças, nuvens Ainda na amostragem de populações, na programação de computadores, na tomada de decisões ou até mesmo em entretenimento (bingos, loterias ou jogos).

Para que serve? Na área de simulação, consideremos por exemplo, a modelagem do tempo de acesso de um disco rígido, num computador pessoal. Podemos determinar que a duração desse evento irá cair numa faixa conhecida, digamos de 0 a 200ms, de acordo com características físicas inerentes ao próprio disco rígido. Entretanto, o valor real desse evento vai depender de vários fatores, como a posição da cabeça de leitura quando a requisição é feita pelo sistema operacional, detalhes da implementação do suporte e até mesmo da temperatura e condições ambientais. Podemos considerar então que esse tempo de acesso é uma variável aleatória seguindo uma distribuição conveniente. Para fazermos essa simulação precisamos de números aleatórios que sigam uma dada distribuição, e para isso precisamos saber primeiro como gerar esses números aleatórios.

Fontes de números aleatórios: Algumas fontes de números aleatórios são o lançamento de dados, a retirada de bolas numeradas de uma urna (com reposição), o uso de uma roleta ou ainda ruído eletrônico cuja saída é quantizada periodicamente. Entretanto na esmagadora maioria das vezes usa-se o que foi convencionado chamar de números pseudo-aleatórios.

Características dos números pseudoaleatórios: Possibilidade de repetição de seqüências, se desejado Seguem distribuição uniforme Geração rápida com baixo custo computacional

A geração O uso de um algoritmo para gerar um numero aleatório parece violar o princípio básico da aleatoriedade, por isso é que se convenciona chamar esses números de sintéticos ou pseudoaleatórios. A geração começa sempre de um valor inicial chamado semente (seed)

Algoritmos e testes Algoritmos para geração de números aleatórios Testes de aleatoriedade: fornecem uma Testes de aleatoriedade: fornecem uma maneira de fazer avaliação quantitativa da aleatoriedade de uma dada sequência de números

Método do Quadrado do meio Esse método foi inventado por John Von Neumann. Começa-se com uma seed, esse numero é então elevado ao quadrado, e os dígitos do centro são usados como próximo elemento da seqüência. Caso o numero de dígitos que fique a esquerda seja maior que os que fiquem a direita não há problema, simplesmente fixamos para qual lado vamos fazer o corte.

Exemplo: Começando a partir de x0 = 44214 vamos gerar uma seqüência de números aleatórios de 5 dígitos: x0 = 44214 (44214) 2 = 1954877796 ) x1 = 48777 (48777) 2 = 3011485129 ) x2 = 14851 (14851) 2 = 0131905225 ) x3 = 19052 (19052) 2 = 0362978704 ) x4 = 29787 (29787) 2 = 0887265369 ) x5 = 72653

Desvantagens: Sequências geradas se repetem Quando um zero é gerado, todos os outros da sequência são também zero

Exemplo:

Como avaliar a aleatoriedade? Por exemplo: 1,2,3,4,5,... É aleatório? E se nós formos gerar números aleatórios? Vamos criar seqüências com algum significado Vamos evitar repetições e números parecidos, quando isso na verdade pode ocorrer

Teste de aleatoriedade Presume-se que a sequência não é aleatória Realiza-se testes de aleatoriedade

Teste do Chi-quadrado