Cours1 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 64

Probabilités, Statistiques, Combinatoire

Philippe Duchon

Université de Bordeaux – Licence Informatique

2018-2019
Administratif

I Équipe enseignante : Ph. Duchon, A. Durand, F. Kardos, F.


Mazoit, R. Pascalie, A. Strock, G. Sénizergues
I Cours (vendredi après-midi), TD, TD Machine (16×1h20 TD,
5×1h20 TDM)
I Évaluation : 1 DS (semaine 12, 20 mars) ; 1 examen
(coeff. 1/2 chacun ; coeff. 1 exam si meilleur)
I Documents en DS/Examen : une feuille A4 recto-verso,
manuscrite, à votre nom.
I En session 2 : même chose (on ne refait pas le DS)
I Page web du cours :
https://www.labri.fr/perso/duchon/Probas/
(diapos, feuilles TD et TM, archives)
Équipe enseignante

I Cours : Ph. Duchon


I TD :
I INF A1 : R. Pascalie
I INF A2 : A. Durand
I INF A3 : G. Sénizergues
I INF A4 : F. Kardos
I INF A5 : F. Mazoit
I MI A1 (+CMI) : Ph. Duchon
I MI A2 : A. Strock
I TDM : les mêmes, plus
I TM A12 A21 : Ph. Duchon
I TM A32 A41 : F. Mazoit
I TM A52 : F. Kardos
Contenu de l’UE
Probabilités et statistiques : disciplines mathématiques censées
étudier les situations d’incertitude (“le hasard”, c’est quoi ?)
I Probabilités : on définit un modèle pour une expérience, et
on prédit par le calcul ce qu’il est plus ou moins plausible
d’observer
Contenu de l’UE
Probabilités et statistiques : disciplines mathématiques censées
étudier les situations d’incertitude (“le hasard”, c’est quoi ?)
I Probabilités : on définit un modèle pour une expérience, et
on prédit par le calcul ce qu’il est plus ou moins plausible
d’observer
I Statistiques : à partir de données concrètes, on essaie de
diagnostiquer
I décrire de manière concise les données observées
I proposer des valeurs plausibles pour les paramètres d’un
modèle
I “est-ce que les données sont raisonnablement compatibles avec
l’hypothèse que. . .”
Contenu de l’UE
Probabilités et statistiques : disciplines mathématiques censées
étudier les situations d’incertitude (“le hasard”, c’est quoi ?)
I Probabilités : on définit un modèle pour une expérience, et
on prédit par le calcul ce qu’il est plus ou moins plausible
d’observer
I Statistiques : à partir de données concrètes, on essaie de
diagnostiquer
I décrire de manière concise les données observées
I proposer des valeurs plausibles pour les paramètres d’un
modèle
I “est-ce que les données sont raisonnablement compatibles avec
l’hypothèse que. . .”
I Combinatoire : discipline (mathématique ? informatique ?)
qui étudie (et énumère, compte. . .) les objets discrets
(combinaisons, mots, chemins, arbres. . .)
I parfois un préalable indispensable à certains calculs de
probabilités
I utilisée en particulier pour analyser la complexité (en moyenne,
le plus souvent) des algorithmes
Pourquoi un cours de probas-stats en informatique ?
Probabilités et statistiques sont présentes dans de nombreux
sous-domaines de l’informatique, aussi bien au niveau de la théorie
que des applications. . . difficile de les éviter !
I Conception d’algorithmes : énormément d’algorithmes
“probabilistes” (faisant appel au hasard dans la définition de
l’algorithme) existent qui ont des performances bien meilleures
que ce qu’atteignent des algorithmes “déterministes” d’un
degré comparable de simplicité.
Pourquoi un cours de probas-stats en informatique ?
Probabilités et statistiques sont présentes dans de nombreux
sous-domaines de l’informatique, aussi bien au niveau de la théorie
que des applications. . . difficile de les éviter !
I Conception d’algorithmes : énormément d’algorithmes
“probabilistes” (faisant appel au hasard dans la définition de
l’algorithme) existent qui ont des performances bien meilleures
que ce qu’atteignent des algorithmes “déterministes” d’un
degré comparable de simplicité.
I Analyse d’algorithmes : les techniques probabilistes
permettent de faire des analyses assez précises de la
complexité d’algorithmes (QuickSort n’est pas juste un bon
algorithme parce que, en moyenne, il est rapide ; on montre
que très souvent, il est rapide)
Pourquoi un cours de probas-stats en informatique ?
Probabilités et statistiques sont présentes dans de nombreux
sous-domaines de l’informatique, aussi bien au niveau de la théorie
que des applications. . . difficile de les éviter !
I Conception d’algorithmes : énormément d’algorithmes
“probabilistes” (faisant appel au hasard dans la définition de
l’algorithme) existent qui ont des performances bien meilleures
que ce qu’atteignent des algorithmes “déterministes” d’un
degré comparable de simplicité.
I Analyse d’algorithmes : les techniques probabilistes
permettent de faire des analyses assez précises de la
complexité d’algorithmes (QuickSort n’est pas juste un bon
algorithme parce que, en moyenne, il est rapide ; on montre
que très souvent, il est rapide)
I Analyse statistique des données : classification,
apprentissage. . . font beaucoup appel aux probabilités et aux
statistiques ; idem dans beaucoup de branches de l’intelligence
artificielle (IA)
Pourquoi des probas (suite)

