• Aucun résultat trouvé

IFT 6561 Simulation: aspects stochastiques

N/A
N/A
Protected

Academic year: 2022

Partager "IFT 6561 Simulation: aspects stochastiques"

Copied!
28
0
0

Texte intégral

(1)

IFT 6561

Simulation: aspects stochastiques

Fabian Bastin DIRO

Universit ´e de Montr ´eal

Automne 2013

(2)

Variables al ´eatoires uniformes

But: produire des suites de nombres qui ont l’air d’ ˆetre choisis compl `etement au hasard:

suites de bits:

011010100110110101001101100101000111...

suite d’entiers de 0 `a 100: 31, 83, 02, 72, 54, 26,. . . permutation al ´eatoire

suite de nombres r ´eels entre 0 et 1.

Fabian Bastin IFT6561

(3)

M ´ecanismes physiques

Lancer les d ´es, bouliers, roulettes. . .

bruit thermique dans les r ´esistances de circuits electroniques, capteurs de radiations, autres m ´ecanismes bas ´es sur la physique quantique,

microsecondes de l’horloge de l’ordinateur, ou d’un temps d’acc `es au disque, etc.

Contient de la vraie entropie (incertitude), mais encombrant, pas facilement reproduisible, pas toujours fiable, peu ou pas d’analyse math ´ematique possible. Certains de ces

m ´ecanismes sont brevet ´es. Plusieurs sont disponibles commercialement. Pour ameliorer les propri ´et ´es statistiques:

combiner des blocs de bits (XOR).

(4)

G ´en ´erateurs algorithmiques (ou pseudo-al ´eatoires)

Une fois les param `etres et l’ ´etat initial du g ´en ´erateur pseudo-al ´eatoire (GPA) choisis, la suite produite est compl `etement d ´eterministe.

Avantages: pas de mat ´eriel `a installer, un logiciel suffit;

souvent plus rapide; on peut facilement r ´ep ´eter la m ˆeme s ´equence.

D ´esavantages: ne peut pas cr ´eer de l’entropie. Il y a

n ´ecessairement des d ´ependances entre les nombres en sortie.

Fabian Bastin IFT6561

(5)

GPAs

Qualit ´es requises? D ´epend des applications.

Jeux d’ordinateurs personnels: l’apparence suffit.

Simulation stochastique (Monte Carlo): on veut que les propri ´et ´es statistiques du mod `ele math ´ematique soient bien reproduites par le simulateur.

G ´en ´erateurs algorithmiques

Loteries, machines de casinos, casinos sur internet,. . .: il ne faut pas que quiconque puisse obtenir un avantage pour inf ´erer les prochains num ´eros ou encore des combinaisons plus probables. Conditions plus exigeantes que pour la simulation.

G ´en ´erateurs algorithmiques + m ´ecanismes physiques

(6)

Besoins pour la simulation stochastique

Cryptologie: encore plus exigeant. L’observation d’une partie de la sortie ne doit nous aider d’aucune mani `ere `a deviner quoi que ce soit dans le reste.

G ´en ´erateurs algorithmiques non-lin ´eaires avec param `etres al ´eatoires

Souvent: contraintes sur les ressources disponibles pour les calculs.

On utilise habituellement un GPA qui imite une suiteU0,U1, U2,. . . de variables al ´eatoires ind ´ependantes de loi uniforme sur l’intervalle(0,1). Pour g ´en ´erer des v.a. selon d’autres lois, on applique des transformations `a cesUj.

Fabian Bastin IFT6561

(7)

Mythes

Mythe 1

Apr `es au moins 60 ans `a ´etudier les GPA et des milliers d’articles publi ´es, ce probl `eme est certainement r ´egl ´e et les GPA disponibles dans les logiciels populaires sont

certainement fiables.

Mythe 2

Dans votre logiciel favori, le generateur a une periode sup ´erieure `a 21000. Il est donc certainement excellent!

Exemple 1. un= (n/21000) mod 1 pourn=0,1,2, . . . Exemple 2. Subtract-with-borrow.

(8)

G ´en ´erateur U(0, 1): principe de base

D ´efinir une fonction de transition f :S → S,

o `uS est l’espace d’ ´etat, de cardinalit ´e finie.

L’ ´etat initial (germe, semence):s0. R ´ecurrence:

sn=f(sn−1).

