Comment utiliser l`ordinateur pour faire de la combinatoire?

Transcription

Comment utiliser l`ordinateur pour faire de la combinatoire?
Comment utiliser l’ordinateur pour faire de la combinatoire?
Cyril Banderier
LIPN – UMR CNRS 7030, Institut Galilée,
Université de Paris 13.
{Cyril.Banderier}@lipn.univ-paris13.fr
Journées tunisiennes de combinatoire et probabilités, Monastir.
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
1 / 18
Algorithmes d’antan et d’aujourd’hui
calculs: divisions chez Sumériens, équation du second degré chez les Babyloniens
Euclide (≈ -300) : PGCD (simplification de fractions)
Archimède (-287 -212) : décimales de π
Al Khwarizmi ( ≈ 780-850) : Hisab al jabr w’al muqabala
On pourrait vouloir comparer l’efficacité de deux méthodes pour un problème donné...
Complexité en pire (avion, voiture), en moyenne (vie au quotidien),
en espace, en temps... (et ce, pour un algo donné ou pour une classe d’algo).
Indécidable dans l’absolu : Program Diablotin(n)= Si Arrêt(n) then boucle else exit.
Diablotin(nDiablotin )=????. (définitions rigoureuses : machine de Turing, codage de Gödel).
La conjecture de Syracuse : while n 6= 1 do if n pair then n := n/2 else n := 3n + 1
Heureusement, pour de nombreux algorithmes, on peut borner leur complexité (grand O, Θ, etc.).
En particulier, pour des algorithmes ”combinatoires”, on peut décrire précisément leur complexité
(notamment via la combinatoire analytique !).
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
2 / 18
Du discret au continu... et réciproquement !
−→
Euler
Cauchy
Knuth
(1707-1783)
(1789-1857)
(1938–)
1753
1825
1963
• Combinatoire analytique [...,Pólya, Flajolet–Odlyzko 80’s, ...]
Dénombrement de structures finies/récursives, établissement des comportements statistiques.
Outils : série génératrice & analyse complexe.
objet discret (structure combinatoire) −→ objet continu (série de variable complexe)
⇒ analyse (“Majorer, minorer, approcher”, éq. fonctionnelle, forme close)
asymptotique (singularités, cols, Mellin...)
⇒ lois du domaine discret (énumératives, lois limites,...)
1. étude de structures récursives −→ combinatoire
2. étude de l’aléa, dégager des lois universelles −→ analyse
3. automatisation de ces études −→ calcul formel ∼ algèbre
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
3 / 18
1963 : et Knuth créa l’analyse d’algorithmes...
hachage avec essais linéaires : fonction Q de Ramanujan ! (puis lien avec Airy : Flajolet & al.)
⇒ jolies applications de jolies mathématiques! ⇒ programme: analyse d’algorithmes en moyenne!
Philosophie Art of Computer Programming : inutile de hacker mais rentable de prendre du recul !
La complexité d’un algorithme repose sur la compréhension des structures combinatoires en jeu :
• arbres (binaires, k-aires, BST, tries, formules logiques, ...) [B. Chauvin]
• graphes (connexes, réguliers, dirigés, étiquetés, planaires, couplages, coloriages...) [P. Chassaing]
• fonctions contraintes de [1..n] dans [1..m] (permutations, surjections, ...) [P. Flajolet]
• mots d’un langage régulier (automate), langage algébrique (grammaire) [F. Bassino, H. Tafat]
• pavages, polyominos, empilements, fragmentations [R. Aguech]
• partitions d’ensembles (Bell), d’entiers (Ramanujan) [C. Mauduit]
• marche aléatoires, files d’attentes [G. Louchard]
Questions clefs : probabilité d’un motif, nb de composantes, taille/hauteur typique ?
Diablotin : Oui mais on s’en fout d’être subtils, la brute-force suffit de nos jours ! (Kasparov)
Loi de Moore : puissance des ordis double en 18 mois
Corollaire de Sedgewick : mais la taille des inputs double ! ⇒ on a besoin d’algo rapides !
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
4 / 18
La suite . . . ,103049,. . .
Le plus ancien problème de combinatoire !
Un problème de logique en 150 BC !
Plutarque (50-120) Moralia: Propos de Table
cite l’astronome Hipparque de Nicée (-190,-127) :
“Il y a 103049 façons de faire
des propositions composées à partir de 10 affirmations de base.”
Phrase restée mystérieuse jusqu’en 1992...
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
5 / 18
La suite . . . ,103049,. . .
Le plus ancien problème de combinatoire !
Un problème de logique en 150 BC !
Plutarque (50-120) Moralia: Propos de Table
cite l’astronome Hipparque de Nicée (-190,-127) :
“Il y a 103049 façons de faire
des propositions composées à partir de 10 affirmations de base.”
Phrase restée mystérieuse jusqu’en 1992...
or il y a 103049 arbres (arité ≥ 2) avec 10 feuilles. = nb de parenthésages d’un mot.
E.g., 11 arbres avec 4 feuilles:
xxxx, (xx)xx, x(xx)x, xx(xx), (xxx)x, (xxx)x,((xx)x)x, (x(xx))x,(xx)(xx),x((xx)x),x(x(xx))
Schröder, Vier combinatorische Probleme, 1870: calcul de sn : nb d’arbres avec n feuilles.
Comment Hipparque a-t-il pu trouver les nombres de Schröder ? Dessiner les 103049 arbres ???
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
5 / 18
La suite . . . ,103049,. . .
Le plus ancien problème de combinatoire !
Un problème de logique en 150 BC !
Plutarque (50-120) Moralia: Propos de Table
cite l’astronome Hipparque de Nicée (-190,-127) :
“Il y a 103049 façons de faire
des propositions composées à partir de 10 affirmations de base.”
Phrase restée mystérieuse jusqu’en 1992...
or il y a 103049 arbres (arité ≥ 2) avec 10 feuilles. = nb de parenthésages d’un mot.
E.g., 11 arbres avec 4 feuilles:
xxxx, (xx)xx, x(xx)x, xx(xx), (xxx)x, (xxx)x,((xx)x)x, (x(xx))x,(xx)(xx),x((xx)x),x(x(xx))
Schröder, Vier combinatorische Probleme, 1870: calcul de sn : nb d’arbres avec n feuilles.
Comment Hipparque a-t-il pu trouver les nombres de Schröder ? Dessiner les 103049 arbres ???
X
n∈N
sn z n =
p
1
(1 + z − 1 − 6z + z 2 )
4
(z − 6z + 1)y 0 (z) − (z − 3)y (z) + z − 1 = 0
2
(n + 2)sn+2 − 3(2n + 1)sn+1 + (n − 1)sn = 0
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
[Maple]
5 / 18
Devinette (le problème de la valise de Flajolet)
Peut-on coder les arbres binaires à n feuilles sur 1, 5n bits ?
Oui/non ? Comment ?
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
6 / 18
Hauteur des arbres binaires
triangulations d’un polygone (Euler) = mots bien parenthésés = (marche sur N à pas ±1)
bn := nombre d’arbres binaires avec n feuilles, on leur associe la série génératrice
X
B(z) =
bn z n
n≥0
La définition récursive donne directement la série génératrice :
B = F + B × N × B ⇒ B(z) = z + B 2 (z)
√
1 − 1 − 4z
= z + z 2 + 2z 3 + 5z 4 + 14z 5 + . . .
B(z) =
2
On obtient les nb de Catalan :
2n
n
n+1
≈ 4n (codage MacroHard sur 1, 5n bits?)
Hauteur des arbres binaires (hauteur maximale de la pile pour un parcours d’arbre)
itération de Mandelbrot : b[h+1] (z) = z + b[h] (z)2
Flajolet & Odlyzko (1982) arbres
√ binaires, t-aires... :
hauteur moyenne = n universalité !
Hn := hauteur cumulée des arbres binaires de taille n
P
P
H(z) = n≥0 Hn z n = h≥0 B(z) − b[h] (z)
H(z) = −2 ln(1 − 4z) + K + O(|1 − 4z|v )
√
n
théorème de transfert Hn ∼ 2 4n ⇒ Hn /Bn = 2 n
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
7 / 18
Combinatoire analytique et théorie des langages
Puzzle. (quantitatif) Tirons à pile ou face jusqu’à obtention du motif PFP. Combien de temps cela
prend-il ? Plus rapide avec le motif PPP, PFF, FFP ?
Indice exposés de Frédérique Bassino, Hanane Tafat
Indice (Kleene-Rabin-Scott, 1956) : automate ⇒ série génératrice rationnelle.
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
8 / 18
Combinatoire analytique et théorie des langages
Puzzle. (quantitatif) Tirons à pile ou face jusqu’à obtention du motif PFP. Combien de temps cela
prend-il ? Plus rapide avec le motif PPP, PFF, FFP ?
Indice exposés de Frédérique Bassino, Hanane Tafat
le
Indice (Kleene-Rabin-Scott, 1956) : automate ⇒ série génératrice rationnelle. En résolvant
P
système d’équations linéaires, on obtient
la série génératrice de probabilité F (z) =
pn z n et
P
donc la longueur moyenne est F 0 (1) =
npn
PPP: 14, PFP: 10, PFF & FFP : 8 tirages.
Puzzle. (qualitatif) Les mots de Lyndon forment-ils une langage context-free ?
Indice (Chomsky-Schützenberger, 1963) : context-free ⇒ série génératrice algébrique.
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
8 / 18
Combinatoire analytique et théorie des langages
Puzzle. (quantitatif) Tirons à pile ou face jusqu’à obtention du motif PFP. Combien de temps cela
prend-il ? Plus rapide avec le motif PPP, PFF, FFP ?
Indice exposés de Frédérique Bassino, Hanane Tafat
le
Indice (Kleene-Rabin-Scott, 1956) : automate ⇒ série génératrice rationnelle. En résolvant
P
système d’équations linéaires, on obtient
la série génératrice de probabilité F (z) =
pn z n et
P
donc la longueur moyenne est F 0 (1) =
npn
PPP: 14, PFP: 10, PFF & FFP : 8 tirages.
Puzzle. (qualitatif) Les mots de Lyndon forment-ils une langage context-free ?
Indice (Chomsky-Schützenberger, 1963)
P : context-free ⇒ série génératrice algébrique. Preuve:
Lyndon 6∈ Alg car L(z) = ln(1 − qz) + ... n’est pas algébrique. En effet, la formule d’inversion de
Moebius donne L(z) et ensuite l’analyse de singularité donne une asymptotique en q n /n alors que
les coefficients de fonctions algébriques ne peuvent être que du type q n nα (avec −α ∈ Q − N).
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
8 / 18
Propriétés structurelles des permutations
nb de permutations de {1, . . . , n} avec k cycles
P = Ens(Cyc)
X
F (z, u) =
fn (u)
n≥0
P
k ≥0
µn =
1
zn
= exp u ln
n!
1−z
kfn,k
fn
n
=
[ zn! ]∂u F (z, u)|u=1
n
[ zn! ]F (z, 1)
n
=
1
1
[ zn! ] 1−z
ln( 1−z
)
n!
= ln n + γ +
1
1
+ O( 2 )
2n
n
“Une permutation a ∼ ln n cycles en moyenne”
√
σn =
ln n + o(1)
√
1
lim Pr{Xn ≤ ln n + γ + x ln n} = √
n→∞
2π
Cyril Banderier (Univ. Paris 13)
Z
x
exp−t
2
/2
dt
−∞
Comment utiliser l’ordinateur pour faire de la combinatoire
9 / 18
Facteurs irréductibles d’un polynôme sur Fq
Pn = q n polynômes de degré ≤ n d’où P(z) =
factorisation unique =⇒ P = Ens(MultiEns)
P(z) = exp
1
1−qz
I(z)
I(z 2 )
I(z 3 )
+
+
+ ...
1
2
3
!
Inversion de Moebius :
I(z) =
X
k ≥1
P
k ≥2
µ(k )
X
1
ln P(z k )
= ln
+
...
k
1 − qz
k ≥2
analytique pour |z| < q −1/2 ⇒ z = 1/q singularité isolée de I(z)
µn , σn2 = ln n + O(1)
Extension d’Erdős-Kac aux semigroupes arithmétiques (Knopfmacher “Abstract number theory”)
cq n + O(q αn ) éléments irréductibles de taille n (axiom A: idéaux, modules finis)
=⇒ loi limite gaussienne avec µn = ln n et σn2 = ln n
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
10 / 18
Loi gaussienne des motifs, (tac)(c + g)∗ (cat)
Chomsky & Schützenberger (1963) : expression régulière ↔ automate ↔ série gén. rationnelle
Xn = nb d’occurrences de R dans un texte de longueur n
Guibas & Odlyzko (1981) : loi gaussienne pour R un mot (e.g. R = ababb)
Nicodème & Salvy & Flajolet (2000) : loi gaussienne pour R expression rationnelle
Preuve :
X
P(z, u) =
Pr(Xn = k ) u k z n
n,k ≥0
~L = zT (u)~L + ~1 =⇒ P(z, u) =
B(z, u)
det(I − zT (u))
Perron–Frobenius : ∃0 λ(u) de module maximal
P(z, u) ∼u→1
c(u)
=⇒ Pr(Xn = k ) ∼ c(u)λ(u)n
1 − zλ(u)
Hwang : quasi-powers theorem =⇒ loi gaussienne
E[Xn ] = µn + c1 + O(An )
Var[Xn ] = σ 2 n + c2 + O(An )
Z x
2
1
Xn − µn
√
Pr
≤x → √
exp−t /2 dt
σ n
2π −∞
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
11 / 18
Graphes aléatoires
Paul Erdős (1913-1996) &
Alfréd Rényi (1921-1970) :
les fondateurs de la théorie
des graphes aléatoires (1959).
• modèle probabiliste : binomial random graph G(n, p)
• modèle combinatoire : uniform random graph Γ(n, m)
Phénomène de seuil : apparition de la composante géante
Évolutions récentes : réseaux sociaux (Erdős number!), graphe du web, téléphonie mobile...
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
12 / 18
Cartes aléatoires
carte = graphe planaire dessiné sur la sphère.
Tutte voulait infirmer théorème des 4 couleurs,
pas réussi mais a pu compter les cartes
(années 1960).
Notre problème :
générer aléatoirement (uniformément) une carte 2-connexe (difficile!). Solution : faire du rejet !
Probabilistic algorithm to reach size n
1. generates a map of size f (n) ;
2. extracts largest component C
3. if its size 6= n, then goto 1 ;
4. output C.
Théorème. [C. Banderier/Ph. Flajolet/G. Schaeffer/M. Soria, 2002] L’algorithme le plus rapide est
alors donné par f (n) = 3n − x0 × (3n)2/3 . (x0 pic de la distribution d’Airy)
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
13 / 18
La loi d’Airy des cartes
George Biddell Airy (1801-1892)
(diffraction en optique)
Fonction d’Airy y 00 − zy = 0
Ai(z) =
1
2π
Z
+∞
ei(zt+t
3
/3)
dt =
−∞
∞
n+1
2(n + 1)π 1/3 n
1 X Γ( 3 )
sin
3 x
3
π32/3 n=0 n!
La distribution
d’Airy pour les cartes
A(x) = 2 exp − 23 x 3 xAi(x2 ) − Ai0 (x2 )
R +∞
−∞ A(x)dx = 1
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
14 / 18
Preuve pour l’algo à rejet
plus grande composante
2-connexe
équation fonctionnelle (Tutte) via la “décomposition par face”
carte planaire + racine (arête orientée) : Mn, k := # cartes avec n arêtes et face de degré k .
M(z, u) =
X
Mn,k z n u k
= 1 + u 2 zM(z, u)2 + uz
M(z, 1) − uM(z, u)
1−u
proba qu’une carte de taille n ait un noyau de taille k
Pr (Xn = k ) =
Z
Mn,k
1
= Ck
Mn
2iπ
Z
F (z)G(z)k H(z)n dz
γ
exp(n(a0 + a1 (z − τ ) + a2 (z − τ )2 + a3 (z − τ )3 + . . . ))dz
Γ
col double ⇔ a1 = 0 et a2 = 0, et on tombe alors sur Airy.
En cadeau bonus : loi stable universelle (seuil pour 2-SAT?), lien avec aire sous Brownien
(Louchard, Chassaing... )
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
15 / 18
méthode de Laplace, méthode du col
1
0.8
0.6
0.4
0.2
–1
–0.8
–0.6
–0.4
–0.2
0
0.2
0.4
x
0.6
0.8
1
(cf exposés de Kamel Mazhouda, Guy Louchard)
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
16 / 18
Holonomie, Bases de Gröbner
Manipulation d’une expression : par une “forme close” (mauvais !),
par son “polynôme annulateur” (bien !). → calcul formel
D-finie (Stanley–Lipshitz) = F (z) vérifie une équa diff à coeff. polynomiaux
⇐⇒ fn vérifie récurrence linéaire à coeff polynomiaux ⇐⇒ dérivées forment C(z)-EV de dim finie
Holonomie multivariée (Bernstein 1971): croissance des coefficients de la série de Hilbert :
dimC {x α f (β) où α + β ≤ N} = O(N d )
D-finie ↔ holonome (shift, dérivée, q-analogue, Mahler,...)
agréable : propriétés de clôture & utile : noethérianité (les algo finissent!)
Automatisation : Zeilberger “preuve automatique”,
Maple Gfun (Salvy-Zimmerman, 1992) et MGfun (Chyzak, 1998)
2
2 Pn
Pk
P
k 3
ζ(3) 6∈ Q : nk =0 kn n+k
= k =0 kn n+k
j=0 j
k
k
kif-kif : manipulation de fonctions hypergéométriques, de fonctions spéciales...
guess, encyclopédie des suites entières...
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
17 / 18
Conclusion
L’analyse d’algorithmes repose souvent sur les structures combinatoires sous-jacentes.
L’analyse complexe est un outil puissant.
La combinatoire analytique permet d’exhiber des comportements ”universaux”.
L’informatique a de nombreux liens avec combinatoire/analyse/proba/algèbre.
Bibliographie : Selected Papers on Analysis of Algorithms [Knuth]
Selected Papers on Computer Science [Knuth]
Analytic Combinatorics. [Flajolet & Sedgewick] (livre disponible on-line !)
http://algo.inria.fr/flajolet/Publications/book.pdf
https://gforge.inria.fr/frs/download.php/19600/cfmd-20090318.pdf
http://sagebook.gforge.inria.fr/
http://www.sagemath.org/
http://www.research.att.com/∼njas/sequences/
Cyril Banderier (Univ. Paris 13)
Comment utiliser l’ordinateur pour faire de la combinatoire
18 / 18