Post on 06-Aug-2020
Génération Aléatoire et Modèle de BoltzmannExpressivité et Effectivité
Michèle SoriaLIP6 – UPMC
Journées ALEA 2011
CIRM, Marseille, 7 Mars 2011
1 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 1/22
Génération Aléatoire
Experimenter→ Analyser et ConjecturerTest de conjectures, estimation d’ordres de grandeurvisualisation de formes et propriétés limites.
Validation de modèlesTest de modèles (graphes de terrain), signification dephénomènes observés (séquences biologiques).
Tests logicielscorrection, benchmark, robustessecouverture typique, génération intensive et automatique
Passage à l’échelle→ Efficacitéstructures de grande taille : 106 −−109
mots, arbres, graphes, pavages. . .
2 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 2/22
Méthodes génériques et automatiquesClasse combinatoire C
C : SpécificationCombinatoire
Objet aléatoireγ ∈ C
Random Number Gen.
Généricité : Classes Combinatoires→ Spécifications,Spécifications→ Équations fonctionnelles de SG,Effectivité : Générateur compilé à partir des spécifications, algorithmesprobabilistes simples
Méthode récursiveFlajolet, Van Cutsem, Zimmerman
Taille fixée, Génération uniforme
ΓC(n) ; P (γn) = 1/cn
Calcul et stockage des coef.
Complexité de génération :O(n log n)
Méthode de BoltzmannDuchon, Flajolet, Louchard, Schaeffer
Taille = v.a. ; mais unif. vs taille
ΓC(x) ; P (γ) ∝ e|γ|/C(x)
Calcul de valeurs de SG C(x)
Complexité linéaire pourgénération en taille approchée
3 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 3/22
Cadre : Combinatoire Analytique (FlSe09)
Classe combinatoire C, objets étiquetésSérie génératrice exponentielle C(z) =
∑γ∈C
z|γ||γ|! =
∑n≥0
cnzn
n!
SPÉCIFICATION DE C EQUATION FONCTIONNELLE S.G. C(z)
Construction Notation SG. exponentielleε 1 1
atome Z zUnion C = A ∪ B C(z) = A(z) + B(z)
Produit C = A× B C(z) = A(z)× B(z)
Séquence C = SEQ(A) C(z) = (1− A(z))−1
Ensemble C = SET(A) C(z) = exp(A(z))
Cycle C = CYC(A) C(x) = −Log (1− A(z))
Analogue pour classes non étiquetées, avec séries génératrices ordinaires.
4 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 4/22
Générateurs de Boltzmann (DuFlLoSc04)
Générateur d’objets étiquetés : Px (γ) = x|γ||γ|!C(x) , avec C(x) =
∑ x|γ||γ|! (x < ρ)
SPÉCIFICATION DE C ALGORITHME DE GÉNÉRATION ΓC(x)
Construction Algorithme de générationC = ∅ or Z ΓC(x) := ε or atom
C = A ∪ B ΓC(x) := Bernouilli(
A(x)A(x)+B(x)
); return ΓA(x) or ΓB(x)
C = A× B ΓC(x) := return < ΓA(x); ΓB(x) >etiq appels indépendants
C = SEQ(A) ΓC(x) := k ← Geometric(A(x)); return < ΓA(x), . . . , ΓA(x)︸ ︷︷ ︸k fois
>etiq
C = SET(A) ΓC(x) := k ← Poisson(A(x)); return < ΓA(x), . . . , ΓA(x)︸ ︷︷ ︸k fois
>etiq
C = CYCLE(A) ΓC(x) := k ← Logarithmic(A(x)); return < ΓA(x), . . . , ΓA(x)︸ ︷︷ ︸k fois
>etiq
α ∈ A ∪ B → Px (α) =A(x)
A(x)+B(x)x|α||α|!A(x) = x|α|
|α|!A(x)
γ ∈ C = A× B → Px (γ) = x|α||α|!A(x) ·
x|β||β|!B(x) · (α + β)! = x|α|+|β|
(|α|+|β|)!A(x)B(x) = x|γ||γ|!C(x)
γ = (α1, · · · , αk ) ∈ SEQ(A)→ Px (γ) = A(x)k (1−A(x)) · x|α1||α1|!A(x)
· · · x|αk ||αk |!A(x)
· (α1 + · · ·+αk )! =x|γ||γ|!C(x)
5 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 5/22
Exemples
Arbres binaires :B = Z + B × B
B(z) = z + B(z)2 = 1−√
1−4z2
Algorithm : ΓT (x)
if Bernoulli xB(x) then
Return �else
Return 〈 ΓB(x) , ΓB(x) 〉etiq ;end if
Arbres planaires :T = Z × SEQ(T )
T (z) = z1−T (z) = 1−
√1−4z2
Algorithm : ΓT (x)
k ← Geom(T (x)) ;forest ← 〈 ΓT (x), . . . , ΓT (x)︸ ︷︷ ︸
k times
〉etiq ;
Return �× forest ;
6 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 6/22
Générateurs de Boltzmann (DuFlLoSc04)
Génération libre, paramètre x
Algorithmes probabilistes : choix aléatoire selon lois de paramètre A(x)
Évaluation numérique des séries génératrices : calcul de l’oracle
Générateur aléatoire uniforme [0,1] + manipulation de réels
Théorème ( Complexité de la génération libre – DuFlLoSc04)
Le générateur de Boltzmann ΓC(x) d’une classe C, spécifiée récursivementsur les opérateurs ε , Z, ∪, ×, Seq, Set, Cycle, a une complexité arithmétiquelinéaire en la taille du résultat (sous hypothèse oracle en O(1)).
Algorithm : Geom-Poisson-Loga(x)
U ← uniform(); S ← 0; k ← 0 ;while U < S doS ← S + pk ; k ← k + 1 ; odReturn k ; O(k + 1)
Z × Seq 4
ZSeq 2
ZSeq 3
Z Z Z
Z
Z ZSeq 3
Z ZSeq 2
Z Z
Z
Z
7 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 7/22
Générateurs de Boltzmann non étiqueté (FlFuPi07)
Théorème (FlFuPi07)
Pour une classe C non étiquetée, spécifiée recursivement par desopérateurs ε , Z, ∪, ×, Seq, Set, Cycle, le générateur de Boltzmann ΓC(x) aune complexité arithmétique linéaire en la taille du résultat.
Thanks to Carine Pivoteau8 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 8/22
Distribution de la taille
Générateur libre→ taille objet engendré = v. aléatoire N
Px (N = n) =cnxn
n!C(x)et Ex (N) = x
C′(x)
C(x)
mais uniformité à taille donnée : Px (γn) = xn
n!C(x)
Distribution taille dépend de x , 0 < x < ρet du type de singularité SG
x=0.2
x=0.25
x=0.3
x=0.35
x=0.4
partitionsd'ensemble
x=0.38
x=0.48
x=0.58
x=0.68
surjections x=0.05 arbres
x=0.25
x=0.15
C(x) = e(ex−1) C(x) = 12−ex C(x) = 1−
√1−4x2
9 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 9/22
Contrôle de la taille
Contrôle de la taille : générer objets de taille exacte n, ou de de tailleapprochée [n(1− ε), n(1 + ε)],
Rejet : si la taille ne convient pas, rejeter et lancer une autre génération
Taille approchée : complexité moyenne (essentiellement) linéaire
Complexité de la génération contrôlée (DuFlLoSc04, FlFuPi07)
Soit C une classe combinatoire, spécifiée recursivement à l’aide desopérateurs ε , Z, ∪, ×, Seq, Set, Cyc. Le générateur avec rejet ΓC(x , n, ε) aune complexité moyenne en O(n) :
Distributions en cloche : 1 essai en moyenne pour engendrer un objetde taille ∈ [n(1− ε), n(1 + ε)]
Distributions plates : O(1) essais en moyenne pour engendrer un objetde taille ∈ [n(1− ε), n(1 + ε)]
Distributions piquées : O(n) essais mais pointage pour se ramener àdistribution plate
Mais O(n2) pour taille exacte (O(n) pour distributions en cloche).
10 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 10/22
Chaîne de traitement – Automatisation
EXPRESSIVITÉ
CALCULS
SpécificationCombinatoire
Taillevisée
Générateur
Oracle
Compilateur
Paramètres Objetaléatoire
11 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 11/22
Expressivité
Extensions à d’autres opérateurs combinatoiresCycle pointé non-étiqueté(BoFuKaVi07, PaSt07)Langages Réguliers avec Shuffle (DaPaRoSo10 )Produit Boite (RoSo09)Opérateurs différentiels (Roussel, BoSoRo11)Produit d’Hadamard O(n
√n)(BoGaRo10 )
. . .
Extensions à d’autres univers combinatoiresSemi-étiquetés et colorés (BoJa09)Classes multiplicatives Boltzmann-Dirichlet (BoBa11). . .
Génération BiaiséeBoltzmann multicritère (BoPo10)Boltzmann "uniforme biaisé". . .
12 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 12/22
Calculs, certification, implantation
Calculs de sériesOracle pour systèmes combinatoires récursifs etdifférentiels (Salvy, PiSaSo11)Rayon de convergence ?Paramètre en fonction de la taille visée ?Systèmes combinatoires multivariés ?. . .
Certificationarithmétique réelle :impact des erreurs (Duchon)arithmétique discrète : générateurs de Boltzman binaires(FlPeSo11). . .
ImplantationGénérateurs automatiquesBibliothèques dédiéesbio, tests, automates, arbres, réseaux. . .
13 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 13/22
I - Modèle de Boltzmann Discret
C : SpécificationCombinatoire
Random BIT Gen.
Objet aléatoireγ ∈ C
Lois discrètes
Généricité et EffectivitéComplexité moyenne booléenne en O(|γ|)
Simulateur parfait de v.a. discrètesX : Géométrique, Poisson, LogarithmiqueP (X = k) nécéssite O(k) bits en moyenne
14 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 14/22
Bernoulli et Géométrique
Algorithm : Bernoulli(p)
i ← 1 + Geom(1/2) ;Return Biti(p) ;
Algorithm : Geométrique(p)
k ← 0 ;do i ← 1 + Geom(1/2) ;if Biti(p) = 1 then Return k ;
else k ← k + 1 ;fi ;od ;
P (#bits = i) = 2−(i+1), µ = 2# bits indépendant de pBiti(p) : accès avec proba 1
2(i+1)
O(k+1) bits pour Geom(p)= k
15 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 15/22
Poisson et Logarithmique ( Machine de Buffon)
SGE (P) : P(x) =∑
Pnxn
n!
Algorithm : Schema Von Neuman (x ,P)
doN ← Geom(x) ;Tirer U1, . . . ,UN v.a. indep. unif. [0,1] ;if σ(U1, . . . ,UN) ∈ P then Return N ;od ;
P (VN(x ,P) = n) = 1P(x)
Pnxn
n! Boltz
U1 < . . . < Un
Pn = 1→ P(x) = ex
=⇒ Poisson
U1 < {U2, . . . ,Un}Pn = (n − 1)!→ P(x) = log 1
1−x=⇒ Logarithmique
Générateur discret (FlPeSo11) : Ui =∑
j>0 bj2−j , bj ∈ {0,1}Générer (U1, . . . ,UN ) avec le minimum de bits pour lesdifférencierConstruction d’un trie :
LC = nombre de bits consommés1 seul registre
16 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 16/22
Complexité binaire Schéma Von Neuman
Théorème (FlPeSo11)
– P classe de permutations et x paramètre, Schema von Neumann→
exactement v.a. discrete P (N = n) =1
P(λ)
Pnλn
n!.
– Nombre moyen d’itérations 1s , s = (1− x)P(x), et distrib. 1 + Geom(s).
– S.G. probabilités du nombre C de flips consommés par l’algorithme :
E(qC) =qH+(x , q)
1− qH−(x , q),
H+(z, q) = (1− z)∑∞
n=0Pnn! hn(q)zn, H−(z, q) = (1− z)
∑∞n=0
(1− Pn
n!
)hn(q)zn.
– Queues de distribution exponentielles.
En cours :• Extension autres lois• Intégration dans générateur de Boltzmann
17 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 17/22
II - Boltzmann Uniforme Biaisé
Générateur de Boltzmann Biaisé : ΓA(x)→ ΓA(ux)
Soit ΓA(x) gen. Boltzmann engendre α avec probabilité pα(x).Soit δA,x (t) densité de probabilité sur σ.Alors le générateur biaisé ΓA(ux), avec u tiré selon δA,x (t),engendre α avec probabilité qα(x) =
∫σ pα(tx)δA,x (t) dt .
ΓA( x) apa(x)
ΓA( x) apa(x)
qa(x)UδA,x (t)18 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 18/22
Générateur exponentiel Γ̂→ Générateur ordinaire Γ
ΓA(x) = Γ̂A(ux)
Générateur exponentiel : Γ̂A(x)
pα(x) = x |α||α|!
1AE (x)
, avec AE (x) =∑
α∈Ax |α||α|!
Générateur ordinaire : ΓA(x)
qα(x) = x |α|AO(x) , avec AO(x) =
∑α∈A x |α|
Biais : δA,x (t) = AE (xt)AO(x) e−t sur [0,∞)
P(ΓA(x) = α/n
)=
∫ ∞0
P(
Γ̂A(xt) = α). δA,x (t)dt
=
∫ ∞0
(xt)n
n!AE (xt)· AE (xt)
AO(x)e−tdt
=xn
AO(x)
∫ ∞0
tn
n!· e−tdt
=xn
AO(x)
19 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 19/22
Générateur pointé Γ̇→ Générateur de base Γ (sgE et sgO)
ΓA(x) = Γ̇A(ux)
Générateur pointé Γ̇A(x) : pα(x) = αx |α|xA′(x)
Générateur non pointé ΓA(x) : qα(x) = x |α|A(x)
Biais δA,x (t) = xA′(xt)A(x)−A(0) sur [0,1]
P(ΓA(x) = α/n>0
)=
∫ 1
0
n(xt)n
xtA′(xt)· xA′(xt)
A(x)− A(0)dt
=xn
A(x)− A(0)
∫ 1
0ntn−1du =
xn
A(x)− A(0)
• Générateur base Γ→ Générateur intégré Γ̄A(x) = ΓA(ux)
pα(x) = x |α|A(x) , qα(x) = x |α|+1
(|α|+1)∫ x
0 A(v), δA,x (t) = xA(xt)∫ x
0 A(v)sur [0,1]
20 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 20/22
Exemple : Arbres de Cayley
Enracinés : A = Z× SET(A) A(z) =∑
nn−1 zn
n!
ΓA(x) := k ← Poisson(A(x)),return Z × 〈 ΓA(x), ..., ΓA(x)︸ ︷︷ ︸
k
〉
Non enracinés B(z) =∑
nn−2 zn
n!→ zB′(z) = A(z)
ΓB(x) := tirer u sur [0, 1] selon densité A(tx)tB(x) ;
return ΓA(ux)
Enracinés croissants C = Z�× SET(C)→ C′(z) = eC(z)
→ C(z) = −Log (1− z)
ΓC(x) := tirer u sur [0, 1] selon densité xC′(tx)C(x)
k ← Poisson(C(ux)),
return Z × 〈 ΓC(ux), ..., ΓC(ux)︸ ︷︷ ︸k
〉
21 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 21/22
Nouveaux opérateurs
Combinaison de GB Biaisés : (ΓB(ux), ΓC(ux))→ ΓA(x)
ΓB(x) et ΓC(x) générateurs de Boltzmann pour B et C,δB,C,x (t) densité de probabilité sur σ ; A = B ? Cu tiré selon δB,C,x (t), (ΓB(ux), ΓC(ux))→ ΓA(x).
Produit Boîte :
A = B� × C → A(z) =
∫ z
0B′(t)C(t)dt
ΓA(x) := tirer u selon δ(t) = xB′(tx)C(tx)A(x) , sur [0,1]
β ← ΓB′(xu) ; γ ← ΓC(xu)return α = ProduitBoite(β, γ)
Produit ordonné :
A = B • C → A(z) =
∫ z
0B′(z − t)C(t)dt
ΓA(x) := tirer u selon δ(t) = B′(x−t)C(t)A(x) , sur [0,x]
β ← ΓB′(x − u) ; γ ← ΓC(u)return α = ProduitOrdonne(β, γ)
Généralisation :GB pour équationdifférentielle du 1er ordreT ′ = F(Z, T ) (BoRoSo11)
Application : GB pourlangages réguliers avecShuffle (DaPaRoSo10)
22 / 22 Michèle Soria Génération Aléatoire sous Modèle de Boltzmann 22/22