I L’algorithme PageRank (Google) est au départ basé sur


l’application de la théorie des chaînes de Markov (i.e. des
probabilités)
Pourquoi des probas (suite)

I L’algorithme PageRank (Google) est au départ basé sur


l’application de la théorie des chaînes de Markov (i.e. des
probabilités)
I De manière générale, on peut estimer que les compétences
suivantes font parties du bagage naturel d’un informaticien :
I programmer (simuler) un modèle probabiliste simple à des
fins d’évaluation et de test
I analyser (calculer, prédire) les caractéristiques prévisibles d’un
modèle probabiliste.
Pourquoi des probas (suite)

I L’algorithme PageRank (Google) est au départ basé sur


l’application de la théorie des chaînes de Markov (i.e. des
probabilités)
I De manière générale, on peut estimer que les compétences
suivantes font parties du bagage naturel d’un informaticien :
I programmer (simuler) un modèle probabiliste simple à des
fins d’évaluation et de test
I analyser (calculer, prédire) les caractéristiques prévisibles d’un
modèle probabiliste.
I En TD : des exercices de probas classiques
Pourquoi des probas (suite)

I L’algorithme PageRank (Google) est au départ basé sur


l’application de la théorie des chaînes de Markov (i.e. des
probabilités)
I De manière générale, on peut estimer que les compétences
suivantes font parties du bagage naturel d’un informaticien :
I programmer (simuler) un modèle probabiliste simple à des
fins d’évaluation et de test
I analyser (calculer, prédire) les caractéristiques prévisibles d’un
modèle probabiliste.
I En TD : des exercices de probas classiques
I En TDM : on programme des simulations ; aide pour
développer l’intuition probabiliste
Partie I : Combinatoire
Vocabulaire et notations : ensembles
Les notions et notations suivantes sont supposées connues :
I Description d’ensemble : soit en listant ses éléments
(E = {1, 2, 3, 4, 5, 6}), soit par une description des éléments
(E est l’ensemble des entiers compris entre 1 et 6)
I Notation : x ∈ E (“x appartient à E ” ; “E contient x ”) pour
dire que x est un élément de l’ensemble E
I Notation : A ⊂ B (“A est inclus dans B”, “B inclut A”, ou
“A est un sous-ensemble de B”) pour dire que tout élément
de A est aussi un élément de B (y compris si A = B)
I Description d’un sous-ensemble : “ensemble des éléments
de A qui satisfont la propriété P”, {x ∈ A : P(x )}
I Ensembles particuliers : ∅, N, Z, Q. . . (en notations
françaises, N contient 0 ; ce n’est pas l’usage en anglais)
I Convention : [[a, b]] désigne l’ensemble de tous les entiers
compris entre a et b (inclus).
Vocabulaire et notations : opérations ensemblistes
I Opérations ensemblistes : union, intersection, produit
cartésien : A ∪ B, A ∩ B, A × B ; An .
I Différence : A − B = {x ∈ A : x ∈ / B} (attention, ça ne
suppose pas que B soit inclus dans A) ; peut aussi être noté
A\B.
I P(A) = {B : B ⊂ A} : “powerset” de A, l’ensemble de tous les
sous-ensembles de A (c’est bien un ensemble d’ensembles : un
ensemble dont les éléments sont eux-mêmes des ensembles).
I Exemple : P({1, 2, 3}) =
{∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}
I Notations d’unions ou d’intersections itérées : si pour
S i ∈ I, Ai est un ensemble,
chaque
I i∈I Ai est l’ensemble de tous les éléments qui sont dans au
moins un des ensembles Ai ;
I i∈I Ai est l’ensemble de tous les éléments qui sont dans tous
T
les ensembles Ai .
I L’ensemble de toutes les fonctions (totales) de A vers B
est parfois noté B A
Ensembles finis, cardinal

