Generation Aleatoire

Embed Size (px)

Citation preview

  • 8/18/2019 Generation Aleatoire

    1/11

    1

    1

    La génération de nombres aléatoires

    2

    Cadre d’utilisation

    (6) Validation du modèle de simulation

    (3) Collecte des données(2) Construire un modèle

    (4) Choix d’un outil de simulation

    Modèle validé ?

    Non

    (1) Formulation du problème

    Non

    (7) Génération d’un plan d’expériences

    (8) Expérimentations et analyse des résultats

    (9) Exploitation des résultats & prise de décision

    Oui

    (5) Programmation du modèle

    Générer des observations

    aléatoires à partir d’unedistribution de probabilité

    (5) Programmation du modèle

  • 8/18/2019 Generation Aleatoire

    2/11

    2

    3

    Un nombre aléatoire

    Un nombre aléatoire est uneobservation aléatoire qui suit une loi dedistribution uniforme (tous les nombrespossibles sont équiprobables). Un nombre aléatoire entier (discret)

    Distribution uniforme discrète. Un nombre aléatoires uniforme (continu)

    Distribution uniforme continue

    4

    Générateur de nombres aléatoires

    Un générateur de nombres aléatoiresest une méthode permettant deproduire une séquence de nombresindépendants qui suivent unedistribution de probabilité spécifique. Algorithme ALEA() sous Excel etc.

  • 8/18/2019 Generation Aleatoire

    3/11

    3

    5

    Propriétés d’un bon générateur Les propriétés d’un bon générateur : – distribution de probabilité spécifique, aucune

    corrélation – reproductible – rapide – possibilité de produire plusieurs nombres aléatoires en

    série (séquences)Nombres pseudo-aléatoires (aléatoire apparent : prédictible

    et reproductible)

    Exemple de générateurs de nombres aléatoires :Générateur congruentiel linéaire mixte

    6

    Générateur congruentiel linéaire mixte

    Génère une séquence de nombres aléatoires entiersentre 0 et m-1

     Avec :a

    = multiplicateurc = l’incrémentx 0 = la valeur de départ (seed)0 < m , a < m , c < m , x 0 < m 

    Obtenir m nombres aléatoire uniforme entre 0 et 1 :

    )modulo)(( 1   mcax x nn   +≡ −

    petitestmsi 2

    1

    grandestmsi 

    m

     x

     z

    m

     x z

    n

    n

    nn

    +

    =

    =

    n : 0,1,…m-1

    n : 0,1,…m-1

  • 8/18/2019 Generation Aleatoire

    4/11

    4

    7

    Exemple d’application

    Générer une séquence de nombresaléatoires entre 0 et 7, en considérant a= 5, c = 7 et x0 = 4.

    Déduire une séquence de nombresaléatoires uniforme

    Générer une séquence de nombresaléatoires entre 0 et 7, en considérant a= 4, c = 7 et x0 = 3.

    8

    Solution pour a = 5, c = 7 etx0 = 4

       C  y  c   l  e

      =    8

    Un bon générateur de nombres aléatoires

    0,562541 + 4/8121n = 7

    0,187512 + 1/8172n = 6

    0,312525 + 2/8427n = 5

    0,937570 + 7/870n = 4

    0,062504 + 0/8325n = 3

    0,687554 + 5/8376n = 2

    0,812562 + 6/8223n = 1

    0,437533 + 3/8274n = 0

    Xn+1

    xn+1

    (5xn

    + 7)/85xn

    + 7xn

    n

  • 8/18/2019 Generation Aleatoire

    5/11

    5

    9

    Solution pour a = 4, c = 7 et

    x0 = 3

    n xn 4xn + 7 (4xn + 7)/8 xn+1n = 0 3 19 2 + 3/8 3

    Impossible de générer une séquence de nombres aléatoires

    Bien choisir a et c de façon à avoir un cycle de longueur m

    10

    Génération d’une observation aléatoireà partir d’une distribution de probabilité

  • 8/18/2019 Generation Aleatoire

    6/11

    6

    11

    Une distribution simple et discrète Générer des nombres aléatoires

    entiers (ou encore continues) enutilisant le congruentiel linéaire parexemple (ou alea() sous Excel)

     Associer les variables générées aux

    sorties observées selon leur probabilitéd’occurrence.

    12

    00,6253

    00,7009

    00,5699

    00,9651

    10,1030

    10,3162

    10,2999

    00,7677

    00,9245

    00,7626

    10,1009

    00,7402

    Résultat (0: Pile ; 1: Face)Nombre aléatoire entre 0 et 1 (N)

    Exemple sous Excel : Le jet d’un jeton

    =ALEA() =SI(N

  • 8/18/2019 Generation Aleatoire

    7/11

    7

    13

    Méthode de la transformation

    inversePour des lois de probabilité plus compliquées :F(x) = P(X≤x)

    0

    1

    Observation aléatoire

    r=0.3478

    Générer un nombrealéatoire uniforme r entre0 et 1

    Résoudre F(x) = r etdéduire x Géométriquement En utilisant les tablesde probabilité Analytiquement

    14

    Loi exponentielle

    Loi exponentielle de moyenne

    α  

    α  

    α  

    α  

    −=

    −=−

    −=

    =−=

    )1ln(

    )1ln(

    1

    1)(

    r  x

    r  x

    r e

    r e xF 

     x

     x

    α  

    1

  • 8/18/2019 Generation Aleatoire

    8/11

    8

    15

    Loi Erlang (gamma) La somme de k variables exponentielles

    indépendantes, chacune de moyenneest une loi Erlang de paramètre k et demoyenne Étant donnée k nombres uniformes entre 0

    et 1 : r1, r2, r3,…rk  Une observation aléatoire à partir d’une loi

    d’Erlang est donnée par :

    α  

    1

    α  k 1

    ∑=   −

    −=

    i

    i

    r  x

    1

    )1ln(

    α  

    16

    Loi Normale Théorème de la limite centrale : une somme de n nombres

    aléatoires uniformes (loi uniforme entre 0 et 1) de moyenne½ et d’écart type a approximativement unedistribution normale de moyenne n/2 et d’écart type

    Étant donnée n nombres uniformes entre 0 et 1: r1, r2,r3,…rn

    : Loi normale (0,1).

    En particulier cette approximation est valide pour n=12

    Z* = µ + σ Z : loi normale (µ,σ )

    12n

    121

    12

    21

    n

    nr 

     z

    n

    i

    i∑=

    =

  • 8/18/2019 Generation Aleatoire

    9/11

    9

    17

    Loi ki2

    Une observation x qui suit une loi dedistribution de ki2 avec n degrés delibertés est la somme carré de nnombres aléatoires yi (i=1..n) quisuivent une loi normales de moyenne 0

    et d’écart type 1

    ∑ ==  n

    i   i y x

    1

    2

    18

    Ne pas oublier…EXCEL

    GÉNÉRER UN NOMBRE ALÉATOIREUNIFORME ENTRE 0 ET 1 ET UTILISEREXCEL POUR FAIRE L’INVERSE EN

    UTILISANT SES FONCTIONS PRÉDÉFINISLOI.NORMALE.STANDARD.INVERSE()LOI.NORMALE.INVERSE()KHIDEUX.INVERSE()FISHER.INVERSE()…

  • 8/18/2019 Generation Aleatoire

    10/11

    10

    19

    Méthode de l’Acceptation-Rejet

    Dans certains cas, il est impossibled’appliquer la méthode de latransformation inverse

    Méthode de l’Acceptation-Rejet

    20

    Exemple d’application

    Une distribution triangulaire dedensité f(x) /

    ≤≤

    ≤≤

    =

    sinon 0

    2x1si1)-(x-1

    1x0si x

    f(x)

  • 8/18/2019 Generation Aleatoire

    11/11

    11

    21

    Exemple d’application

    1. Générer un nombre aléatoire uniforme(réel) r1 entre 0 et 1. Prendre x=2r1(ainsi x ∈ [0,2])

    2.  Accepter x avec la probabilité définiecomme suit « x est l’observation

    aléatoire désirée ». Sinon Rejeter x

    ≤≤

    ≤≤=

    2x1si1)-(x-1

    1x0si xProbabilité 

    22

    3. Générer r2 un nombre aléatoireuniforme entre 0 et 1. r2 représentel’événement aléatoire d’acceptation oude rejet  Accepter x si r2 ≤ f(x) Rejeter x si r2 > f(x)Si x est rejeté, revenir à l’étape 1.

    Exemple d’application