1.1. Générateurs congruentiels linéaires1.1 Générateurs congruentiels linéairesDans cette première section, on se propose d’étudier les principales caractéristiques <strong>de</strong>s générateurscongruentiels linéaires. Ce type <strong>de</strong> générateur produit <strong>de</strong>s suites <strong>de</strong> nombres pseudo-aléatoiressur [0, 1] à partir <strong>de</strong> l’algorithme suivant :Algorithme 1.1 – Générateur congruentiel linéaire –Étant donnés <strong>de</strong>ux paramètres entiers A et M,1. Choisir une racine x 02. à l’étape n > 0, construire x n = Ax n−1 [M] et retourner u n = xnMIl apparaît ici clairement que ce type <strong>de</strong> générateur est périodique, <strong>de</strong> pério<strong>de</strong> P strictementinférieure à M. Si l’on souhaite s’approcher le plus possible d’une distribution continue uniformesur [0, 1], il convient donc <strong>de</strong> choisir A et M <strong>de</strong> sorte que la pério<strong>de</strong> P soit la plus gran<strong>de</strong> possible.Choix <strong>de</strong>s paramètres A et MDans le cas où M est un nombre premier, le choix <strong>de</strong> A repose sur le résultat suivant :Théorème 1.1 Si M est un nombre premier, alors la suite x n , n ≥ 0, obtenue à partir <strong>de</strong> l’algorithme1.1 est <strong>de</strong> pério<strong>de</strong> M − 1 si et seulement si A est une racine primitive <strong>de</strong> M :A M−1 ≡ 1 [M] et A k−1 ≠ 1 [M] , ∀k < MLe générateur <strong>de</strong> nombres pseudo-aléatoires rndu(., .) utilisé par le logiciel G<strong>au</strong>ss exploite cerésultat. Les paramètres M et A prennent les valeurs suivantes :{MG = 2 31 − 1A G = 397204094Dans la mesure où un générateur <strong>de</strong> nombres pseudo-aléatoires est très fréquemment appelé <strong>au</strong>cours d’une expérience <strong>de</strong> <strong>Monte</strong> <strong>Carlo</strong>, un <strong>au</strong>tre critère intervenant dans le choix <strong>de</strong> M est letemps <strong>de</strong> calcul qu’il induit pour chaque élément <strong>de</strong> la suite (u n ) produite par l’algorithme 1.1. Lareprésentation interne <strong>de</strong>s nombres sous la forme <strong>de</strong> séquences binaires conduit à s’intéresser <strong>au</strong>xparamètres M s’écrivant sous la forme M = 2 β :– la division modulo M consiste alors à mettre à 0 l’ensemble <strong>de</strong>s bits <strong>de</strong> rang supérieur à β ;– la division par M est réalisée en décalant le bit représentatif <strong>de</strong> la virgule <strong>de</strong> β bits vers lag<strong>au</strong>che.Dans le cas où M est <strong>de</strong> la forme 2 β , le théorème suivant caractérise les coef<strong>fi</strong>cients multiplicatifsA permettant d’obtenir une suite x n , n ≥ 0, <strong>de</strong> pério<strong>de</strong> maximale :Théorème 1.2 Si M = 2 β , β ≥ 3, la pério<strong>de</strong> maximale P = 2 β−2 est réalisée si et seulement siA ≡ ±3[8] et x 0 ≡ 1[8].Les <strong>de</strong>ux théorèmes que nous venons d’énoncer dans le cas où M est premier ou <strong>de</strong> la forme2 β permettent <strong>de</strong> déterminer les sous-ensembles d’entiers <strong>au</strong>xquels le paramètre A doit appartenirsi l’on souhaite obtenir un générateur <strong>de</strong> pério<strong>de</strong> la plus gran<strong>de</strong> possible. Cette <strong>de</strong>rnière propriétéassure la production d’une suite <strong>de</strong> nombres pseudo-aléatoires dont la distribution est proched’une distribution uniforme sur [0, 1]. Néanmoins, si la dimension du problème <strong>au</strong>gmente et quel’on souhaite approcher une distribution uniforme sur [0, 1] k , k ≥ 2, rien n’assure que l’utilisationd’un coef<strong>fi</strong>cient multiplicatif A déterminé sur la seule base du théorème 1.1 dans le cas où M est2
1.2. Tests d’uniformitéGraphique 1.1. Structure latticielle du générateur RANDUpremier, ou du théorème 1.2 dans le cas où M est une puissance <strong>de</strong> 2, permette <strong>de</strong> produire unesuite présentant <strong>de</strong>s propriétés proches <strong>de</strong> celles <strong>de</strong> lois uniformes iid sur [0, 1] k .A titre d’exemple, on peut citer le cas du générateur RANDU. Ce générateur utilise les coef<strong>fi</strong>cientsA et M suivants : { M = 232A = 65539 = 2 16 + 3.M est ici <strong>de</strong> la forme 2 β et A ≡ 3[8] ce qui assure, <strong>com</strong>pte tenu du théorème 1.2 page ci-contre,que la suite <strong>de</strong> nombres u n ∈ [0, 1], n ≥ 0, obtenue à partir <strong>de</strong> RANDU est <strong>de</strong> pério<strong>de</strong> maximale.Cependant, on peut facilement montrer que (u n ) véri<strong>fi</strong>e :Or, puisque ∀n, u n ∈]0, 1[, on a :u n+1 − 6u n + 9u n−1 ≡ 0[1], ∀n.−6 < u n+1 − 6u n + 9u n−1 < 10,si bien que les triplets (u n−1 , u n , u n+1 ) produit par RANDU sont situés sur <strong>au</strong> plus 15 plans (cfgraphique 1.1) ! Une telle régularité va bien entendu à l’encontre <strong>de</strong>s propriétés attendues pour ungénérateur <strong>de</strong> nombres pseudo-aléatoires.1.2 Tests d’uniformitéIl existe <strong>au</strong> moins <strong>de</strong>ux types <strong>de</strong> tests d’uniformité différents pour les générateurs congruentielslinéaires. Le premier type <strong>de</strong> tests est spéci<strong>fi</strong>que <strong>de</strong>s générateurs congruentiels, fondé sur la structurelatticielle <strong>de</strong>s nombres qu’ils produisent. Dans le cas du générateur RANDU, nous venons <strong>de</strong> voir3