simulação_notas de aula

Upload: luanathays

Post on 25-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Simulao_Notas de Aula

    1/8

    DET 362 PESQUISA OPERACIONALProf. Heleno do Nascimento SantosSimulao de Monte CarloNOTAS DE AULA.

    Simulao de Monte Carlo

    Trata-se de uma tcnica usada na simulao de valores para uma varivel aleatria,

    conhecida a sua fdp, ou seja, a sua funo de distribuio de probabilidade ( )f x . A idia

    bsica usar a integral da fdp, ( )F x , conhecida como funo de distribuio acumulativa,

    e sua inversa 1( )F x , para gerar um valor para a varivel aleatria por meio de um mtodo

    conhecido como Transformao Inversa, com o uso de um nmero gerado aleatoriamente.Repete-se o procedimento n vezes, a fim de gerar n valores para a varivel aleatria.

    O algoritmo bsico consta de dois passos:

    P1) Gere um NAU(0, 1);

    P2) Retorne1( )x F NA=

    Observe que o Passo 1 pede a gerao de um Nmero Aleatrio entre 0 e 1. Em

    seguida, aborda-se o conceito de Nmero Aleatrio e sua gerao. As linguagens de

    programao e as planilhas eletrnicas dispem de funcionalidades que permitem a

    execuo do Passo 1.

    1)Nmeros Aleatrios

    Um Nmero Aleatrio uma varivel aleatria uniformemente distribuda entre 0 e

    1, significando que qualquer valor entre 0 e 1 tem a mesma probabilidade de ocorrer.Dentre os mtodos usados na gerao nmeros aleatrios, existe o Gerador

    Congruencial Linear (GCL), definido por

  • 7/25/2019 Simulao_Notas de Aula

    2/8

    1

    0

    ( )(mod )

    onde

    mod

    k kNA aNA c m

    NA semente

    a multiplicador

    c incremento

    m ulo

    + = +

    =

    =

    =

    =

    Como o a expresso geradora define o nmero aleatrio 1kNA + como sendo o resto

    da diviso de kaNA c+ por m , segue que o nmero mximo de nmeros aleatrios

    gerados, sem repetio, dado por m-1. Para serem gerados exatamente 1m nmeros

    aleatrios, sem repetio, a escolha dos parmetros , ea c m deve atender as seguintes

    condies:

    i) o nico inteiro positivo que divide exatamente em c 1;ii) se q um nmero primo que divide m , ento q divide 1a ;

    iii) se 4 divide m , ento 4 divide 1a .

    Ex: Considere a escolha: 13, 5 e 32a c m= = = . Observe que as 3 condies so atendidas.A Tabela 1 mostra a sequncia de nmeros aleatrios associada a esta escolha.

    Tabela 1: Gerao de uma sequncia de nmeros aleatrios pelo GCL.

    K a c m Nak (a*NA(k)+c) Nak+1 NA

    0 13 5 32 46 603 27 0,84375

    1 27 356 4 0,125

    2 4 57 25 0,78125

    3 25 330 10 0,3125

    4 10 135 7 0,21875

    5 7 96 0 0

    6 0 5 5 0,15625

    7 5 70 6 0,1875

    8 6 83 19 0,593759 19 252 28 0,875

    10 28 369 17 0,53125

    11 17 226 2 0,0625

    12 2 31 31 0,96875

    13 31 408 24 0,75

    14 24 317 29 0,90625

  • 7/25/2019 Simulao_Notas de Aula

    3/8

    15 29 382 30 0,9375

    16 30 395 11 0,34375

    17 11 148 20 0,625

    18 20 265 9 0,28125

    19 9 122 26 0,8125

    20 26 343 23 0,71875

    21 23 304 16 0,5

    22 16 213 21 0,65625

    23 21 278 22 0,6875

    24 22 291 3 0,09375

    25 3 44 12 0,375

    26 12 161 1 0,03125

    27 1 18 18 0,5625

    28 18 239 15 0,46875

    29 15 200 8 0,25

    30 8 109 13 0,40625

    31 13 174 14 0,4375

    32 14 187 27 0,84375

    33 27 356 4 0,125

    34 4 57 25 0,78125

    2)

    Gerao de Valores para Variveis Aleatrias

    Como foi dito, usa-se o Mtodo da Transformao Inversa para gerar valores para

    uma varivel aleatria, conhecida a sua fdp. Se esta funo for integrvel, utiliza-se a suaintegral como parte do algoritmo; caso contrrio, lana-se mo de mtodos numricos de

    integrao ou de mtodos disponveis na literatura, como o caso da gerao de valores

    para variveis aleatrias que seguem a Distribuio Normal, exposta no item 5.

    Por definio, a Funo Acumulativa de Probabilidade quando a fdp integrvel

    dada por

    ( ) ( )x

    F x f x dx

    =

    Seja NA um nmero aleatrio uniformemente distribudo entre 0 e 1. Fazendo

    ( )F x NA= na equao acima e resolvendo-a para x tem-se:

  • 7/25/2019 Simulao_Notas de Aula

    4/8

    1( )x F NA=

    3) Aplicaes

    2.1) GERAO DE VALOR PARA XEXP() Distribuio Exponencial.

    a) fdp

    ( )1 se 0( )

    0 caso contrario.

    xe x

    f x

    =

    b) Funo Acumulativa de Probabilidade ( )F x

    Por definio: ( ) ( )x

    F x f x dx

    = , o que leva a

    ( )1 se 0( )

    0 caso contrario.

    xe x

    F x

    =

    Fazendo ( )F x NA= na equao acima e resolvendo para x, tem-se ln(1 )x NA= .

    c) Algoritmo

    Considerando que (1-NA) e NA so nmeros igualmente aleatrios, tem-se:

    P1) Gere um NAU(0, 1);

    P2) Retorne X = - *ln (NA).

    d) Exemplos: em aula.

    2.2) GERAO DE VALORES PARA XU(A, B) Distribuio Uniforme.

    a) Funo de Distribuio de Probabilidades (fdp) ( )f x

    1 se( )

    0 caso contrario.

    a x bf x b a

    =

    b) Funo Acumulativa de Probabilidade ( )F x

    Por definio: ( ) ( )x

    F x f x dx

    = , o que leva a

  • 7/25/2019 Simulao_Notas de Aula

    5/8

    0 se

    ( ) se

    1 se .

    x a

    x aF x a x b

    b a

    x b

    Fazendo ( )F x NA= na equao acima e resolvendo para x, tem-se ( )x a b a NA= + .

    c) Algoritmo

    P1) Gere um NAU(0, 1);

    P2) Retorne ( )x a b a NA= + .

    d) Exemplos: em aula.

    2.3) GERAO DE VALORES PARA XDU(A, B) - Distribuio Discreta Uniforme.a) Funo de Distribuio de Probabilidades (fdp) ( )p x

    1 se { , 1,..., }

    ( ) 1

    0 caso contrario.

    x a a bp x b a

    +

    = +

    b) Funo Acumulativa de Probabilidade ( )F x

    Por definio: ( ) ( )

    x

    F x P x

    = , o que leva a

    1 se

    ( ) 11 se .

    x aa x b

    F x b a

    x b

    + = +

    >

    Fazendo ( )F x NA= na equao acima e resolvendo para x, tem-se o passo P2 do algoritmoabaixo.

    c) Algoritmo

    P1) Gere um NAU(0, 1);

    P2) Retorne ( 1)x a b a NA= + + .

    d) Exemplos: em aula.

  • 7/25/2019 Simulao_Notas de Aula

    6/8

    2.4) GERAO DE VALORES PARA XTRIANG(A, B, C)

    a) Funo de Distribuio de Probabilidades (fdp) ( )f x

    ( )2 se

    ( )( )2( )

    se( )( )( )

    0 caso contrario.

    x aa x c

    b a c ab x

    c x bf xb a b c

    < =

    b) Funo Acumulativa de Probabilidade ( )F x

    Por definio: ( ) ( )x

    F x f x dx

    = , o que leva a

    2

    2

    0 se

    ( ) se a

    ( )( )( )

    ( )1 se

    ( )( )

    1 se .

    x a

    x ax c

    b a c aF x

    b xc x b

    b a b c

    x b

    Fazendo ( )F x NA= na equao acima e resolvendo para x, tem-se ( )x a b a NA= + .

    c)

    Algoritmo

    P1) Gere NA~U(0, 1);

    P2) Calcule k = (c-a)/(b-a);

    P3) Se NA < k, retorne

    ;**)( NAkabaX +=

    Seno, retorne

    ))1)(1(1(*)( NAkabaX +=

    d) Exemplos: em aula.

    2.5) GERAO DE VALORES PARA XN( ( , ) , a partir de Y N(0, 1).

    2.5.1) Mtodo de Box e Miller (1958)

  • 7/25/2019 Simulao_Notas de Aula

    7/8

    Algoritmo:

    P1) Gere NA1U(0, 1) e NA2U(0, 1);

    P2) Obtenha

    1 1 2

    2 1 2

    2ln( ) *cos(2 )

    2ln( ) * (2 )

    Y NA NA

    Y NA sen NA

    =

    =

    P3) Retorne

    1 1

    2 2

    X Y

    X Y

    = +

    = +

    Exemplo: (a ser feito em aula)

    a)

    Gere 500 valores para a varivel aleatria RECEITAN(2000; 300).

    b) Construa um histograma com os valores gerados.

    2.5.2) Mtodo Polar - Marsaglia e Bray (1964)

    Algoritmo:

    P1) Gere NA1U(0, 1) e NA2U(0, 1);

    P2) Obtenha2 2

    1 2(2 1) (2 1) ;W NA NA= +

    P3) Se W > 1, v para o passo 1; caso contrrio,Faa

    1 1

    2 2

    ( 2ln( ) /

    * (2 1)

    *(2 1)

    Y W W

    Y Y NA

    Y Y NA

    =

    =

    =

    Obs: as variveis Y1e Y2assim geradas so N(0, 1).

    P4) Retorne

    1 1

    2 2

    X Y

    X Y

    = +

    = +

    Exemplo: (a ser feito em aula)

  • 7/25/2019 Simulao_Notas de Aula

    8/8

    a) Gere 500 valores para a varivel aleatria RECEITAN(2000; 300);

    b) Construa um histograma com os valores gerados.