Supposons de plus quef est p ´eriodique pour toutn≥τ connu (souvent ´egal `a 0), de p ´eriodeρ≤#S: sn+ρ=sn,∀n≥0. On supposeraτ =0

Espace de sortie:U = (0,1).

Fabian Bastin IFT6561

(9)

G ´en ´erateur U(0, 1): principe de base

Fonction de sortie

g :S → U

transforme l’ ´etatsndans la valeur de sortieun.

· · · −−−−→f sρ−1 f

−−−−→ s0 −−−−→f s1 −−−−→ · · ·f −−−−→f sn f

−−−−→ · · ·

g

y g

y g

y g

 y

· · · uρ−1 u0 u1 · · · un · · ·

Comment choisirf etg?

Buts: grandρ, bonne uniformit ´e, comportement ”al ´eatoire”.

(10)

Objectif

En observant seulement(u0,u1, . . .), il doit ˆetre difficile de distinguer cette suite de la r ´ealisation d’une suite de v.a. i.i.d.

uniformes surU.

Utopie: ne pas pouvoir distinguer mieux qu’en tirant `a pile ou face. Autrement dit, que la suite passe tous les tests

statistiques imaginables. Cela est impossible!.

On veut aussi: vitesse, facilit ´e d’implantation, suites

reproduisibles. Compromis entre vitesse / bonnes propri ´et ´es statistiques / (im)pr ´evisibilit ´e. Si l’ ´etat initials0est choisi au hasard, le GPA est comme une roulette g ´eante: pour g ´en ´erert nombres al ´eatoires, on tourne la roulette pour choisirs0, puis on retientu = (u0, . . . ,ut−1).

Machines de casinos et loteries: on r ´einitialises0tr `es souvent.

Fabian Bastin IFT6561

(11)

La loi uniforme sur [0, 1]

t

Choisirs0au hasard correspond `a choisir un point au hasard dans l’espace ´echantillonnal

Ψt ={u= (u0, . . . ,ut−1) = (g(s0), . . . ,g(st−1)),s0∈ S},

qui peut ˆetre interpr ´et ´e comme une approximation de[0,1]t. Crit `ere:Ψt doit recouvrir[0,1]t tr `es uniform ´ement pourt jusqu’ `a (disons)t0. Il nous faut une mesure d’uniformit e deΨt (ou une mesure de discr epance entre la loi empirique deΨt et la loi uniforme). Plusieurs d ´efinitions possibles.

(12)

La loi uniforme sur [0, 1]

t

Important: doit ˆetre facilement calculable sans g ´en ´erer les points.

Pour cela, il faut bien comprendre la structure math ´ematique de Ψt. Pour cette raison, la plupart des GPA utilis ´es en simulation sont bas ´es sur des r ´ecurrences lin ´eaires (simples).

Pourquoi ne pas insister queΨt lui-m ˆeme ressemble `a un ensemble de points choisis au hasard (e.g., ne soit pas trop uniforme)? En fait, on veut cela seulement pour la fraction infime deΨt que l’on utilise.

G ´en ´eralisation: mesurer l’uniformit ´e de ΨI ={(ui

1, . . . ,uit)|s0∈ S}pour une classe choisie d’ensembles d’indices (non successifs) de forme I={i1,i2, . . . ,it}. Pour une famille donn ´eeJ de

sous-ensembles de{0,1, . . . ,t}, on s’assure queΨI est suffisamment uniforme pour toutI∈ J.

Fabian Bastin IFT6561

(13)

G ´en ´erateur congruentiel lin ´eaire (GCL)

D `es 1948 furent introduits des g ´en ´erateurs de la forme ax +c mod m.

En supposant tout d’abord quec vaut 0 (comme dans l’approche propos ´ee par Lehmer), la p ´eriode maximale est m−1 et est atteinte si et seulement simest premier etaest une racine primitive dem.

r est une racine primitive demsi les puissances der (1,r,r2, r3,. . . ) g ´en `erent tous les entiers non-nuls modulom.

(14)

G ´en ´erateur congruentiel lin ´eaire (GCL)

Puisqu’il y am−1 entiers non nuls, ceci signifie que les premi `eresm−1 puissances der doivent ˆetre diff ´erentes, modulom.

De mani `ere ´equivalente, nous pouvons parler de l’ordre der. L’ordre d’une raciner demest le plus petit entier (strictement) positifx tel querx =1 modm.

r est une racine primitive si son ordre estm−1. Il est possible de montrer que ceci ´equivaut `a exiger quea(m−1)/p−1 est un multiple dempour chaque facteur premierpdem−1, ou encore le plus petit entierlpour lequelrl−1 est divisible parm estl=m−1.

Fabian Bastin IFT6561

(15)

G ´en ´erateur congruentiel lin ´eaire (GCL)

Les g ´en ´erateurs congruentiels lin ´eaires qui remplissent ces conditions sont appel ´es GCL’s multiplicatifs `a modulus premier.

Notons que la conditionmpremier suffit pour garantir

l’existence d’un g ´en ´erateur de p ´eriode maximale, en vertu du th ´eor `eme ci-dessous.

Th ´eor `eme.

Si m est premier, il existe une racine primitive pour m.

Il n’existe malheureusement pas de m ´ethode simple pour calculer ces racines.

(16)

GCL: exemple

Sim=7, alors 3 est une racine primitive demcar les puissances de 3 modulo 7 sont 1, 3, 2, 6, 4, 5, c’est- `a-dire chaque entier strictement compris entre 0 et 7. Mais 2 n’est pas une racine primitive demcar les puissances de 2 modulo 7 sont 1, 2, 4, 1, 2, 4, 1, 2, 4,. . .

Fabian Bastin IFT6561

(17)

G ´en ´erateur congruentiel lin ´eaire (GCL)

Sic6=0, il est possible d’obtenir une p ´eriode ´egale `am, sous les conditions expos ´ees dans le th ´eor ´eme ci-dessous. Le GCL a une p ´eriode pleine si et seulement si les trois conditions suivantes tiennent:

1 le seul entier positif qui divise de mani `ere exacte `a la fois m et c est 1;

2 si q est un nombre premier qui divise m, alors q divise a−1;

3 si 4 divise m, alors4divise a−1.

(18)

G ´en ´erateur standard minimal

Park et Miller ont propos ´e un g ´en ´erateur standard qu’ils ont appel ´e le Standard Minimal g ´en ´erateur Standard Minimal, apr ´es avoir test ´e divers g ´en ´erateurs connus au moment de leur

´etude.

Bien qu’il suffise pour les applications simples, les g ´en ´erateurs pr ´esent ´es dans les sections suivantes le surpassent largement, et par cons ´equent, il est d ´econseill ´e de l’utiliser pour des simulations complexes.

Le Standard Minimal est un g ´en ´erateur congruentiel lin ´eaire d ´efini par la r ´ecurrence

xn+1=16807xn mod(231−1).

Fabian Bastin IFT6561

(19)

Implantation de g ´en ´erateurs congruentiels lin ´eaires

Une difficult ´e principale est de calculerax mod mpour de grandsm, ce qui entraˆıne des risques de d ´ebordement de registres.

Premi `ere approche. Factorisation approximative.

Cette m ´ethode est valide si

a2<m ou

a=bm/ic,

aveci2<m, et proc `ede par des calculs sur des entiers.

(20)

Factorisation approximative

Pr ´ecalculonsq:=bm/acetr :=m moda, puis y :=bx/qc;

x :=a(x−yq)−yr.

Six <0, nous posonsx :=x+m. Justification:

ax modm = (ax − bx/qcm) mod m

= (ax − bx/qc(aq+r)) modm

= (a(x− bx/qcq)− bx/qcr) modm

= (a(x mod q)− bx/qcr) modm.

Sous les conditions pos ´ees, il est imm ´ediat de noter que toutes les quantit ´es interm ´ediaires demeurent entre−metm.

Fabian Bastin IFT6561

(21)

Factorisation approximative: implantation

En C, la proc ´edure peut s’exprimer comme suit:

long q, r, y;

q = m/a;

r = m%a;

y = x/q;

x = a*(x-y*q)-y*r;

if (x < 0) x += m;

(22)

Calculs en point flottant, double pr ´ecision.

La proc ´edure est valide si tous les entiers `a consid ´erer peuvent ˆetre repr ´esent ´es de mani `ere exacte en passant en calcul flottant. En particulier, si la double pr ´ecision fait appel `a 64 bits, et suit la norme IEEE, la proc ´edure suivante est correcte si am<253:

doublem,a,x,y; intk;

y =a∗x; k =by/mc; x =y−k∗m;

Fabian Bastin IFT6561

(23)

D ´ecomposition en puissances de 2.

Supposons quea=±2q±2r etm=2e−hpourhpetit. Dans ce cas,

ax modm=±2qx modm+±2rx modm.

Pour calculery =2qx modm(le calcul de 2rx est similaire), nous d ´ecomposonsx enx0+2e−qx1.

x = x1 x0

q bits (e−q)bits

(24)

D ´ecomposition en puissances de 2.

Pourh=1 (Wu, 1997), on obtienty en permutantx0etx1. En effet,

2qx modm=2q(x0+2e−qx1) mod (2e−1)

=2qx0+ [2ex1 mod (2e−1)]

=2qx0+x1.

Fabian Bastin IFT6561

(25)

D ´ecomposition en puissances de 2.

Pourh>1 (L’Ecuyer et Simard 1999), nous avons de la m ˆeme mani `ere

y =2q(x0+2e−qx1) mod(2e−h) = (2qx0+hx1) mod(2e−h).

Sih<2qeth(2q−(h+1)2−e+q)<m, commex0≤2e−q et x1≤2q, nous avons

2qx0≤2e−2q <m.

De plus, ´etant donn ´e que 2e−qx1≤m−1, nous avons hx1≤h(m−1)/2e−q=h(2e−h−1)/2e−q

=h(2q−(h+1)2−e+q)<m, et par cons ´equent chaque terme est strictement inf ´erieur `am.

L’op ´eration modulo revient `a soustrairemsi la somme est≥m.

(26)

D ´ecomposition en puissances de 2: implantation

#define m 1073741789 /* 2ˆ30 - 35 */

#define h 35

#define q 15

#define emq 15 /* e - q */

#define mask1 32767 /* 2ˆ(e-q) - 1 */

#define r 13

#define emr 17 /* e - r */

#define mask2 131071 /* 2ˆ(e-r) - 1 */

#define norm 1.0/m long x;

Fabian Bastin IFT6561

(27)

D ´ecomposition en puissances de 2: implantation

double axmodm () {

unsigned long k, x0, x1;

x0 = x & mask1;

x1 = x >> emq;

k = (x0 << q) + h*x1;

x0 = x & mask2;

x1 = x >> emr;

k += (x0 << r) + h*x1;

if (k < m) x = k;

else if (k < 2*m) x = k-m;

else x = k - 2*m;

return x*norm;

}

(28)

D ´ecomposition en puissances de 2.

L’Ecuyer et Simard ont toutefois d ´emontr ´e que ces g ´en ´erateurs pr ´esentent des faiblesses statistiques s’ils sont utilis ´es de mani `ere directe.

Fabian Bastin IFT6561

Références

Documents relatifs

• La première action correspond à une force parallèle à la vitesse et de sens contraire ; la seconde action correspond à une force perpendiculaire à la vitesse et peut

Le troisi`eme suit le mˆeme sch´ema que les deux premiers mais les valeurs dans l’´enonc´e sont g´en´er´ees al´eatoirement par Giac.. Les calculs sont fait lors de la compilation

Exemple: Soit W le temps d’attente d’un client pris au hasard dans un mod` ele de file M/M/s avec taux d’arriv´ ee λ, taux de service µ, s &gt; λ/µ serveurs, et qui ´ evolue

Certains tests cependant sont sp ´ecifiquement conc¸us pour tester les corr ´elations entre les points produits par un g ´en

Que vaut la p´ eriode de sortie T M LI par rapport ` a la fr´ equence d’entr´ ee F OSC en fonction du nombre de bits de sortie du compteur et la valeur de pr´ edivision P REDIV

Pour chaque instruction de tˆete, extraire le bloc de base qui va de l’instruction de tˆete, inclusivement, jusqu’`a la prochaine instruction de tˆete, exclusivement, ou jusqu’`a

Distinction entre e et e autoinduit : il ne faut pas confondre l’ induction due ` a un champ magn´ etique ext´ erieur et celle due au propre champ cr´ e´ e par le circuit lui-mˆ

34 Presse Libérationtourne une page.Troisquestions à son financier, Edouardde Rothschild.A suivre 38 Transport aérien High-techà bord pour clientèle d'affaires.