I Notion d’ensemble fini ou infini ; pour un ensemble fini A, son


cardinal est son nombre d’éléments, noté #A.
I Deux ensembles sont disjoints si leur intersection est
l’ensemble vide ; quand on parle de plus de deux ensembles, il
faut distinguer deux notions :
I des ensembles (Ai )i∈I sont deux à deux disjoints si, quelques
soient les deux ensembles Ai et Aj avec i 6= j, ces deux
ensembles sont disjoints (aucun élément n’appartient à plus
d’un des ensembles) ;
I des ensembles (Ai )i∈I sont globalement disjoints si leur
intersection à tous est vide (aucun élément n’appartient à
chacun des ensembles).
I (des ensembles deux à deux disjoints sont globablement
disjoints, mais la réciproque n’est pas vraie)
Vocabulaire sur les fonctions
E et F deux ensembles, finis ou infinis ; f une fonction de E vers F
I si x ∈ E , f (x ) ∈ F est son image par f ; et si f (x ) = y , x est
un antécédent par f (il peut a priori y en avoir plus d’un).
I Notations : si A ⊂ E , f (A) = {y ∈ F : ∃x ∈ A, y = f (x )}
(image de l’ensemble A par F ) ; si B ⊂ F ,
f −1 (B) = {x ∈ E : f (x ) ∈ B} (“image réciproque” ou
“préimage” de l’ensemble B par f )
I f est surjective (une surjection) si chaque y ∈ F a au moins
un antécédent.
I f est injective (une injection) si chaque y ∈ F a au plus un
antécédent ; autrement dit, si f (x ) = f (x 0 ), alors x = x 0 .
I f est bijective (une bijection) si elle est à la fois injective et
surjective ; autrement dit, chaque y ∈ F a exactement un
antécédent.
(Une bijection entre deux ensembles établit une correspondance
exacte entre leurs éléments)
Injections, bijections, et cardinaux
L’existence d’injections ou de surjections de E et F se traduit sur
la finitude des ensembles, et sur leurs cardinaux :
I S’il existe une surjection de E vers F , et que E est fini, alors
F est fini, et #E ≥ #F .
I S’il existe une injection de E vers F , et que F est fini, alors E
est fini, et #E ≤ #F .
I Par conséquent, s’il existe une bijection de E vers F , et que
l’un des deux ensembles est fini, alors l’autre l’est également,
et #E = #F .
I Réciproquement : si #E = #F , alors il existe une bijection de
E vers F .
I Injections et ensembles finis : si E et F sont deux ensembles
finis, avec #E = #F , et que f est une injection de E vers F ,
alors f est forcément une bijection.
I Attention : la propriété ne serait pas vraie pour des
ensembles infinis : penser à E = F = N, et à la fonction
f (n) = n + 1 ; ou à E = F = Z, et f (n) = 2n.
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x

I Cette fonction g est appelée réciproque de f , aussi notée


f −1 ; c’est une bijection de F vers E .
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x

I Cette fonction g est appelée réciproque de f , aussi notée


f −1 ; c’est une bijection de F vers E .
I On a systématiquement :
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x

I Cette fonction g est appelée réciproque de f , aussi notée


f −1 ; c’est une bijection de F vers E .
I On a systématiquement :
I pour tout x ∈ E , g(f (x )) = x
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x

I Cette fonction g est appelée réciproque de f , aussi notée


