previous up next contents index
Previous: 2.2 Echantillons et permutations Up: 2. Générateurs non uniformes Next: 2.4 Compléments sur la   Contents   Index

Subsections

2.3 Présentation du problème

2.3.1 Un exemple simplifié

Afin de ne pas masquer les principes mis en oeuvre par des détails techniques, nous allons commencer par un exemple volontairement simpliste. Considérons la variable aléatoire maths dont la pdf (densité de probabilité) maths est donné par la figure 2.3, c'est à dire :

maths

Figure 2.3: Une densité de probabilité particulièrement simple.
maths

Nous allons exposer plusieurs méthodes permettant de générer de pseudo-instanciations de cette variable, puis nous comparerons leurs efficacités respectives.


2.3.2 Inversion de la fonction de repartition

Considérons la fonction de répartition (cdf) de la variable maths, c'est à dire la fonction définie par maths, ainsi que sa fonction réciproque. On obtient la figure 2.4, c'est à dire :

maths

Figure 2.4: Fonction de répartition.
maths

Pour une fonction maths plus générale, la fonction maths serait seulement croissante et non pas continue strictement croissante comme pour cet exemple. En pareil cas, la fonction maths doit être définie par maths, et on a alors la propriété suivante : si la variable maths est uniformément répartie sur maths alors la variable maths est distribuée selon la loi maths, d'où l'algorithme 22:


maths

On prendra garde à ne pas confondre ce résultat avec l'affirmation "si la variable maths est distribuée selon la loi maths alors la variable maths est uniformément distribuée" car cette affirmation est le plus souvent fausse.

Bien entendu, l'efficacité de l'algorithme 22 obtenu dépend de la facilité avec laquelle on peut calculer la fonction de répartition inverse pour la loi considérée.

2.3.3 Méthode de tir (Monte-Carlo)

Lorsque la fonction maths est bornée et à support fini, comme tel est le cas pour notre exemple, on peut utiliser l'algorithme suivant. On pose maths, maths et maths. On choisit alors uniformément un point maths dans le rectangle maths et on recommence jusqu'à ce que maths. On obtient donc un point uniformément réparti dans la portion de plan limitée par maths, maths. La probabilité marginale d'obtenir une valeur maths particulière est donc proportionnelle à maths, ce qui est précisément ce que l'on cherche. Pour notre exemple, on obtient l'algorithme 23.


maths

L'efficacité de cet algorithme dépend du nombre moyen de tirs nécessaires pour atteindre un point utile, c'est à dire de la quantité maths, et de la facilité de calcul de la frontière. Dans notre exemple, il faut coder le test de façon à ce que la décision de rejet soit prise immédiatement si maths.


2.3.4 Méthode des quotients

Indiquons maintenant une troisième méthode, dont nous verrons ultérieurement l'efficacité. Définissons une région du plan maths par les conditions maths et maths. Pour l'exemple en cours, on obtient la figure 2.5, soit maths et maths comme équation du bord supérieur de la zone.

Figure 2.5: Zone en maths pour la méthode des quotients.
maths

Si nous passons en polaire, avec maths et maths, nous obtenons maths. La section de cône définie par maths et maths a donc pour aire maths, soit maths. On a donc le résultat suivant : si les points maths sont choisis uniformément dans la zone grisée, la densité de probabilité du quotient maths est proportionnelle à maths. Comme maths, cette proportionalité est en fait une égalité, et l'on est conduit à l'algorithme 24.


maths

Ici encore, l'efficacité de l'algorithme dépend du nombre moyens de tirs nécessaires pour atteindre un point utile et de la facilité de calcul de la frontière. Avec le programme indiqué ci-dessus, l'efficacité du tir est de 50%. On peut améliorer ce résultat en constatant que la valeur maximale de maths est maths et non maths. Il est donc préférable d'écrire : maths, portant l'efficacité du tir à 77%.


2.3.5 Un procédé spécifique

Il existe toujours une méthode plus rapide que les méthodes déja utilisées. Ainsi l'algorithme 25 donne avec probabilité maths une valeur positive puisque deux valeurs successives de rand() sont indépendantes. La densité de probabilité conditionnelle d'une telle valeur maths est alors proportionnelle à la probabilité de non rejet, c'est à dire maths. De même la densité de probabilité d'un résultat maths est maths. On en déduit que spec() est un pseudo-générateur pour la loi maths. Cet algorithme est très rapide puisqu'il n'utilise aucune fonction auxiliaire.


maths

2.3.6 Bilan des diverses méthodes indiquées.

A titre d'illustration, nous avons exécuté pour chacun de ces quatres algorithmes, 900 lots de 900 appels. Nous avons obtenu les histogrammes par lots de la figure 2.6, et aux durées d'exécution suivantes :



algorithme spécial inv_frep m_carlo rapport
durée 165.600 268.902 468.505 498.110


Figure 2.6: Exemples d'histogrammes par lots.
maths maths maths

On constate que, dans cet exemple où les calculs sont très réduits, le nombre d'appels au générateur uniforme est le principal critère de rapidité, mais il est clair que cette situation peut changer avec des fonctions de densité moins simplistes.


previous up next contents index
Previous: 2.2 Echantillons et permutations Up: 2. Générateurs non uniformes Next: 2.4 Compléments sur la   Contents   Index


douillet@ensait.fr
2005-01-04