f −1 ; c’est une bijection de F vers E .
I On a systématiquement :
I pour tout x ∈ E , g(f (x )) = x
I pour tout y ∈ F , f (g(y )) = y
Réciproque d’une bijection
E et F deux ensembles ; on suppose que f est une bijection de E
vers F .
I On peut définir une fonction g : F → E de la manière
suivante : pour tout y ∈ F , il existe un unique x ∈ E tel que
f (x ) = y (puisque f est une bijection) ; on pose

g(y ) = x

I Cette fonction g est appelée réciproque de f , aussi notée


f −1 ; c’est une bijection de F vers E .
I On a systématiquement :
I pour tout x ∈ E , g(f (x )) = x
I pour tout y ∈ F , f (g(y )) = y
I Intuitivement : si f est une fonction de codage pour des
objets, f −1 est la fonction de décodage correspondante.
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
I Pour A = B, on note aussi A2 pour A × A.
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
I Pour A = B, on note aussi A2 pour A × A.
I Les couples d’éléments de A sont aussi, en fait, les suites de
longueur 2 d’éléments de A.
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
I Pour A = B, on note aussi A2 pour A × A.
I Les couples d’éléments de A sont aussi, en fait, les suites de
longueur 2 d’éléments de A.
I Plus généralement, An (pour un entier n > 0) est l’ensemble
des séquences (ou suites) de longueur n, d’éléments de
A.
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
I Pour A = B, on note aussi A2 pour A × A.
I Les couples d’éléments de A sont aussi, en fait, les suites de
longueur 2 d’éléments de A.
I Plus généralement, An (pour un entier n > 0) est l’ensemble
des séquences (ou suites) de longueur n, d’éléments de
A.
I Au lieu de séquences, on peut aussi parler de mots : en
considérant A comme un “alphabet” dont les éléments sont
appelés “lettres”, on appelle également “mots de longueur n
sur l’alphabet A” les éléments de An . Par convention, A0
contient un unique élément, noté ε (“le mot vide”).
Séquences et mots
I A × B est l’ensemble des couples formés d’un élément de A,
puis d’un élément de B : A × B = {(a, b) : a ∈ A, b ∈ B}
(dans un couple, “l’ordre compte” : (a, b) 6= (b, a) si a 6= b)
I Pour A = B, on note aussi A2 pour A × A.
I Les couples d’éléments de A sont aussi, en fait, les suites de
longueur 2 d’éléments de A.
I Plus généralement, An (pour un entier n > 0) est l’ensemble
des séquences (ou suites) de longueur n, d’éléments de
A.
I Au lieu de séquences, on peut aussi parler de mots : en
considérant A comme un “alphabet” dont les éléments sont
appelés “lettres”, on appelle également “mots de longueur n
sur l’alphabet A” les éléments de An . Par convention, A0
contient un unique élément, noté ε (“le mot vide”).
I Notations sur les mots : |w | pour la longueur du mot w ; wi
pour la i-ème lettre de w (1 ≤ i ≤ |w |) ; et si a est une lettre,
|w |a pour le nombre d’occurrences de a dans w , soit
|w |a = #{i ∈ [[1, |w |]] : wi = a}
Mots (suite)

I On introduit la notation A∗ , correspondant à la définition

A∗ =
[
An .
n∈N

(ensemble de toutes les suites finies d’éléments de A)


I Sur les mots, on a une nouvelle opération : la
concaténation : si w ∈ An et w 0 ∈ Am , w · w 0 ∈ An+m est
défini ainsi : w · w 0 est le mot w 00 défini par
(
wi si 1 ≤ i ≤ n
wi00 = 0
wi−n si n + 1 ≤ i ≤ n + m

I On note souvent les mots sans parenthèses quand cela ne


prête pas à confusion : (a, a, b) devient aab ; ainsi, on a
abba · abc = abbaabc.
Combinatoire

I En combinatoire énumérative, on va définir des ensembles


d’objets d’intérêt, et chercher à les énumérer : dire combien ils
ont d’éléments (souvent, il y aura des paramètres).
I En combinatoire bijective, on va chercher à “expliquer” des
égalités du type #A = #B (les ensembles A et B ont le
même nombre d’éléments) par la description d’une bijection
(la plus simple possible) entre A et B.
I Pour cela, on a besoin d’être capable d’interpréter certains
cardinaux comme décrivant “naturellement” certains
ensembles, et certaines opérations sur les cardinaux comme
correspondant à des “opérations” sur les ensembles.
I Les objets seront souvent des mots, des arbres, des chemins. . .
Deux principes fondamentaux

A, B désignent des ensembles finis.


I Principe additif : si A et B sont deux ensembles disjoints,
alors
#(A ∪ B) = #A + #B.
I Principe multiplicatif : quelques soient les ensembles finis A
et B, on a
#(A × B) = #A · #B.
Conséquences faciles

En itérant les deux principes (additif et multiplicatif), on en


obtient des versions à n’importe quel nombre d’ensembles :
I pour n’importe quel n, si les n ensembles A1 , . . . , An sont
deux à deux disjoints, alors
n n
!
[ X
# An = #Ai .
i=1 i=1

I pour n’importe quel n,


n
Y
# (A1 × A2 × · · · × An ) = #Ai .
i=1

I en particulier, #(An ) = (#A)n


(Preuves : par récurrence sur n)
Cardinal d’une union, en général
On a une formule plus générale que le principe additif, valable
quelques soient les ensembles :
Théorème
Soient A et B deux ensembles finis quelconques. On a

#(A ∪ B) = #A + #B − #(A ∩ B).

En particulier, on a toujours #(A ∪ B) ≤ #A + #B.


Cardinal d’une union, en général
On a une formule plus générale que le principe additif, valable
quelques soient les ensembles :
Théorème
Soient A et B deux ensembles finis quelconques. On a

#(A ∪ B) = #A + #B − #(A ∩ B).

En particulier, on a toujours #(A ∪ B) ≤ #A + #B.


Preuve : On commence par écrire A ∪ B comme union de trois
ensembles deux à deux distincts :
A ∪ B = (A − B) ∪ (B − A) ∪ (A ∩ B).
Puis, on remarque que A est l’union de deux d’entre eux :
A = (A − B) ∪ (A ∩ B) ; et de manière similaire pour B :
B = (B − A) ∪ (A ∩ B).
On écrit le principe additif pour chaque union, on triture, et. . .
Cardinal d’une union, en général
On a une formule plus générale que le principe additif, valable
quelques soient les ensembles :
Théorème
Soient A et B deux ensembles finis quelconques. On a

#(A ∪ B) = #A + #B − #(A ∩ B).

En particulier, on a toujours #(A ∪ B) ≤ #A + #B.


Preuve : On commence par écrire A ∪ B comme union de trois
ensembles deux à deux distincts :
A ∪ B = (A − B) ∪ (B − A) ∪ (A ∩ B).
Puis, on remarque que A est l’union de deux d’entre eux :
A = (A − B) ∪ (A ∩ B) ; et de manière similaire pour B :
B = (B − A) ∪ (A ∩ B).
On écrit le principe additif pour chaque union, on triture, et. . .
Conséquence (évidente ?) : Si A ⊂ B, alors #A ≤ #B.
Notion de “classe combinatoire”
En combinatoire, on va souvent chercher à “compter les objets
d’un certain type”. Le plus souvent, l’ensemble de tous les objets
en question est infini, donc la réponse est en apparence simple : “il
y en a une infinité”. Mais on a généralement une notion de taille
des objets, et la vraie question est plutôt : “combien y a-t-il
d’objets de taille n, exprimé comme une fonction de n ?”
Notion de “classe combinatoire”
En combinatoire, on va souvent chercher à “compter les objets
d’un certain type”. Le plus souvent, l’ensemble de tous les objets
en question est infini, donc la réponse est en apparence simple : “il
y en a une infinité”. Mais on a généralement une notion de taille
des objets, et la vraie question est plutôt : “combien y a-t-il
d’objets de taille n, exprimé comme une fonction de n ?”
Définition : Classe combinatoire
Une classe combinatoire est la donnée d’un ensemble C , et d’une
fonction t : C → N, telle que pour tout n, l’ensemble Cn des
éléments de C qui ont n par image par t est fini.

Cn = {x ∈ C : t(x ) = n}.

La suite de comptage de la classe C est alors simplement la suite


(cn )n≥0 définie par : pour tout n, cn = #Cn .
Notion de “classe combinatoire”
En combinatoire, on va souvent chercher à “compter les objets
d’un certain type”. Le plus souvent, l’ensemble de tous les objets
en question est infini, donc la réponse est en apparence simple : “il
y en a une infinité”. Mais on a généralement une notion de taille
des objets, et la vraie question est plutôt : “combien y a-t-il
d’objets de taille n, exprimé comme une fonction de n ?”
Définition : Classe combinatoire
Une classe combinatoire est la donnée d’un ensemble C , et d’une
fonction t : C → N, telle que pour tout n, l’ensemble Cn des
éléments de C qui ont n par image par t est fini.

Cn = {x ∈ C : t(x ) = n}.

La suite de comptage de la classe C est alors simplement la suite


(cn )n≥0 définie par : pour tout n, cn = #Cn .
La fonction t est appelée fonction de taille pour la classe ; si on
change t, on change généralement de suite de comptage (et
même, on peut ne plus avoir une classe combinatoire).
Les principes fondamentaux : version comptage
I Principe additif : si on peut assimiler les objets d’une classe
C , soit aux objets de la classe A, soit aux objets de la classe B
(mais jamais les deux à la fois), alors on peut écrire une
égalité sur les suites de comptage :

cn = an + bn
I Principe multiplicatif : si, pour décrire un élément de notre
ensemble, on peut le faire avec une séquence de choix :
I d’abord un choix parmi n choix
I puis, quelque soit le premier choix, on a toujours m choix
alors le nombre d’éléments de notre ensemble est n · · · m (car
la description des “choix” donne une bijection avec
[[1, n]] × [[1, m]]
I (et les généralisations à des sommes de plus de termes, ou
produits de plus de facteurs)
Comptage direct d’une classe combinatoire

Réaliser le comptage d’une classe combinatoire, c’est en règle


générale trouver une formule pour sa suite de comptage.
La méthode “directe” pour cela, c’est de trouver un codage pour
les objets d’une taille n fixée : décrire une façon exhaustive et non
ambigüe de définir un objet de taille n, de manière à ce qu’on soit
capable d’écrire une formule pour le nombre de codages.
I exhaustive : chaque objet doit avoir un codage
I non ambigüe : chaque objet ne doit avoir qu’un seul codage
Comptage direct d’une classe combinatoire

Réaliser le comptage d’une classe combinatoire, c’est en règle


générale trouver une formule pour sa suite de comptage.
La méthode “directe” pour cela, c’est de trouver un codage pour
les objets d’une taille n fixée : décrire une façon exhaustive et non
ambigüe de définir un objet de taille n, de manière à ce qu’on soit
capable d’écrire une formule pour le nombre de codages.
I exhaustive : chaque objet doit avoir un codage
I non ambigüe : chaque objet ne doit avoir qu’un seul codage
Parfois, on n’obtient pas une formule pour la suite, mais seulement
une relation de récurrence qui permet de calculer facilement les
termes de la suite de proche en proche, mais qu’on ne sait pas
résoudre en une formule close.
Exemple classique : parties d’un ensemble

Soit E un ensemble fini, n = #E , et k un entier compris entre 0 et


n.
Le nombre de sous-ensembles de E est. . .
Exemple classique : parties d’un ensemble

Soit E un ensemble fini, n = #E , et k un entier compris entre 0 et


n.
Le nombre de sous-ensembles de E est. . . 2n (preuve : par codage
via les éléments de {V , F }n )
Exemple classique : parties d’un ensemble

Soit E un ensemble fini, n = #E , et k un entier compris entre 0 et


n.
Le nombre de sous-ensembles de E est. . . 2n (preuve : par codage
via les éléments de {V , F }n )
On note kn le nombre de sous-ensembles de cardinal k de E .

Exemple classique : parties d’un ensemble

Soit E un ensemble fini, n = #E , et k un entier compris entre 0 et


n.
Le nombre de sous-ensembles de E est. . . 2n (preuve : par codage
via les éléments de {V , F }n )
On note kn le nombre de sous-ensemblesde cardinal k de E .


Avant même d’écrire une formule pour kn , on peut montrer que


n n 
k = n−k (preuve : bijection entre. . .)
Exemple classique : parties d’un ensemble

Soit E un ensemble fini, n = #E , et k un entier compris entre 0 et


n.
Le nombre de sous-ensembles de E est. . . 2n (preuve : par codage
via les éléments de {V , F }n )
On note kn le nombre de sous-ensemblesde cardinal k de E .


Avant même d’écrire une formule pour kn , on peut montrer que


n n 
k = n−k (preuve : bijection entre. . .)
On peut également prouver une relation de récurrence (“triangle de
Pascal”) : pour 0 < k < n,
! ! !
n n−1 n−1
= + .
k k k −1

(preuve : bijection entre. . .)


Un autre exemple
On prend un alphabet à 2 lettres, A = {a, b}, et comme ensemble,
C = A∗ : tous les mots sur l’alphabet A.
I avec comme fonction taille, la longueur du mot, t(w ) = |w | :
on a une classe combinatoire, et la suite de comptage est
an = 2n (car Cn = An : on a une formule directe) ;
Un autre exemple
On prend un alphabet à 2 lettres, A = {a, b}, et comme ensemble,
C = A∗ : tous les mots sur l’alphabet A.
I avec comme fonction taille, la longueur du mot, t(w ) = |w | :
on a une classe combinatoire, et la suite de comptage est
an = 2n (car Cn = An : on a une formule directe) ;
I avec comme fonction taille, le nombre d’occurrences de la
lettre a (t 0 (w ) = |w |a ), on n’a pas une classe combinatoire :
en effet on peut former une infinité de mots de “taille” 0
(mots sans la lettre a : b, bb, bbb . . . ).
Un autre exemple
On prend un alphabet à 2 lettres, A = {a, b}, et comme ensemble,
C = A∗ : tous les mots sur l’alphabet A.
I avec comme fonction taille, la longueur du mot, t(w ) = |w | :
on a une classe combinatoire, et la suite de comptage est
an = 2n (car Cn = An : on a une formule directe) ;
I avec comme fonction taille, le nombre d’occurrences de la
lettre a (t 0 (w ) = |w |a ), on n’a pas une classe combinatoire :
en effet on peut former une infinité de mots de “taille” 0
(mots sans la lettre a : b, bb, bbb . . . ).
I avec comme fonction taille, le nombre d’occurrences de la
lettre a plus deux fois le nombre d’occurrences de la lettre b
(notation : t 00 (w ) = |w |a + 2|w |b ), on a bien une classe
combinatoire (preuve ?)
Un autre exemple
On prend un alphabet à 2 lettres, A = {a, b}, et comme ensemble,
C = A∗ : tous les mots sur l’alphabet A.
I avec comme fonction taille, la longueur du mot, t(w ) = |w | :
on a une classe combinatoire, et la suite de comptage est
an = 2n (car Cn = An : on a une formule directe) ;
I avec comme fonction taille, le nombre d’occurrences de la
lettre a (t 0 (w ) = |w |a ), on n’a pas une classe combinatoire :
en effet on peut former une infinité de mots de “taille” 0
(mots sans la lettre a : b, bb, bbb . . . ).
I avec comme fonction taille, le nombre d’occurrences de la
lettre a plus deux fois le nombre d’occurrences de la lettre b
(notation : t 00 (w ) = |w |a + 2|w |b ), on a bien une classe
combinatoire (preuve ?)
I On peut calculer à la main les premiers termes : C0 = {ε},
C1 = {a}, C200 = {aa, b}, C300 = {ab, ba, aaa}
Le même exemple, ou presque

I On se donne un “segment” de longueur n (n cases), et on se


demande de combien de façons on peut le recouvrir
exactement avec des segments de longueur 1 (case isolée) ou
2 (“domino”) ; la taille, c’est n : le nombre de cases.
Les 8 segments de taille 5
Le même exemple, ou presque
I Codage : de gauche à droite, une case isolée est codée par a ;
un domino est codé par b.
Le même exemple, ou presque
I Codage : de gauche à droite, une case isolée est codée par a ;
un domino est codé par b.
I N’importe quel mot code un segment ; le segment est de taille
n si le nombre de a, plus deux fois le nombre de b, vaut n.
Le même exemple, ou presque
I Codage : de gauche à droite, une case isolée est codée par a ;
un domino est codé par b.
I N’importe quel mot code un segment ; le segment est de taille
n si le nombre de a, plus deux fois le nombre de b, vaut n.
I On retrouve la classe combinatoire {a, b}∗ avec la taille
t(w ) = |w |a + 2|w |b .
Le même exemple, ou presque
I Codage : de gauche à droite, une case isolée est codée par a ;
un domino est codé par b.
I N’importe quel mot code un segment ; le segment est de taille
n si le nombre de a, plus deux fois le nombre de b, vaut n.
I On retrouve la classe combinatoire {a, b}∗ avec la taille
t(w ) = |w |a + 2|w |b .
I En raisonnant sur les mots : les mots de “taille” n (pour
n ≥ 2) sont soit de la forme w = a.w 0 , avec t(w 0 ) = n − 1,
soit de la forme w = b.w 0 avec t(w 0 ) = n − 2 (et à chaque
fois, n’importe quel mot de la bonne taille convient)
Le même exemple, ou presque
I Codage : de gauche à droite, une case isolée est codée par a ;
un domino est codé par b.
I N’importe quel mot code un segment ; le segment est de taille
n si le nombre de a, plus deux fois le nombre de b, vaut n.
I On retrouve la classe combinatoire {a, b}∗ avec la taille
t(w ) = |w |a + 2|w |b .
I En raisonnant sur les mots : les mots de “taille” n (pour
n ≥ 2) sont soit de la forme w = a.w 0 , avec t(w 0 ) = n − 1,
soit de la forme w = b.w 0 avec t(w 0 ) = n − 2 (et à chaque
fois, n’importe quel mot de la bonne taille convient)
I On en déduit une relation de récurrence qui définit
complètement la suite de comptage :

c0 = 1, c1 = 1
cn = cn−1 + cn−2 pour n ≥ 2
Exemple classique : permutations

Définition : permutation
Une permutation sur un ensemble A est une bijection de E vers
lui-même.
On note Sn l’ensemble des permutations sur l’ensemble [[1, n]], et
S = ∪n∈N Sn (on prend donc comme “taille” d’une permutation, le
nombre d’éléments de l’ensemble).
La suite de comptage des permutations est connue :
Théorème
Pour tout entier n ≥ 1, le nombre de permutations d’un ensemble
de cardinal n, est n! = n.(n − 1) . . . 2.1 (“factorielle n”).
Preuve : On va donner deux preuves, une preuve directe par
codage, et une preuve par récurrence sur n.
Comptage des permutations

Preuve par récurrence : on a n! = n.(n − 1)! ; on va montrer que


pour tout n > 1, il y a n fois plus de permutations sur [[1, n]] que
sur [[1, n − 1]] (et que le nombre de permutations de {1} est bien
1 = 1!). Or, la seule suite (cn )n≥0 qui satisfait c0 = 1 et, pour tout
n ≥ 1, cn = n · cn−1 est la suite cn = n!.
Comptage des permutations

Preuve par récurrence : on a n! = n.(n − 1)! ; on va montrer que


pour tout n > 1, il y a n fois plus de permutations sur [[1, n]] que
sur [[1, n − 1]] (et que le nombre de permutations de {1} est bien
1 = 1!). Or, la seule suite (cn )n≥0 qui satisfait c0 = 1 et, pour tout
n ≥ 1, cn = n · cn−1 est la suite cn = n!.
Preuve par codage : on choisit un entier n quelconque ; on identifie
un ensemble An pour lequel il est facile de montrer que son
cardinal est n!, et on trouve un codage des permutations de [[1, n]]
par les éléments de cet ensemble (i.e., une bijection de An vers
Sn ). (on fera ça en TD)
Comptage des permutations

Preuve par récurrence : on a n! = n.(n − 1)! ; on va montrer que


pour tout n > 1, il y a n fois plus de permutations sur [[1, n]] que
sur [[1, n − 1]] (et que le nombre de permutations de {1} est bien
1 = 1!). Or, la seule suite (cn )n≥0 qui satisfait c0 = 1 et, pour tout
n ≥ 1, cn = n · cn−1 est la suite cn = n!.
Preuve par codage : on choisit un entier n quelconque ; on identifie
un ensemble An pour lequel il est facile de montrer que son
cardinal est n!, et on trouve un codage des permutations de [[1, n]]
par les éléments de cet ensemble (i.e., une bijection de An vers
Sn ). (on fera ça en TD)
Au passage : n! est aussi le nombre de façons d’ordonner n valeurs
(séquences de longueur n d’entiers entre 1 et n, tous différents).

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy