Cours de mathématiques Formation continue Laurent Thomann 2 Table des matières 1 Algèbre de Boole 1.1 Définitions . . . . . . . . . . . . . . . . . . 1.1.1 La somme logique (OR) . . . . . . 1.1.2 Le produit logique (AND) . . . . . 1.1.3 L’inversion logique (NOT) . . . . . 1.1.4 La somme logique exclusive (XOR) 1.2 Propriétés dérivées . . . . . . . . . . . . . 1.3 Expressions booléennes . . . . . . . . . . . 1.4 Application aux circuits logiques . . . . . 1.5 Application à l’analyse d’argumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 8 9 9 10 12 13 14 2 Statistiques 2.1 Quelques éléments de statistique descriptive . . . . 2.2 Étude et représentation d’une variable qualitative . 2.2.1 Diagramme en bâton . . . . . . . . . . . . . 2.2.2 Diagramme circulaire . . . . . . . . . . . . . 2.3 Étude et représentation d’une variable quantitative 2.3.1 Étude d’une variable à valeurs discrètes . . 2.3.2 Étude d’une variable à valeurs continues . . 2.3.3 Représentations . . . . . . . . . . . . . . . . 2.4 Régression linéaire . . . . . . . . . . . . . . . . . . 2.4.1 Introduction . . . . . . . . . . . . . . . . . . 2.4.2 Covariance . . . . . . . . . . . . . . . . . . 2.4.3 Méthode des moindres carrés . . . . . . . . 2.5 Ajustement non-linéaire . . . . . . . . . . . . . . . 2.5.1 Ajustement de la forme y = a ln x + b . . . 2.5.2 Ajustement de la forme y = bax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 16 16 17 18 18 19 20 21 21 23 25 27 27 27 . . . . . . . . . . 29 29 29 30 31 31 32 32 33 36 39 3 Probabilités 3.1 Dénombrement . . . . . . . . . . . . . 3.1.1 Arrangements et combinaisons 3.1.2 Combinaisons . . . . . . . . . . 3.2 Probabilités . . . . . . . . . . . . . . . 3.2.1 Expériences aléatoires . . . . . 3.2.2 Événements . . . . . . . . . . . 3.2.3 Calculs de probabilités . . . . . 3.2.4 Variables aléatoires discrètes . 3.2.5 Variables aléatoires continues . 3.3 Loi des grands nombres . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 TABLE DES MATIÈRES 3.4 3.5 Application aux intervalles de confiance . . . . . . . . . . . . . . . . . . 3.4.1 L’intervalle de confiance de la moyenne d’une loi normale quand type est connu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Intervalle de confiance pour un sondage . . . . . . . . . . . . . . Application aux tests d’hypothèses . . . . . . . . . . . . . . . . . . . . . 3.5.1 Principes généraux des tests . . . . . . . . . . . . . . . . . . . . . 3.5.2 Test de la moyenne d’une loi normale dont l’écart-type est connu 3.5.3 Test d’une proportion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l’écart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 40 42 43 43 44 45 4 Applications de l’arithmétique 4.1 Division euclidienne . . . . . . . . . . . . . . . . . . . . . 4.2 Crible d’Eratosthène . . . . . . . . . . . . . . . . . . . . . 4.3 Systèmes de numération . . . . . . . . . . . . . . . . . . . 4.3.1 Écriture en base décimale . . . . . . . . . . . . . . 4.3.2 Écriture en binaire . . . . . . . . . . . . . . . . . . 4.3.3 Écriture en base b . . . . . . . . . . . . . . . . . . 4.3.4 Écriture en base hexadécimale (base 16) . . . . . . 4.4 Congruences, calcul modulo n . . . . . . . . . . . . . . . . 4.5 Règles de divisibilité . . . . . . . . . . . . . . . . . . . . . 4.5.1 Divisibilité par 2 . . . . . . . . . . . . . . . . . . . 4.5.2 Divisibilité par 5 . . . . . . . . . . . . . . . . . . . 4.5.3 Divisibilité par 3 . . . . . . . . . . . . . . . . . . . 4.5.4 Divisibilité par 9 . . . . . . . . . . . . . . . . . . . 4.6 Application 1 : Génération de nombres pseudo-aléatoires . 4.7 Application 2 : Calcul de la clé d’un RIB . . . . . . . . . . 4.8 Application 3 : Vérification d’un numéro de billet en euros 4.9 Application 4 : Chiffrement affine . . . . . . . . . . . . . . 4.10 Application 5 : Cryptographie RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 47 48 48 48 49 51 51 52 54 54 54 55 55 55 57 58 59 59 5 Systèmes linéaires 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . 5.1.1 Exemple introductif . . . . . . . . . . . . 5.1.2 Équations de droites . . . . . . . . . . . . 5.1.3 Systèmes . . . . . . . . . . . . . . . . . . 5.2 Résolution par substitution . . . . . . . . . . . . 5.3 Méthode du pivot de Gauss . . . . . . . . . . . . 5.3.1 Systèmes échelonnés . . . . . . . . . . . . 5.3.2 Opérations sur les équations d’un système 5.4 Quelques rappels sur les matrices . . . . . . . . . 5.4.1 Définition . . . . . . . . . . . . . . . . . . 5.4.2 Matrices particulières . . . . . . . . . . . 5.4.3 Addition de matrices . . . . . . . . . . . . 5.4.4 Multiplication de matrices . . . . . . . . . 5.4.5 Pièges à éviter . . . . . . . . . . . . . . . 5.4.6 Matrice identité . . . . . . . . . . . . . . . 5.4.7 Inverse d’une matrice . . . . . . . . . . . . 5.4.8 Déterminant d’une matrice carrée . . . . . 5.5 Algorithme du simplexe . . . . . . . . . . . . . . 5.5.1 Résolution graphique . . . . . . . . . . . . 5.5.2 Présentation de l’algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 65 65 65 65 66 67 67 67 69 69 69 70 70 71 72 72 73 73 74 74 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TABLE DES MATIÈRES 5.5.3 5 Complexité de l’algorithme du simplexe . . . . . . . . . . . . . . . . . . . 77 6 Graphes et arbres 6.1 Graphes orientés . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Définitions . . . . . . . . . . . . . . . . . . . . . 6.1.2 Matrice d’adjacence . . . . . . . . . . . . . . . . 6.2 Graphes non orientés . . . . . . . . . . . . . . . . . . . . 6.2.1 Vocabulaire . . . . . . . . . . . . . . . . . . . . . 6.3 Problèmes de coloration de graphes . . . . . . . . . . . . 6.3.1 Coloration de sommets . . . . . . . . . . . . . . . 6.3.2 Coloration d’arêtes . . . . . . . . . . . . . . . . . 6.4 Arbre recouvrant de poids minimum . . . . . . . . . . . 6.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . 6.4.2 Algorithme de Kruskal . . . . . . . . . . . . . . . 6.4.3 Algorithme de Prim . . . . . . . . . . . . . . . . 6.4.4 Complexité des algorithmes précédents . . . . . . 6.5 Algorithme de plus court chemin . . . . . . . . . . . . . 6.5.1 Introduction et définitions . . . . . . . . . . . . . 6.5.2 Algorithme de Bellman-Ford-Moore . . . . . . . . 6.5.3 Exemple du voyageur de commerce . . . . . . . . 6.5.4 Modélisation des problèmes de plus court chemin 6.6 Algorithme de recherche de flot maximal . . . . . . . . . 6.6.1 Présentation du problème . . . . . . . . . . . . . 6.6.2 Un exemple . . . . . . . . . . . . . . . . . . . . . 6.6.3 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 79 80 81 81 82 82 84 85 85 86 88 90 91 91 91 96 98 101 101 103 104 7 Initiation aux chaînes de Markov et applications 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 7.2 Théorème de Chapman-Kolmogorov . . . . . . . . . 7.3 Comportement asymptotique des chaînes de Markov 7.4 Application à l’algorithme PageRank de Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 109 110 111 113 . . . . 117 117 118 120 121 8 Tests du khi-deux 8.1 Principes des tests statistiques . . . . . . . 8.2 Quelques résultats de probabilité . . . . . . 8.3 Test d’ajustement d’une loi empirique à une 8.4 Test d’indépendance . . . . . . . . . . . . . A Fonctions logarithme, exponentielle A.1 Fonction logarithme . . . . . . . . A.2 Fonction exponentielle . . . . . . . A.3 Fonction puissance . . . . . . . . . Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . loi de probabilité théorique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . et puissance 123 . . . . . . . . . . . . . . . . . . . . . . . . . . 123 . . . . . . . . . . . . . . . . . . . . . . . . . . 123 . . . . . . . . . . . . . . . . . . . . . . . . . . 124 125 6 TABLE DES MATIÈRES Chapitre 1 Algèbre de Boole L’algèbre de Boole que l’on appelle aussi calcul booléen se trouve à l’intersection de la logique, de l’électronique et des mathématiques. Elle s’intéresse aux opérations et aux fonctions sur les variables logiques. On travaillera donc sur des techniques algébriques pour résoudre des problèmes du calcul des propositions. Son utilisation par Shannon dans les années 1930 pour fabriquer des circuits à l’aide de relais électromagnétiques est une des étapes fondamentales dans l’invention de l’informatique. L’algèbre de Boole ne concerne que des éléments (variables ou constantes booléennes) pouvant prendre les valeurs 0 et 1. Ces éléments servent souvent à représenter des tensions sur des fils (niveaux logiques) ou des conditions logiques (vrai ou faux) : • • • • • le courant passe / le courant ne passe pas vrai / faux marche / arrêt ouvert / fermé bas / haut Objectif : Comprendre et savoir manier les règles de base de l’algèbre de Boole. Savoir modéliser un problème concret à l’aide ce formalisme. 1.1 1.1.1 Définitions La somme logique (OR) La somme logique est définie par la table d’addition suivante : + 0 1 0 1 0 1 1 1 Soient x et y deux variables booléennes (c’est à dire que x ∈ {0, 1} et y ∈ {0, 1}), on associe une variable booléenne d’identificateur x+y dont les valeurs sont données par la table de vérité suivante qui est la table de vérité de l’opérateur logique OU (en anglais OR) : x 0 0 1 1 y 0 1 0 1 x+y 0 1 1 1 7 8 CHAPITRE 1. ALGÈBRE DE BOOLE La somme logique possède les propriétés algébriques remarquables suivantes : • associativité : ∀(x, y, z) ∈ {0, 1}3 , (x + y) + z = x + (y + z) ; • commutativité : ∀(x, y) ∈ {0, 1}2 , x + y = y + x; • élément neutre : ∀x ∈ {0, 1}, x + 0 = 0 + x = x. Preuve : On montre seulement l’associativité. On fait un tableau de vérité, et on est amené à étudier 23 = 8 cas : x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 x + y (x + y) + z y + z x + (y + z) 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Les colonnes 5 et 7 sont identiques, donc on a bien l’égalité. Une autre façon de procéder est de considérer les différents cas possibles. On suppose que x = 1, alors 1 + y = 1, puis (1 + y) + z = 1 + z = 1 = 1 + (y + z). Maintenant si x = 0, alors 0 + y = y, puis (0 + y) + z = y + z = 0 + (y + z). Ilustration par un circuit électrique : Il a deux interrupteurs, chacun actionné par la valeur d’une entrée. Quand l’entrée est un 1, l’interrupteur se ferme, et le courant peut passer. Quand l’entrée est un 0, l’interrupteur s’ouvre, et le courant ne passe pas. Ici les deux interrupteurs sont en parallèle, donc le courant peut passer dans le circuit dès qu’un des deux interrupteurs est fermé. Si le courant passe on note 1, sinon on note 0. 1.1.2 Le produit logique (AND) Le produit logique est défini par la table de multiplication : . 0 1 0 1 0 0 0 1 Soient x et y deux variables booléennes, on associe une variable booléenne d’identificateur x.y dont les valeurs sont données par la table de vérité suivante qui est la table de vérité de l’opérateur logique ET (en anglais AND) : x y x.y 0 0 0 0 1 0 1 0 0 1 1 1 1.1. DÉFINITIONS 9 Le produit logique possède les propriétés algébriques remarquables suivantes : • associativité : ∀(x, y, z) ∈ {0, 1}3 , • commutativité : ∀(x, y) ∈ {0, 1}2 , • élément neutre : ∀x ∈ {0, 1}, (x.y).z = x.(y.z) ; x.y = y.x ; x.1 = 1.x = x. Ilustration par un circuit électrique : Les règles sont les mêmes que dans le cas du OU, mais ici les deux interrupteurs sont en série. Ainsi le courant passe dans le circuit si et seulement si les deux interrupteurs sont fermés. 1.1.3 L’inversion logique (NOT) L’inversion est notée avec une barre et elle est définie par 0 = 1 et 1 = 0. Soit x une variable booléenne, on associe une variable booléenne d’identificateur x dont les valeurs sont données par la table de vérité suivante qui est la table de vérité de l’opérateur logique NON (en anglais NOT) : x x 0 1 1 0 Les propriétés de l’inversion logique sont les suivantes : • ∀x ∈ {0, 1}, x + x = 1; • ∀x ∈ {0, 1}, x.x = 0. Ilustration par un circuit électrique : Il y a exactement un interrupteur qui reçoit l’entrée. L’ampoule est une résistance et l’interrupteur est situé sur une branche qui offre une résistance inférieure à celle de l’ampoule. Quand l’entrée est un 1, i.e. que l’interrupteur se ferme, alors le courant passe surtout par la branche parallèle, et l’ampoule s’éteint (ou luit très faiblement). Quand l’entrée est un 0, i.e. que l’interrupteur est ouvert, alors tout le courant passe par l’ampoule, et le résultat est un 1. 1.1.4 La somme logique exclusive (XOR) La somme logique exclusive est définie par la table d’addition suivante : ⊕ 0 1 0 1 0 1 1 0 10 CHAPITRE 1. ALGÈBRE DE BOOLE Soient x et y deux variables booléennes, on associe une variable booléenne d’identificateur x ⊕ y dont les valeurs sont données par la table de vérité suivante qui est la table de vérité de l’opérateur logique OU-exclusif (en anglais XOR) : x 0 0 1 1 y 0 1 0 1 x⊕y 0 1 1 0 Le produit logique possède les propriétés algébriques remarquables suivantes : • associativité : ∀(x, y, z) ∈ {0, 1}3 , • commutativité : ∀(x, y) ∈ {0, 1}2 , • élément neutre : ∀x ∈ {0, 1}, (x ⊕ y) ⊕ z = x ⊕ (y ⊕ z) ; x ⊕ y = y ⊕ x; x ⊕ 0 = 0 ⊕ x = x; • élément symétrique : ∀x ∈ {0, 1}, x ⊕ x = 0. Ilustration par un circuit électrique : L’interrupteur de gauche est en position supérieure quand il reçoit un 1 et en position inférieure quand il reçoit un 0. L’interrupteur de droite est en position inférieure quand il reçoit un 1 et en position supérieure quand il reçoit un 0. On voit bien que le courant passe dans le circuit quand un des deux interrupteurs reçoit un 1, et l’autre, un 0. Exercice : Vérifier que pour tout (x, y) ∈ {0, 1}2 on a x⊕y = x.y +x.y. Ainsi la somme exclusive peut s’obtenir à l’aide des opérations logiques élémentaires précédentes. Pour conclure, on donne la définition suivante : Définition 1.1 Tout ensemble muni de deux éléments particuliers 1 et 0 et des trois opérations somme, produit et inversion logiques vérifiant toutes les propriétés énoncées précédemment est une algèbre de Boole, souvent notée (B, +, .) avec B = {0, 1}. 1.2 Propriétés dérivées Les propriétés suivantes sont des propriétés dérivées d’une algèbre de Boole : • dualité : tout énoncé exprimé en fonction de + et de 0 est vrai lorsque l’on remplace + par . et 0 par 1 ; • unicité : les éléments neutres 0 et 1 pour la somme et le produit logiques, respectivement, sont uniques ; l’inverse de tout élément est unique ; • involution : ∀x ∈ {0, 1}, x=x 1.2. PROPRIÉTÉS DÉRIVÉES 11 • idempotence : ∀x ∈ {0, 1}, x+x=x ∀x ∈ {0, 1}, x.x = x • élément absorbant : ∀x ∈ {0, 1}, x+1=1 ∀x ∈ {0, 1}, x.0 = 0 • absorption : ∀(x, y) ∈ {0, 1}2 , x + x.y = x ∀(x, y) ∈ {0, 1}2 , x.(x + y) = x (?) • simplification : ∀(x, y) ∈ {0, 1}2 , x + x.y = x + y ∀(x, y) ∈ {0, 1}2 , x.(x + y) = x.y • formules de De Morgan : ∀(x, y) ∈ {0, 1}2 , x + y = x.y (?) ∀(x, y) ∈ {0, 1}2 , x.y = x + y (?) • distributivité du produit sur la somme : ∀(x, y, z) ∈ {0, 1}3 , x.(y + z) = (x.y) + (x.z) • distributivité de la somme sur le produit : ∀(x, y, z) ∈ {0, 1}3 , (x + y).(x + z) = x + (y.z) Preuve : Les démonstrations sont élémentaires. On peut soit raisonner en traitant les différents cas possibles ou en faisant une table de vérité. • Démontrons par exemple la propriété de simplification par disjonction de cas. Si x = 0, alors x + x.y = 0 + 1.y = y = x + y. Si x = 1, x + x.y = 1 + 0.y = 1 = x + y. • Démontrons par exemple les formules de De Morgan avec une table de vérité. x 0 0 1 1 y 0 1 0 1 x+y x+y 0 1 1 0 1 0 1 0 x 1 1 0 0 y x.y 1 1 0 0 1 0 0 0 Les colonnes 4 et 7 sont identiques, donc on a bien x + y = x.y. 12 CHAPITRE 1. ALGÈBRE DE BOOLE 1.3 Expressions booléennes Définition 1.2 Soient x1 , x2 , . . . , xn un ensemble de variables booléennes, on appelle expression booléenne sur les variables x1 , x2 , . . . , xn toute variable exprimée à l’aide des opérations + , . et de l’inversion. Exemple : L’expression f (x, y, z) = (x.y + z).(y + z) est une expression booléenne. Les propriétés des expressions booléennes sont les suivantes : • La somme de 2 expressions booléennes est une expression booléenne ; • le produit de 2 expressions booléennes est une expression booléenne ; • l’inverse d’une expression booléenne est une expression booléenne. En général, les expressions booléennes ne sont pas écrites sous forme optimale. On dispose de plusieurs méthodes pour simplifier les expressions booléennes. Par exemple, on peut utiliser le calcul algébrique et les propriétés vues au paragraphe précédent. Exemple : Simplifier l’expression f (x, y, z) = (x.y + z).(y + z). On peut la développer : f (x, y, z) = x.y.y + x.y.z + y.z + z.z = x.y + x.y.z + y.z + z = x.y + z, en utilisant l’idempotence et l’absorption. Une autre méthode, appelée méthode du consensus, repose sur le résultat suivant Proposition 1.3 Soient A et B des expressions booléennes et x une variable booléenne. Alors on a l’égalité suivante : x.A + x.B = x.A + x.B + A.B Le monôme A.B est appelé le consensus des deux premiers. Preuve : On peut démontrer ce résultat à l’aide d’une table de vérité : x A B 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 x.A + x.B A.B x.A + x.B + A.B 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 1 1 1 1 Exemple : Soit f (x, y, z) = x + x.y. Alors f (x, y, z) = x + x.y + y = x+y . (consensus) (absorption). 1.4. APPLICATION AUX CIRCUITS LOGIQUES 13 On peut énumérer toutes les fonctions booléennes à deux variables, il y a en a 24 = 16. On consigne le résultat dans le tableau suivant x 0 0 1 1 y 0 1 0 1 0 0 0 0 0 1 OR NOR AND NAND x y XOR NXOR ⇔ ⇔ 6 ⇒ ⇐ ; : 1 0 1 0 1 1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 Toutes les fonctions booléennes de ce tableau peuvent être écrites à l’aide des fonctions de base : somme, produit et inversion (en fait l’inversion et l’une des deux autres suffisent). Exercice : Écrire « ⇒ » à l’aide des fonctions élémentaires. 1.4 Application aux circuits logiques L’intérêt principal est de minimiser les composants électroniques en vue de minimiser les coûts. Les fonctions booléennes de base peuvent se réaliser par des circuits logiques combinatoires. On utilise des portes logiques dont voici les principaux : La porte Inverseur (ou NOT) : La porte AND : La porte OR : La porte Inverseur (ou NAND) : La porte NOR : La porte XOR : On peut ajouter un complémenté (une inversion) à l’aide d’un rond. On peut donc construire un circuit réalisant une fonction définie par une expression booléenne. Mais aussi, on peut exprimer sous forme d’une fonction booléenne un circuit logique, et ainsi essayer de le simplifier. Exemple : Voici un circuit et sa fonction booléenne associée Grâce aux règles algébriques du calcul booléen, on peut simplifier les expressions obtenues. 14 CHAPITRE 1. ALGÈBRE DE BOOLE 1.5 Application à l’analyse d’argumentation On peut utiliser l’algèbre booléenne pour analyser une argumentation. Exemple : Un crime a été commis : André, Bernard et Claude sont suspects. Ils sont interrogés et déclarent : • André : Bernard est coupable et Claude est innocent. • Bernard : Si André est coupable alors Claude aussi. • Claude : Je suis innocent mais l’un des deux autres est coupable. Que penser de cette affaire ? • La première déclaration donne la fonction booléenne : P1 = B.C • La deuxième déclaration donne la fonction booléenne : P2 = (A ⇒ C) • La troisième déclaration donne la fonction booléenne : P3 = C.(A + B) On est alors amené à étudier la fonction booléenne P1 .P2 .P3 = (B.C).(A ⇒ C).(C.(A + B)). 1. Vérifier que (A ⇒ C) = A.C + A = A + C. 2. En déduire que P1 .P2 .P3 = A.B.C. Si l’on considère que tous ont dit la vérité, alors Bernard est le meurtrier B = 1, A = C = 0. Chapitre 2 Statistiques Objectif : L’objectif de ce chapitre est d’acquérir les notions de base en statistiques. Le but est de savoir traiter et interpréter des données. 2.1 Quelques éléments de statistique descriptive On appelle statistique descriptive l’ensemble des méthodes et techniques mathématiques permettant de représenter, décrire et résumer un ensemble de données. Une population statistique est l’ensemble sur lequel on effectue des observations. Les individus sont les éléments de la population. Pour chaque individu, on dispose d’une ou plusieurs observations. Une variable statistique est ce qui est observé ou mesuré sur chacun des individus d’une population statistique. Les valeurs de la variable s’appellent modalité. Une variable peut être : • Quantitative : Elle exprime une quantité sur laquelle on peut faire des opérations (par exemple : taille, âge, salaire, . . .) • Qualitative : Elle exprime une modalité sur laquelle on ne peut pas faire d’opération (par exemple : couleur des yeux, sexe, nationalité, . . .) Exemple : On considère un groupe de stagiaires P1 , P2 , P3 , P4 dont on a regroupé quelques informations : P1 P2 P3 P4 Couleur des yeux V B N N Sexe H H F H Temps dans les transports 25 12 05 50 Taille 1.80 1.65 1.71 1.75 Frères et soeurs 1 2 0 1 La population est le groupe de stagiaires. Les individus sont les stagiaires. Les variables statistiques qualitatives sont la couleur des yeux, le sexe ; les variables quantitatives sont le temps passé dans les transports, le taille et le nombre de frères et soeurs (quantitatives discrètes). 15 16 CHAPITRE 2. STATISTIQUES 2.2 Étude et représentation d’une variable qualitative Soit x une variable qualitative, pouvant prendre K modalités, x1 , . . . , xK . On commence par donner la distribution d’effectifs Modalités x1 x2 ... xk ... xK Total Effectifs n1 n2 ... nk ... nK n = n1 + · · · + nK Fréquences f1 f2 ... fk ... fK f1 + · · · + fK = 1 nk . n On appelle mode, la modalité de la variable x qui a l’effectif le plus grand. On calcule la fréquence (ou proportion) de chaque modalité par fk = Exemple : Loi de Mendel Un croisement entre roses rouges et blanches a donné en seconde génération des roses rouges, roses et blanches. Sur un échantillon de taille 600, on a trouvé les résultats suivants Couleur Rouges Roses Blanches Total Effectifs 141 315 144 600 Fréquences 0.235 0.525 0.240 1 On s’intéresse maintenant aux représentations possibles de ces données. On va le faire sur un exemple. Les recettes fiscales de l’État en 2015 sont de 378.6 milliards d’euros dont • TVA (taxe sur la valeur ajoutée) : 193.3 milliards ; • IR (impôt sur le revenu) : 75.3 milliards ; • IS (impôt sur les sociétés) : 58.1 milliards ; • TICPE (taxe intérieure de consommation sur les produits énergétiques) : 14 milliards ; • Autres : 37.9 milliards. 2.2.1 Diagramme en bâton Chaque modalité en abscisse est représentée par une barre dont la hauteur est proportionnelle à la fréquence de la modalité. On peut mettre l’ordre que l’on veut en abscisse (il n’y a pas de relation d’ordre naturelle entre les différentes quantités). Calcul des fréquences de chaque impôt : TVA : 51.1 % ; IR : 19.9 % ; IS : 15.3 % ; TICPE : 3.7% ; Autres : 10.0 %. 17 0 10 20 30 40 50 2.2. ÉTUDE ET REPRÉSENTATION D’UNE VARIABLE QUALITATIVE TVA IR IS TICPE Autres Pour faire cette représentation, on utilise le logiciel R avec le code suivant : x<-c(51.1, 19.9, 15.3, 3.7, 10) barplot(x, names.arg=c("TVA", "IR", "IS", "TICPE", "Autres")) 2.2.2 Diagramme circulaire On représente un disque et les modalités sont des secteurs. L’angle au centre est proportionnel à la fréquence de la modalité. On appelle aussi cette représentation un diagramme camembert. Par exemple, pour la TVA, l’angle au centre vaut 360 · 51.1 100 ≈ 184 degrés. Recettes fiscales en France, en 2015 TVA Autres IR TICPE IS Pour faire cette représentation, on utilise le logiciel R avec le code suivant : slices <- c(193.3, 75.3, 58.1, 14, 37.9) lbls <- c("TVA", "IR", "IS", "TICPE", "Autres") pie(slices, labels = lbls, main="Recettes fiscales en France, en 2015") 18 CHAPITRE 2. STATISTIQUES 2.3 Étude et représentation d’une variable quantitative 2.3.1 Étude d’une variable à valeurs discrètes Soit x une variable statistique prenant des valeurs discrètes. À chaque valeur xk (modalité), pour 1 ≤ k ≤ K, correspond un effectif nk et une fréquence fk = nnk avec n = n1 + · · · + nK . On peut consigner les résultats dans un tableau comme celui de la page 16. On appelle classe modale, la modalité dont l’effectif est le plus élevé. Pour étudier plus finement la variable x on introduit les notions de moyenne, de variance et d’écart-type. Définition 2.1 La moyenne est définie par x= K K i=1 i=1 X 1X ni xi = fi xi . n La variance est définie par V ar(x) = K K i=1 i=1 X 1X ni (xi − x)2 = fi (xi − x)2 . n L’écart-type est défini par σ(x) = p V ar(x). La variance donne une idée de la dispersion de la distribution de x : plus elle est élevée, plus les écarts entre les modalités sont grands. Exemple : On compare deux groupes de 20 salariés. Dans le 1er groupe, tous les salariés gagnent 1500 euros. Alors x = 1500, V ar(x) = 0 et σ(x) = 0. Dans le 2ème groupe, 10 salariés gagnent 2000 euros et 10 gagnent 1000 euros. Alors x = 1500, 1 P20 mais ici V ar(x) = 20 i=1 (xi − x)2 = 5002 = 250 000 et σ(x) = 500. Une autre notion utile pour étudier la dispersion d’une distribution est la médiane : Définition 2.2 La médiane est le nombre m séparant l’échantillon ordonné en deux parties égales. Si l’effectif total est impair, m est défini de façon unique. Si l’effectif total est pair, on obtient deux valeurs et on définit m comme étant la moyenne des deux. On note la médiane Q2 . Exemple : Voici les notes obtenues par un groupe d’étudiants 2.3. ÉTUDE ET REPRÉSENTATION D’UNE VARIABLE QUANTITATIVE Notes 2 4 6 8 9 10 12 14 16 18 Effectifs 2 1 1 1 1 1 3 1 1 2 19 Effectifs cumulés 2 3 4 5 6 7 10 11 12 14 Il y a 14 étudiants. On sépare l’effectif en deux et on trouve Q2 = (12 + 10)/2 = 11. La moyenne est x = (2 · 2 + 4 + 6 + 8 + 9 + 10 + 3 · 12 + 14 √+ 16 + 2 · 18)/14 = 10.21. La variance est V ar(x) = 26.88 et l’écart-type est σ(x) = 26.88 = 5.1. De façon analogue on peut définir les quartiles Q1 et Q3 de sorte à ce que Q1 , Q2 et Q3 partagent la population en 4 parties égales. Dans l’exemple précédent, Q1 = 6 et Q3 = 14. Avec le logiciel R, on peut obtenir ces valeurs avec la commande suivante : y <- c(2, 2, 4, 6, 8, 9, 10, 12, 12, 12, 14, 16, 18, 18) summary(y) 1 PK Attention, en R, la commande var fournit la quantité n−1 i=1 ni xi . Donc pour obtenir la variance comme définie dans le cours, il faut multiplier le résultat obtenu par n−1 n . Remarque : Quelle est la différence entre médiane et moyenne ? La médiane est moins sensible aux valeurs extrêmes. Par exemple, en France en 2013, le salaire brut moyen était de 2200 euros alors que le salaire médian était de 1770 euros. Commentaires ? 2.3.2 Étude d’une variable à valeurs continues Soit x une variable statistique qui prend ses valeurs dans un intervalle [`, L]. On découpe cet intervalle en sous-intervalles [`0 , `1 [, [`1 , `2 [, . . ., [`K−1 , `K ] et on note n1 , n2 , . . . , nK les effectifs associés. L’amplitude de l’intervalle [`k−1 , `k [ est le nombre ak = `k − `k−1 . La fréquence des individus dans l’intervalle [`k−1 , `k [ est fk = nnk avec n = n1 + · · · + nK . On a f1 + · · · + fK = 1. La densité de fréquence des individus dans l’intervalle [`k−1 , `k [ est dk = afkk . Cette quantité tient compte de la longueur de l’intervalle. Intervalles [`0 , `1 [ [`1 , `2 [ ... [`k−1 , `k [ ... [`K−1 , `K [ Amplitudes a1 a2 ... ak ... aK Effectifs n1 n2 ... nk ... nK Fréquences f1 f2 ... fk ... fK Densités de fréquence d1 d2 ... dk ... dK La classe modale est la classe dont la densité de fréquence est la plus élevée. 20 CHAPITRE 2. STATISTIQUES Si les effectifs dans des classes sont trop faibles, on a tendance à regrouper des intervalles. Donnons maintenant la définition de la moyenne, variance et écart-type : Définition 2.3 La moyenne est calculée en utilisant le centre de chaque intervalle : pour 1 ≤ i ≤ K, on pose xi = (`i +`2i−1 ) , alors K K X 1X x= ni xi = fi xi . n i=1 i=1 La variance est définie par K K i=1 i=1 X 1X ni (xi − x)2 = fi (xi − x)2 . V ar(x) = n L’écart-type est défini par σ(x) = p V ar(x). Ainsi les formules sont les mêmes que dans la Définition 2.1 avec la valeur xi remplacée par le centre de chaque intervalle. 2.3.3 Représentations • Si la variable est quantitative discrète, on pourra faire un diagramme en bâton. Les bâtons sont placés en abscisse au niveau de chaque valeur possible de la variable et leur hauteur est proportionnelle à la fréquence observée. Exemple : On reprend l’exemple des notes 1.5 0.0 0.5 1.0 Frequency 2.0 2.5 3.0 Notes du groupe 0 5 10 15 20 y Pour faire cette représentation, on utilise le logiciel R avec le code suivant : y <- c(2, 2, 4, 6, 8, 9, 10, 12, 12, 12, 14, 16, 18, 18) hist(y, xlim = c(0, 20), breaks = 500, main = "Notes du groupe") • Si la variable est quantitative continue, on pourra faire un histogramme. On représente un rectangle pour chaque classe dont l’aire est proportionnelle à la densité de fréquence de la classe. Si tous les intervalles ont la même longueur, on peut indifféremment choisir comme axe des ordonnées, les effectifs, les fréquences ou les densités de fréquence. Si tous les intervalles n’ont 2.4. RÉGRESSION LINÉAIRE 21 pas la même longueur, on doit obligatoirement choisir comme axe des ordonnées les densités de fréquence. Exemple : On reprend l’exemple des notes, mais en regroupant les notes par classes : [0, 4], ]4, 8], . . ., ]16, 20]. Ainsi, la variable statistique x (qui donne la note d’un étudiant), est traitée comme une variable continue. 0 1 2 Frequency 3 4 5 Notes du groupe 0 5 10 15 20 y Pour faire cette représentation, on a utilisé le code suivant en R : y <- c(2, 2, 4, 6, 8, 9, 10, 12, 12, 12, 14, 16, 18, 18) hist(y, breaks = seq(0, 20, 4), main = "Notes du groupe") 2.4 Régression linéaire La problématique est ici la suivante : on dispose de deux variables statistiques quantitatives et on souhaite étudier s’il y a un lien entre elles. 2.4.1 Introduction On mesure deux variables quantitatives x et y simultanément, et on veut voir si elles sont liées : est-ce que la connaissance de x donne des informations sur y ? On commence par résumer les observations de x et de y dans un tableau : Population x y 1 x1 y1 2 ... x2 . . . y2 . . . ... ... ... n xn yn On représente graphiquement les points (xi , yi )1≤i≤n . Différents cas sont possibles : a) Les variables x et y sont liés par une relation fonctionnelle y = f (x). Exemple : Si x est le rayon d’un disque et y son aire, alors y = πx2 . CHAPITRE 2. STATISTIQUES 40 0 20 surface 60 80 22 1 2 3 4 5 rayon Dans un tel cas, la variable y est entièrement déterminée par la connaissance de x. b) Les variables x et y sont totalement indépendantes. 10 5 note 15 Exemple : Si on considère x la taille d’un étudiant et y sa note au bac, alors les variables x et y sont a priori indépendantes. 1.60 1.65 1.70 1.75 1.80 1.85 1.90 taille Pour faire le graphique précédent, on a utilisé le logiciel R avec le code suivant : note <- c(2, 10, 17, 13, 8, 14, 13, 9, 15, 11, 8, 12, 16) taille < -c(1.6, 1.7, 1.9, 1.65, 1.85, 1.85, 1.67, 1.76, 1.65, 1.81, 1.71, 1.77, 1.69) plot(taille, note, pch = 16) La commande pch est une option qui permet de choisir la forme des points représentés. c) Il existe une dépendance partielle entre x et y. Exemples : Lien entre la taille et le poids d’un humain ; hygiène de vie et espérance de vie. Dans le cas d’une dépendance partielle, et si les points semblent plus ou moins proches d’une droite, on essayera de faire un ajustement linéaire, i.e. (id est ≡ c’est-à-dire) de trouver la meilleure 1 droite qui passe par le nuage de points. Objectif : Pouvoir prédire des valeurs de y non observées. Exemple : On dispose de la surface x (exprimée en m2 ) et du prix y (en milliers d’euros) de 5 appartements à Paris x 20 60 90 140 160 y 250 400 600 1000 1300 1. Noter qu’il faudra aussi définir mathématiquement ce qu’on appelle la « meilleure droite ». 23 800 400 600 prix 1000 1200 2.4. RÉGRESSION LINÉAIRE 20 40 60 80 100 120 140 160 surface à combien peut-on estimer le prix d’un appartement de 120 m2 ? Exemple : Dans certains cas, d’autres ajustements non-linéaires sont mieux adaptés. On verra cela au paragraphe 2.5. 2.4.2 Covariance On considère deux variables x et y dont on a des observations (x1 , . . . , xn ) et (y1 , . . . , yn ). On rappelle que les moyennes sont données par n 1X x= xi , n i=1 n 1X y= yi . n i=1 Proposition 2.4 (Formule de Koenig ) La variance peut s’écrire n V ar(x) = 1X (xi − x)2 = x2 − (x)2 = σ 2 (x). n i=1 Preuve : On a n V ar(x) = 1X (xi − x)2 n i=1 n X = 1 n = X 1X 1 X 1 (xi )2 − 2 x xi + (x)2 1 n n n (xi )2 − 2xxi + (x)2 i=1 n n n i=1 i=1 i=1 = x2 − 2(x)2 + (x)2 = x2 − (x)2 . Une façon de mesurer le lien entre x et y est donnée par la covariance et par le coefficient de corrélation : Définition 2.5 On appelle covariance de x et de y la quantité n 1X Cov(x, y) = (xi − x)(yi − y). n i=1 24 CHAPITRE 2. STATISTIQUES Le coefficient de corrélation de x et de y est donné par Cov(x, y) Cov(x, y) = r(x, y) = p . σ(x)σ(y) V ar(x)V ar(y) Remarques : • Cov(x, x) = V ar(x), Cov(x, y) = Cov(y, x) et r(x, y) = r(y, x) ; • Cov(x, y) peut être positif, négatif ou nul ; • La covariance dépend des échelles de x et y, mais le coefficient de corrélation est tel que −1 ≤ r(x, y) ≤ 1 (il s’agit d’une versions normalisée de la covariance). Par exemple, Cov(1000x, y) = 1000Cov(x, y) : si x est multiplié par 1000 (par changement d’unité par exemple), il en est de même de la covariance. En revanche, r(1000x, y) = r(x, y). Remarques : • Ce n’est pas parce que r(x, y) est proche de 1 ou de -1 que les points sont presque alignés. • Ce n’est pas parce que r(x, y) est proche de 0 qu’il n’y a pas de relation entre les variables x ou y. Proposition 2.6 (Formule de Koenig ) La covariance peut s’écrire n Cov(x, y) = 1X (xi − x)(yi − y) = xy − x · y. n i=1 Preuve : C’est la même preuve que pour la variance. Exemple : On compare les notes en informatique x et en mathématiques y, d’un groupe d’étudiants : x y xy x2 y2 2 3 6 4 9 4 6 9 10 11 12 13 16 18 6 6 7 9 10 10 11 14 14 24 36 63 90 110 120 143 224 252 16 36 81 100 121 144 169 256 324 36 36 49 81 100 100 121 196 196 4 6 8 y 10 12 14 En pratique, on peut rajouter les lignes xy, x2 et y 2 , qui sont utiles pour les calculs. 5 10 x 15 2.4. RÉGRESSION LINÉAIRE 25 On trouve x = 10.1, y = 9.0 et xy = 106.8. V ar(x) = x2 − (x)2 = 125.1 − (10.1)2 = 23.09, V ar(y) = y 2 − (y)2 = 92.4 − 92 = 11.4. Cov(x, y) = 106.8 − 10.1 · 9 = 15.9. On en déduit r(x, y) = √ 15.9 = 0.98, 23.09 · 11.4 qui est proche de 1, donc il y a une forte corrélation entre x et y. 2.4.3 Méthode des moindres carrés Question : Comment trouver une bonne droite qui permet de relier x à y ? Un exemple : La droite des extrêmes : c’est la droite qui passe par (x1 , y1 ) et (xn , yn ) (on suppose ici que x1 est la plus petite valeur des (xi )1≤i≤n et que xn est la plus grande). Le problème est que cette droite ne tient pas compte de ce qui se passe pour les autres points. De plus cette droite est très sensible aux variations des points extrémaux, dont les valeurs ne sont pas forcément représentatives des autres (par exemple, le prix d’un appartement / m2 ). On cherche donc des critères mathématiques pour décider ce qu’est une bonne droite de régression. On considère un nuage de points (xi , yi )1≤i≤n et on considère la droite d’équation y = ax + b que l’on suppose être la meilleure droite d’ajustement. La valeur prédite ou prédiction de yi est ŷi = axi + b. En faisant cela on commet une erreur, appelée résidu ei = yi − ŷi = yi − axi − b pour chacun des 1 ≤ i ≤ n. On cherche à minimiser ces erreurs (en globalité) et on est amené à la définition suivante : Définition 2.7 La droite des moindres carrés est celle pour laquelle la quantité n X (ei )2 = (e1 )2 + (e2 )2 + · · · + (en )2 , i=1 est la plus petite, en faisant varier a et b. Remarque : On minimise une somme de carrés, d’où le nom « droite des moindres carrés ». 1/2 La quantité (e1 )2 + (e2 )2 + · · · + (en )2 représente la distance verticale de la droite d’ajustement au nuage de points. On a ei = yi − ŷi = yi − axi − b, ainsi n X i=1 2 (ei ) = n X (yi − axi − b)2 = f (a, b). i=1 On est ainsi amené à trouver a, b ∈ R tels que la valeur de f soit minimale. Trouver la droite des moindres carrés est un fait un problème de recherche d’extremum. Question : A-t-on existence et unicité de (a, b) ? La réponse est donnée par le résultat suivant. Proposition 2.8 (Droite des moindres carrés) La fonction f admet un unique minimum pour Cov(x, y) a= , b = y − ax. V ar(x) La droite des moindres carrés est alors y = ax + b pour ce choix de (a, b). 26 CHAPITRE 2. STATISTIQUES Remarques : • La formule donnant b montre que la droite des moindres carrés passe toujours par le centre de gravité du nuage de points (x, y). • Pour réaliser un ajustement affine de la variable x en fonction de y, il suffit d’échanger le Cov(x, y) rôle de x et y dans ce qui précède : x = a0 y + b0 avec a0 = et b0 = x − a0 y. V ar(y) Exemple : On reprend l’exemple des notes de mathématiques et d’informatique. La droite de 15.9 Cov(x, y) = = 0.69 et b = 9 − 0.69 · 10.1 = régression est donnée par y = ax + b avec a = V ar(x) 23.09 2.03. Ainsi, la droite de régression est y = 0.69x + 2.03. Elle passe par le point moyen (10.1, 9.0). On peut toujours calculer une régression linéaire dès lors que l’on a deux variables x et y quantitatives, mais elle n’est pas pertinente pour autant. Un indicateur est le coefficient de corrélation Cov(x, y) r(x, y) = p . V ar(x)V ar(y) Si r est proche de 1 ou de -1, et que graphiquement les points semblent alignés, on accepte la corrélation linéaire. Par ailleurs, on peut montrer que Proposition 2.9 Le coefficient r2 (x, y) s’appelle coefficient de détermination et on a : Pn Pn 2 (ŷi − y)2 2 i=1 i=1 (ei ) P r (x, y) = Pn = 1 − . n 2 2 i=1 (yi − y) i=1 (yi − y) Soit encore r2 (x, y) = V ar(ŷ) V ar(e) =1− . V ar(y) V ar(y) Ainsi, plus ŷi est proche de yi , plus r2 est proche de 1. La quantité r2 représente la proportion de variance totale de y expliquée par le modèle. 4 6 8 y 10 12 14 Exemple : Dans notre exemple, on a trouvé r(x, y) = 0.98 qui est très proche de 1. De plus, graphiquement, les points semblent proche d’une droite. En conclusion on accepte le modèle linéaire. On trace la droite des moindres carrés et le nuage de points : 5 10 15 x Ceci s’obtient avec le logiciel R avec le code suivant : x <- c(2, 4, 6, 9, 10, 11, 12, 13, 16, 18) y <- c(3, 6, 6, 7, 9, 10, 10, 11, 14, 14) fr <- data.frame(x, y) plot(y ∼ x, fr) ; abline(lm(y ∼ x, fr)) 2.5. AJUSTEMENT NON-LINÉAIRE 2.5 27 Ajustement non-linéaire Dans certains cas, l’ajustement n’est pas proche d’une droite, mais plutôt d’une autre fonction (logarithme, exponentielle, . . .) 2.5.1 Ajustement de la forme y = a ln x + b On considère deux variables x et y avec des observations (xi )1≤i≤n et (yi )1≤i≤n et on suppose que pour tout 1 ≤ i ≤ n, on a xi > 0. À la vue des données, on cherche un modèle de régression de la forme y = a ln x + b. Rappel : La fonction logarithme vérifie ln (uv) = ln u + ln v pour tous u, v > 0. On pose z = ln x ainsi que zi = ln xi et on consigne le résultat dans un tableau. y x z = ln x y1 x1 z1 = ln x1 y2 ... x2 ... z2 = ln x2 . . . ... ... ... yn xn zn = ln xn On utilise la méthode des moindres carrés pour les variables y et z. On obtient donc la droite y = az + b avec a= Cov(z, y) , V ar(z) b = y − az, r(z, y) = p Cov(z, y) V ar(z)V ar(y) . Comme z = ln x, on obtient finalement y = a ln x + b. Exemple : On dispose des données suivantes y x 4.2 100 4.54 4.65 4.71 200 250 280 4.2 4.3 4.4 y 4.5 4.6 4.7 On propose un modèle du type y = a ln x + b. On pose z = ln x, d’où y = az + b. On calcule a = 0.49 et b = 1.95, soit y = 0.49z + 1.95 et finalement y = 0.49 ln x + 1.95. 100 150 200 250 x Par ailleurs, r(z, y) = 0.99 est très proche de 1. 2.5.2 Ajustement de la forme y = bax On cherche une relation de la forme y = bax avec y, x, a, b > 0. Rappel : ax = ex ln a . La fonction exponentielle vérifie eu+v = eu ev et (eu )n = enu , pour tous u, v ∈ R et n ∈ N. En prenant le logarithme de la relation y = bax on obtient ln y = ln b + x ln a. Ainsi en posant Y = ln y, A = ln a et B = ln b on est amené à considérer le modèle Y = Ax + B. On peut alors faire une régression linéaire. 28 CHAPITRE 2. STATISTIQUES Chapitre 3 Probabilités 3.1 3.1.1 Dénombrement Arrangements et combinaisons Définition 3.1 Soient n et p deux entiers tels que 0 < p ≤ n et E un ensemble à n éléments. Un parrangement (ou p-liste) d’éléments distincts de E est une p-liste (x1 , ..., xp ) d’éléments de E telle que : xi 6= xj pour i 6= j. Dans un arrangement, les éléments sont tous distincts, et l’ordre des éléments est important. Exemple : Trois personnes P1 , P2 , P3 font la course. Les classements sont des arrangements à 3 éléments : (P1 , P2 , P3 ), (P1 , P3 , P2 ), (P2 , P1 , P3 ), (P2 , P3 , P1 ), (P3 , P1 , P2 ), (P3 , P2 , P1 ). On suppose maintenant qu’une quatrième personne participe à la course et que seuls les trois premiers sont classés. Combien y-a-t-il de podiums possibles ? Énumérer tous les cas. Rappel : On appelle cardinal le nombre d’élément d’un ensemble E. On le note cardE ou #E ou |E|. Si l’ensemble E a un nombre infini d’éléments, on dit qu’il est de cardinal infini. Le résultat suivant donne une formule générale pour le nombre d’arrangements : Proposition 3.2 Si card E = n, le nombre des p-listes d’éléments distincts de E est le nombre noté Apn : Apn = n(n − 1) · · · (n − p + 1) = n! . (n − p)! Le nombre Apn est le produit de p entiers consécutifs décroissants à partir de n. Rappel : On appelle la factorielle d’un entier n ≥ 1, le nombre n! = n(n − 1) · · · 1. On utilise la convention 0! = 1. Si n ≥ 1, alors (−n)! = 0 par convention. Preuve : On a n choix pour le premier élément. Celui-ci étant fixé, on (n − 1) choix pour le deuxième et ainsi de suite. On refait l’opération p fois, d’où le résultat. Exemples : • Un tiercé dans l’ordre pour une course de 15 chevaux est une 3-liste d’éléments distincts de {1, ..., 15} : il y a donc A315 = 2730 tiercés possibles (on a supposé qu’il n’y a pas d’ex-aequo). • Nombre de façons de ranger trois objets distincts dans cinq tiroirs numérotés, chaque tiroir ne pouvant recevoir qu’un objet. On peut considérer qu’un rangement possible est une 29 30 CHAPITRE 3. PROBABILITÉS 3-liste (x1 , x2 , x3 ) d’éléments distincts de {1, 2, 3, 4, 5} où xi indique le tiroir dans lequel on a rangé l’objet i. Il y a A35 = 60 rangements possibles. • Un numéro de téléphone de 8 chiffres peut être considéré comme une 8-liste d’éléments de {0, ..., 9}. Il y a donc 108 numéros de téléphone possibles (100 millions). • Nombre de façons de ranger trois objets distincts dans cinq tiroirs numérotés, chaque tiroir pouvant recevoir un, deux ou trois objets. Un rangement possible est une 3-liste (x1 , x2 , x3 ) d’éléments de {1, . . . , 5} où xi indique le tiroir dans lequel est rangé l’objet i. Il y a 53 = 125 rangements possibles. Définition 3.3 Une permutation de E est un arrangement à n éléments de E. Proposition 3.4 Le nombre des permutations de E (de cardinal n) est : Ann = n!. Exemple : Le nombre d’anagrammes du mot CASTOR est 6 !=720, un anagramme étant une permutation des lettres C, A, S, T, O, R. 3.1.2 Combinaisons Définition 3.5 Soit p ∈ N∗ , on appelle combinaison à p éléments d’un ensemble E toute partie de E contenant p éléments. Dans une combinaison, les éléments sont tous distincts et leur rang est sans importance. Proposition 3.6 Si card E = n, le nombre de combinaisons à p éléments de E se note Cnp n p ou Cnp et l’on a : n 1 n! = = Apn = . p p! (n − p)! p! Exemples : • Le nombre de tiercés dans le désordre dans une course de 15 chevaux est : 15 3 = 455. • Le nombre de façons de choisir 8 cartes dans un jeu de 32 cartes est 32 8 = 10 518 300. • Au loto, le nombre de façon de prendre au hasard 6 boules parmi 49 est de 49 6 = 13 983 816. • Le nombre de façons de ranger trois objets identiques dans cinq tiroirs numérotés, chaque tiroir ne pouvant recevoir qu’un objet. On peut considérer qu’un rangement possible est une partie de 3 éléments de {1, 2, 3, 4, 5}. Il y a 53 = 10 rangements possibles. Définition 3.7 Soit E un ensemble. On appelle P(E) l’ensemble des parties de E : c’est l’ensemble de tous les ensembles que l’on peut former à partir d’éléments de E. n o Exemple : Si E = A, B . Alors P(E) = ∅, A , B , A, B . n o Si E = A, B, C . Alors P(E) = ∅, A , B , C , A, B , A, C , B, C , A, B, C . 3.2. PROBABILITÉS 31 Proposition 3.8 Soit P(E) l’ensemble des parties de E. Si cardE = n, alors card[P(E)] = 2n . Preuve : Pour tout 0 ≤ p ≤ n, il y a Cnp parties à p éléments de E. Ainsi card[P(E)] = n X Cnp . p=0 Maintenant, on utilise la formule du binôme de Newton : 2n = (1+1)n = n X Cnp 1p 1n−p = n X p=0 Cnp . p=0 On peut alors conclure. Rappel : Formule du binôme de Newton : Soient x, y ∈ R. Alors (x + y)1 = x + y, (x + y)2 = (x + y)(x + y) = x2 + 2xy + y 2 , (x + y)3 = (x + y)(x + y)2 = (x + y)(x2 + 2xy + y 2 ) = x3 + 3x2 y + 3xy 2 + y 3 . De façon générale, pour n ∈ N on a (x + y)n = Cn0 y n + Cn1 xy n−1 + Cn2 x2 y n−2 + · · · + Cnn−1 xn−1 y + Cnn xn = n X Cnp xp y n−p . (3.1) p=0 3.2 3.2.1 Probabilités Expériences aléatoires Définition 3.9 Une expérience est dite aléatoire lorsqu’elle a plusieurs issues possibles dont on ne peut pas prévoir laquelle sera réalisée. L’ensemble de toutes les issues constitue l’univers de tous les possibles. Exemple : Le lancer d’un dé à six faces constitue une expérience aléatoire d’issue xi pour i allant de 1 à 6 et correspondants à la sortie de la face i du dé. Il y a donc 6 issues ou éventualités possibles. Définition 3.10 Soit Ω = {x1 ; x2 ; . . . ; xr } l’ensemble des issues d’une expérience aléatoire, on définit une loi de probabilité sur Ω en associant à chaque issue xi un nombre pi tel que : pour tout entier i tel que 0 6 pi 6 1 ; p1 + p2 + . . . + pn = 1. Le nombre pi est appelé probabilité de l’issue xi . Proposition 3.11 On répète n fois une expérience aléatoire dont les issues sont {x1 ; x2 ; . . . ; xn } où chaque issue xi a pour probabilité pi . Alors les fréquences fi d’apparition des xi vérifient f1 + f2 + . . . + fr = 1 et 0 6 fi 6 1. Si n devient grand, les fréquences se stabilisent autour de la probabilité pi : c’est la loi des grands nombres. La loi des grands nombres est un résultat fondamental de la théorie des probabilités. Exemple : On jette un dé 100 fois et on note la face apparue à chaque lancer. Si le 1 apparaît 12 fois la fréquence de sortie est 12/100 = 0.12. On a f1 + f2 + . . . + f6 = 1. Si le nombre de lancers devient grand, les fréquences se stabilisent autour de 1/6, probabilité d’apparition du 1. Exercice : Jeter une pièce 100 fois et compter le nombre de piles et de faces. 32 CHAPITRE 3. PROBABILITÉS Définition 3.12 Lorsque les r issues d’une expérience aléatoire ont la même probabilité p de se réaliser, on parle de loi équirépartie ou loi uniforme. Alors p = 1r . Exemple : pour le lancer d’un dé non truqué à six faces, chaque face ayant la même probabilité d’apparaître, la loi est équirépartie et chaque face i a une probabilité pi d’apparaître égale à pi = 16 . 3.2.2 Événements Définition 3.13 Soit Ω l’univers associé à une expérience aléatoire. Toute partie de l’univers est appelé un événement et le nombre d’issues constituant un événement A est appelé son cardinal. L’événement ∅ est appelé événement impossible. L’événement Ω est l’événement certain. Exemple : On lance un dé à six faces : • « obtenir 1 ou 2 » est un événement ; • « obtenir 7 » est l’événement impossible. Proposition 3.14 P (∅) = 0 ; P (Ω) = 1 ; pour tout événement A, 0 6 P (A) 6 1. 3.2.3 Calculs de probabilités Définition 3.15 Soient A et B deux événements. • L’intersection A ∩ B (lire « A inter B » ou « A et B » ) est l’ensemble des issues qui réalisent à la fois A et B. • Lorsqu’aucune issue ne réalise A et B, c’est à dire A ∩ B = ∅, on dit que A et B sont incompatibles. • L’union A∪B (lire « A union B » ou « A ou B » ) est l’ensemble des issues qui réalisent A ou B, c’est à dire au moins l’un des deux événements. • L’événement A appelé événement complémentaire ou contraire de A est l’ensemble des issues qui ne réalisent pas A. Proposition 3.16 Soit P une loi de probabilité sur un ensemble Ω. • Pour tous les événements A et B, on a : P (A ∪ B) = P (A) + P (B) − P (A ∩ B). En particulier, si A et B sont des événements incompatibles, alors P (A ∪ B) = P (A) + P (B). • Pour tout événement A, P (Ā) = 1 − P (A). 3.2. PROBABILITÉS 33 Preuve : Si A et B sont incompatibles, on a A ∩ B = ∅ donc P (A ∩ B) = 0 d’où la formule. On a Ω = A ∪ A et A ∩ A = ∅ donc A et A sont incompatibles et P (Ω) = P (A ∪ A) = P (A) + P (A). Or P (Ω) = 1 donc 1 = P (A) + P (A) d’où P (A) = 1 − P (A). Définition 3.17 On dit que deux événements A et B sont indépendants si P (A ∩ B) = P (A)P (B). Définition 3.18 On suppose que P (B) 6= 0. La probabilité conditionnelle de A sachant B est définie par P (A|B) = P (A ∩ B) . P (B) Ainsi, si A et B sont indépendants, on a P (A|B) = P (A) : la réalisation de B ne donne pas d’information sur la réalisation de A. Exemple : On lance deux fois un dé (de façon indépendante) et on définit les événements : A1 = le résultat du lancer du premier dé est pair , A2 = le résultat du lancer du deuxième dé est pair . Alors les événements A1 et A2 sont indépendants. 3.2.4 Variables aléatoires discrètes Définition 3.19 Soit Ω l’univers associé à une expérience aléatoire. Toute fonction X définie sur Ω et à valeurs dans R, X : Ω −→ R, est appelée une variable aléatoire. Définition 3.20 Soit X une variable aléatoire définie sur l’univers Ω d’une expérience aléatoire. Notons {x1 ; x2 ; . . . ; xn } l’ensemble des valeurs de X et pi la probabilité de l’événement « X prend la valeur xi », événement noté {X = xi }. La loi de probabilité de X est la fonction qui, à chaque xi , associe le nombre pi = P (X = xi ). Exemple : On dispose d’un jeu de 32 cartes. On tire une carte dans ce jeu, et on attribue à ce tirage la valeur X calculée suivant la règle suivante : • si la carte est un Roi, X vaut 4 points ; • si la carte est une Dame, X vaut 3 points ; • si la carte est un Valet, X vaut 1 point ; • toutes les autres cartes valent 0 point. 34 CHAPITRE 3. PROBABILITÉS La loi de X est donnée par 5 P (X = 0) = , 8 1 P (X = 1) = , 8 1 P (X = 3) = , 8 1 P (X = 4) = . 8 Exemple : On lance un dé une fois et on regarde le résultat. On peut modéliser cette expérience avec l’univers Ω = {1, 2, 3, 4, 5, 6}. On note X la v.a. qui donne le numéro de la face obtenue. Si le dé n’est pas truqué, on a P (X = i) = 1/6 pour tout 1 ≤ i ≤ 6. La loi de probabilité ainsi obtenue est appelée loi uniforme sur {1, 2, 3, 4, 5, 6}. On truque le dé de façon à ce que le 1 sorte avec probabilité 1/2 et les autres faces ont la même probabilité de sortir. Donner cette nouvelle loi de probabilité. Définition 3.21 Soit X une variable aléatoire discrète telle que pi = P (X = xi ). • On appelle espérance mathématique de X le nombre E(X) = p1 x1 + · · · + pn xn = n X pi xi . i=1 • On appelle variance de X le nombre 2 2 V ar(X) = p1 (x1 − E(X)) + · · · + pn (xn − E(X)) = n X pi (xi − E(X))2 . i=1 • On appelle écart type de X et on note σ(X) le nombre σ(X) = p V ar(X). Remarque : Dans le cas de la loi uniforme sur {x1 ; x2 ; . . . ; xn }, on a pi = retrouve les formules du Chapitre 2. 1 n pour tout i et on Remarque : L’espérance d’une variable aléatoire donne son centre de gravité et son écart-type donne une idée de sa dispersion (plus l’écart-type est grand, plus la variable est dispersée). Exemple : On reprend l’exemple du jeu de cartes et on calcule : E(X) = 0 · 5 1 1 1 + 1 · + 3 · + 4 · = 1. 8 8 8 8 Ainsi, un joueur gagne en moyenne 1 point. Un joueur affronte la banque selon les règles précédentes (un point vaut un euro). Pour que le jeu soit équitable, la mise du joueur doit être d’un euro. Loi de Bernoulli et loi binomiale Définition 3.22 Une expérience de Bernoulli est une expérience qui n’a que deux issues possibles, l’une appelée « succès » qui a pour probabilité p, l’autre appelée « échec » qui a pour probabilité 1 − p. Si X suit une loi de Bernoulli de paramètre p, et on note X ∼ B(1, p), alors P (X = 1) = p, On a E(X) = p et V ar(X) = p(1 − p). P (X = 0) = 1 − p. 3.2. PROBABILITÉS 35 Définition 3.23 La loi binomiale de paramètres n et 0 ≤ p ≤ 1, notée B(n, p), est la loi de probabilité du nombre de succès dans la répétition de n expériences de Bernoulli de paramètre p identiques et indépendantes. Elle est définie par P (X = k) = Cnk pk (1 − p)n−k , 0 ≤ k ≤ n. On a E(X) = np et V ar(X) = np(1 − p). Remarque : On vérifie que l’on définit bien une loi de probabilité, grâce à la formule du binôme (3.1) : n n X X n P (X = k) = Cnk pk (1 − p)n−k = p + (1 − p) = 1. k=0 k=0 Exemple : On lance 2 fois un dé bien équilibré. On s’intéresse à l’apparition de la face 6, et on note X le nombre de 6 obtenus. Chaque lancer est une expérience de Bernoulli de paramètre 1/6, la loi de X est donc une loi binomiale B(2, 1/6). Ainsi P (X = 0) = 25 , 36 P (X = 1) = 10 , 36 P (X = 2) = 1 . 36 Si on le lance 10 fois, alors la v.a. X donnant le nombre de 6 obtenus suit une loi binomiale B(10, 1/6), et P (X = 0) = 5 10 , 6 k P (X = k) = C10 1 P (X = 1) = C10 5 10−k 1 k , 6 6 5 9 1 , 6 6 0 ≤ k ≤ 10. Loi de Poisson La loi de Poisson modélise des situations où l’on s’intéresse au nombre d’occurrences d’un événement dans un laps de temps déterminé ou dans une région donnée. Par exemple : • nombre d’appels téléphoniques qui arrivent à un standard en x minutes ; • nombre de clients qui attendent à la caisse d’un magasin ; • nombre de défauts de peinture par m2 sur la carrosserie d’un véhicule, . . . Définition 3.24 La variable aléatoire X suit une loi de Poisson de paramètre λ > 0, et on note X ∼ P(λ), si pour tout k ∈ N λk −λ P (X = k) = e . k! On a E(X) = λ et V ar(X) = λ. Loi des événements rares : En pratique, la loi de Poisson sert à approcher une loi binomiale quand n est grand et p est petit, ainsi que np. Plus précisément, lorsque p ≤ 0.1 n ≥ 30 np < 15, 36 CHAPITRE 3. PROBABILITÉS on peut remplacer une loi B(n, p) par une loi de Poisson P(λ) de paramètre λ = np. Remarque : On vérifie que l’on définit bien une loi de probabilité, en utilisant la formule +∞ k X λ = eλ valable pour tout λ ∈ R. k! k=0 3.2.5 Variables aléatoires continues Définition 3.25 Une variable aléatoire continue est une variable qui prend ses valeurs dans un intervalle de R. Exemples : Les variables aléatoires suivantes sont continues : • variable T correspondant à la taille d’une personne ; • variable L correspondant à longueur d’un train ; • variable A correspondant au temps d’attente à une caisse, . . . Définition 3.26 Soit X une variable aléatoire continue. • On appelle fonction de répartition de X la fonction définie sur R par F (x) = P (X ≤ x). • La fonction F est dérivable et sa dérivée f (x) = F 0 (x) est appelée densité de probabilité de X. • Avec les notations précédentes, on a pour tous a, b ∈ R Z P (a ≤ X ≤ b) = F (b) − F (a) = b f (x)dx. a Remarques : Z • La quantité P (a ≤ X ≤ b) = F (b) − F (a) = de f , délimitée par les abscisses x = a et x = b. Z f (x)dx représente l’aire sous la courbe a a • La quantité P (X ≤ a) = F (a) = domaine x ≤ a. b f (x)dx représente l’aire sous la courbe de f , sur le −∞ 3.2. PROBABILITÉS 37 Z +∞ • On a toujours P (X ∈ R) = f (x)dx = 1 (l’aire totale sous la courbe vaut 1). −∞ Définition 3.27 Soit X une variable aléatoire continue de densité f . • On appelle espérance mathématique de X et on note E(X) le nombre Z +∞ xf (x)dx E(X) = −∞ • On appelle variance de X le nombre Z +∞ V ar(X) = (x − E(X))2 f (x)dx. −∞ • On appelle écart type de X et on note σ(X) le nombre σ(X) = p V ar(X). Loi normale La loi normale (ou de Laplace-Gauss), est la loi de certains phénomènes continus qui fluctuent autour d’une valeur moyenne m, de manière aléatoire, résultante d’un grand nombre de causes indépendantes dont les effets s’ajoutent sans que l’un d’eux soient dominant. Exemple : La taille d’un individu en cm, influencée par la nourriture, l’environnement, l’hérédité, le lieu géographique, . . . Définition 3.28 On appelle loi normale de paramètres m ∈ R et σ > 0 la loi d’une variable aléatoire continue X prenant toutes les valeurs réelles, de densité de probabilité la fonction définie par 1 x−m 2 1 f (x) = √ e− 2 ( σ ) . σ 2π On note X ∼ N (m, σ). La loi N (0, 1) est appelée loi normale centrée (m = 0) et réduite (σ = 1). Proposition 3.29 Si une variable aléatoire X suit la loi normale N (m, σ). Alors la variable aléatoire Y = X−m σ suit la loi normale centrée réduite N (0, 1). En particulier, on a E(Y ) = 0 et V ar(Y ) = 1. 38 CHAPITRE 3. PROBABILITÉS Figure 3.1 – Pour une loi normale, une majeure partie de la distribution (aire sous la courbe) se concentre autour de m dans l’intervalle [m − 2σ, m + 2σ]. !"#$ %"#&'( )#*'+ ,#' -.'++'#+ /' !" 0"11'$ '$0 0+"% 23%"+0410'5 62 &"#$ 0"-7+'( #1' '++'#+ /' #$ 0"11'$ $#+ -' %"2/$ 0"04-8 $"20 '19"+' #1' '++'#+ /' H % #$$ *+433'$ :4# -2'# /' ;<< %-#$ =4#0> $#+ -' %"2/$ 3"?'18 &"#$ /'&'( s 4#*3'10'+ -4 042--' /' -.79=4102--"15 @.'++'#+ '$0 /"117' %4+ H % #="& '@ q(8 9' ,#2 /"11' A q % '#="& ! @H(! = B41$ 1"0+' 'C'3%-'8 1"#$ /'&"1$ %+7-'&'+ #1 79=4102--"1 /' 042--' q % '#="& ! @H(! % '#="& ! )@$=#(! % )*!+= D-#$ *717+4-'3'108 $2 "1 $' !C' #1 $'#2- /' 9"1!419' &4-410 8 "1 /"20 /70'+E 321'+ #1' &4-'#+ 1"07' }@! F %4+02+ /' -4 04G-' /' -4 -"2 1"+34-'5 H'00' &4-'#+ F Figure 3.2 – Exemples de densités de lois%4+normales pour (m,9'10+7' σ) = (0, 0.5) et (2, 1.1). #1' %+"G4G2-207 @, /.I0+' /7%4$$7$' -'$ +74-2$402"1$ /.#1' -"2 1"+34-' +7/#20'5 D-#$ =4#08 "1 4&420 %+2$ % !- '0 "1 4&420 0"#&7 }@! % }!="# % #="&5 @.210'+&4--' /' 9"1!419'8 4# 12&'4# /' 9"1!419' /' # :"# '19"+' 4# $'#2/' 9"1!419' /' > '$0 /"117 %4+ A Figure 3.3 – Pour une loi N (0, 1), on définit les quantiles zα/2 par P (−zα/2 ≤ X ≤ zα/2 ) = 1−α, {"} s = q pour 0 < α < 1. @! Loi exponentielle D"#+ 9' $'#2- /' 9"1!419' '0 %"#+ #1' '++'#+ /.'$023402"1 H8 -4 042--' /' -.79=4102--"1 /"20 I0+' /' ! q % }@! ! '@H(! = @' 9"10+40 4 #1' &4-'#+ /' F % !$$$$$ J#+"$5 62 &"#$ %"#&'( +'&'1/+' -' K2-" /' %"33'$ F L5; J#+"$8 -' +7$#-040 /' 9'00' "%7+402"1 $'+4 /' U % !$$$$ ! p !$$$$$5 B"19 &"0+' %"210 3"+0 '$0 +74-2$7 %"#+ #1 %"2/$ 3"?'1 &4-410 p % #$ K*5 H"33' &"#$ 1' 9"1142$$'( %4$ 9' %"2/$8 &"#$ /'&'( /792/'+ /' -4 $2*140#+' "# 1"1 /' 9' 9"10+40 '1 M"1902"1 /# +7$#-040 /' -.79=4102--"15 N- La loi exponentielle permet de modéliser la durée de vie d’un composant électronique. Elle peut aussi être utilisée pour décrire par exemple le temps écoulé entre deux coups de téléphone O reçus au bureau, ou le temps écoulé entre deux accidents de voiture dans lequel un individu donné est impliqué. Ceci se justifie par la propriété importante d’absence de mémoire (Proposition 3.31). Définition 3.30 On appelle loi exponentielle de paramètre λ > 0 la loi d’une variable aléatoire continue X, prenant toutes les valeurs réelles positives, de densité de probabilité la fonction définie par f (x) = λe−λx , 0, si x ≥ 0 si x < 0. 3.3. LOI DES GRANDS NOMBRES 39 Figure 3.4 – Densité d’une loi exponentielle. On note X ∼ E(λ). On a E(X) = 1/λ et V ar(X) = 1/λ2 . Proposition 3.31 Une variable aléatoire X de loi exponentielle est sans mémoire. Autrement dit ∀s, t ≥ 0, P (X > s + t|X > t) = P (X > s). Ceci s’interprète de la manière suivante : sachant le matériel en état de bon fonctionnement au temps t, la loi de probabilité de sa durée de vie future est la même que celle de sa durée de vie initiale. En d’autres termes, le matériel ne s’use pas. Rappel : Si A et B sont deux événements tels que P (B) > 0, alors on définit la probabilité de P (A ∩ B) l’événement conditionnel « A sachant B » par P (A|B) = . P (B) 3.3 Loi des grands nombres Le résultat suivant permet de donner un sens à l’intuition (voir Proposition 3.11). Proposition 3.32 Soit (Xi )1≤i≤n une suite de variables aléatoires indépendantes et de même loi, alors X1 + X2 + · · · + Xn −→ E(X), n lorsque n −→ +∞. Dans le résultat précédent, il faut en fait de plus supposer que E(|X|) < +∞, mais ce sera toujours le cas dans le cadre de ce cours. Exemple : On lance une pièce équilibrée de façon répétée. À chaque lancer, on note 1 si on obtient Face et 0 si on obtient Pile. On pose Xi ∼ B(1/2) le résultat du ième lancer, alors la proportion du nombre de faces au cours des n premiers lancers est Xn = et donc X n −→ 1/2 lorsque n −→ +∞. X1 + X2 + · · · + Xn , n 40 CHAPITRE 3. PROBABILITÉS 3.4 Application aux intervalles de confiance L’estimation ponctuelle d’un paramètre, i.e. la connaissance de la seule valeur estimée du paramètre considéré, ne présente guère d’intérêt si on n’a aucune idée de la précision du résultat obtenu. Aussi est-il nécessaire de compléter autant que possible cette information, soit par le calcul de l’erreur standard, soit par la détermination, autour de la valeur estimée, d’un intervalle dont on a de bonnes raisons de croire qu’il contient la « vraie valeur » du paramètre. Cette dernière façon de procéder porte le nom d’estimation par intervalle. D’une manière plus précise, supposons qu’on s’intéresse à un paramètre γ, dont on possède un estimateur G, et qu’on s’efforce de déterminer, de part et d’autre de G, les limites G1 et G2 d’un intervalle qui a une forte probabilité de contenir γ. Pour résoudre ce problème, on se donne un niveau de confiance, légèrement inférieur à l’unité et égal par exemple à 0.95, 0.99 ou 0.999, soit : 1 − α = 0.95, 0.99 ou 0.999. On détermine ensuite les limites de confiance ou limites de sécurité G1 et G2 de telle sorte que : P (G1 ≤ γ ≤ G2 ) = 1 − α. L’intervalle [G1 , G2 ] est appelé intervalle de confiance. On peut affirmer que cet intervalle contient la « vraie valeur » γ, avec un risque d’erreur dont la probabilité est précisément α, c’est-à-dire le plus souvent 5 %, 1 % ou 0.1 %. Généralement, on divise le risque d’erreur en deux parties égales, les limites de confiance étant alors telles que : P (γ ≤ G1 ) = P (γ ≥ G2 ) = α/2. 3.4.1 L’intervalle de confiance de la moyenne d’une loi normale quand l’écarttype est connu Vous vous posez la question de savoir si vous devez ou non signer un contrat pour l’acquisition d’une cargaison contenant N cagettes de pommes (on prendra N = 100 000 dans cet exemple). Le bénéfice (ou la perte) de cette opération dépendra du poids total de la cargaison que vous ne connaissez pas, sauf si vous avez la possibilité de peser les 100 000 cagettes. Si vous connaissiez le poids moyen m d’une cagette, le poids total se calculerait en faisant N × m. Comme m est inconnu, on veut l’estimer. L’idée est de prélever un échantillon de cette cargaison. Notons X1 , X2 , . . ., Xn les poids des cagettes de l’échantillon à prélever (n la taille de l’échantillon) qui sont des variables aléatoires car l’échantillon est le résultat d’un tirage aléatoire. On suppose que les variables aléatoires X1 , X2 , . . ., Xn suivent des lois normales N (m, σ) avec σ > 0 connu. Pour estimer m, on prendra appui sur la moyenne X n de l’échantillon définie comme : X1 + X2 + · · · + Xn . n En utilisant ce que l’on a vu précédemment, l’espérance mathématique de X n vaut : Xn = E(X1 ) + E(X2 ) + · · · + E(Xn ) m + m + ··· + m = = m. n n Cela signifie qu’en moyenne, la moyenne de l’échantillon coïncide avec la vraie moyenne m recherchée. E(X n ) = 3.4. APPLICATION AUX INTERVALLES DE CONFIANCE 41 La variance de X n est telle que : Var(X n ) = = Var(X1 ) + Var(X2 ) + · · · + Var(Xn ) n2 2 2 σ + σ + · · · + σ2 σ2 = . n2 n On peut remarquer que cette variance diminue avec la taille de l’échantillon. En fait, on peut montrer que la loi de X n une loi normale N (m, √σn ), ce qui confirme les résultats précédents. Ainsi, la variable aléatoire Z= Xn − m √ σ/ n suit une loi normale centrée réduite N (0, 1), d’après la Proposition 3.29. Nous allons utiliser ce résultat pour proposer une estimation non plus ponctuelle, i.e. annoncer le résultat donné par X n , mais plutôt un résultat sous forme d’intervalle. Considérons Z la loi normale N (0, 1) et cherchons l’intervalle (centré) tel que les valeurs de Z soient contenues dans cet intervalle avec une probabilité de 95%. Cela signifie encore que la probabilité que la valeur tirée ne soit pas dans cet intervalle et 5% ou que la probabilité de tirer une valeur trop grande (ou trop petite) est 2.5%. !"#$% &'()&'(% *+,-"')+.-/,% +)012#-&'(%3 ,/'% /2.(,/,% 4 " La lecture de la table de la !loi normale nous permet de conclure que s s !" [ #=$% [ & #=$% p '95 (=$)= contenues dans l’intervalle [−1.96; 1.96] avec une probabilité de %. q q les valeurs de Z sont Ainsi, nous avons P (−1.96 ≤ Z ≤ 1.96) = 0.95, soit encore : 5(..( 6(#,-$#( 1&'+.-/, %-0,-!( &'( )7-,.(#8+))( 9+)1+./-#(: 4 X n − m#@sq$ > √ ≤ 1.96) = 0.95. P (−1.96 ≤ [ ! #=$% σ/ n ;/,.-(,. )+ 8#+-( 8+)('# p +8(; ',( "#/2+2-)-.1 6( $)*< Après quelques ='""/%/,% manipulations algébriques, on obtient &'( )( "/-6% */>(, .#/'81 6+,% ', :1;?+,.-))/, 6( .+-))( q ' #(( ;+0(..(% "#1)181(% +)1+./-#(*(,. %/-. { ' #(=% @0< A/'% %'""/%(#/,% &'( σ σ (%. ;/,,'P(.(X 8+'. ' +nj< =-,/,3 ;/**( /, %'""/%( &'( )71;?+,.-))/, (%. n − 1.96 √ ≤ m ≤ X n + 1.96 √ ) = 0.95. n n )71;+#.B.>"( v (%.-*1 %'!%+**(,. 0#+,63 -) (%. +;;(".+2)( 6( #(*")+;(# "+# (. ;+);')1 C "+#.-# 6(% 6/,,1(% 6(s)71;?+,.-))/,< D7+"#$% )(% #1%'.+.% */,.#1% Cette dernière équation signifie{ que l’intervalle (aléatoire) : )$ *+"!'"*$ "/'# )+ ;-B6(%%'%3 )7-,.(#8+))( ! #=$% ,@ q-3 +""())1 !"#$%&'(($ */>(,,( p +' "!&$', )$ *+"!'"*$ 6( $)*3 ;/,.-(,. )+ 8#+-( */>(,,( p +8(; ',( "#/2+2-)-.1 6( $)*< E+ "#/2+2-)-.1 &'( ;(. -,.(#8+))( ,( ;/,.-(,,( "+% )+ 8#-+( s 8+)('#3 -;- )*3 %7+""())( )( -$,!( )$ *+"!'"*$< F) (%. ;)+-# &'( H ' #=$% ,@ q%7-,.(#"#$.( ;/**( )7(##('# 67(%.-*+.-/,< D+,% ,/.#( (G(*")(3 /, + 4 % s & #(=% ! #=$% +@ #(( ' #(=% ! (=).. ' /#(=(#0> ##=#..1 42 CHAPITRE 3. PROBABILITÉS h σ σ i X n − 1.96 √ ; X n + 1.96 √ , n n contient la vraie valeur m avec une probabilité de 95%. Application numérique : Supposons que le poids moyen trouvé dans un échantillon de taille n = 100 cagettes prélevées aléatoirement soit xn = 10.6 kg (c’est la valeur observée de X n ). On suppose que σ = 3 kg, alors on obtient l’intervalle de confiance au risque α = 0.05 (on dit aussi au niveau 95%) σ σ xn − 1.96 √ ; xn + 1.96 √ = [10.01; 11.19]. n n Autrement dit, on a 95% de chances que le poids moyen soit compris entre 10.01 kg et 11.19 kg. 3.4.2 Intervalle de confiance pour un sondage On fait un sondage avant une élection, il y a deux candidats, A et B. On interroge un échantillon de la population totale (que l’on suppose grande par rapport à l’échantillon), et on suppose que cet échantillon est représentatif de l’ensemble de la population. • n est taille de l’échantillon. • X est la v.a. qui donne le nombre d’individus de l’échantillon votant pour le candidat A. • p est la proportion d’individus de la population totale votant pour le candidat A. La proportion p est inconnue et on souhaite obtenir un intervalle de confiance pour cette quantité. Le sondage donne une proportion pn en faveur du candidat A. Avec le théorème central limite (non vu dans ce cours), on peut montrer que la v.a. X qn −p pn (1−pn ) n suit approximativement une loi normale centrée réduite. Soit Z ,→ N (0, 1), 0 < α < 1 et zα/2 le quantile associé : P (−zα/2 ≤ Z ≤ zα/2 ) = 1 − α, donc X P (−zα/2 ≤ q n −p pn (1−pn ) n ≤ zα/2 ) ≈ 1 − α, qui donne P p∈ hX n r − zα/2 pn (1 − pn ) X , + zα/2 n n r pn (1 − pn ) i ≈ 1 − α. n En conclusion, r pn (1 − pn ) pn − zα/2 , pn + zα/2 n et un intervalle de confiance de p au niveau 1 − α. h r pn (1 − pn ) i , n Application numérique : On interroge 1000 personnes et 520 votent pour A. Donner un intervalle de confiance au risque α = 0.05 (5%) pour p. Ici zα/2 = 1.96, n = 1000, pn = 0.52. 3.5. APPLICATION AUX TESTS D’HYPOTHÈSES 43 Ainsi la formule précédente donne l’intervalle [0.49, 0.55]. Autrement dit, on a 95% de chances que le résultat de A après l’élection soit dans cette intervalle. On remarque que l’on a une marge d’erreur de ±3%. Si l’on veut une marge d’erreur de ±1%, il faut interroger 9000 personnes. Évidemment un tel sondage est beaucoup plus long et compliqué à réaliser donc plus coûteux. 3.5 Application aux tests d’hypothèses Les tests d’hypothèses servent à vérifier certaines caractéristiques d’une population donnée. 3.5.1 Principes généraux des tests 1. On commence par énoncer une hypothèse à tester, appelée hypothèse nulle, notée H0 . On note H1 l’hypothèse alternative. 2. On suppose que H0 est vérifiée et l’on compare cette hypothèse avec les caractéristiques du système. Si l’on observe un écart important, on rejette l’hypothèse H0 (et on accepte H1 ), sinon on ne la rejette pas. Exemple : Soit X ∼ N (m, 1) et soient X1 , . . ., Xn iid de même loi que X. On considère les hypothèses H0 : m = 0 H1 : m 6= 0. P À partir des observations, on calcule la moyenne empirique xn = ( ni=1 xi )/n qui est une approximation de m quand n est grand. • Si |xn | est grand on a tendance à rejeter H0 . • Si |xn | est proche de 0, on a tendance à ne pas rejeter H0 . Question : Comment quantifier cela ? On verra cela dans le paragraphe suivant. À l’issue du test on quatre possibilités : Cas favorables : • On ne rejette pas H0 sachant que H0 est vraie. • On rejette H0 sachant que H1 est vraie. Cas défavorables : • On rejette H0 sachant que H0 est vraie. C’est ce que l’on appelle le risque de 1ère espèce : α = P (Rejet H0 | H0 ). C’est le pire des cas, on veut minimiser ce risque. • On ne rejette pas H0 sachant que H1 est vraie. C’est le risque de 2ème espèce : β = P (Non rejet H0 | H1 ). Remarque : Si l’on diminue α, on a tendance à augmenter β. Une façon d’obtenir α = 0 est de systématiquement accepter H0 , ce qui n’est pas satisfaisant. Le choix des hypothèses H0 et H1 n’est pas symétrique. On a une préférence pour l’hypothèse H0 . Exemple : On considère les hypothèses suivantes H0 : « La personne jugée est innocente » H1 : « La personne jugée est coupable ». 44 CHAPITRE 3. PROBABILITÉS Le risque de 1ère espèce α est la probabilité de mettre un innocent en prison. Le risque de 2ème espèce β est la probabilité de laisser un coupable en liberté. Dans un état de droit, on préfère rendre α le plus petit possible, quitte à augmenter β. Ainsi les rôles de H0 et de H1 ne sont pas symétriques. Exemple : On étudie le diagnostic d’une maladie grave : • Décider que le patient est malade à tort entraîne des traitements désagréables. • Décider que le patient n’est pas malade à tort est encore plus grave. Ici il vaut mieux poser H0 : « Le patient est malade » H1 : « Le patient est sain ». Rejeter H0 est quelque chose de définitif. Avant de valider définitivement l’hypothèse H0 , on effectue différents tests. C’est pour cela que l’on dit « on ne rejette pas H0 » plutôt que « on valide H0 ». 3.5.2 Test de la moyenne d’une loi normale dont l’écart-type est connu On suppose qu’une population admet un caractère qui suit une loi X normale N (m, σ) avec σ n connu et m inconnu. On effectue une série de n mesures de X. Soit X n = X1 +···+X la moyenne n σ √ des mesures de X. On peut montrer que la v.a. X n suit une loi normale N (m, n ). On se donne m0 et on veut tester les hypothèses H0 : m = m0 H1 : m 6= m0 . Mise en place du test : On se fixe un risque α. Sous l’hypothèse H0 , X n suit une loi normale N (m0 , √σn ) et on a σ σ ≈ 1 − α. P m0 ∈ X n − zα/2 √ ; X n + zα/2 √ n n À partir des observations dont on dispose, on calcule la statistique xn et • si m0 ∈ xn − zα/2 √σn ; xn + zα/2 √σn , on ne rejette pas l’hypothèse H0 . • si m0 ∈ / xn − zα/2 √σn ; xn + zα/2 √σn , on rejette l’hypothèse H0 . Étude du risque de 1ère espèce : Dans ce test, α est le risque de première espèce : c’est la probabilité de rejeter H0 à tort. En effet, lorsque X suit une loi N (m0 , σ) σ σ α = P m0 ∈ / X n − zα/2 √ ; X n + zα/2 √ . n n Étude du risque de 2ème espèce : C’est la probabilité β d’accepter H0 à tort. Ce risque est difficile à calculer ici. Exemple : On reprend l’exemple des pommes du Paragraphe 3.4.1 avec les données n = 100, xn = 10.6, σ = 3. On va tester les hypothèses H0 : m = 9.9 kg H1 : m 6= 9.9 kg , 3.5. APPLICATION AUX TESTS D’HYPOTHÈSES 45 Si α = 0.05, on obtient l’intervalle de confiance [10.01; 11.19]. Comme 9.9 ∈ / [10.01; 11.19], on rejette H0 . Si α = 0.01, on utilise que zα/2 = 2.58, on obtient l’intervalle de confiance [9.83; 11.37]. Comme 9.9 ∈ [9.83; 11.37], on ne rejette pas H0 . Si α diminue, on augmente la taille de l’intervalle de confiance, on rejette moins souvent H0 et on augmente le risque de second espèce β. 3.5.3 Test d’une proportion On reprend les mêmes caractéristiques et notations que dans l’estimation d’une proportion. On se donne ph ∈]0, 1[ et on veut tester les hypothèses H0 : p = ph H1 : p 6= ph . Mise en place d’un test de risque de première espèce α : On se fixe un risque α. Sous l’hypothèse H0 , on a r r hX ph (1 − ph ) X ph (1 − ph ) i P p∈ − zα/2 , + zα/2 ≈ 1 − α. n n n n À partir des observations dont on dispose, on calcule la statistique pn q q i h ph (1−ph ) h) , p + z , on ne rejette pas l’hypothèse H0 . • si ph ∈ pn − zα/2 ph (1−p n α/2 n n q q h i ph (1−ph ) h) • si ph ∈ pn − zα/2 ph (1−p , p + z , on rejette l’hypothèse H0 . n α/2 n n Application numérique : Soit p (inconnu) la proportion de la population totale votant pour A. On fait un sondage de 1000 personnes et on obtient que 520 votent pour A. On veut tester les hypothèses H0 : p = 0.5 H1 : p 6= 0.5. Ici n = 1000 et pn = 0.52. Au risque α = 0.5 on trouve l’intervalle de confiance pour p qui est [0.49, 0.55]. Comme p ∈ [0.49, 0.55], on ne rejette pas l’hypothèse H0 . 46 CHAPITRE 3. PROBABILITÉS Chapitre 4 Applications de l’arithmétique Rappels : On note N = {0, 1, . . . , n, . . .} l’ensemble des entiers naturels. On note Z = {. . . , −2, −1, 0, 1, . . . , n, . . .} l’ensemble des entiers relatifs. 4.1 Division euclidienne Théorème 4.1 (Division euclidienne) Soient a et b deux éléments de Z avec b > 0. Alors il existe un unique couple (q, r) ∈ Z2 vérifiant a = bq + r, 0 ≤ r < b. On dit que q est le quotient et que r est le reste de la division euclidienne de a par b. Si r = 0 on dit que a est divisible par b (b divise a) et on note b|a. Exemples : Division euclidienne de 17 par 5 : on a 17 = 5 · 3 + 2. Donc q = 3 et r = 2. Division euclidienne de −17 par 5 : on a −17 = 5 · (−4) + 3. Donc q = −4 et r = 3. Définition 4.2 On dit qu’un entier p est premier s’il n’admet par d’autre diviseur que 1 et lui-même Remarques : Les entiers 2, 3, 5, 7, 11, . . . , 97, . . . sont premiers. Le nombre 1 n’est pas premier. Il existe une infinité de nombres premiers. Bien qu’on ne connaisse pas de formule simple pour en générer, on sait en construire de très grands. On sait également facilement tester si un nombre (même très grand) est premier ou non. Il est commode de chercher des grands nombres premiers sous la forme Mn = 2n − 1. Ces nombres s’appellent nombres de Mersenne. Le 7 janvier 2016, il a été confirmé que Mn pour n = 74 207 281 était premier ; ce nombre a 22 338 618 chiffres en base 10. C’était à cette date le plus grand nombre premier connu. Proposition 4.3 (Lemme d’Euclide, ≈ 300 avant JC ) Si p est premier et p|ab, alors p|a ou p|b. On peut montrer que tout entier naturel peut se décomposer en produit de nombre premiers. Par exemple : 150 = 2 · 3 · 52 . Une telle décomposition est unique, à l’ordre près des facteurs. De ce point de vue, les nombres premiers servent de briques de base de la théorie des nombres. Proposition 4.4 Il existe une infinité de nombres premiers. 47 48 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE Preuve : Par l’absurde, supposons qu’il n’y ait qu’un nombre fini de nombres premiers. Notonsles p1 = 2, p2 = 3, p3 , . . . , pn . Soit N = p1 · p2 · · · pn + 1 et soit p un diviseur premier de N . Alors d’une part p est l’un des entiers pi donc p|(p1 · p2 · · · pn ). D’autre part p|N donc p divise la différence N − p1 · p2 · · · pn = 1. Cela implique que p = 1, ce qui contredit que p soit un nombre premier. Exemple : On considère le nombre n = 101 000 000 qui a plus d’un million de chiffres et soit N = n! + 1. Alors soit N est premier, soit il a un diviseur premier qui a plus d’un million de chiffres. En effet, pour tout p ≤ n, le nombre p ne divise pas N . 4.2 Crible d’Eratosthène Comment trouver les nombres premiers ? On commence par le nombre premier 2 et on supprime tous ses multiples. Le premier nombre non barré est premier, et on recommence. Cette méthode s’appelle le crible d’Eratosthène. 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 3 4 5 6 7 13 12 8 9 10 11 19 18 14 15 16 17 √ 20 21 22 23 Si un nombre n n’est pas premier alors un de ses facteurs est inférieur ou égal à 24 25 n. Exemple : Pour tester si un nombre inférieur à 100 est premier il suffit de tester les diviseurs plus petits que 10. Il suffit même de tester la divisibilité par 2, 3, 5 et 7 (les nombres premiers plus petits que 10). Le nombre 89 n’est pas divisible par 2, 3, 5, 7, c’est un nombre premier. Définition 4.5 On appelle plus grand commun diviseur (pgcd) de deux entiers non nuls n, m ∈ N? , le plus grand entier qui divise simultanément ces deux entiers. On le note n ∧ m ou pgcd(n, m). On dit que deux entiers n, m ∈ Z sont premiers entre eux, et on note n ∧ m = 1, s’ils n’ont pas de diviseur commun. Exemples : On a 20 ∧ 3 = 1 ; 14 ∧ 21 = 7. 4.3 4.3.1 Systèmes de numération Écriture en base décimale Un nombre entier s’écrit N= n X k=0 ak 10k = an · 10n + · · · + a1 · 10 + a0 = an an−1 . . . a1 a0 , 4.3. SYSTÈMES DE NUMÉRATION 49 avec pour tout 0 ≤ k ≤ n, ai ∈ {0, 9}. Cette écriture est unique, appelée écriture en base décimale. Plus généralement, tout nombre réel x peut peut s’écrire x= n X ak 10k , k=−∞ avec pour tout 0 ≤ k ≤ n, ak ∈ {0, 9}. Exemple : 1204.35 = 1 · 103 + 2 · 102 + 0 · 101 + 4 · 100 + 3 · 10−1 + 5 · 10−2 . 4.3.2 Écriture en binaire L’architecture matérielle des systèmes informatiques actuels est basée sur des phénomènes physiques à deux états : • le courant passe / le courant ne passe pas, • chargé / non chargé, • position haute / position basse (ou autres directions), Par convention, on représentera un de ces états par un 0, et l’autre par un 1. Grâce à ces deux valeurs, en comptant en base 2, on peut représenter tous les entiers et les nombres réels avec une certaine précision. Définition 4.6 Un nombre entier N s’écrit de façon unique N= n X ak 2k = an · 2n + · · · + a1 · 2 + a0 = (an an−1 . . . a1 a0 )2 , k=0 avec pour tout 0 ≤ k ≤ n, ak ∈ {0, 1}. Ceci est l’écriture en base deux ou écriture en binaire. Lorsqu’il n’y a pas d’ambiguité, on peut simplifier l’écriture : (an an−1 . . . a1 a0 )2 = an an−1 . . . a1 a0 . Exemple : Calculons l’écriture binaire du nombre 2395. Pour cela procédons par divisions euclidiennes successives jusqu’à obtenir un quotient plus petit que 2 2395 = 2 · 1197 + 1 1197 = 2 · 598 + 1 598 = 2 · 299 + 0 299 = 2 · 149 + 1 149 = 2 · 74 + 1 74 = 2 · 37 + 0 37 = 2 · 18 + 1 18 = 2 · 9 + 0 9 = 2·4+1 4 = 2·2+0 2 = 2·1+0 1 = 2·0+1 50 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE L’écriture binaire du nombre 2395 est donc 1001 0101 1011. À partir de l’écriture en binaire on retrouve l’écriture en base décimale 1 · 211 + 0 · 210 + 0 · 29 + 1 · 28 + 0 · 27 + 1 · 26 + 0 · 25 + 1 · 24 + 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 2395. Dans le calcul précédent on a aussi obtenu l’écriture binaire des nombres intermédiaires. Par exemple 299 s’écrit 1 0010 1011, autrement dit 1 · 28 + 0 · 27 + 1 · 26 + 0 · 25 + 1 · 24 + 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 299. Un peu de vocabulaire : • Un chiffre binaire est appelé un bit, pour binary digit en anglais. • Un mot binaire est la quantité de bits qu’un ordinateur peut traiter en même temps, actuellement 32 ou 64. À fréquence équivalente, un ordinateur 64 bits traite deux fois plus d’information qu’un ordinateur 32 bits. • Les premiers ordinateurs utilisaient des mots de 8 bits. C’est encore la granularité 1 minimale en informatique. Un groupe de 8 bits s’appelle un octet, byte en anglais. 1 Kilooctet (Ko) vaut 1024 octets (210 = 1024). 1 Mégaoctet (Mo) vaut 1024 Ko, soit 220 octets. 1 Gigaoctet (Go) vaut 1024 Mo, soit soit 230 octets. Remarque : Pour représenter un nombre décimal, typiquement un ordinateur utilise 64 bits (1 bit de signe, 11 bits d’exposant (-1022 à 1023), 52 bits de mantisse (nombres après la virgule)). Cela conduit à de nombreuses approximations. Par exemple, le nombre 1/3 (quotient de deux entiers) ne peut pas s’écrire de façon exacte à l’aide d’une somme finie d’inverses de puissances de 2. En effet, en utilisant la formule +∞ X qk = k=0 1 , 1−q −1 < q < 1, avec q = 1/4 on remarque que (et avec le changement d’indice j = k − 1) +∞ +∞ +∞ X X 1 1 1X 1 1 1 = = = = . j 2k k 4 4 4(1 − 1/4) 3 2 4 k=1 k=1 j=0 +∞ X 1 ak = , a0 = 0, a2j = 1 pour j ≥ 1 et Ainsi, on a obtenu la décomposition en binaire 3 2k k=0 a2j+1 = 1 pour j ≥ 0. Pour plus de détails concernant les problèmes d’approximation, voir : http://images.math. cnrs.fr/Un-ordinateur-est-il-une-parfaite.html Application : Le code ASCII (American Standard Code for Information Interchange) définit 128 codes à 7 bits, comprenant 95 caractères imprimables (chiffres, lettres, ...) et 32 caractères de contrôle (espace, saut de ligne, ...). On peut rajouter un bit de parité, pour permettre la détection d’une erreur de transmission. 1. La notion de granularité définit la taille du plus petit élément, de la plus grande finesse d’un système. Quand on arrive au niveau de granularité d’un système, on ne peut plus découper l’information. 4.3. SYSTÈMES DE NUMÉRATION 4.3.3 51 Écriture en base b Plus généralement, on peut écrire un entier n en base b avec b un entier quelconque. Le calcul des chiffres de l’écriture d’un entier naturel n en base b s’effectue par des divisions euclidiennes successives par b, en partant de l’entier N jusqu’à obtenir un quotient plus petit que b. Calcul d’un entier à partir de son écriture dans une base : Inversement à partir de la connaissance de l’écriture an an−1 . . . a1 a0 dans une base b d’un entier N , il est possible de convertir cet entier en base 10 par une évaluation de la somme N= n X ak bk = (an an−1 . . . a1 a0 )b . k=0 Exercice : 1) Comment s’écrit 27 en base 7 ? 2) Comment s’écrit le nombre (1012)3 en base 10 ? 4.3.4 Écriture en base hexadécimale (base 16) Cette numération est fréquemment utilisée en informatique, notamment pour • coder des adresses mémoire ; • coder la couleur d’un pixel. On va détailler le deuxième point : La couleur d’un pixel est codée par 24 bits en trois groupes de 8 bits : 52 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE • les 8 premiers bits sont consacrés à la teinte primaire rouge ; • les 8 bits suivants sont consacrés à la teinte primaire vert ; • les 8 derniers bits sont consacrés à la teinte primaire bleu. Une séquence de 8 bits (un octet) permet de coder un nombre entier compris entre 0 et 28 − 1 = 255. Une façon commode de représenter les couleurs, est de les coder en base hexadécimale (base 16), c’est le cas en HTML. En effet on remarque ici que 256 = 162 , ainsi chaque octet pourra être codé par deux chiffres en base 16. Pour chaque composante primaire de couleur, on code son intensité de 0 à 255. Pour la conversion en base décimale, on utilise le tableau de conversion suivant : Base 10 Base 16 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F Application : On considère la couleur « indigo » codée en HTML 2 par #791CF 8. Quelle est l’intensité de chacune des couleurs primaires ? Intensité du rouge : 7 · 16 + 9 = 121 ; Intensité du vert : 1 · 16 + 12 = 28 ; Intensité du bleu : 15 · 16 + 8 = 248. On trouve une couleur mauve, proche du bleu. Exercice : Combien de couleurs peut-on coder de cette manière ? Il y a en a 2563 = 16 777 216. 4.4 Congruences, calcul modulo n Définition 4.7 On dit que a est congru à b modulo n si n divise a − b, c’est-à-dire s’il existe x ∈ Z tel que (a − b) = nx. On note alors a ≡ b (modulo n) ou bien a ≡ b (mod n) ou bien a ≡ b [n]. On vérifie facilement que • on a toujours a ≡ a (modulo n) ; • si a ≡ b (modulo n), alors b ≡ a (modulo n) ; • si a ≡ b et b ≡ c (modulo n), alors a ≡ c (modulo n). On dit que la relation de congruence « ≡ » est une relation d’équivalence. Exemples : 20 ≡ 0 ≡ 10 (modulo 2) ; 96 ≡ −1 (modulo 97) ; 121 ≡ 1 (modulo 20). Proposition 4.8 Soient a, b, c, d, x, y ∈ Z. Alors, si a ≡ c et b ≡ d (modulo n), alors a + b ≡ c + d (modulo n), si a ≡ c et b ≡ d (modulo n), alors ab ≡ cd (modulo n), si a ≡ c et b ≡ d (modulo n), alors ax + by ≡ cx + dy (modulo n). 2. L’Hypertext Markup Language, généralement abrégé HTML, est le format de données conçu pour représenter les pages web. 4.4. CONGRUENCES, CALCUL MODULO N 53 Preuve : On montre seulement la seconde implication. Puisque a ≡ c (modulo n), alors n|(a−c). Donc, il existe un entier x tel que a − c = nx. De même, il existe y tel que b − d = ny. Pour montrer que ab ≡ cd (modulo n), on doit montrer que n|ab − cd. Or, ab − cd = (ab − ad) + (ad − cd) = a(b − d) + d(a − c) = nay + nxd = n(ay + xd). D’où n|(ab − cd), ce qui est équivalent à la conclusion cherchée. Proposition 4.9 Soient a et n deux entiers tels que a < n. Si a ∧ n = 1, alors il existe un x ∈ {1, . . . , n − 1} unique tel que ax ≡ 1 (modulo n). Exemples : Voici les tables d’addition et de multiplication modulo 3 et 4 : addition modulo 3 : + 0 1 2 0 0 1 2 1 1 2 0 2 2 0 1 addition modulo 4 : + 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2 multiplication modulo 3 : × 0 1 2 0 0 0 0 1 0 1 2 2 0 2 1 multiplication modulo 4 : × 1 2 3 1 1 2 3 2 2 0 2 3 3 2 1 On peut illustrer le résultat la Proposition 4.9 : si n = 3 et a = 2, alors dans le tableau on lit x = 2 (car 2 · 2 ≡ 1 modulo 3). Si n = 4 et a = 2, alors on lit 2 · 2 ≡ 0 modulo 4. Ici il n’existe pas x tel que ax ≡ 1 (modulo n). Définition 4.10 (Indicatrice d’Euler ) Soit n ≥ 1 un entier. On note ϕ(n) le nombre d’entiers 1 ≤ k ≤ n tels que k ∧ n = 1. Par exemple, lorsque p est un nombre premier, ϕ(p) = p − 1. En effet, tous les entiers 1 ≤ k ≤ p − 1 sont premiers avec p, et p|p. Voici un autre cas particulier important qui va servir dans la suite : Proposition 4.11 Soient p et q deux nombres premiers distincts. Alors, ϕ(pq) = (p − 1)(q − 1). Preuve : On doit compter le nombre d’entiers de E = {1, 2, . . . , pq−1} qui sont premiers avec pq. Les seuls entiers qui ne sont pas premiers avec pq sont les multiples de p, ceci donne l’ensemble P = {p, 2p, . . . , (q − 1)p} (on en a q − 1) et les multiples de q, soit Q = {q, 2q, (p − 1)q} (on en a p − 1). Notons que P ∩ Q = ∅ puisque, si np = mq avec m < p, alors p|np = mq, et d’après la 54 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE Proposition 4.3 soit p|m, soit p|q, ce qui est absurde. Au total, le nombre d’entiers de S qui sont premiers avec pq est pq − 1 − (p − 1) − (q − 1) = pq − p − q + 1 = (p − 1)(q − 1). La fonction ϕ apparaît dans le résultat suivant : Théorème 4.12 (Théorème d’Euler ) Soient m < n tels que n ∧ m = 1, alors mϕ(n) ≡ 1 (modulo n). Exemple : • On prend n = 6 et m = 5. Alors d’après la Proposition 4.11 on a ϕ(6) = 2. On vérifie que l’on a bien 52 = 25 ≡ 1 modulo 6. • On prend n = 7 et m = 3. On vérifie que 36 ≡ 1 mod 7. Application : test de primalité de Fermat : si n est un nombre premier, on obtient que mn−1 ≡ 1 (modulo n), pour tout 1 ≤ m < n. Ce résultat s’appelle le petit théorème de Fermat. En pratique, ceci peut servir de test de primalité : si un nombre n est tel que 2n−1 ≡ 3n−1 ≡ 5n−1 ≡ 7n−1 ≡ 1 (modulo n), alors il a de bonnes chances d’être premier 3 . Un raffinement de ce test est le test de Miller-Rabin qui donne de plus une majoration de la probabilité de décider à tort qu’un nombre est premier. 4.5 4.5.1 Règles de divisibilité Divisibilité par 2 Proposition 4.13 Pour qu’un nombre soit divisible par 2, il faut et il suffit que son dernier chiffre (le chiffre des unités) soit pair. Preuve : Modulo 2 on a 10 ≡ 0 donc 10n ≡ 0 pour tout n ≥ 1. Soit N un entier. Alors on peut l’écrire N = an 10n + · · · + a1 10 + a0 , ainsi N ≡ an · 0 + · · · + a1 · 0 + a0 ≡ a0 modulo 2. 4.5.2 Divisibilité par 5 Proposition 4.14 Pour qu’un nombre soit divisible par 5, il faut et il suffit que son dernier chiffre soit 0 ou 5. Preuve : Modulo 5 on a 10 ≡ 0 donc 10n ≡ 0 pour tout n ≥ 1. Un nombre s’écrit N = an 10n + · · · + a1 10 + a0 , ainsi N ≡ an · 0 + · · · + a1 · 0 + a0 ≡ a0 modulo 5. 3. Attention : il existe des nombres qui ne sont pas premiers et qui passent ce test. Ils sont appelés nombres de Carmichaël. 4.6. APPLICATION 1 : GÉNÉRATION DE NOMBRES PSEUDO-ALÉATOIRES 4.5.3 55 Divisibilité par 3 Proposition 4.15 Pour qu’un nombre soit divisible par 3, il faut et il suffit que la somme de ses chiffres soit divisible par 3. Preuve : Modulo 3 on a 10 ≡ 1 donc 10n ≡ 1 pour tout n ∈ N. Un nombre s’écrit N = an 10n + · · · + a1 10 + a0 , ainsi N ≡ an + · · · + a1 + a0 modulo 3. En pratique, on fait la somme des chiffres, on obtient un nouveau nombre sur lequel on recommence le procédé et ainsi de suite. Pour trouver le reste d’une division par 3, il suffit de remplacer le nombre à diviser par la somme de ses chiffres et de faire la division euclidienne de cette somme par 3. Exemple : Le nombre 123 451 722 est divisible par 3. Ainsi 123 451 724 ≡ 2 modulo 3. 4.5.4 Divisibilité par 9 Proposition 4.16 Pour qu’un nombre soit divisible par 9, il faut et il suffit que la somme de ses chiffres soit divisible par 9. Preuve : C’est le même argument que pour la division par 3. Exemple : Trouver le reste de 785 486 par 9. C’est celui de (7+8+5+4+8+6) par 9, donc de 38 par 9, donc aussi de (3+8) par 9, donc de 11 par 9, donc de (1+1)=2 par 9, c’est donc 2. Une application, la preuve par 9 : Cette méthode permet de vérifier des résultats de multiplications. Dans un produit, elle consiste à comparer les restes modulo 9. Vérifions-la sur un exemple : 4752 · 347 = 1 648 944. On a 4752 ≡ 0 et 347 ≡ 5 modulo 9, donc 4752 · 347 ≡ 0 modulo 9. D’un autre côté, 1 648 944 ≡ 0 modulo 9. Ainsi le résultat n’apparaît pas faux. Exercice : Montrer que la preuve par 9 est insensible à une erreur de permutation des chiffres. 4.6 Application 1 : Génération de nombres pseudo-aléatoires Le modèle de générateur pseudo-aléatoire le plus connu est le générateur congruentiel linéaire : Il génère des nombres appartenant à E = {1, . . . , p − 1} par la règle suivante : on part d’un nombre x0 ∈ E appelé graine, puis on définit la suite xn+1 = axn (modulo p), n ≥ 0, où p est un nombre premier et a est un élément de E tel que ( ak 6≡ 1 modulo p, pour tout k < p − 1, ap−1 ≡ 1. Ce générateur produit une suite de nombres dans E = {1, . . . , p − 1}, et pour obtenir des nombres dans [0, 1], on divise le résultat obtenu par p − 1. La suite de nombres obtenue est périodique de période exactement p − 1. Les générateurs linéaires congruentiels sont employés dans de nombreux logiciels et, par exemple, on utilise souvent p = 231 − 1 et a = 16 807, mais ces générateurs ne sont pas jugés très fiables, car ils ne passent pas les tests statistiques (voir exemple plus bas). 56 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE Exemple : Prenons comme exemple le cas p = 7. Alors on peut prendre a = 3 car 2 3 ≡ 2 modulo 7 3 3 ≡ 6 modulo 7 34 ≡ 4 modulo 7 35 ≡ 5 modulo 7 36 ≡ 1 modulo 7 On peut par exemple initialiser la suite par x0 = 1, alors x1 = 3, x2 = 2, x3 = 6, . . . Bien sûr, de tels nombres étant générés de façon automatique, ne sont pas du tout aléatoires (on rappelle que la suite obtenue est même périodique de période p−1). Néanmoins, si a et p sont bien choisis, et assez grands, on peut espérer que cette contrainte ne soit pas trop importante. Pour illustrer des problèmes liés à l’utilisation de nombres pseudo-aléatoires, voici une anecdote tirée du livre « Mathématiques et technologie » (voir références) : Exemple : Le 10 avril 1994, un joueur est appréhendé par la police au Casino de Montréal. Il vient de battre toutes les statistiques possibles en remportant trois lots consécutifs au jeu de keno, amassant ainsi plus d’un demi-million de dollars 4 . Il est clairement soupçonné d’avoir enfreint les lois des jeux de hasard interdisant la collusion avec les employés du casino, la manipulation des appareils électroniques, etc. Une enquête est menée et, après quelques semaines, le joueur est relâché et son lot, capital et intérêts, lui est remis. Et le Casino de Montréal a appris une leçon rapide sur les générateurs de nombres aléatoires : Le joueur en question connaissait, de par son travail, le mécanisme des générateurs de nombres aléatoires. Il savait que les algorithmes sous-jacents sont déterministes et donc, qu’un algorithme donné, pour des conditions initiales identiques, génère des suites identiques. Lors de précédentes visites, il avait remarqué que les nombres des appareils de keno sortaient, soir après soir, dans le même ordre. Il nota donc ces nombres et les joua ! Une explication possible est que les machines générant les nombres aléatoires étaient éteintes tous les soirs et qu’au moment du redémarrage, les machines réutilisaient les mêmes conditions initiales, produisant soir après soir les mêmes nombres dans le même ordre. Question : Comment peut-on changer les conditions initiales pour que les suites ne soient pas toujours les mêmes à chaque démarrage du programme ? Voici deux manières différentes de procéder : • Au moment où l’on éteint la machine, elle enregistre les derniers nombres aléatoires générés. Ceux-ci serviront alors comme conditions initiales au prochain démarrage. • Au démarrage, le programme demande le nombre de secondes (ou de millièmes de secondes) écoulé depuis une date fixée, disons depuis minuit le 1er janvier de l’an 2000. Les dernières décimales de ce nombre seront utilisées comme conditions initiales. En fait, à chaque redémarrage, le logiciel Scilab fournit la même suite de nombres pseudoaléatoires avec la fonction rand. Pour obtenir des suites moins prévisibles, on peut modifier la graine en utilisant l’horloge interne de la machine, avec la commande n=getdate("s") ; rand("seed",n) ; Vérifiez-le en faisant quelques simulations. 4. Au keno, le joueur doit choisir une dizaine de nombres dans l’ensemble {1,2,. . .,80}. Le casino tire alors 20 boules parmi 80 boules numérotées de 1 à 80. Ce tirage peut également être fait électroniquement, comme c’est le cas maintenant dans la plupart des casinos. Le lot gagné dépend de la mise du joueur et du nombre de coïncidences entre les nombres choisis par le joueur et les numéros des boules tirées au sort. 4.7. APPLICATION 2 : CALCUL DE LA CLÉ D’UN RIB 57 Exemple : On va montrer qu’un générateur linéaire congruentiel n’a pas toujours de bonnes propriétés statistiques. Prenons comme paramètres p = 151 et a = 30. Alors avec la condition initiale x0 = 1 on obtient la suite 30 145 122 36 23 86 13 88 73 76 15 148 61 18 87 43 82 44 112 38 83 74 106 9 119 97 41 22 56 19 117 37 53 80 135 124 96 11 28 85 134 94 102 40 143 62 48 81 14 118 67 47 51 20 147 31 24 116 7 59 109 99 101 10 149 91 12 58 79 105 130 125 126 5 150 121 6 29 115 128 65 138 63 78 75 136 3 90 133 64 108 69 107 39 113 68 77 45 142 32 54 110 129 95 132 34 114 98 71 16 27 55 140 123 66 17 57 49 111 8 89 103 70 137 33 84 104 100 131 4 120 127 35 144 92 42 52 50 141 2 60 139 93 72 46 21 26 25 146 1 On la transforme ensuite en une suite de 0 et de 1 en posant ( 0 si xn ≤ 75 yn = 1 si xn ≥ 76, ce qui donne la suite 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 Dans cette suite 0 et 1 apparaissent chacun 75 fois, ce qui est satisfaisant. En revanche, lorsqu’on étudie la fréquence d’apparition des suites de longueur 2, on voit que • le terme 00 apparait avec fréquence 0.20 (15 occurrences sur 75), • le terme 11 apparait avec fréquence 0.20 (15/75), • le terme 01 apparait avec fréquence 0.25 (19/75), • le terme 10 apparait avec fréquence 0.35 (26/75). Ainsi, il semble à première vue qu’il n’y a pas équi-répartition des sous-suites de longueur 2. Un bon générateur de nombres pseudo-aléatoires est le registre à décalage. Pour plus de détails, voir « Mathématiques et technologie » chapitre 8. 4.7 Application 2 : Calcul de la clé d’un RIB Un compte en banque est identifié par 23 caractères qui sont pour la plupart des chiffres. On les trouve sur le relevé d’identité bancaire (le RIB). Le nombre formé par les deux derniers chiffres de droite constitue la clé permettant de vérifier la cohérence du numéro. Les 21 premiers caractères sont formés par : • le code de banque (5 chiffres) • le code du guichet ou de l’agence (5 chiffres) • le numéro de compte proprement dit. 58 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE Si l’un des caractères est une lettre, il faut le coder à l’aide de la correspondance donnée dans le tableau suivant. A J B K S 2 1 C L T 3 D M U 4 E N V 5 F O W 6 G P X 7 H Q Y 8 I R Z 9 Si l’on désigne par N le nombre de 21 chiffres construit comme indiqué ci-dessus, la clé de contrôle C est calculée par la formule suivante : • On écrit la division euclidienne de 100 · N par 97, noté 100 · N = 97q + r avec 0 ≤ r ≤ 96. • La clé est donnée par C = 97 − r. Ce nombre C doit être écrit avec deux chiffres. S’il est plus petit que 10, il faut écrire un zéro à sa gauche (par exemple, 4 devient 04). Remarque 4.17 En écrivant la clé de contrôle C, avec deux chiffres, juste à droite du nombre N initial, on doit donc obtenir un multiple de 97 (la division par 97 tombe juste). Exemple : Banque 18208 Guichet 00003 Compte 01170928519 Clé 13 Ici le nombre obtenu est 18 208 000 030 117 092 851 913 = 187 711 340 516 671 060 329 · 97, donc le numéro de compte (clé incluse) est bien divisible par 97. 4.8 Application 3 : Vérification d’un numéro de billet en euros Le numéro se présente pour les anciens billets, sous la forme d’une lettre suivie de onze chiffres (par exemple : Z73585540773). Pour les nouveaux billets il y a deux lettres suivies de dix chiffres (par exemple : EA4562608096). Remplaçons d’abord la lettre par son rang dans l’alphabet comme indiqué dans le tableau suivant : A 1 N 14 B 2 O 15 C 3 P 16 D 4 Q 17 E 5 R 18 F 6 S 19 G 7 T 20 H 8 U 21 I 9 V 22 J 10 W 23 K 11 X 24 L 12 Y 25 M 13 Z 26 Nous obtenons un nombre de douze ou treize chiffres. Alors, le reste de ce nombre dans la division par 9 doit être 8 pour les anciens billets et 7 pour les nouveaux billets. Une autre façon de procéder est d’ajouter le nombre de lettres (1 ou 2) au reste dans la division par 9 du nombre correspondant à la partie numérique du numéro à laquelle on a ajouté le code de la ou des lettres. On doit obtenir un multiple de 9 : il doit donner un reste nul dans la division par 9. Exemples : Pour un ancien billet (Z a pour code 26) : Z73 585 540 773 donne 1 + 26 + 73585540773. Ainsi modulo 9 on obtient 1 + 26 + 54 = 81 dont le reste est nul dans la division par 9. 4.9. APPLICATION 4 : CHIFFREMENT AFFINE 59 Pour un nouveau billet (E a pour code 5 et A a pour code 1) : EA4562608096 donne 2 + 5 + 1 + 4562608096. Ainsi modulo 9 on obtient 2 + 5 + 1 + 46 = 54 dont le reste est nul dans la division par 9. Conclusion : Dans de nombreuses situations, on rencontre ces clés obtenues par des arguments arithmétiques, qui permettent de s’assurer de la cohérence d’un grand nombre. C’est par exemple aussi le cas dans : • le numéro d’une carte de crédit ; • le numéro INSEE d’une personne ; • le numéro d’un avis de contravention ; • le numéro de code barre ; • le numéro ISBN 5 dans un livre, . . . 4.9 Application 4 : Chiffrement affine Afin de coder un message on assimile chaque lettre de l’alphabet à un nombre entier comme l’indique le tableau ci-dessous : A 0 N 13 B 1 O 14 C 2 P 15 D 3 Q 16 E 4 R 17 F 5 S 18 G 6 T 19 H 7 U 20 I 8 V 21 J 9 W 22 K 10 X 23 L 11 Y 24 M 12 Z 25 Le chiffrement consiste à coder un message. Le déchiffrement consiste à décoder un message codé. Un chiffrement élémentaire est le chiffrage affine. On se donne une fonction de codage affine f , par exemple : f (x) = 11x + 8 modulo 26. A une lettre du message • on lui associe un entier x entre 0 et 25 suivant le tableau ci-dessus ; • on calcule y = f (x) = 11x + 8 modulo 26 ; • on traduit y par une lettre d’après le tableau ci-dessus. Pour décoder, il faut construire la fonction réciproque f −1 de f (voir exercices). Exemples : On veut coder la lettre G. Celle-ci correspond à x = 6, donc on calcule f (6) = 74 ≡ 22. On obtient donc la lettre W . 4.10 Application 5 : Cryptographie RSA Étudions à présent le code RSA, du nom de ses concepteurs Rivest, Shamir et Adleman. C’est une méthode de chiffrement asymétrique, appelée aussi code à clé publique 6 . Ce qui 5. International Standard Book Number 6. L’idée d’un système de chiffrement à clé publique est apparue dans les années 60. Les agences de renseignement britanniques focalisèrent leur efforts sur cette question vers 1969 et la solution, trouvée en 1973 (par un certain Cocks), resta classée « secret défense ». C’est en 1977 que les trois Américains Rivest, Shamir et Adleman ont proposés la première mise en œuvre d’un cryptosystème à clé publique : Le RSA. Ils déposèrent un brevet et créèrent la société RSA security pour l’exploiter. Voir aussi les contributions de Diffie et Hellman. 60 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE est particulièrement remarquable dans ce code, c’est qu’il tient depuis 1978. Le fait est d’autant plus surprenant que le mode de fonctionnement du code est complètement public. De façon imagée, si Bob veut envoyer un message à Alice, il dépose son message dans la boîte aux lettres d’Alice, seule Alice pourra ouvrir sa boîte et consulter le message. Ici la clé publique est symbolisée par la boîte aux lettres, tout le monde peut y déposer un message, la clé qui ouvre la boîte aux lettres est la clé privée d’Alice, que Alice doit conserver à l’abri. L’ingrédient de base du code RSA est la théorie des nombres, plus particulièrement l’arithmétique (+, .) modulo n, et on utilise le théorème d’Euler (Théorème 4.12). La méthode fonctionne à cause des trois faits suivants : • il est difficile pour un ordinateur de factoriser un grand nombre ; • il est facile pour un ordinateur de construire de grands nombres premiers ; • il est facile pour un ordinateur de décider si un grand nombre est premier. Avantages d’un système à clé publique : • Il n’y a pas de risque d’interception de la clé, car celle-ci est publique ! • La méthode fonctionne même avec un grand nombre d’utilisateurs (par exemple lorsque l’on paye avec sa carte de crédit sur Internet). Pour une méthode à clé secrète, il faut autant de paires de clés que de couples de correspondants. • Le code RSA permet de signer un message de telle sorte qu’on soit sûr de sa provenance (ceci permet d’éviter une usurpation d’identité). Inconvénients d’un système à clé publique : • Pour un niveau de sécurité équivalent, les clefs doivent être beaucoup plus longues (au moins dix fois plus longues). • Les temps de traitement sont plus longs (entre 100 fois et 1000 fois plus longs). Le code RSA est très utilisé sur Internet, par exemple, pour sécuriser un site lorsqu’il reçoit des numéros de cartes de crédit. Le système bancaire est également protégé par le code RSA. Pour tirer profit des deux méthodes de chiffrement, on peut utiliser une méthode de chiffrement à clé secrète (méthode de chiffrement symétrique), et la clé secrète est transmise avec une méthode de chiffrement à clé publique (méthode de chiffrement asymétrique). C’est par exemple le cas dans le protocole TLS (https). Un système de cryptographie à clé publique est mis en place par une personne ou une organisation (que nous appellerons le receveur, Bob) qui veut recevoir des messages de manière sécuritaire (de la part d’Alice). C’est elle qui construit le système et publie la méthode transmission des messages. • Première étape : Bob choisit p et q deux grands nombres premiers (plus de 100 chiffres). Il calcule n = pq. Ce nombre, la « clé », a près de 200 chiffres. Il est public, alors que p et q sont gardés secrets. Les ordinateurs ne peuvent, en un temps raisonnable, retrouver p et q à partir de n. • Deuxième étape : Bob calcule ϕ(n), où ϕ est la fonction d’Euler définie comme suit : ϕ(n) est le nombre d’entiers dans {1, 2, . . . , n − 1} qui sont premiers avec n, pour n > 1 et ϕ(1) = 1. D’après la Proposition 4.11 on a ϕ(n) = (p − 1)(q − 1). Remarquer que cette formule fait appel aux facteurs inconnus p et q de n. Calculer ϕ(n) sans connaître p et q semble aussi difficile que de factoriser n (quoiqu’il n’y ait pas de preuve rigoureuse que les deux opérations soient aussi difficiles l’une que l’autre). 4.10. APPLICATION 5 : CRYPTOGRAPHIE RSA 61 Figure 4.1 – Alice veut envoyer un message à Bob. Elle commence par le chiffrer à l’aide de la clé publique de Bob et lui transmet. Bob est le seul à pouvoir décoder le cryptogramme, à l’aide de sa clé privée. • Troisième étape : choix d’une clé de chiffrement. Bob choisit e ∈ {1, . . . , n − 1} premier avec ϕ(n). Le nombre e est la clé de chiffrement. Elle est publique. Alice s’en sert pour encoder son message suivant les instructions publiées par Bob. • Quatrième étape : construction d’une clé de déchiffrement. On peut montrer qu’il existe d ∈ {1, . . . , n−1} tel que ed = 1 (modulo ϕ(n)) (c’est-à-dire que le reste de la division de ed par ϕ(n) est 1). On peut construire d grâce à l’algorithme d’Euclide (divisions euclidiennes successives). Le nombre d, construit par le receveur, est la clé de déchiffrement. Elle est secrète et permet à Bob de déchiffrer les messages reçus. • Cinquième étape : chiffrement d’un message à envoyer. Alice veut envoyer un message qui est un nombre m appartenant à {1, . . . , n − 1}. Pour l’encoder, elle calcule le reste a de la division de me par n. On a donc me = a (modulo n), où a ∈ {1, . . . , n − 1}. Le a qu’elle a calculé est le message chiffré. Alice envoie a. Il est facile pour un ordinateur de calculer a, même si m, e et n sont très grands. • Sixième étape : déchiffrement du message reçu. Bob reçoit a. Pour déchiffrer, il calcule ad (modulo n). Nous allons montrer à la Proposition 4.18 que le reste de la division de ad par n est précisément le message initial m. Regardons un exemple simple avec des petits nombres. Exemple : Traitons un cas simple. On prend p = 7 et q = 13, alors n = pq = 91. On doit déterminer quels sont les entiers de E = {1, . . . , 90} qui ne sont pas premiers avec 91. Ce sont 7, 13, 14, 21, 26, 28, 35, 39, 42, 49, 52, 56, 63, 65, 70, 77, 78, 84, soit 18 entiers. Il y a donc 90 − 18 = 72 entiers de E premiers avec 91, ce qui donne ϕ(91) = 72. Choisissons e = 29. On a bien e ∧ ϕ(n) = 1. Pour trouver d, on fait des divisions euclidiennes successives : 62 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE 72 = 29 · 2 + 14, 29 = 14 · 2 + 1. Maintenant, nous remontons pour écrire 1 en fonction de 29 et de 72 : 1 = 29 − 14 · 2 = 29 − (72 − 29 · 2) · 2 = 29 · 5 − 72 · 2. On a donc 29 · 5 ≡ 1 modulo 72, ce qui donne d = 5. Soit m = 59 notre message. On a bien 59 < 91. Pour chiffrer, nous devons calculer 5929 modulo 91. On va utiliser l’algorithme d’exponentiation rapide : on va calculer successivement 592 , 598 et 5916 modulo 91, et utiliser que 5929 = 5916 · 598 · 594 · 59. On calcule 594 , 592 = 3481 ≡ 23 (modulo 91) 594 = (592 )2 ≡ 232 = 529 ≡ 74 (modulo 91) 598 = (594 )2 ≡ 742 = 5476 ≡ 16 (modulo 91) 5916 = (598 )2 ≡ 162 = 256 ≡ 74 (modulo 91). Donc finalement, 5929 = 5916 · 598 · 594 · 59 ≡ 74 · 16 · 74 · 59 (modulo 91) ≡ 1 · 74 · 59 = 4366 (modulo 91) ≡ 89 (modulo 91). La méthode de calcul que nous avons présentée est celle qu’utilisent les ordinateurs. Le message encodé est a = 89. Nous l’envoyons. Pour le décoder, le receveur doit calculer le reste de la division de 895 par 91. La même méthode permet de faire le calcul et de récupérer le message initial, soit m = 59. En effet, 892 = 7921 ≡ 4 (modulo 91) 894 = (892 )2 ≡ 42 = 16 (modulo 91), ce qui permet de calculer 895 = 894 · 89 ≡ 16 · 89 = 1424 ≡ 59 (modulo 91). On a ainsi récupéré le message m. Proposition 4.18 Le chiffrement-déchiffrement du code RSA fonctionne : si on encode un message m tel que m ∧ n = 1 et si a est tel que me ≡ a (modulo n), alors le déchiffrement redonne le message m, car ad ≡ m (modulo n). Preuve : Si me ≡ a (modulo n), alors ad ≡ (me)d = med = mkϕ(n)+1 = mkϕ(n) · m = (mϕ(n) )k · m ≡ 1k · m (modulo n). Exemple : Une entreprise veut monter un système de commandes sur Internet. Elle instaure donc un chiffrement à clé publique pour la transmission du numéro de carte de crédit. Le numéro de carte de crédit est un nombre de 16 chiffres auquel on ajoute les 4 chiffres qui correspondent à 4.10. APPLICATION 5 : CRYPTOGRAPHIE RSA 63 la date d’expiration, pour un total de 20 chiffres. L’entreprise choisit p et q, deux grands nombres premiers. Nous fonctionnerons dans notre exemple avec des nombres de 25 chiffres, ce qui donne pour n un nombre de 50 chiffres environ. Prenons p = 12 345 679 801 994 567 990 089 459 et q = 8 369 567 977 777 368 712 343 087. Ceci donne n = pq = 103 328 006 334 666 582 188 478 564 007 333 624 855 622 630 219 933 et ϕ(n) = (p − 1)(q − 1) = 103 328 006 334 666 582 188 478 543 292 085 845 083 685 927 787 388. L’entreprise choisit ensuite e = 115 670 849 qui satisfait à e∧ϕ(n) = 1, et utilise la Proposition 4.9 pour calculer : d = 34 113 931 743 910 925 784 483 561 065 442 183 977 516 731 202 177. A priori, on ne peut envoyer que des messages premiers avec n. Ici, aucun problème : les seuls diviseurs de n ont au moins 25 chiffres, et donc, tout nombre de 20 chiffres est premier avec n. Un client a le numéro de carte de crédit 4540 3204 4567 8231, et la date d’expiration de sa carte est le 10/02. On doit donc envoyer le message m = 45 403 204 456 782 311 002. Avant d’envoyer, le logiciel calcule me ≡ a ≡ 49 329 085 221 791 275 793 017 511 397 395 566 847 998 886 183 308 (modulo n). Le nombre a est transmis. Sur réception, l’entreprise calcule ad ≡ 45 403 204 456 782 311 002 = m (modulo n). Dans cet exemple, les entiers p et q choisis ne sont pas assez grands, et un ordinateur pourrait factoriser n. Que se passerait-il s’il y avait une erreur de transmission ? On pourrait facilement s’en rendre compte : le message erroné n’a a priori aucune raison d’avoir 20 chiffres une fois décodé. 64 CHAPITRE 4. APPLICATIONS DE L’ARITHMÉTIQUE Chapitre 5 Systèmes linéaires 5.1 Introduction 5.1.1 Exemple introductif Une entreprise fabrique deux types de peinture : une peinture Eco et une peinture de qualité supérieure Extra. Un premier client achète 3 tonnes de peinture Eco et 2 tonnes de peinture Extra et paye 60 000 euros. Un deuxième client achète 5 tonnes de peinture Eco et 3 tonnes de peinture Extra et paye 95 000 euros. Combien coûte la tonne de peinture Eco et Extra ? On note x le prix (en milliers d’euros) de la tonne de peinture Eco et y celui de la tonne de peinture Extra. Les informations précédentes donnent le système d’équations : 3x + 2y = 60 5x + 3y = 95. Ce système admet-il des solutions (existence, unicité) ? Comment le résoudre ? 5.1.2 Équations de droites Une équation linéaire à deux inconnues, du type a1 x + a2 y = b, est l’équation d’une droite dans le plan. Plus précisément, si a1 , a2 et b sont des réels fixés, tels que a1 6= 0 ou a2 6= 0, l’ensemble des couples (x, y) vérifiant a1 x + a2 y = b est une droite. Exemples : Tracer les droites suivantes : y = 1 ; y − 2x = −1 ; 3x + 5y = 2 ; x = 2. 5.1.3 Systèmes On considère maintenant deux équations couplées de ce type a11 x + a12 y = b1 a21 x + a22 y = b2 . Chercher une solution de ce système revient à étudier les points d’intersections de ces droites. Voici trois exemples de systèmes linéaires de 2 équations à 2 inconnues, et les interprétations géométriques correspondantes : 1. On considère le système 2x − y = 5 x + y = 1. (5.1) On a deux équations de droites D1 et D2 qui se coupent en un seul point. Le système (5.1) a une seule solution. 65 66 CHAPITRE 5. SYSTÈMES LINÉAIRES 2. On considère le système 3x − 2y = 5 3x − 2y = −1. (5.2) On a deux équations de droites D1 et D2 parallèles et non confondues. Le système (5.2) n’a pas de solution. 3. On considère le système 4x + 5y = 3 8x + 10y = 6. (5.3) Les droites D1 et D2 sont confondues. Le système (5.3) a une infinité de solutions y y D1 D1 y D2 D2 D1 = D2 x x x Une équation linéaire est une équation du type a1 x1 + · · · + ap xp = b, où les inconnues sont x1 , . . . , xp , et les données sont a1 , . . . , ap et b. Un système de n équations linéaires à p inconnues est une liste de n équations linéaires couplées a11 x1 + a12 x2 + a13 x3 + · · · + a1p xp = b1 a21 x1 + a22 x2 + a23 x3 + · · · + a2p xp = b2 .. . . = .. ai1 x1 + ai2 x2 + ai3 x3 + · · · + aip xp = bi .. .. . = . an1 x1 + an2 x2 + an3 x3 + · · · + anp xp = bp . Les nombres aij , i = 1, . . . , n, j = 1, . . . , p, s’appellent les coefficients du système, et les nombres bi , i = 1, . . . , n le second membre. Une solution d’un système linéaire est une liste de p nombres réels (s1 , s2 , . . . , sp ) telle que si l’on remplace x1 par s1 , x2 par s2 , etc., dans le système linéaire, on obtient des égalités pour toutes les équations. L’ensemble des solutions du système est l’ensemble de tous ces p-uplets. 5.2 Résolution par substitution La première méthode de résolution est la substitution. Cette méthode fonctionne bien pour les systèmes à deux équations et deux inconnues. On va la présenter sur l’exemple du début. Soit le système 3x + 2y = 60 5x + 3y = 95. 5.3. MÉTHODE DU PIVOT DE GAUSS 67 Nous isolons y dans la première équation, puis nous le remplaçons par sa valeur dans la seconde, ce qui donne le système équivalent : y = 30 − 32 x ⇐⇒ 3 5x + 3(30 − 2 x) = 95 y = 30 − 32 x ⇐⇒ (5 − 3 · 32 )x = 95 − 90 x = 10 ⇐⇒ y = 15. Ainsi l’ensemble des solutions du système est S = {(10, 15)}. Autrement dit, une tonne de peinture Eco coûte 10 000 euros et une tonne de peinture Extra coûte 15 000 euros. 5.3 Méthode du pivot de Gauss 5.3.1 Systèmes échelonnés Définition 5.1 Un système est échelonné si le nombre de coefficients nuls commençant une ligne croît strictement ligne après ligne. Un système échelonné est facile à résoudre, en trouvant la valeur de chaque inconnue de proche en proche en commençant par la dernière équation. 2x1 +3x2 +2x3 −x4 = 5 −x2 −2x3 = −4 est échelonné. Exemple : Le système 2x +x 5 3 4 = x4 = 1 On trouve d’abord x4 = 1, puis x3 = 2, puis x2 = 0 et enfin x1 = 1. L’ensemble des solutions est donc S = {(x1 , x2 , x3 , x4 ) = (1, 0, 2, 1)} . 5.3.2 Opérations sur les équations d’un système La méthode du pivot de Gauss permet de réduire un système et de le rendre équivalent à un système échelonné. Les trois opérations élémentaires suivantes transforment un système linéaire en un système linéaire équivalent : • Li ← λLi avec λ 6= 0 : on peut multiplier une équation par un réel non nul • Li ← Li + λLj avec λ ∈ R (et j 6= i) : on peut ajouter à l’équation Li un multiple d’une autre équation Lj • Li ↔ Lj : on peut échanger deux équations Exemple : On considère le système x 2x −x suivant : +y +7z = −1 −y +5z = −5 −3y −9z = −5 (L1 ) (L2 ) (L3 ) 68 CHAPITRE 5. SYSTÈMES LINÉAIRES x +y +7z = −1 −3y −9z = −3 −x −3y −9z = −5 x +y +7z = −1 −3y −9z = −3 ⇐⇒ −2y −2z = −6 x +y +7z = −1 y +3z = 1 ⇐⇒ −2y −2z = −6 x +y +7z = −1 y +3z = 1 ⇐⇒ 4z = −4 x +y +7z = −1 y +3z = 1 ⇐⇒ z = −1 ⇐⇒ L2 ←L2 −2L1 L3 ←L3 +L1 L2 ← − 31 L2 L3 ←L3 +2L2 L3 ← 41 L3 On peut déduire l’ensemble des solutions : S = {(2, 4, −1)}. Exemple : Soit le système à résoudre : −x2 +2x3 +13x4 = 5 x1 −2x2 +3x3 +17x4 = 4 −x1 +3x2 −3x3 −20x4 = −1 L1 ↔L2 x1 −2x2 +3x3 +17x4 = 4 −x2 +2x3 +13x4 = 5 ⇐⇒ −x1 +3x2 −3x3 −20x4 = −1 x1 −2x2 +3x3 +17x4 = 4 −x2 +2x3 +13x4 = 5 ⇐⇒ x2 −3x4 = 3 L3 ←L3 +L1 x1 −2x2 +3x3 +17x4 = 4 x2 −2x3 −13x4 = −5 L2 ← −L2 ⇐⇒ x2 −3x4 = 3 x1 −2x2 +3x3 +17x4 = 4 x2 −2x3 −13x4 = −5 ⇐⇒ 2x3 +10x4 = 8 L3 ←L3 −L2 x1 −2x2 +3x3 +17x4 = 4 x2 −2x3 −13x4 = −5 ⇐⇒ x3 +5x4 = 4 L3 ← 21 L3 On a obtenu un système échelonné. Ici il y a plus d’inconnues que d’équations, alors on prend x4 comme paramètre et on résout en fonction de x4 . On trouve x3 = −5x4 + 4, x2 = 3x4 + 3, x1 = 4x4 − 2. L’ensemble des solutions est n o S = (4x4 − 2, 3x4 + 3, −5x4 + 4, x4 ) | x4 ∈ R . On a donc une infinité de solutions, paramétrées par x4 . 5.4. QUELQUES RAPPELS SUR LES MATRICES 5.4 69 Quelques rappels sur les matrices 5.4.1 Définition Définition 5.2 • Une matrice A est un tableau rectangulaire • Elle est dite de taille n × p si le tableau possède n lignes et p colonnes. • Les nombres du tableau sont appelés les coefficients de A. • Le coefficient situé à la i-ème ligne et à la j-ème colonne est noté ai,j . Un tel tableau est représenté de la manière suivante : a1,1 a1,2 a2,1 a2,2 ... ... A= ai,1 ai,2 ... ... an,1 an,2 ... ... ... ... ... ... a1,j a2,j ... ai,j ... an,j ... ... ... ... ... ... a1,p a2,p ... ai,p ... A = ai,j ou 1≤i≤n 1≤j≤p ou ai,j . an,p Le matrice A= 1 −2 5 0 3 7 est de taille 2 × 3 avec, par exemple, a1,1 = 1 et a2,3 = 7. Définition 5.3 • Deux matrices sont égales lorsqu’elles ont la même taille et que les coefficients correspondants sont égaux. • L’ensemble des matrices à n lignes et p colonnes à coefficients dans R est noté Mn,p (R). 5.4.2 Matrices particulières Voici quelques types de matrices intéressantes : • Si n = p (même nombre de lignes que de colonnes), la matrice est dite matrice carrée. On note Mn (R) au lieu de Mn,n (R). Soit a1,1 a2,1 A= . .. a1,2 a2,2 .. . ... ... .. . an,1 an,2 . . . a1,n a2,n .. . . an,n Les éléments a1,1 , a2,2 , . . . , an,n forment la diagonale principale de la matrice A. • Une matrice qui n’a qu’une seule ligne (n = 1) est appelée matrice ligne ou vecteur ligne. On la note A = a1,1 a1,2 . . . a1,p . 70 CHAPITRE 5. SYSTÈMES LINÉAIRES • De même, une matrice qui n’a qu’une seule colonne (p = 1) est appelée matrice colonne ou vecteur colonne. On la note a1,1 a2,1 A = . . . . an,1 • La matrice (de taille n × p) dont tous les coefficients sont des zéros est appelée la matrice nulle et est notée 0n,p ou plus simplement 0. Dans le calcul matriciel, la matrice nulle joue le rôle du nombre 0 pour les réels. 5.4.3 Addition de matrices Définition 5.4 Soient A et B deux matrices ayant la même taille n × p et α ∈ R. Leur somme C = A + αB est la matrice de taille n × p définie par cij = aij + αbij . 3 8 0 5 3 −2 . En revanche si , alors A + 2B = et B = Exemple : Si A = 5 5 2 −1 1 7 −2 , alors A + B 0 n’est pas définie. B0 = 8 5.4.4 Multiplication de matrices Le produit AB de deux matrices A et B est défini si et seulement si le nombre de colonnes de A est égal au nombre de lignes de B. Définition 5.5 Soient A = (aij ) une matrice n × p et B = (bij ) une matrice p × q. Alors le produit de matrices C = AB est une matrice n × q dont les coefficients cij sont définis par : cij = p X aik bkj = ai1 b1j + ai2 b2j + · · · + aik bkj + · · · + aip bpj . k=1 Il est commode de disposer les calculs de la façon suivante. × × × × | | A→ × × × × − − − cij ←B ← AB Avec cette disposition, on considère d’abord la ligne de la matrice A située à gauche du coefficient que l’on veut calculer (ligne représentée par des × dans A) et aussi la colonne de la 5.4. QUELQUES RAPPELS SUR LES MATRICES 71 matrice B située au-dessus du coefficient que l’on veut calculer (colonne représentée par des × dans B). On calcule le produit du premier coefficient de la ligne par le premier coefficient de la colonne (ai1 × b1j ), que l’on ajoute au produit du deuxième coefficient de la ligne par le deuxième coefficient de la colonne (ai2 × b2j ), que l’on ajoute au produit du troisième. . . Calculer le coefficient cij dans le produit AB revient donc à calculer le produit scalaire des vecteurs formés par la i-ème ligne de A et la j-ème colonne de B. 3 −2 0 5 Exemple : Si A = et B = , alors 1 7 2 −1 AB = 3 · 0 − 2 · 2 3 · 5 + (−2) · (−1) −4 17 = . 1·0+7·2 1 · 5 + 7 · (−1) 14 −2 Exercice : Faire le calcul avec Scilab. Exemple : Le système +y +7z = −1 x 2x −y +5z = −5 −x −3y −9z = −5 s’écrit de façon équivalente AX = B avec 1 1 7 A = 2 −1 5 , −1 −3 −9 5.4.5 x X = y z −1 et B = −5 . −5 Pièges à éviter Premier piège. Le produit de matrices n’est pas commutatif en général. En effet, il se peut que AB soit défini mais pas BA, ou que AB et BA soient tous deux définis mais pas de la même taille. Mais même dans le cas où AB et BA sont définis et de la même taille, on a en général AB 6= BA, comme le montre l’exemple suivant : 5 1 2 0 14 3 = 3 −2 4 3 −2 −6 5 1 10 2 2 0 . = 3 −2 29 −2 4 3 mais Deuxième piège. AB = 0 n’implique pas A = 0 ou B = 0. Il peut arriver que le produit de deux matrices non nulles soit nul. En d’autres termes, on peut avoir A 6= 0 et B 6= 0 mais AB = 0. 0 −1 A= 0 5 2 −3 B= 0 0 0 0 AB = . 0 0 et Troisième piège. AB = AC n’implique pas B = C. On peut avoir AB = AC et B 6= C. A= 0 −1 0 3 B= 4 −1 5 4 C= 2 5 5 4 et AB = AC = −5 −4 . 15 12 72 CHAPITRE 5. SYSTÈMES LINÉAIRES 5.4.6 Matrice identité La matrice carrée suivante s’appelle la matrice identité : In = 1 0 ... 0 1 ... .. .. . . . . . 0 0 ... 0 0 .. . 1 Ses éléments diagonaux sont égaux à 1 et tous ses autres éléments sont égaux à 0. Elle se note In ou simplement I. Dans le calcul matriciel, la matrice identité joue un rôle analogue à celui du nombre 1 pour les réels. C’est l’élément neutre pour la multiplication. En d’autres termes : Proposition 5.6 Si A est une matrice n × p, alors In A = A 5.4.7 et AIp = A. Inverse d’une matrice Définition 5.7 Soit A une matrice carrée de taille n × n. S’il existe une matrice carrée B de taille n × n telle que AB = In ou BA = In , on dit que A est inversible. Dans ce cas on appelle B l’inverse de A et on la note A−1 . x1 Si la matrice A ∈ Mn (R) est inversible, alors le système AX = B d’inconnue X = . . . xn se résout en X = A−1 B. 1 1 7 Exemple : On peut montrer que la matrice A = 2 −1 5 est inversible. Alors le système −1 −3 −9 +y +7z = −1 x 2x −y +5z = −5 −x −3y −9z = −5 x 7 2 se résout en y = A−1 5 = 4 . Avec le logiciel Scilab on peut procéder de la manière z −9 −1 suivante : A=[1,1,7 ;2,-1,5 ; -1,-3,-9], B=[-1 ;-5 ;-5] X=inv(A)*B 5.5. ALGORITHME DU SIMPLEXE 0 1 0 0 73 a b c d Exemple : La matrice E = n’est pas inversible. En effet cherchons A = telle 1 0 0 a que AE = I = . On calcule AE = et on voit qu’il n’existe aucun choix de A tel 0 1 0 c 1 0 0 a que = . 0 1 0 c Remarque : On dispose de formules directes pour calculer l’inverse d’une matrice, mais elles sont coûteuses numériquement. Ainsi, pour résoudre un système, on préfèrera en général utiliser la méthode du pivot de Gauss ou des méthodes du même type. 5.4.8 Déterminant d’une matrice carrée À quelle condition une matrice carrée est-elle inversible ? Proposition 5.8 Soit A ∈ Mn (R). On peut lui associer un nombre réel, le déterminant de A, noté det A, calculé à partir des coefficients de A tel que la matrice A est inversible ⇔ det A 6= 0. 0 1 a b n’est pas , alors det A = ad − bc. Ainsi on vérifie que E = Exemple : Si A = 0 0 c d 1 1 l’est (det D=2). inversible (det E=0), mais que D = −2 0 Pour une matrice de taille plus grande, la formule du déterminant est assez compliquée. 5.5 Algorithme du simplexe Dans de nombreux problèmes, on est amené à considérer des contraintes (équations ou inéquations) linéaires, et l’on cherche à optimiser une fonction (cela correspond à minimiser un coût ou maximiser un profit). Commençons par donner un exemple : Exemple : Une usine fabrique deux produits P1 et P2 en utilisant un certain nombre de ressources : équipement, main d’oeuvre, matières premières. Ces besoins sont indiqués dans le tableau ci-dessous. Par ailleurs, chaque ressource est disponible en quantité limitée : Équipement Main d’oeuvre Matière première P1 3 4 2 P2 9 5 1 Disponibilité 81 55 20 Les deux produits P1 et P2 rapportent à la vente respectivement des bénéfices de 6 euros et 4 euros par unité. Quelles quantités de produits P1 et P2 (valeurs non-nécessairement entières) doit produire l’usine afin de maximiser le bénéfice total venant de la vente des 2 produits ? • Choix des variables (les inconnues) : x1 et x2 sont respectivement les quantités des produits P1 et P2 fabriqués (x1 , x2 ≥ 0). 74 CHAPITRE 5. SYSTÈMES LINÉAIRES • Choix de la fonction objectif à maximiser : La fonction objectif F correspond au bénéfice total. Elle vaut F (x1 , x2 ) = 6x1 + 4x2 . Le problème se traduit donc par max F (x1 , x2 ) = max 6x1 + 4x2 , (x1 ,x2 )∈C (x1 ,x2 )∈C où C sont des contraintes à préciser. • Détermination des contraintes. La disponibilité de 3x1 + 9x2 ≤ 4x1 + 5x2 ≤ 2x1 + x2 ≤ chacune des ressources s’écrit : 81 55 20. En résumé, le problème de production se modélise sous la forme max 6x1 + 4x2 , (x1 ,x2 )∈C sous les contraintes (C) : 3x1 + 9x2 ≤ 81 4x1 + 5x2 ≤ 55 2x1 + x2 ≤ 20 x1 , x2 ≥ 0. On parle de problème de programmation linéaire (PL). 5.5.1 Résolution graphique Dans le cas d’un (PL) à deux variables, on peut envisager une résolution graphique. Les contraintes où apparaissent des inégalités correspondent géométriquement à des demi-plans. L’intersection de ces demi-plans forme l’ensemble des variables satisfaisant à toutes les contraintes (la partie hachurée de la figure 5.1). À la fonction objectif F correspond une droite F (x1 , x2 ) = 6x1 + 4x2 = constante, de coefficient directeur (1, 6/4). La constante précédente qui définie la droite doit être la plus grande possible (maximisation) et rencontrer l’ensemble des variables qui satisfont les contraintes. Pour déterminer cette valeur maximale, on fait donc glisser la droite (translation parallèle à la direction de la droite) du haut vers le bas jusqu’à rencontrer l’ensemble des variables satisfaisant les contraintes. Le maximum de F sur cet ensemble des contraintes est alors atteint. On obtient ainsi la solution optimale (x1 , x2 ) = (15/2, 5) et ce qui donne une valeur maximale max(F ) = 65. On remarque que l’ensemble des contraintes (la partie hachurée de la figure) est un polygone convexe et que le maximum de F est atteint en un sommet de ce polygone. Cette observation est en fait un résultat général. 5.5.2 Présentation de l’algorithme du simplexe L’idée de l’algorithme est de passer d’un sommet du simplexe à un sommet suivant en augmentant la valeur de F . On présente l’algorithme sur le problème de production. On commence par rajouter des variables e1 , e2 , . . . positives, appelées variables d’écart pour que les contraintes soient des égalités. Ici cela donne le problème max 6x1 + 4x2 , (x1 ,x2 )∈C 5.5. ALGORITHME DU SIMPLEXE 75 Figure 5.1 – Résolution géométrique d’un problème linéaire avec (C 0 ) : 3x1 + 9x2 + e1 = 81 4x + 5x + e = 55 1 2 2 2x + x + e 1 2 3 = 20 x1 , x2 ≥ 0, e1 , e2 , e3 ≥ 0. On dit alors que le problème est sous forme standard, et les variables d’écart sont e1 , e2 et e3 . Itération 1 : • On cherche une solution exacte au problème (C 0 ). La plus simple est obtenue en faisant xi = 0 pour tout i et en choisissant ei correctement. On appelle ceci une solution de base réalisable. On calcule la valeur de F correspondante. Dans notre cas cela donne x1 = 0, x2 = 0, e1 = 81, e2 = 55, e3 = 20 et F = 0. • Dictionnaire : On exprime les variables de base e1 , e2 , . . . en fonction des variables hors base x1 , x2 , . . . . Ici on obtient e1 = 81 − 3x1 − 9x2 e2 = 55 − 4x1 − 5x2 e3 = 20 − 2x1 − x2 F = 6x1 + 4x2 76 CHAPITRE 5. SYSTÈMES LINÉAIRES • Variable entrante xe : On veut affecter une valeur non-nulle à une des variables xi . On choisira celle qui fera le plus augmenter F . Si on a F de la forme X fi xi , F (x1 , . . . , xn ) = α + 1≤i≤n on a intérêt de choisir l’indice j tel que fj = max1≤i≤n fi . Ici on a F = 6x1 + 4x2 . Comme max{6, 4} = 6, donc xe = x1 . • Variable sortante xs : On veut affecter une valeur non nulle à cette variable entrante, la plus grande possible tout en respectant les contraintes xi ≥ 0 et ei ≥ 0. En contrepartie, une variable sera mise à 0, appelée variable sortant xs . Ici cela donne 81 55 20 x1 = min , , = 10. >0 3 4 2 Pour x1 = 10, la troisième égalité de (C 0 ) est satisfaite si e3 = 0. Ainsi xs = e3 . • On calcule la nouvelle solution de base réalisable à l’aide du dictionnaire, ainsi que la valeur correspondante de F . Ici on obtient x1 = 10, x2 = 0, e1 = 51, e2 = 15, e3 = 0 et F = 60. Ceci correspond à une itération de l’algorithme du simplexe. On remarque que la valeur de F a augmenté. On itère l’algorithme jusqu’à ce qu’on trouve la valeur maximale de F . Plus précisément, si on trouve un jeu de variables (yi )1≤i≤n , avec yi ≥ 0, tel que F s’écrive X F =β− g i yi , 1≤i≤n avec gi ≥ 0. Alors le maximum de F est β atteint pour yi =0, 1 ≤ i ≤ n. Itération 2 : • Dictionnaire : On exprime la variable entrante en fonction des variables hors-base (celles dont la valeur est nulle) et on fait la substitution dans F . Ainsi x1 = 10 − 12 x2 − 12 e3 e1 = 81 − 3(10 − 12 x2 − 21 e3 ) − 9x2 e2 = 55 − 4(10 − 12 x2 − 21 e3 ) − 5x2 F = 6(10 − 21 x2 − 21 e3 ) + 4x2 ce qui donne le dictionnaire : x1 = 10 − 12 x2 − 12 e3 3 e1 = 51 − 15 2 x2 + 2 e3 e2 = 15 − 3x2 + 2e3 F = 60 + x2 − 3e3 • Variable entrante xe : max>0 1, −3 = 1. Donc xe = x2 . • Variable sortante xs : on maintient x1 ≥ 0, e1 ≥ 0, e2 ≥ 0. Alors 10 51 15 x2 = min , , = 5, >0 1/2 15/2 3 ainsi xs = e2 . • Nouvelle solution de base réalisable (étape 2) : x1 = 15 , 2 x2 = 5, e1 = 27 , 2 e2 = 0, e3 = 0 et max F = 65. 5.5. ALGORITHME DU SIMPLEXE 77 Itération 3 : • Dictionnaire : On exprime la nouvelle variable de base x2 en fonction des variables horsbase e2 et e3 . On utilise la 3ème équation du dictionnaire de l’étape 2 et on substitue x2 dans les autres relations. x2 = 5 − 13 e2 + 23 e3 1 5 x1 = 15 2 + 6 e2 − 6 e3 27 5 7 e1 = 2 + 2 e2 − 2 e3 F = 65 − 13 e2 − 73 e3 Dans la formule donnant F , tous les coefficients sont négatifs donc on ne peut plus augmenter F : l’optimum est atteint et la solution optimale est x∗1 = 15 , 2 x∗2 = 5, e∗1 = 27 , 2 e∗2 = 0, e∗3 = 0 et max F = 65. Remarque : Voici une application en ligne qui permet de résoudre des PL : http://www.phpsimplex.com/fr Sur le site vous trouverez aussi beaucoup de choses intéressantes sur la recherche opérationnelle. 5.5.3 Complexité de l’algorithme du simplexe On peut construire des exemples avec une complexité exponentielle en O(2n ) itérations, où n désigne le nombre de variables. Mais dans la pratique la complexité du simplexe croît peu avec le nombre de variables. En pratique, le nombre d’itérations est de l’ordre de O(m) où m est le nombre de contraintes. 78 CHAPITRE 5. SYSTÈMES LINÉAIRES Chapitre 6 Graphes et arbres 6.1 6.1.1 Graphes orientés Définitions Définition 6.1 • Un graphe orienté G est défini par la donnée d’un ensemble X = {x1 , . . . , xn } (qui constitue les sommets) et d’un ensemble Γ = {u1 , . . . , um } (ce sont les arcs ou arêtes). • Un arc u est en fait un couple de sommets u = (xi , xj ). • On note G = (X, Γ). Exemple : Soit G le graphe orienté représenté par : 1 2 5 4 3 Alors G = (X, Γ) avec X = {1, 2, 3, 4, 5} et Γ = {(1, 2), (1, 4), (2, 2), (2, 3), (3, 4), (4, 2)}. Définition 6.2 Soit G = (X, Γ) un graphe orienté. • Extrémités d’un arc : Un arc (x, y) possède une extrémité initiale (ou origine) x et une extrémité finale (extrémité) y. • Arcs adjacents : deux arcs sont dits adjacents s’ils ont une extrémité commune. • Arc incident : Un arc u = (x, y) est dit incident vers l’extérieur au sommet x et incident vers l’intérieur à y. • Sommet successeur : Le sommet y est dit successeur (strict) du sommet x s’il existe un arc (x, y). L’ensemble des successeurs d’un sommet x est noté Γ(x). 79 80 CHAPITRE 6. GRAPHES ET ARBRES • Sommet prédécesseur : Le sommet x est prédécesseur (strict) du sommet y s’il existe un arc (x, y). L’ensemble des prédécesseurs d’un sommet y est noté Γ−1 (y). • Sommets adjacents : Le sommet x est dit adjacent au sommet y s’il est un successeur ou un prédécesseur de y. On dit que les sommets x et y sont voisins. Un sommet sans voisin est dit isolé. • Degré d’un sommet : On appelle demi-degré extérieur d’un sommet x le nombre, noté de (x), d’arcs incidents à x vers l’extérieur et demi-degré intérieur de x le nombre, noté di (x), d’arcs incidents à x vers l’intérieur. Le degré de x est d(x) = di (x) + de (x). • Boucle : Tout arc u = (x, x) dont les extrémités coïncident est appelé boucle. • Circuit : On appelle circuit tout chemin u1 , . . . , up tel que l’extrémité finale de up coïncide avec l’extrémité initiale de u1 . • Chemin : On appelle chemin de cardinalité (longueur) p toute suite d’arcs u1 , u2 , . . . , up telle que l’extrémité finale de uk soit égale à l’extrémité initiale de uk+1 pour tout k ∈ J1, p − 1K. 6.1.2 Matrice d’adjacence Définition 6.3 Soit G = (X, Γ) un graphe à n sommets. On définit la matrice d’adjacence A comme étant une matrice carrée d’ordre n : 1 si (xi , xj ) ∈ Γ A = (aij ) | aij = 0 sinon Remarque : La matrice d’adjacence est une matrice booléenne. Exemple : La matrice d’adjacence du graphe du premier exemple : 0 1 0 1 0 0 1 1 0 0 A= 0 0 0 1 0 . 0 1 0 0 0 0 0 0 0 0 Définition 6.4 Soit G = (X, Γ) un graphe orienté. • G est simple ssi il n’a pas de lien double, ni de boucle. • G est réflexif ssi ∀xi ∈ X, (xi , xi ) ∈ Γ. • G est symétrique ssi ∀(xi , xj ) ∈ X 2 , (xi , xj ) ∈ Γ ⇔ (xj , xi ) ∈ Γ. • G est antisymétrique ssi ∀xi ∈ X, ∀xj ∈ X, xi 6= xj , (xi , xj ) ∈ Γ ⇒ (xj , xi ) 6∈ Γ. (xi , xj ) ∈ Γ 3 • G est transitif ssi ∀(xi , xj , xk ) ∈ X , ⇒ (xi , xk ) ∈ Γ. (xj , xk ) ∈ Γ • G est complet ssi ∀(xi , xj ) ∈ X 2 |xi 6= xj , (xi , xj ) 6∈ Γ ⇒ (xj , xi ) ∈ Γ. Dit autrement : il existe toujours un arc entre deux sommets quelconques de G. 6.2. GRAPHES NON ORIENTÉS 1 81 2 3 1 2 3 Figure 6.1 – Exemples de graphes. Proposition 6.5 Soit G = (X, Γ) un graphe orienté et A sa matrice d’adjacence. Alors G est transitif ssi en booléen on a A + A2 = A. Preuve : La matrice A2 permet de connaître les sommets reliés par un chemin de longueur 2. A2 = (cij ), si cij = 1 alors il existe k tel que cij = aik × akj avec aik = akj = 1. (xi , xj ) ∈ Γ (aij = 1) ⇒ (xi , xk ) ∈ Γ (aik = 1). Ici aik constitue A2 . Donc ⇒ si (xj , xk ) ∈ Γ (ajk = 1) A + A2 = A. ⇐ Si A + A2 = A, alors tout élément de A2 est déjà dans A. Exemple : • Le premier graphe de la Figure 6.1 admet comme matrice 0 0 0 1 0 1 0 A = 0 0 1 . Alors A2 = 0 1 0 et ainsi A + A2 = 0 0 0 0 1 0 1 0 graphe G est non transitif. d’adjacence : 1 1 1 1 6= A. Donc le 1 1 0 1 1 • Le second graphe de la Figure 6.1 admet comme matrice d’adjacence : A = 0 0 1 . 0 0 0 0 0 1 Alors A2 = 0 0 0 et ainsi A2 + A = A. Le graphe G est donc transitif. 0 0 0 6.2 6.2.1 Graphes non orientés Vocabulaire Définition 6.6 Un graphe non orienté est un couple G = (X, U ) où X est un ensemble de sommets X = {x1 , . . . , xn } et U un ensemble d’arêtes U = {u1 , . . . , up } avec u = [xi , xj ] = [xj , xi ]. Remarques : • La notion d’origine ou d’extrémité finale n’a plus de sens ici. L’arête [xi , xj ] est donc la réunion des arcs (xi , xj ) et (xj , xi ). • On ne parle plus ni de symétrie, ni d’antisymétrie. En revanche la transitivité a toujours un sens : [xi , xj ] ∈ U ⇒ [xi , xk ] ∈ U. [xj , xk ] ∈ U 82 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.2 – Exemple de graphe connexe Définition 6.7 • Deux sommets sont adjacents s’ils sont reliés par une arête. • Deux arêtes sont dites adjacentes si elles sont un sommet commun. • On remplacera le chemin par une chaîne pour les graphes non orientés. • On remplacera le circuit par un cycle pour les graphes non orientés. Définition 6.8 Un graphe non orienté G est dit connexe si deux sommets quelconques sont reliés par une chaîne. 6.3 6.3.1 Problèmes de coloration de graphes Coloration de sommets Définition 6.9 Colorer les sommets d’un graphe non orienté consiste à attribuer à chaque sommet une couleur de telle manière que deux sommets adjacents soient de couleurs différentes. Le nombre chromatique γ(G) de G est le plus petit entier k tel que G soit colorable avec k couleurs (on dira que G est k-colorable). Exemples : • Dans un réseau, on souhaite attribuer des fréquences de communication aux différents sites (les sites trop proches ne doivent pas avoir la même), tout en essayant de limiter le nombre de fréquences différentes. Dans le graphe, chaque sommet représente un site. Si l’on ne veut pas allouer la même fréquence à deux sites, on les relie par une arête. • Résoudre un problème d’emploi du temps ou d’incompatibilité, en essayant de limiter le nombre de groupes. • Colorier une carte, deux pays voisins ne devant pas avoir la même couleur. Algorithme de Welsh-Powell : 1. Classer les sommets du graphe dans l’ordre décroissant de leur degré et attribuer à chacun des sommets son numéro d’ordre dans la liste obtenue. 6.3. PROBLÈMES DE COLORATION DE GRAPHES 83 2. En parcourant la liste dans l’ordre, attribuer une couleur non encore utilisée au premier sommet non encore coloré et attribuer cette même couleur à chaque sommet non encore coloré et non adjacent à un sommet de cette couleur. 3. S’il reste des sommets non colorés dans le graphe, revenir à la deuxième étape. Sinon la coloration est terminée. Remarque : Cet algorithme fournit une assez bonne coloration d’un graphe (c’est-à-dire qui n’utilise pas trop grand nombre de couleurs). Mais il n’assure pas que ce nombre est un minimum (et donc égal au nombre chromatique du graphe). Exemple : On considère le graphe suivant : 1 2 3 4 5 6 7 8 Liste des sommets ordonnés selon l’ordre décroissant de leur degré : Sommet Degré 7 5 5 4 1 3 3 3 4 3 6 3 8 3 2 2 • On passe à la couleur 1 que l’on attribue au sommet 7. Le sommet 6 n’est relié à aucun sommet de couleur 1, on lui affecte donc cette couleur. Le sommet 2 n’est relié à aucun sommet de couleur 1, on lui affecte donc cette couleur. • On passe à la couleur 2 que l’on attribue au sommet 5. Le sommet 1 n’est relié à aucun sommet de couleur 2, on lui affecte donc cette couleur. Le sommet 3 n’est relié à aucun sommet de couleur 2, on lui affecte donc cette couleur. • On passe à la couleur 3 que l’on attribue au sommet 4. Le sommet 8 n’est relié à aucun sommet de couleur 3, on lui affecte donc cette couleur. Résultat de la coloration : Sommet Degré Couleur 7 5 1 5 4 2 1 3 2 3 3 2 4 3 3 6 3 1 8 3 3 2 2 1 Donc γ(G) ≤ 3. Peut-on faire mieux ? On voit que les sommets 5, 6 et 8 forment un sousgraphe complet (i.e. tous les sommets sont reliés) à 3 sommets. Donc 3 ≤ γ(G). Par conséquent γ(G) = 3. Exemple : D’après le théorème des quatre couleurs 1 , on peut colorer une carte avec seulement quatre couleurs différentes. Ce problème se ramène à un problème de coloration des sommets d’un graphe dont les arêtes ne se croisent pas (voir figure 6.3). 1. Ce résultat a été démontré en 1976 par K. Appel et W. Haken. La démonstration repose sur l’usage de l’ordinateur pour étudier 1478 cas critiques et a nécessité plus de 1200 heures de calcul. 84 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.3 – Illustration du problème des quatre couleurs avec la carte de l’Allemagne. 1 a1 a2 2 a4 2 2 a7 5 a1 a7 a3 1 a6 5 a2 3 a5 a8 5 2 3 a4 4 4 4 3 a6 a8 a3 5 6 6 3 a5 4 Figure 6.4 – Le graphe G et son adjoint G0 . 6.3.2 Coloration d’arêtes Définition 6.10 Colorer des arêtes d’un graphe G, c’est associer à chaque arête une couleur de telle manière que 2 arêtes adjacentes soient de couleurs différentes. Algorithme de coloration d’arêtes : On se ramène à une coloration des sommets d’un graphe associé à G : G0 graphe adjoint ou line graph (on échange le rôle des sommets et des arêtes). Puis, on utilise l’algorithme de Welsh-Powell. Exemple : On considère le graphe G de la figure 6.4. Voici la liste des sommets de G0 ordonnés selon l’ordre décroissant de leur degré : Sommet Degré a3 4 a4 4 a5 4 a6 4 a1 3 a2 3 a7 3 a8 3 6.4. ARBRE RECOUVRANT DE POIDS MINIMUM 85 Figure 6.5 – Quel est le réseau de coût minimum permettant de relier toutes les succursales ? • On passe à la couleur 1 que l’on attribue au sommet a3 . Le sommet a6 n’est relié à aucun sommet de couleur 1, on lui affecte donc cette couleur. • On passe à la couleur 2 que l’on attribue au sommet a4 . Le sommet a5 n’est relié à aucun sommet de couleur 2, on lui affecte donc cette couleur. • On passe à la couleur 3 que l’on attribue au sommet a1 . Le sommet a7 n’est relié à aucun sommet de couleur 3, on lui affecte donc cette couleur. • On passe à la couleur 4 que l’on attribue au sommet a2 . Le sommet a8 n’est relié à aucun sommet de couleur 4, on lui affecte donc cette couleur. Résultat de la coloration : Sommet Degré Couleur a3 4 1 a4 4 2 a5 4 2 a6 4 1 a1 3 3 a2 3 4 a7 3 3 a8 3 4 Et γ(G0 ) ≤ 4. 6.4 6.4.1 Algorithmes de recherche d’arbre recouvrant de poids minimum Introduction Imaginons que l’on veuille construire un réseau privé pour faire communiquer N succursales d’une entreprise avec pour objectif d’obtenir le coût le plus bas. On connaît tous les raccordements possibles et leur coût (voir la figure 6.5). Comme le but est d’avoir le prix le plus bas, on ne va garder que les raccordements strictement nécessaires. On s’aperçoit déjà que l’on n’a pas besoin de cycles dans ce graphe. Par contre pour que toute succursale puisse joindre toutes les autres, le graphe devra permettre de trouver un chemin entre tous les sommets (on aura donc un graphe connexe). Ainsi la solution est de trouver un graphe connexe simple sans cycle qui offre le moindre coût de construction. Or un graphe connexe simple sans cycle est un arbre. Nous allons donc étudier les arbres, leurs propriétés et deux algorithmes qui permettront de trouver la solution à ce genre de problème. Définition 6.11 Un arbre est un graphe non orienté connexe simple sans cycle. 86 CHAPITRE 6. GRAPHES ET ARBRES Par exemple une rivière et ses affluents forment un arbre. On utilise aussi beaucoup les arbres pour classifier. Par contre, avec notre définition, en théorie de graphe, un arbre généalogique ne reste un arbre que si on ne remonte pas trop loin (on finira souvent par trouver deux ancêtres communs à deux conjoints, et donc on formera un cycle). Définition 6.12 On dit qu’un graphe G0 = (X 0 , U 0 ) est un sous-graphe de G = (X, U ) si X 0 ⊂ X et U 0 ⊂ U . Définition 6.13 Un sous graphe G0 = (X 0 , U 0 ) est dit couvrant si X 0 = X et G0 est connexe. Définition 6.14 Soit un graphe G = (X, U ) où chaque arête ui est valuée avec un poids pi . Le poids du graphe est la somme des poids des arêtes du graphe. Les arbres sont des graphes qui ont de nombreuses propriétés. En voici quelques-unes : • Un arbre est toujours un graphe simple. • Un arbre à N sommets possède N − 1 arêtes. • Un sous-graphe de G couvrant et sans cycle est un arbre couvrant de G. Ces arbres sont appelés arbres de recouvrement du graphe G. • Si un graphe a toutes ses arêtes de poids positif ou nul, il admet un sous-graphe couvrant de poids minimal, et ce sous-graphe couvrant de poids minimal est un arbre. Pour résoudre le problème de l’introduction, il faut donc trouver le graphe de recouvrement de poids minimum. Ce graphe est un arbre. Comme le nombre d’arbres de recouvrement croît de façon exponentielle avec le nombre de sommets, il n’est pas du tout intéressant de tous les calculer pour connaître celui qui a le poids minimum. Pour éviter cela, il existe des algorithmes qui permettent de construire d’entrée un arbre de poids minimal et dont le nombre d’étapes est une fonction linéaire du nombre d’arêtes. Nous allons voir ces algorithmes. 6.4.2 Algorithme de Kruskal Soit un graphe G = (X, U ), avec |X| = N et |U | = M . On va construire un arbre recouvrement de G de poids minimum noté τ = (X, T ). Algorithme de Kruskal : 1. Classer les arêtes par ordre croissant de poids. U = {u1 , u2 , u3 , . . . , um }. 2. Commencer avec un graphe vide : T = ∅ et i = 1. 3. Regarder si l’ajout de ui au graphe crée un cycle. 6.4. ARBRE RECOUVRANT DE POIDS MINIMUM 87 Figure 6.6 – Kruskal : tri des arêtes (les ui numérotées dans par ordre croissant de poids) Figure 6.7 – Kruskal : étape avec 4 arêtes et étape finale (a) Si ce nouveau graphe est sans cycle, ajouter ui à T : T ← T ∪ ui . (b) Si ce nouveau graphe contient un cycle, rejeter ui qui ne sera pas retenue dans l’arbre. 4. Incrémenter i de 1. Si |T | = N − 1 alors Stop, sinon retourner à l’étape 3. On peut remarquer que durant les phases intermédiaires de l’algorithme de Kruskal, le sous graphe formé par T n’est pas forcément connexe. On a un ensemble d’arbres disjoints. Un graphe de cette forme s’appelle une forêt. Exemple : Faisons tourner cet algorithme sur l’exemple de l’introduction : ici N = 6 et M = 10. Après classement des arêtes par ordre croissant de poids on obtient U = {u1 , . . . , u10 } de la figure 6.6. On pose T = ∅ et i = 1. Donc on commence par ajouter u1 dans notre arbre : T = {u1 } et i = 2. Ensuite on ajoute u2 : T = {u1 , u2 } et i = 3. On peut ajouter u3 toujours sans créer de cycle, donc T = {u1 , u2 , u3 } et i = 4. À l’étape suivante u4 peut aussi être ajoutée, donc T = {u1 , u2 , u3 , u4 } et i = 5. A ce stade on obtient la figure 6.7. On tente alors d’ajouter u5 . Mais (u1 , u4 , u5 ) forment un cycle. u5 est donc rejeté, et i = 6. On tente alors d’ajouter u6 . Mais (u1 , u4 , u6 , u2 ) forment un cycle. u6 est donc rejeté, et i = 7. En revanche, on peut rajouter u7 . On obtient T = {u1 , u2 , u3 , u4 , u7 }, et i = 8. Comme |T | = 5 = N − 1, l’algorithme est terminé. On a τ = (X, T ) un arbre de recouvrement minimal (voir la figure 6.7). On peut maintenant évaluer le coût du réseau à mettre en place : c’est le poids de notre arbre de recouvrement minimal. Donc si pi est le poids de l’arête ui : coût = p1 + p2 + p3 + p4 + p7 = 1 + 1 + 2 + 2 + 5 = 11. 88 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.8 – Prim : Initialisation de l’algorithme et première étape (u2 ajoutée). Sur le dessin, l’ensemble S est noté A. Notez qu’un arbre de recouvrement minimal n’est pas forcément unique. D’autres arbres peuvent peser le même poids. 6.4.3 Algorithme de Prim Il existe un autre algorithme de recouvrement, il s’agit de l’algorithme de Prim 2 . Soit un graphe G = (X, U ), avec |X| = N et |U | = A. On va construire un arbre recouvrement minimal de G, noté τ = (X, T ). Algorithme de Prim : 1. Commencer avec un ensemble de sommets S contenant un des sommets de X (au choix, par exemple x1 ) : S = {x1 }. Et commencer un T l’ensemble des arêtes à vide : T = ∅ 2. Calculer q, l’ensemble des arêtes reliant S : q = ω(S). 3. Choisir dans q une des arêtes de poids minimal u. (a) ajouter u à T . (b) u relie un sommet xi de l’ensemble S à un sommet xj hors de S. Ajouter xj à S. 4. Si |T | = N − 1, fin, sinon retourner en 3. Faisons tourner cet algorithme sur notre exemple. • Pour démarrer, on va choisir d’initialiser S avec S1 (voir la figure 6.8) S = {S1 }, q = ω(S) = {u1 , u2 , u3 , u4 }, T = ∅. On doit choisir une arête de moindre poids dans q. L’arête u1 (de poids 8) est donc exclue. Les 3 autres (de poids 2) peuvent convenir. On va prendre u2 . Elle est reliée à S4 qui rentre donc dans l’ensemble S (voir la figure 6.8). T = {u2 } S = {S1 , S4 } q = ω(S) = {u1 , u3 , u4 , u6 , u7 , u8 }. 2. L’algorithme a été développé en 1930 par Jarník puis a été redécouvert et republié par Prim et Dijkstra en 1959 6.4. ARBRE RECOUVRANT DE POIDS MINIMUM 89 Figure 6.9 – Prim : Deuxième étape (u3 ajoutée) et troisième étape (u9 ajoutée). Sur le dessin, l’ensemble S est noté A. • Les trois arêtes de poids 2 de q sont éligibles : u3 , u4 et u8 . On va choisir u3 . Son extrémité S6 entre donc dans S (voir la figure 6.9). T = {u2 , u3 } S = {S1 , S4 , S6 } q = ω(S) = {u1 , u4 , u6 , u7 , u9 , u10 }. • À cette étape, seule l’arête de poids 1, u9 peut être choisie. On ajoute son extrémité S5 dans l’ensemble S (voir la figure 6.9). T = {u2 , u3 , u9 } S = {S1 , S4 , S5 , S6 } q = ω(S) = {u1 , u6 , u7 , u10 }. • L’arête de plus faible poids de q est u10 . Son extrémité S3 entre dans S (voir la figure 6.10). T = {u2 , u3 , u9 , u10 } S = {S1 , S3 , S4 , S5 , S6 } q = ω(S) = {u1 , u5 , u6 }. • L’arête u5 de poids 1 complète notre arbre. Le nombre d’arêtes vaut N − 1 et S enrichi de S2 l’extrémité de u5 couvre maintenant tout l’ensemble. L’algorithme se termine donc ici (voir figure 6.10). T = {u2 , u3 , u5 , u9 , u10 } S = {S1 , S2 , S3 , S4 , S5 , S6 }. q = ω(S) = ∅. Le coût est ici coût = p2 + p3 + p9 + p10 + p5 = 2 + 2 + 1 + 5 + 1 = 11. 90 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.10 – Prim : Quatrième étape (u10 ajoutée) et dernière étape (arbre trouvé). Sur le dessin, l’ensemble S est noté A. Conclusion : L’arbre trouvé ici n’est pas le même qu’avec l’algorithme précédent, mais il pèse bien le même poids (11). Aussi bien pour Kruskal que pour Prim, il y a des choix à faire (par exemple, lorsqu’il y a plusieurs arêtes avec le même minimum), et il y a donc plusieurs bonnes solutions. Algorithmes gloutons : Les algorithmes de Kruskal et de Prim sont des algorithmes gloutons (greedy algorithm en anglais). Pour un problème d’optimisation, on dit qu’un algorithme est glouton s’il cherche à construire une solution optimale pas à pas, sans jamais revenir sur ses décisions, en prenant à chaque étape la solution qui semble la meilleure localement. En revanche, en général, la solution rendue par l’algorithme n’est pas forcément optimale (voir par exemple les problèmes de rendu de monnaie). 6.4.4 Complexité des algorithmes précédents On considère un graphe non orienté à N sommets et A arêtes (A ≥ N ). On peut montrer que la complexité de l’algorithme de Kruskal est de O(A ln A) et celui de Prim est de O(A ln N ). On peut comparer cela au nombre total de sous-graphes ayant N sommets qui est 2A . Application numérique : On suppose que l’on dispose d’un ordinateur faisant 106 opérations par seconde, comparons les temps de calcul Valeur de A 10 A 10−5 A ln A 2A = eA ln 2 A2 A5 2 A2 ln A = e2(ln A) seconde 2.3 · 10−5 seconde 0.001 seconde 10−4 seconde 0.1 seconde 4.03 · 10−2 seconde 30 50 10−5 10−5 3· seconde 1.0 · 10−4 seconde 17.9 minutes 9 · 10−4 seconde 24.3 secondes 186.7 minutes 5· seconde 2.0 · 10−4 seconde 35.7 années 2.5 · 10−3 seconde 5.2 minutes 226.9 jours 60 6 · 10−5 seconde 2.5 · 10−4 seconde 366 siècles 3.6 · 10−3 seconde 13.0 minutes 11.5 années 6.5. ALGORITHME DE PLUS COURT CHEMIN 91 Dans le tableau, on a rajouté les trois dernières lignes pour comparaison. Ainsi A A ln A A2 A5 A2 ln A 2A . En conclusion, et de façon générale si l’on dispose d’un algorithme quelconque, si l’on veut pouvoir traiter des valeurs suffisamment grandes de A, il faut un algorithme à complexité au plus polynomiale O(Ak ) pour un certain k ≥ 1. 6.5 Algorithme de plus court chemin 6.5.1 Introduction et définitions Les problèmes de cheminement dans les graphes sont parmi les plus anciens de la théorie des graphes. Ce type de recherche se rencontre soit directement, soit sous la forme d’un problème dans de nombreuses applications. Toutes les fois que l’on veut trouver un minimum pour un processus qui passe par une série d’étapes successives, la recherche du plus court chemin est une méthode adéquate. Voici quelques exemples : • Cette technique est utilisée pour trouver la distance minimale ou le temps minimal d’un trajet routier. • Cette technique est aussi adaptée pour trouver minimiser un coût (ou le temps) de production d’un processus industriel qui passe par différentes étapes. • On peut aussi se servir de cette technique pour minimiser le coût de la gestion de stocks (pour savoir quand produire, et quand stocker). Définition 6.15 Étant donné un graphe G = (X, U ), on associe à chaque arc u ∈ U un nombre `(u) ∈ R. On dit que G est valué par la longueur `(u). Définition 6.16 Le problème du plus court chemin (PCCH) entre 2 sommets i et j sera de trouver un chemin pi,j dont la longueur totale `(pi,j ) est minimale. Avec X `(pi,j ) = `(u). u∈pi,j 6.5.2 Algorithme de Bellman-Ford-Moore L’interprétation la plus évidente de `(u) est une distance. Mais toute autre valeur peut être modélisée : un coût de transport, une dépense de construction, une durée, . . . Pour illustrer ce chapitre nous allons utiliser un problème de remplissage d’un bassin de rétention d’eau. Une commune doit réussir à faire monter chaque jour 10 m3 d’eau jusqu’à un bassin nommé H. Pour cela elle puise dans une source A. Entre les deux, elle dispose d’une série de réservoirs intermédiaires reliés par des pompes (qui consomment de l’énergie), ou des turbines (qui restituent de l’énergie). Toutes les conduites ont la capacité nécessaire pour faire transiter les 10 m3 d’eau, mais les rendements n’étant pas tous égaux, les coûts en énergie varient beaucoup. 92 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.11 – Par quelles conduites faire transiter l’eau ? Voici les diverses conduites possibles avec leur coût en kWh (lorsque la conduite passe par une turbine et redonne de l’énergie, le coût est mis en négatif). Réservoir de départ A A A B B C C D D E F G G Réservoir d’arrivée B C D C E F G C H H E F H Coût (kWh) 5 4 3 -2 4 3 -1 1 8 0 2 5 7 Par quelles conduites cette commune doit faire transiter l’eau pour consommer le moins d’énergie possible ? Algorithme de Bellman-Ford-Moore : La première étape consiste à construire le graphe valué de ce problème comme dans la figure 6.11. Ensuite, on crée un tableau avec une colonne pour chaque sommet, une pour la liste des sommets qui ont changé, et une dernière pour leurs successeurs. L’algorithme de Bellman-FordMoore (BFM) est un algorithme itératif. Il y aura une nouvelle ligne pour chaque itération (on ajoute une colonne au début juste pour numéroter ces itérations). Pour l’itération 0, le tableau est initialisé avec λ(A) = 0 et tous les autres avec ∞. On place juste A dans les sommets changés, on indique tous les successeurs de A dans la colonne Γ+ . 6.5. ALGORITHME DE PLUS COURT CHEMIN 93 Maintenant à chaque itération il faut reprendre un à un tous les sommets qui apparaissent dans la colonne Γ+ de l’itération précédente. Un sommet peut apparaître plusieurs fois, il faut alors le traiter plusieurs fois. En fait, on traite tous les arcs (Sommets changés → Γ+ ) que l’itération précédente a fait apparaître. On doit donc faire à l’itération suivante autant de calculs qu’il y a de sommets dans la colonne Γ+ . Par exemple à l’itération 0, il y a un seul sommet changé (A), qui a trois successeurs (B, C, D). On va donc traiter trois arcs A → B, A → C, et A → D. Pour traiter A → B, on écrit dans la colonne de B la somme de la plus petite valeur de la colonne de A (ici 0) et de la valeur de l’arc A → B (ici 5). Avec ce résultat (0 + 5 = 5), on note aussi le prédécesseur (donc ici A) pour pouvoir retrouver les sommets du chemin à la fin de l’algorithme. Reste alors à regarder si la valeur que l’on vient d’ajouter dans la colonne de B est plus petite que les anciennes. Si oui, on raye les anciennes, et on garde celle-ci (c’est le cas pour notre exemple), sinon on raye la nouvelle valeur, et on garde l’ancienne. Si les deux valeurs sont égales, on garde les deux : cela signifie juste qu’il y a pour l’instant plusieurs plus petits chemins de même longueur. On traite de la même façon les arcs A → C, et A → D. On obtient le tableau avec l’itération 1 suivant : Trois sommets ont changé de valeur (puisque pour les trois, la nouvelle valeur était plus petite que celle calculée jusqu’à présent). On renseigne le Γ+ pour chacun de ces sommets. Il y a six sommets présents dans la colonne Γ+ , il faut donc faire six calculs pour l’itération 2 : les six arcs qui doivent être traités sont B → C, B → E, C → F , C → G, D → H, et D → C. On remarque que C apparaît deux fois dans la colonne Γ+ . Ce sommet sera donc traité deux fois : • Pour C venant de B, on obtient la somme de la valeur de B (5) et de l’arc B → C (−2), donc 3. Comme cette valeur est plus petite que le 4 jusque là choisi, on raye le 4 et garde le 3. • Pour C venant de D, on obtient la somme la valeur de D (3) et de l’arc D → C (1), donc 4. Comme cette valeur est plus grande que celle que l’on vient de placer (3) on la raye. On procède de la même façon pour les quatre autres arcs, et on obtient le tableau avec l’itération 2. Quatre sommets ont changé de valeur (puisque pour les quatre, une nouvelle valeur était plus petite que celle calculée jusqu’à présent). On renseigne le Γ+ pour chacun de ces sommets. 94 CHAPITRE 6. GRAPHES ET ARBRES Pour l’itération 3, il y a encore 6 sommets dans la colonne Γ+ , donc six arcs doivent être traités : C → F , C → G, E → H, F → E, G → F et G → H. Pour la colonne F et la colonne H il faut donc faire deux calculs. Pour le calcul de E venant de F , on obtient somme de la valeur de F (7) avec la longueur de l’arc F → E (2), donc la valeur 9. Comme l’ancienne valeur (9) est identique, on garde les deux chemins. Mais la valeur de λ(E) reste inchangée à cette étape, donc E n’apparaîtra pas dans les sommets changés. On obtient le tableau avec l’itération 3. Trois sommets ont changé de valeur. On renseigne le Γ+ pour chacun de ces sommets. Pour l’itération 4, trois arcs doivent être traités : F → E, G → F et G → H. Pour le calcul de F venant de G, on obtient la somme de la valeur de G (2) avec la longueur de l’arc G → F (5), donc la valeur 7. Comme l’ancienne valeur (6) est plus petite, on raye la nouvelle. Donc la valeur de λ(F ) reste inchangée à cette étape, et F n’apparaîtra pas dans les sommets changés. On obtient le tableau avec l’itération 4. Trois sommets ont changé de valeur. On renseigne le Γ+ pour chacun de ces sommets. 6.5. ALGORITHME DE PLUS COURT CHEMIN 95 Figure 6.12 – Dans cet exemple l’algorithme BFM ne converge pas à cause du cycle à poids négatif (u, y, v). Pour cette itération, un seul arc doit être traité : E → H. On obtient le tableau suivant : La colonne Γ+ est vide. L’algorithme est donc fini. La longueur du plus court chemin du réservoir A vers le réservoir H est donc de 8 kWh. Pour connaître ce chemin le plus court, il suffit de partir de la colonne de H et de remonter la route : (H) ← (8/E) ← (8/F ) ← (6/C) ← (3/B) ← (5/A). Le plus court chemin passe donc par A → B → C → F → E → H et il faudra utiliser 8 kWh par jour pour remplir les 10 m3 du bassin H. Remarques : • La complexité de cet algorithme est de O(|A||N |) pour un graphe à N sommets et A arêtes. Il existe d’autres algorithmes de recherche du plus court chemin plus performants, par exemple, l’algorithme de Dijkstra de complexité O (|A|+|N |) ln |S| . Mais celui-ci ne permet pas de traiter les graphes qui possèdent des arcs à poids négatifs. • Si le graphe possède un cycle à poids négatif (appelé aussi circuit absorbant), l’algorithme BFM ne converge pas. Voir par exemple la figure 6.12. 96 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.13 – Carte du voyageur de commerce 6.5.3 Exemple du voyageur de commerce Un voyageur doit aller en voiture de Lyon à Agen. En regardant les cartes (voir figure 6.13), il a dégagé diverses options pour faire sa route : • Il peut couper le massif-central par les nationales en passant Le Puy-en-Velay, Brioude et Cahors. • Il peut passer par les autoroutes du sud de la France, en passant par Orange, Montpellier, Narbonne, Toulouse et Montauban. • Il peut passer par les autoroutes du centre de la France, en rejoignant l’A72 à Feurs, et ensuite en passant par Clermont-Ferrand, Brive, Cahors, Montauban. • Il peut enfin faire un mélange de tout cela en profitant éventuellement de l’A75 qui coupe toutes ces routes. Sachant qu’il réalise une moyenne de 70 km/h sur les nationales et départementales et de 110 km/h sur les autoroutes quel chemin doit-il emprunter pour faire le trajet le plus rapidement possible ? Et quel est le temps de ce trajet ? Pour ce problème il faut rechercher un plus court chemin au sens du temps entre Lyon et Agen. Il faut commencer par trouver le graphe qui va servir à résoudre le problème. Il n’est pas utile de conserver les noeuds intermédiaires qui ne concernent que les changements de noms des routes (comme Feurs, Orange, . . .). Seuls les noeuds aux intersections des routes sont intéressants pour notre modèle. Il faut aussi calculer le temps de parcours entre chacun des ces noeuds : • Entre Lyon et Clermont-Ferrand : il y a 77 km de nationales et 88 km d’autoroutes. Ceci correspond à (77/70 + 88/110) · 60 = 114 minutes de trajet. • Entre Lyon et Montpellier : il y a 308 km d’autoroutes, soit (308/110) · 60 = 168 minutes de trajet. • Entre Lyon et Brioude : il y a 182 km de nationales, soit (182/70) · 60 = 156 minutes de trajets. 6.5. ALGORITHME DE PLUS COURT CHEMIN 97 • Entre Montpellier et Brioude : il y a 275 km d’autoroutes, soit (275/110) · 60 = 150 minutes de trajet. • Entre Brioude et Clermont-Ferrand : il y a 66 km d’autoroutes, soit (66/110) · 60 = 36 minutes de trajet. • Entre Clermont-Ferrand et Cahors : il y a 275 km d’autoroutes, soit (275/110) · 60 = 150 minutes de trajet. • Entre Brioude et Cahors : il y a 238 km de nationales, soit (238/70) · 60 = 204 minutes de trajet. • Entre Montpellier et Montauban : il y a 275 km d’autoroutes, soit (275/110) · 60 = 150 minutes detrajet. • Entre Cahors et Montauban : il y a 88 km d’autoroutes, soit (88/110) · 60 = 48 minutes de trajet. • Entre Cahors et Agen : il y a 105 km de nationales, soit (105/70) · 60 = 90 minutes de trajet. • Entre Montauban et Agen : il y a 66 km d’autoroutes, soit (66/110) · 60 = 36 minutes de trajets. On n’a pas d’apriori sur le sens de parcours de l’axe transversal entre Montpellier et ClermontFerrand. Il faudra donc mettre les arcs dans les deux sens pour ces routes. Il nous reste à trouver le chemin le plus court (au sens du temps). Pour cela on utilise l’algorithme de Bellman-Ford-Moore. 98 CHAPITRE 6. GRAPHES ET ARBRES Le voyageur prendra donc 348 minutes (5h48) pour faire le trajet. Il passera par les sommets Lyon, Clermont, Cahors et Montauban. Donc son plan de route consiste à commencer son voyage sur des nationales et des départementales jusqu’à Feurs. Là, il passe sur le réseau autoroutier en rejoignant Clermont-Ferrand par l’A72. Il emprunte alors l’A71 jusqu’à Combronde où il passe sur l’A89 jusqu’à Brive-la-Gaillarde. Il change alors en passant sur l’A20 jusqu’à Montauban, où il rejoint l’A62 qui le mènera jusqu’à Agen. 6.5.4 Modélisation des problèmes de plus court chemin Il y a deux principaux écueils à éviter lorsqu’on veut modéliser un problème avec un plus court chemin : 1. La carte n’est pas le graphe. Même lorsque l’on modélise un déplacement géographique, il ne faut pas croire que les différents lieux parcourus seront les différents états du graphes. Il peut y avoir plein de bonnes raisons pour lesquelles le lieu géographique ne suffit plus à déterminer l’état : un parcours peut passer plusieurs fois par le même lieu, plusieurs étapes d’un processus peuvent s’enchaîner sur un même lieu. 2. Les états ne sont pas des lieux géographiques. Excepté dans le cas particulier des parcours routiers (même si c’est une des applications majeures du PCCH), il est rare que les états du graphe soient des lieux géographiques. Lorsqu’on veut modéliser un PCCH il faut penser en « étape ». Les étapes peuvent effectivement être les différents lieux parcourus, mais le plus souvent il s’agit d’étapes successives dans un processus. Par exemple un processus industriel pourra commencer par une « production », puis passer par un « transport » et une « transformation » et finir par une « livraison ». Même si toutes ses étapes peuvent se passer dans des lieux différents, la modélisation ne reposera pas que sur ces lieux. Pour illustrer un problème où les états ne sont pas des lieux, voici un exemple d’une production industrielle. Exemple : Une entreprise productrice d’acier possède deux sites industriels : un à Issy et l’autre à Lahba. Elle doit produire et livrer des pièces en acier pour une société localisée à Hayeur. Le processus pour obtenir ces pièces passe par trois étapes, toutes trois possibles sur les deux sites. Mais suivant le site, le coût diffère : • L’extraction du fer coûterait 100 U à Issy, et 120 U à Lahba. • Le raffinage pour obtenir l’acier coûterait 90 U à Issy, et 110 U à Lahba. • Le moulage pour obtenir les pièces coûterait 40 U à Issy ou à Lahba. Il est possible de transporter les matériaux intermédiaires d’un site à l’autre : • Le transport du fer coûterait 40 U (dans un sens ou dans l’autre). 6.5. ALGORITHME DE PLUS COURT CHEMIN 99 • Le transport de l’acier coûterait 30 U (dans un sens ou dans l’autre). Enfin la livraison depuis Issy vers Hayeur coûterait 50 U, et celle depuis Lahba vers Hayeur coûterait 10 U. Comment l’entreprise doit organiser sa production pour fabriquer et livrer ces pièces au moindre coût ? Pour cet exemple aussi il y a des lieux, mais ils ne suffiront pas à modéliser notre problème. Le but est de minimiser le coût total de production (et livraison). Il va donc falloir faire apparaître sur notre modèle toutes les étapes de cette production. Pour les identifier il suffit de suivre le processus industriel : 1. La première étape est l’extraction du minerai. 2. La deuxième étape (optionnelle) est le transport de ce minerai. 3. La troisième étape est le raffinage pour obtenir l’acier. 4. La quatrième étape (optionnelle) est le transport de cet acier. 5. La cinquième étape est la moulage des pièces. 6. La sixième est dernière étape est la livraison de ces pièces. Chacune de ces étapes peuvent se faire dans deux lieux différents. Il y aura donc au moins 6 · 2 = 12 arcs différents dans notre modèle (puisque pour le PCCH les longueurs -qui ici représenteront les coûts- se placent sur les arcs). Il va falloir placer ces arcs en suivant la logique du processus industriel, pour créer un chemin qui va de l’extraction à la livraison. Voici le début du brouillon de ce graphe : le processus commence par l’extraction, mais il y en a deux possibles : une à Issy, l’autre à Lahba. On place ces deux arcs sur le brouillon : Une fois l’extraction faite, suit une étape (optionnelle) de transport. S’il n’y pas de transport, il faut enchaîner immédiatement avec le raffinage. Donc l’arc de l’étape de raffinage doit être placé directement sur le sommet où arrive l’arc d’extraction (pour que le modèle puisse enchaîner les deux étapes). Ajoutons cette étape de raffinage au brouillon : 100 CHAPITRE 6. GRAPHES ET ARBRES Sur ce brouillon, le premier transport (optionnel) n’a toujours pas été placé. Un transport doit être placé entre l’extraction à Issy et raffinage à Lahba. L’autre transport arrive entre l’extraction à Lahba, et raffinage à Issy. Donc, sur notre modèle, pour pouvoir enchaîner l’extraction à Issy, puis le transport entre Issy et Lahba et enfin le raffinage à Lahba, il suffit d’ajouter un arc entre « Issy 1 » et « Lahba 1 », ainsi on aura bien créer un chemin qui pourra enchaîner les trois étapes. On place aussi l’arc dans l’autre sens pour le transport dans l’autre sens. On obtient le brouillon suivant : Après le raffinage, suit un second transport optionnel, et le moulage. On procède avec le même raisonnement que précédemment : on fait fait partir le moulage des sommets où arrive le raffinage, et on place les transports entre « Issy 2 » et « Lahba 2 ». On obtient le brouillon suivant : Il ne reste plus qu’à faire la livraison. Les chemins en cours convergent donc vers un même sommet, ce qui donne le brouillon suivant : Sur ce graphe toutes les étapes sont bien modélisées, mais il ne convient pas à la modélisation d’un PCCH. En effet, ce graphe a deux points d’entrée (« Issy 0 » et « Lahba 0 »). Or, la recherche d’un plus court chemin se fait à partir d’un point unique (vers tous les autres points du graphe). Ce n’est pas vraiment un problème : les sommets ne sont là que pour nous permettent d’enchaîner les étapes. Si on s’aperçoit que deux sommets différents sont en fait un point de passage unique de deux chemins, il suffit de les réunir en seul sommet. Donc on remplace « Issy 0 » et « Lahba 0 » par un sommet unique que l’on va appeler « Départ ». On obtient au final le modèle suivant : 6.6. ALGORITHME DE RECHERCHE DE FLOT MAXIMAL 101 Puisque le modèle est achevé, continuons avec le calcul de ce plus court chemin. On commence par simplifier le graphe en supprimant les sommets n’ayant qu’un arc entrant et un seul arc sortant. On obtient le graphe simplifié suivant : On applique l’algorithme de Bellman-Ford-Moore : L’entreprise devra donc dépenser 270 U pour produire et livrer les moulages d’acier. Pour cela, elle devra extraire minerai et raffiner l’acier à Issy, puis transporter cet acier à Lahba. Là il sera moulé puis livré à Hayeur. 6.6 6.6.1 Algorithme de recherche de flot maximal Présentation du problème Le problème du flot maximal consiste à faire passer un flot optimal à travers un réseau de transport. Un réseau de transport est un graphe orienté sans boucle, dont chaque arc est valué par un nombre représentant sa capacité de transport, c’est à dire le nombre maximal d’éléments que l’on peut faire transiter par cet axe. On distingue deux sommets particuliers dans ce graphe : la source S, et le puits P . Le problème sera de trouver la capacité du transit maximal entre la source et le puits. La capacité d’un arc u sera notée c(u), et le flot attribué à cet arc sera noté ϕ(u). 102 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.14 – Modèle avec juste la capacité de transport Figure 6.15 – Modèle avec un flot et la capacité de transport Figure 6.16 – Le flot doit être équilibré sur tous les sommets Pour les dessiner on va adopter quelques notations. Pour décrire ce graphe de transport, les capacités seules suffisent. Donc on dessinera des graphes avec une seule valeur sur les arcs. Cette valeur correspondra alors à la capacité de transport de cet arc. Sur l’exemple de la figure 6.14, l’arc A → B permet le passage de 15 eléments au maximum. Lorsque l’on va rechercher le flot-max, en plus de la capacité on va devoir noter le flot que l’on fait circuler sur l’arc. Cette valeur sera notée avant la capacité avec une barre de fraction pour les séparer : flot/capacité. En aucun cas le flot qui traverse un arc ne peut être supérieur à sa capacité. Sur l’exemple de la figure 6.15, l’arc A → B est traversé par un flot de 9 éléments. Comme sa capacité totale est de 15, on dira que sa capacité résiduelle est de 6 (15 - 9). Dans un réseau de transport les éléments qui circulent entrent tous dans le graphe par un sommet unique appelé la source. Ils doivent tous transiter et sortir par un sommet unique appelé le puits. Il faut donc vérifier que la totalité du flot qui arrive au puits est égal à la totalité du flot qui part de la source. De plus les autres sommets (entre la source et le puits) n’ont pas le droit de faire apparaître ou disparaître le moindre élément. Donc pour tous les autres sommets on doit vérifier que la somme des flots entrant est égale à la somme des flots sortant. Par exemple sur l’extrait de graphe de la figure 6.16, il y a un flot de 2 + 6 + 7 = 15 éléments qui arrivent sur le sommet E. Il y a en bien aussi 15 qui en partent (5 + 10). 6.6. ALGORITHME DE RECHERCHE DE FLOT MAXIMAL 103 Figure 6.17 – Début de la modélisation Figure 6.18 – Fin de la modélisation 6.6.2 Un exemple Un magasin M spécialisé dans les téléphones mobiles a une capacité de vente de 500 appareils par jour. Il se les fait livrer chaque matin à partir de deux entrepôts (E1 et E2). La capacité de livraison à partir de l’entrepôt E1 vers le magasin est de 400 appareil chaque matin. Pour l’entrepôt E2 elle est de 300 appareils. Les entrepôts se font eux-même approvisionner régulièrement : la capacité moyenne des arrivées sur l’entrepôt E1 est de 500 appareils par jour. Pour l’entrepôt E2 elle est de 900. Le gérant du magasin s’est aperçu que la capacité d’accueil de ses entrepôts dépassait la capacité de vente de son magasin. Il a donc aussi développé un système de vente directe dans ses entrepôts. La capacité de vente de l’entrepôt E1 est de 400 appareils par jour. Celle de l’entrepôt E2 de 500 appareils. Dans ces conditions combien peut-il vendre au maximum d’appareils chaque jour ? Il faut commencer par modéliser le problème pour obtenir le graphe de transport qui correspond à cet énoncé. Dans ce graphe de transport, chacune des contraintes (capacité de vente, de livraison, d’approvisionnement) devra apparaître sous la forme d’un et un seul arc. Ensuite il faudra créer tous les chemins possibles entre les approvisionnements et ventes. Au tout début du circuit commercial, il y a les approvisionnements des deux entrepôts. On va donc commencer à placer ces deux arcs avec leur deux contraintes (500 appareils pour E1 et 900 pour E2). Il y a deux usages possibles des appareils arrivés dans les entrepôts : soit ils sont vendus directement sur place, soit ils sont livrés au magasin M . Depuis l’entrepôt E1 on peut en vendre 400 et en livrer 400, depuis l’entrepôt E2 on peut en vendre 500 et en livrer 300. Les appareils arrivés au magasin doivent être vendus. On ajoute donc cette capacité au graphe (500). Toutes les contraintes seront alors reportées sur le modèle. Mais un graphe de transport ne doit avoir qu’une seule entrée (la source) et qu’une seule sortie (le puits). Donc on ajoute un somme S pour servir d’origine à tous les arcs en début de graphe, et un sommet P pour servir de destination à tous les arcs en fin de graphe. 104 6.6.3 CHAPITRE 6. GRAPHES ET ARBRES Algorithme de Ford-Fulkerson Une fois la modélisation terminée, il faut utiliser l’algorithme de Ford-Fulkerson pour trouver le flot maximal du graphe de transport. Cet algorithme se passe en deux phases : 1. Le flot au jugé : on commence par établir un premier flot au jugé le meilleur possible. 2. L’amélioration de ce flot jusqu’au flot max : grâce à un algorithme itératif on va améliorer le flot jusqu’à prouver qu’on ne peut plus faire mieux, et l’on a alors trouvé le flot maximal. L’algorithme débute sur un graphe avec un premier flot établi. Ce premier flot est quelconque, il peut même être nul. Mais pour diminuer le nombre d’itérations mieux vaut essayer de faire passer au jugé le meilleur flot possible. L’idéal est d’avoir le flot maximal dès le départ, car ainsi l’algorithme se terminera très vite ! Le but de cet exemple étant de montrer la technique, le premier flot au jugé que l’on va placer sur le graphe ne sera pas optimal (on pourra ainsi montrer comment on peut l’améliorer). Pour ce premier flot, on va commencer par privilégier les ventes en magasin. Pour cela, on va acheminer un maximum de l’approvisionnent du premier entrepôt vers la vente en magasin : il y a 500 appareils qui peuvent arriver en E1, 400 peuvent être livrés au magasin, et 500 peuvent être vendus. Donc sur cette route, on peut faire passer au maximum 400 appareils (la plus petite des 3 capacités). Ensuite on va compléter les ventes du magasin avec les approvisionnements de E2. Il y a 900 appareils qui peuvent arriver en E2, 300 peuvent être livrés au magasin, mais la capacité résiduelle de vente n’est que de 100. Donc on fait passer un flot de 100 appareils par cette route. Enfin, on va vendre directement aux entrepôts le maximum de ce qui n’a pas pu être livré au magasin : 100 appareils pour E1, et 500 appareils pour E2. 6.6. ALGORITHME DE RECHERCHE DE FLOT MAXIMAL 105 Il y a 1100 appareils qui partent de la source (et autant qui arrivent au puits, sinon il y aurait un erreur). Donc le flot actuel est de 1100 appareils. Ce n’est pas le flot maximal, et on va le prouver dans la section suivante. Algorithme de Ford-Fulkerson : L’algorithme de Ford-Fulkerson est un algorithme itératif qui se fait en trois étapes : • Le marquage : il va essayer de trouver un suite d’arcs allant de la source au puits pour améliorer le flot : cette suite d’arcs sera appelée une chaîne améliorante. • Le calcul du gain : si on a trouvé une chaîne améliorante, cette étape sert à calculer de combien on va pouvoir augmenter le flot grâce à cette chaîne. • L’augmentation du flot : il s’agit du report du gain sur la chaîne améliorante que l’on a trouvée. Tant que le marquage arrive à trouver une chaîne améliorante, on recommence les trois étapes en boucle. Algorithme de Ford-Fulkerson : étape du marquage Cette première étape de l’algorithme consiste à chercher soit un chemin non saturé allant de source S au puits P , soit une chaîne permettant de dérouter une partie du flot pour désaturer un arc au profit d’un flot parallèle. Pour cela on va construire une chaîne améliorante allant de S à P . Cette étape peut prouver que cette chaîne n’existe pas, ce qui signifie que le flot maximal est déjà atteint. Ce marquage devra déjà respecter trois axiomes de bases : 1. On commence toujours en marquant la source S d’une *. 2. On ne marque jamais une seconde fois un sommet déjà marqué. 3. On ne peut marquer que les sommets voisins des sommets déjà marqués. Une fois la source marquée, on va essayer de marquer les autres sommets de proche en proche. On ne peut marquer que les sommets voisins d’un sommet déjà marqué grâce à deux règles qui dépendent du sens de l’arc. 1. Soit l’arc va du sommet X marqué vers le sommet Y non marqué : si sur cet arc il reste de la capacité résiduelle (le flot qui passe est inférieur à la capacité de l’arc), alors on marque le sommet Y avec un +X (voir figure 6.19). 2. Soit l’arc va du sommet Y non marqué vers le sommet X marqué : si sur cet arc il y a un flot non nul qui circule, alors on marque le sommet Y avec un −X (voir figure 6.19). On essaye ainsi de marquer les sommets de proche en proche jusqu’à marquer le puits. On s’arrête soit quand on a réussi à marquer le puits P , soit quand aucun nouveau sommet ne peut être marqué avec une des 2 règles. Si le puits P n’a pas pu être marqué, c’est que le flot est déjà 106 CHAPITRE 6. GRAPHES ET ARBRES Figure 6.19 – Les deux règles de marquage maximal. Sinon, on vient de trouver une chaîne améliorante. Il faut alors en calculer le gain. Mais avant de faire le calcul de ce gain, appliquons l’algorithme de marquage à notre exemple. On commence par marquer la source S avec une *. Ensuite comme on ne peut marquer que les sommets voisins des sommets déjà marqués, seul E1 et E2 peuvent être marqués. Comme les arcs partent de S pour aller vers ces sommets, on va appliquer la première des deux règles. Sur l’arc S −→ E1, il ne reste plus de capacité résiduelle (on est à 500 sur 500), il n’est donc pas possible de marquer E1 à cette étape. Par contre sur l’arc S −→ E2 il reste 300 de capacité résiduelle (on est à 600 sur 900), donc on peut marquer E2 d’un +S. On ne peut plus rien marquer à partir de S, mais comme E2 est marqué, on peut tenter de marquer les voisins de E2. Le sommet E2 a trois voisins : S, M , et P . Comme S est déjà marqué, on ne peut donc pas le remarquer. Pour M , et P les arcs partent de E2, on applique donc encore la première règle. L’arc E2 −→ P n’a pas de capacité résiduelle (on est 500 sur 500), il n’est donc pas possible de marquer P pour l’instant. Par contre il reste 200 de capacité résiduelle sur l’arc E2 −→ M , donc on peut marquer M avec un +E2. On a fini tout ce que l’on pouvait tenter avec E2. On va continuer avec un autre sommet marqué pas encore traité. Il n’y a que M . Le sommet M a trois voisins : E1, E2 et P . Le sommet E2 est déjà marqué, donc impossible de le marquer une seconde fois. L’arc M −→ P part de M , il faut donc appliquer la première règle. Comme il est saturé (aucune capacité résiduelle), on ne peut pas encore marquer P . L’arc E1 −→ M arrive sur M . Donc cette fois on utilise la seconde règle. Comme il y a un flot non nul (il circule 400 mobiles), on peut marquer E1 mais cette fois avec un « - » soit −M . On a fini tout ce que l’on pouvait tenter avec M . On passe à E1 qui est maintenant marqué. Il a trois voisins : S, M et P . Comme S et M sont déjà marqués, on ne peut donc pas les 6.6. ALGORITHME DE RECHERCHE DE FLOT MAXIMAL 107 Figure 6.20 – Marquage du graphe marquer à nouveau. L’arc M −→ P n’est pas saturé, on peut donc appliquer la première règle, et marquer P avec un +E1. Comme P est marqué, le marquage est terminé. Algorithme de Ford-Fulkerson : étape du calcul du gain Le marquage de l’étape précédente a trouvé une chaîne améliorante. Pour trouver le gain qu’elle permet il faut commencer par lire cette chaîne. Pour cela on part du puits, et on remonte la piste du marquage. Utilisons l’exemple pour expliquer cette lecture. Le sommet P qui est en bout de chaîne, est marqué par un +E1, donc le sommet qui est juste avant lui dans la chaîne est E1. La chaîne se termine donc par : E1 −→ P. Le sommet E1 est marqué de −M . Donc le sommet M précède E1 dans la chaîne, mais attention comme il y a −, il s’agit d’un arc qui est dans l’autre sens (il va de E1 vers M , comme dessiné sur le graphe). On parle dans ce cas d’arc inverse. La chaîne se termine donc par : M ←− E1 −→ P. Le sommet M est marqué d’un +E2. Donc le sommet qui le précède dans la chaîne est E2 : E2 −→ M ←− E1 −→ P. Enfin, E2 est marqué avec un +S, donc on a remonté la piste jusqu’à la source, et on a fini la lecture de la chaîne améliorante : S −→ E2 −→ M ←− E1 −→ P. Maintenant il faut trouver le gain permi par cette chaîne. Pour cela on va regarder chaque arc de la chaîne pour appliquer une des deux règles suivantes : 1. Soit il s’agit d’un arc direct (orienté dans le bon sens, gauche vers droite), dans ce cas on va indiquer la capacité résiduelle de l’arc. 2. Soit il s’agit d’un arc inverse (orienté dans le sens droite vers gauche), dans ce cas on va indiquer le flot qui circule sur l’arc. Pour notre exemple il y 3 arcs directs : S −→ E2 avec 300 de capacité résiduelle, E2 −→ M avec 200 de capacité résiduelle, et E1 −→ P avec 300 de capacité résiduelle. Il y a 1 seul arc inverse M ←− E1 avec 400 de flot. 900−600=300 300−100=200 400 400−100=300 S −−−−−−−−→ E2 −−−−−−−−→ M ←−− E1 −−−−−−−−→ P. 108 CHAPITRE 6. GRAPHES ET ARBRES Le gain que permet la chaîne améliorante est la plus petite des valeurs que l’on a placées sur les arcs. Donc ici le gain de notre chaîne est de 200 appareils. Une fois ce gain évalué, il faut le reporter sur le flot du graphe, comme sur la figure suivante : Algorithme de Ford-Fulkerson : étape de l’augmentation du flot Maintenant que l’on connaît la valeur du gain, il suffit de reparcourir sur le graphe la chaîne améliorante que l’on a trouvée, mais cette fois ci, en ajoutant le flot aux arcs directs, et en le retirant sur les arcs inverses. Donc pour notre exemple, on ajoute 200 sur les arcs S −→ E2, E2 −→ M et E1 −→ P , et on retire 200 sur l’arc M ←− E1. On vérifie que le nouveau flot obtenu (la somme de tout ce qui part de la source ou de tout ce qui arrive au puits) est passé à 1300 (on a donc bien un gain de 200 par rapport au 1100 d’avant), et que tous les sommets ont toujours un flot équilibré (pour tous les sommets, il y a toujours autant d’appareils qui arrivent que d’appareils qui en partent). Algorithme de Ford-Fulkerson : étape du marquage On réitère l’algorithme, pour voir si l’on peut encore améliorer le flot. Ainsi, on reprend l’étape de marquage : deux arcs partent de la source, mais un seul n’est pas saturé. Donc à partir de la source, seul E2 peut être marqué On a fini les marquages possibles à partir de la source, on passe à E2 le seul autre sommet marqué. Il a 3 voisins : le sommet S est déjà marqué, et les deux arcs qui partent vers M et P sont saturés. Il n’y a donc pas de marquage supplémentaire possible. L’algorithme s’arrête là. Comme on n’a pas pu marquer le puits, la valeur du flot qui circule sur ce graphe (1300 appareils) est le flot maximal. Chapitre 7 Initiation aux chaînes de Markov et applications 7.1 Introduction Un processus stochastique est une suite de variables aléatoires X0 , X1 , . . ., Xn , . . . qui décrit l’évolution d’un phénomène aléatoire. On travaille en temps discret (les v.a. sont indexées par les entiers) et on supposera de plus que l’espace d’état E dans lequel le processus prend ses valeurs est fini. Les processus stochastiques interviennent de façon très naturelle dans les applications. Exemples : • Météorologie : Xn est la température en un lieu donné au jour n ou encore hauteur des précipitations pour l’année n. • Bourse : Xn est le cours d’un action le jour n ou le chiffre d’affaire d’une société l’année n. • Épidémiologie : Xn est le nombre d’individus infectés par la grippe le jour n (d’un jour à l’autre, une personne peut guérir, rester malade ou être infectée). On notera d’emblée qu’il n’y a, a priori, pas d’indépendance des v.a. (Xj )j≥0 . Lorsque l’évolution d’un processus stochastique après une date n ne dépend du passé X0 , X1 , . . ., Xn qu’à travers sa position au temps n (et non pas du trajet qu’il a suivi pour atteindre cet état), on dit qu’il vérifie la propriété de Markov. Ce phénomène apparait souvent. Par exemple, si on bat un jeu de cartes suivant toujours la même technique : la distribution aléatoire des cartes au rang n + 1 sachant les ordres aux rangs 1, . . ., n, ne dépend que de l’ordre n et pas des précédents. Définition 7.1 • On dit que X0 , X1 , . . ., Xn , . . . est une chaîne de Markov P (homogène) sur un ensemble E s’il existe des nombres réels positifs (pij )i,j∈E avec j∈E pij = 1 pour tout i ∈ E, tels que pour tout n ∈ N, tous i, j, x0 , . . . , xn ∈ E P (Xn+1 = j|X0 = x0 , X1 = x1 , . . . , Xn−1 = xn−1 , Xn = i) = = P (Xn+1 = j|Xn = i) = pij , pourvu que l’espérance conditionnelle soit bien définie. • On appelle (pij )i,j∈E la probabilité de transition pour l’état i. • Lorsque l’espace d’état E est fini, P = (pij )i,j∈E est une matrice que l’on appelle matrice de transition de la chaîne. 109 110 CHAPITRE 7. INITIATION AUX CHAÎNES DE MARKOV ET APPLICATIONS Figure 7.1 – Chaîne de Markov à deux états Dans la suite on se limitera au cas où E est un ensemble fini. Attention, certains des résultats suivants ne sont valables que pour un espace d’états E fini. Exemple : Chaîne à deux états : Considérons l’état d’une ligne téléphonique Xn = 0 si la ligne est libre à l’instant n, et Xn = 1 si la ligne est occupée. Supposons que sur chaque intervalle de temps, il y a une probabilité p qu’un appel au plus arrive. Si la ligne est déjà occupée, l’appel est perdu. Supposons également que si la ligne est occupée au temps n, il y a une probabilité q qu’elle se libère au temps n + 1. On peut modéliser ainsi une chaîne de Markov à valeurs dans 1−p p E = {0, 1}, avec matrice de transition P = . Voir Figure 7.1. q 1−q Exemple : Voici un simulateur de chaînes de Markov en ligne : http://www.zweigmedia.com/RealWorld/markov/markov.html Il permet de simuler des chaînes à 2,3 ou 4 états. Faites des essais ! 7.2 Théorème de Chapman-Kolmogorov Dans cette partie on énonce le résultat principal qui permet de calculer la loi de Xn à partir de celle de X0 . Notation : Soit P X : Ω −→ E une v.a. Sa loi est donnée par P (X = j) = µj pour j ∈ E. On a 0 ≤ µj ≤ 1 et j∈E µj = 1. On peut identifier cette loi à un vecteur ligne µ = (µ1 , . . . , µN ) où N = Card(E). Théorème 7.2 (Chapman-Kolmogorov ) Soit (Xn )n∈N une chaîne de Markov sur E de matrice de transition P . Alors 1. Pour tous x0 , . . . , xn ∈ E, on a P (X1 = x1 , . . . , Xn = xn |X0 = x0 ) = px0 ,x1 · · · pxn−1 ,xn . 2. On a pour tous i, j ∈ E et n ≥ 1 (n) P (Xn = j|X0 = i) = pij , (n) où (pij ) sont les coefficients de la matrice P n . 3. On note µ(0) la loi de X0 . Alors la loi µ(n) de Xn vérifie la relation de récurrence : µ(n+1) = µ(n) P = µ(0) P n+1 . 7.3. COMPORTEMENT ASYMPTOTIQUE DES CHAÎNES DE MARKOV 111 Exemple : On considère la chaîne à deux états illustrée par la Figure 7.1 avec p = 1/2 et q = 1/4. 1/2 1/2 Alors la matrice de transition est P = . 1/4 3/4 (2) • Calculons P (X2 = 1|X0 = 1). D’après le théorème précédent, on a P (X2 = 1|X0 = 1) = p22 où P2 = 3/8 5/8 = 5/16 11/16 p11 (2) p12 (2) p22 p21 (2) (2) ! , (2) ainsi P (X2 = 1|X0 = 1) = p22 = 11/16. • Calculons A = P (X3 = 0, X2 = 1, X1 = 0|X0 = 0). D’après le théorème précédent, 1 A = p11 p12 p21 = 12 · 12 · 14 = 16 . 1/2 1/2 (0) (1) (0) • Si µ = (1, 0), alors µ = µ P = (1, 0) = (0.5, 0.5). 1/4 3/4 De même, µ(2) = µ(1) P = (0.375, 0.625). Par exemple on a µ(5) = (0.33398, 0.66602) : ceci montre que la distribution semble rapidement se stabiliser à (1/3, 2/3). On prouvera cela par la suite. Exercice : Refaire les calculs précédents avec le logiciel Scilab. On conclut cette partie par une définition qui sera utile pour la suite Définition 7.3 Une probabilité π sur E est dite invariante pour P si c’est un point fixe pour l’équation de Chapman-Kolmogorov, i.e. π = πP. On dit également que π est une distribution stationnaire pour P . Cette définition soulève les questions naturelles suivantes : A-t-on toujours existence d’une probabilité invariante ? Est-ce que celle-ci peut aider à décrire la loi de Xn pour n grand ? 7.3 Comportement asymptotique des chaînes de Markov On rappelle que P désigne la matrice de transition d’une chaîne de Markov (Xn )n≥0 . On s’intéresse à la distribution de Xn quand n → +∞, ce qui revient à étudier la suite de matrices P n quand n → +∞. On rappelle également que l’on suppose que E est un ensemble fini. Attention, certains des résultats suivants ne sont valables que pour un espace d’états E fini. Définition 7.4 Soit (Xn )n≥0 une chaîne de Markov de matrice de transition P . • On dit qu’elle est irréductible si ∀(i, j) ∈ E × E il existe k (pouvant dépendre de (k) (i, j)) tel que pi,j > 0. • On dit qu’elle est fortement irréductible s’il existe k (absolu) t.q. ∀(i, j) ∈ E × E, (k) pi,j > 0. 112 CHAPITRE 7. INITIATION AUX CHAÎNES DE MARKOV ET APPLICATIONS L’irréductibilité d’une chaîne de Markov signifie que deux états de la chaîne sont reliés. Pour tous i, j ∈ E, il existe une suite finie x0 = i, . . . , xk = j telle que pxi ,xi+1 > 0 pour tout (k) 0 ≤ i ≤ k − 1. Ainsi pi,j = P (Xk = j | X0 = i) > 0. L’irréductibilité de P est équivalente à la connexité du graphe orienté, i.e. pour tout (i, j) ∈ E × E, il existe un chemin dans le graphe composé d’arêtes les reliant. Une chaîne de Markov est fortement irréductible si et seulement si il existe k ≥ 1 tel que tous (k) les coefficients de la matrice P k sont strictement positifs (pi,j > 0 pour tous les i, j). Exemple : La chaîne à deux états est irréductible (et même fortement irréductible) si 0 < p, q ≤ 1. Si p = q = 0, elle n’est pas irréductible (les deux états 0 et 1 ne sont pas liés). Théorème 7.5 Une chaîne de Markov irréductible admet une unique probabilité invariante notée π. De plus πj > 0, ∀j ∈ E. L’irréductibilité d’une chaîne de Markov ne suffit pas pour assurer la convergence en loi de Xn vers la mesure invariante. Il faut supposer de plus que la chaîne est fortement irréductible : Théorème 7.6 (Théorème ergodique) Supposons P fortement irréductible de probabilité invariante π, alors pour toute probabilité initiale µ (i.e. (P (X0 = i) = µi pour i ∈ E) on a : lim µP n = π n→∞ Ainsi, si X0 est de loi µ quelconque, la suite de v.a. (Xn )n≥0 converge en loi, et sa distribution limite est donnée par π : lim P (Xn = j) = πj . n→∞ On peut noter que la distribution limite ne dépend pas de la distribution initiale µ. Exemple : On considère à nouveau la chaîne à deux états illustrée par la Figure 7.1 avec p = 1/2 1/2 1/2 et q = 1/4. Alors la matrice de transition est P = . 1/4 3/4 On remarque que tous les états sont reliés, donc la chaîne de Markov est fortement irréductible (avec k = 1). Le Théorème 7.5 assure l’existence d’une unique mesure de probabilité invariante π. D’après le Théorème 7.6, on a convergence en loi de (Xn )n≥0 vers π. Calculons cette distribution invariante π = (π1 , π2 ), où π1 , π2 ≥ 0 et π1 + π2 = 1. On résout l’équation 1/2 1/2 (x, y) = (x, y). 1/4 3/4 Ceci est équivalent au système 1 2x 1 4x + 21 y = x + 43 y = y, 1 dont les solutions sont {( y, y), y ∈ R}. Avec la contrainte x, y ≥ 0 et x + y = 1, on trouve 2 π = (1/3, 2/3). 0 1 Exemple : On considère l’exemple précédent, mais avec p = q = 1, donc P = . Alors on 1 0 remarque que pour tout k ∈ N, P 2k = I et P 2k+1 = P . On dit que la chaîne est périodique, et on 7.4. APPLICATION À L’ALGORITHME PAGERANK DE GOOGLE 113 Figure 7.2 – Quatre pages internet et leurs liens n’a pas convergence en loi de la suite (Xn )n≥0 . Ceci est compatible avec les résultats précédents. La matrice P n’est pas fortement irréductible, donc le Théorème 7.6 ne s’applique pas. 7.4 Application à l’algorithme PageRank de Google On représente le réseau Internet comme un graphe orienté. Les sommets représentent les pages web, et un arc orienté entre deux pages, signifie qu’il existe un lien hypertexte de la première vers la seconde. Dans la suite on va considérer l’exemple de la Figure 7.2. On va présenter une méthode pour classer ces pages par ordre d’importance, qui est une version simplifiée de l’algorithme PageRank 1 utilisé par Google. On considère un promeneur aléatoire qui passe d’une page à l’autre en cliquant sur les liens existants, avec équiprobabilité. Par exemple, lorsqu’il se trouve sur la page B, il a une probabilité de 1/2 de se retrouver sur la page Z et une probabilité 1/2 de se retrouver sur la page B à l’étape suivante. L’importance de chaque page va être donnée par sa probabilité d’être visitée après un grand nombre d’itération du promeneur. On modélise ce problème par une chaîne de Markov. On définit les v.a. (Xn )n≥0 qui donnent la position du promeneur après le clic n. La matrice de transition est donnée par 0 1 2 P = 0 1 0 0 1 2 0 1 2 0 0 0 1 2 1 2 1 , 2 0 où le coefficient pi,j donne la probabilité d’aller de la page i à la page j, avec la convention A ≡ 1, B ≡ 2, C ≡ 3 et Z ≡ 4. D’emblée on remarque que cette chaîne est irréductible (on peut accéder à n’importe quelle page, y compris sur laquelle on se trouve, en un nombre fini de clics). D’après le Théorème 7.5 on a existence et unicité d’une probabilité invariante π donnée par πP = π. 1. L’algorithme a été inventé par Sergey Brin et Larry Page, d’où le nom PageRank. 114 CHAPITRE 7. INITIATION AUX CHAÎNES DE MARKOV ET APPLICATIONS Commençons par calculer π : on est amené à résoudre le système 0 0 21 12 1 0 0 1 2 2 (x, y, z, t) 0 1 0 1 = (x, y, z, t), 2 2 1 0 0 0 équivalent à 1 2y +t = = 1 x = 12 1 1 x + y + z = 2 2 2 1 2z x y z t La solution est donnée par {(2z, 12 z, 47 z, z), z ∈ R}. En tenant compte des contraintes x, y, z, t ≥ 0, 1 (8, 2, 4, 7) = (0.38; 0.10; 0.19; 0.33). x + y + z + t = 1, on trouve l’unique solution π = 21 Question : A-t-on convergence de la chaîne de Markov vers π ? Pour appliquer le Théorème 7.6, il faut déterminer si la chaîne est fortement irréductible, i.e. voir s’il existe un entier k tel que les coefficients de P k sont tous strictement positifs. On vérifie que k = 1, 2, 3, 4 ne conviennent pas, mais que l’on prendre k = 5 (vérifier sur le graphe que n’importe quelle page est atteignable en 5 clics). On peut donc appliquer le Théorème 7.6 et on déduit la convergence en loi de la suite (Xn )n≥0 vers la probabilité π. L’ordre d’importance des pages est alors le suivant : A, Z, C, B. Plus précisément, si n est assez grand, le promeneur a une probabilité 8/21 ≈ 0.38 de se trouver sur la page A, une probabilité 7/21 ≈ 0.33 de se trouver sur la page Z, une probabilité 4/21 ≈ 0.19 de se trouver sur la page C et une probabilité 2/21 ≈ 0.1 de se trouver sur la page B. Remarques : • L’intérêt de cette méthode est qu’elle prend en compte l’ensemble du réseau pour attribuer le classement de chaque page. • S’il existe une page qui ne possède aucun lien pointant vers une autre page (on parle d’état absorbant et dans ce cas la chaîne de Markov associée n’est pas irréductible), alors le promeneur finira par se retrouver piégé par cette page. Il faut donc une amélioration de la méthode pour éviter cet écueil. Brin et Page ont proposé de remplacer la matrice de transition M de la chaîne par (1 − α)M + αQ, où α > 0 est petit (en fait on fait le choix de α = 0.15) et Q ∈ MN (R) est la matrice dont tous les coefficients valent 1/N . La chaîne ainsi obtenue est fortement irréductible et on a convergence vers l’unique probabilité invariante (Théorème 7.6). Dans notre exemple, 0 0 0.5 0.5 0.5 0 0 0.5 P = 0 0.5 0 0.5 1 0 0 0 est remplacée par 0.0375 0.4625 P̃ = 0.0375 0.8875 0.0375 0.0375 0.4675 0.0375 0.4625 0.0375 0.0375 0.0375 0.4625 0.4625 . 0.4625 0.0375 Ainsi π = (0.38; 0.10; 0.19; 0.33) est remplacé par π̃ = (0.36; 0.12; 0.19; 0.33). • Le réseau Internet compte plusieurs milliards de pages. Pour rendre l’algorithme effectif, il faut des méthodes pratiques pour calculer la mesure invariante (ou une approximation) rapidement. 7.4. APPLICATION À L’ALGORITHME PAGERANK DE GOOGLE 115 • Pour une introduction à l’algorithme PageRank, on pourra consulter le site de vulgarisation « Image des mathématiques » : http://images.math.cnrs.fr/Comment-Google-classe-les-pages. html#nh4 116 CHAPITRE 7. INITIATION AUX CHAÎNES DE MARKOV ET APPLICATIONS Chapitre 8 Tests du khi-deux Dans ce chapitre, on se propose de présenter la notion de test statistique avec l’exemple du test du khi-deux. L’expression test du χ2 (khi-deux ou khi-carré) recouvre plusieurs tests statistiques, dont : • Le test d’ajustement ou d’adéquation, qui compare globalement la distribution observée dans un échantillon statistique à une distribution théorique. • Le test d’indépendance qui permet de contrôler l’indépendance de deux caractères dans une population donnée. 8.1 Principes des tests statistiques Les tests d’hypothèses ont pour but de vérifier, à partir des données d’un ou plusieurs échantillons, la validité de certaines hypothèses relatives à une ou plusieurs populations. D’une manière générale, dans tout test de signification, on émet pour commencer une hypothèse à tester ou hypothèse nulle, généralement désignée par le symbole H0 . On mesure ensuite l’écart observé, soit entre certaines caractéristiques de la population et de l’échantillon, dans le cas des tests d’ajustement et de conformité, soit entre certaines caractéristiques des divers échantillons, dans le cas des tests d’égalité, et on calcule la probabilité d’observer, quand l’hypothèse nulle est vraie, un écart aussi important. Si cette probabilité est relativement élevée, on considère l’hypothèse émise au départ comme plausible, et on l’accepte, au moins provisoirement. Par contre, si la probabilité calculée est faible, et plus précisément si elle est inférieure ou égale à un niveau de signification préalablement fixé, l’écart observé apparaît comme peu compatible avec l’hypothèse nulle, et on rejette celle-ci. Ce faisant, on admet implicitement la validité d’une autre hypothèse H1 , dite alternative ou opposée. L’ensemble des valeurs observées pour lesquelles l’hypothèse nulle peut être admise forme le domaine ou la région d’acceptation. Les autres valeurs constituent le domaine ou la région de rejet, aussi appelée région critique. Les valeurs limites sont appelées valeurs critiques. Le hasard de l’échantillonnage peut évidemment fausser les conclusions, et quatre possibilités doivent être envisagées : 1. l’acceptation de l’hypothèse nulle alors qu’elle est vraie, 2. le rejet de l’hypothèse nulle alors qu’elle est vraie, 117 118 CHAPITRE 8. TESTS DU KHI-DEUX 3. l’acceptation de l’hypothèse nulle alors qu’elle est fausse, 4. le rejet de l’hypothèse nulle alors qu’elle est fausse. Dans le premier et le dernier cas, la conclusion obtenue est correcte, mais il n’en est pas de même dans les deux cas intermédiaires. Deux erreurs sont possibles qui correspondent aux possibilités 2 et 3 : • L’erreur qui consiste à rejeter une hypothèse vraie est appelée erreur de première espèce (rejet de H0 alors que H0 est vraie). La probabilité d’aboutir à cette conclusion est appelée risque de première espèce, notée α : P ( rejeter H0 |H0 ) = α. • L’erreur qu’on commet en acceptant une hypothèse fausse est l’erreur de deuxième espèce, et peut être désignée par AH0 |H1 (acceptation de H0 alors que H1 est vraie). La probabilité d’aboutir à celle est appelée risque de seconde espèce, notée β : P ( accepter H0 |H1 ) = β. La quantité 1 − β s’appelle la puissance du test : c’est la probabilité de rejeter H0 en ayant raison. Entre deux tests, on choisira celui dont la puissance est la plus grande. En pratique, on fixe souvent la valeur de α à α = 0.05 ou α = 0.01. Remarque : Il faut bien comprendre que H0 et H1 ne jouent pas un rôle symétrique. L’hypothèse H0 est toujours privilégiée, et on veut réduire au maximum le risque de rejeter H0 à tort (le risque α), quitte à accepter plus souvent H0 à tort (augmentation de β). Pour fixer les idées, on peut garder en mémoire l’exemple suivant. On considère le test H0 : « La personne jugée est innocente » H1 : « La personne jugée est coupable ». Dans un état de droit, l’hypothèse H0 est privilégiée (présomption d’innocence) et on préfère laisser un coupable en liberté que de mettre un innocent en prison. Exemple : Dans un casino, on essaye de détecter si un joueur donné est un tricheur. On considère les hypothèses suivantes : H0 : « Le joueur concerné est honnête » H1 : « Le joueur concerné est un tricheur ». Par ailleurs, imaginons que l’on sache qu’un joueur honnête a moins de 5% de chances de gagner plus de 5 000 euros dans la soirée. Ainsi, si le joueur gagne plus de 5 000 euros dans la soirée, je peux rejeter l’hypothèse H0 et j’ai 5% de chances de me tromper. Remarque : Lorsque le test est positif, on dit « on ne rejette pas H0 ». Pour valider définitivement une hypothèse, on fait en général plusieurs tests. Au contraire, rejeter H0 est une action définitive. 8.2 Quelques résultats de probabilité Définition 8.1 Soit k ∈ N∗ . On définit la loi χ2 (k) de Pearson (khi-deux à k degrés de liberté) par la densité k x f (x) = cx 2 −1 e− 2 1x≥0 , 8.2. QUELQUES RÉSULTATS DE PROBABILITÉ 119 Figure 8.1 – Fonction de densité de quelques distribution χ2 , avec k = 1 à 4 et 6. où la constante c > 0 est choisie de sorte que Z +∞ f (x)dx = 1. 0 Remarque : Les distributions χ2 sont toujours caractérisées par une dissymétrie à gauche. Elles n’ont pas une forme équivalente suivant les valeurs de k (en forme de i pour k = 1 ou 2, et en forme de cloche pour k ≥ 3. Voir Figure 8.1. Proposition 8.2 Si X ∼ χ2 (k), alors E(X) = k et Var(X) = 2k. Remarque : La moyenne et la variance tendent donc vers l’infini quand k tend vers l’infini, de telle sorte que, pour des valeurs croissantes de k, les distributions χ2 (k) sont toujours de plus en plus éloigné de l’origine. Ce comportement est tout à fait semblable à celui des distributions binomiales, pour des valeurs croissantes de n. Voici le résultat qui explique pourquoi on rencontre souvent des lois du khi-deux dans les modélisations et les problèmes statistiques : Proposition 8.3 Soient X1 , . . . , Xk des v.a. indépendantes de loi N (0, 1). k X Alors la v.a. Y = Xi2 , suit une loi du khi-deux à k degrés de liberté χ2 (k). i=1 120 CHAPITRE 8. TESTS DU KHI-DEUX 8.3 Test d’ajustement d’une loi empirique à une loi de probabilité théorique On dispose d’observations que l’on considère comme des réalisations i.i.d. de loi p = (p1 . . . , pk ) inconnue. On souhaite ici construire un test qui permette de répondre à la question suivante : la loi des observations est-elle p0 = (p01 . . . , p0k ) ? En termes statistiques, on souhaite tester les hypothèses ( H0 : p = p0 H1 : p 6= p0 . De façon théorique on peut montrer que, lorsque n −→ +∞, on a L −−−−−→ χ2 (k − 1) si H0 est vraie k k X ei (n))2 n→+∞ (Ni (n)/n − p0i )2 X (Ni (n) − N = Dn = n 0 ei (n) p p.s. N i i=1 i=1 −−−−−→ +∞ si H1 est vraie n→+∞ ei (n) = np0 l’effectif théorique de la ième modalité. avec N i Hypothèse : On suppose que n, la taille de l’échantillon, est assez grand. Plus précisément, on ei (n) = np0 est supérieur ou égal à 5. Si ce n’est pas le suppose que pour tout 1 ≤ i ≤ k, N i cas, il faut regrouper des classes à trop faibles effectifs pour atteindre le seuil exigé (attention, si l’on fait cela, il faut tenir compte de la nouvelle valeur du k). Mise en place du test : On note α le risque du test. À l’aide d’une table de loi du χ2 (k − 1), on trouve xα est tel que P (X ≥ xα ) = α, avec X ∼ χ2 (k − 1). On choisit une région de rejet égale à {Dn ≥ xα }. La règle de décision est la suivante. On calcule Dn grâce aux observations. Alors • Si Dn ≥ xα alors on rejette H0 , et on accepte H1 . • Si Dn ≤ xα alors on ne rejette pas H0 . Exemple : En lançant successivement 60 fois un dé, un joueur obtient les résultats suivants : Face i Effectif observé 1 2 3 4 5 6 15 7 6 12 4 16 Le dé est-il équilibré ? On fera un test du χ2 au risque α = 0.05 puis α = 0.01. Si le dé n’est pas truqué, sa loi théorique est la loi uniforme, i.e. que chaque face a la même probabilité 1/6 d’apparaître. Ici k = 6 et p0 = (1/6, 1/6, 1/6, 1/6, 1/6, 1/6). On doit tester les hypothèses ( H0 : p = (1/6, 1/6, 1/6, 1/6, 1/6, 1/6) H1 : p 6= (1/6, 1/6, 1/6, 1/6, 1/6, 1/6). On calcule les effectifs théoriques (si H0 est vérifiée) Face i Effectif théorique 1 2 3 4 5 6 10 10 10 10 10 10 L’hypothèse sur les effectifs est vérifiée car np0i = 60/6 = 10 ≥ 5 pour tout 1 ≤ i ≤ 6. La statistique du khi-deux est alors D= (15 − 10)2 (7 − 10)2 (6 − 10)2 (12 − 10)2 (4 − 10)2 (16 − 10)2 + + + + + = 12.6. 10 10 10 10 10 10 8.4. TEST D’INDÉPENDANCE 121 Si l’hypothèse H0 est vérifiée, D est une observation d’une loi χ2 (5) (car k − 1 = 6 − 1 = 5). Dans une table on lit P (X ≥ 11.07) = 0.05 pour X ∼ χ2 (5). Comme 12.6 ≥ 11.07 on se trouve dans la zone de rejet du test. Ainsi au risque α = 0.05 on rejette l’hypothèse H0 , i.e. on décide que le dé est truqué. Maintenant on fixe le risque α = 0.01. On lit P (X ≥ 15.09) = 0.01. Maintenant, 12.6 ≤ 15.09, et on se trouve dans la zone d’acceptation du test. Ainsi au risque α = 0.01 on ne rejette pas l’hypothèse H0 . Remarque : Les tests du χ2 ne donnent vraiment d’informations que si l’hypothèse H0 est rejetée. En effet, si H0 n’est pas rejetée, il se peut très bien que ce se soit parce que la loi p de l’échantillon est dans H1 mais tout près de p0 . Ceci est encore renforcé lorsque l’on est obligé de regrouper des classes faute d’un échantillon trop petit ou de créer des classes pour des lois continues : des tas de lois fourniront les mêmes vecteurs de probabilité sur l’ensemble fini. On se sert d’un test non paramétrique pour invalider un modèle. Si H0 est rejetée, alors il faut changer de modèle. Si H0 n’est pas rejetée c’est que le modèle (bien que simpliste ou approximatif) est satisfaisant. 8.4 Test d’indépendance Ce test permet d’étudier la dépendance entre deux caractères X et Y . On suppose que la variable X peut prendre k valeurs ou modalités A1 , . . . , Ak et que la variable Y peut prendre ` modalités B1 , . . . , B` . Pour tout i ∈ {1, . . . , k}, pour j ∈ {1, . . . , `}, on connaît l’effectif observé Nij , lorsque X prend la valeur Ai et Y la valeur Bj . On souhaite tester les hypothèses ( H0 : les caractères X et Y sont indépendants H1 : les caractères X et Y ne sont pas indépendants. On définit N i• = ` X j=1 Nij , N•j = k X Nij , n= i=1 k X ` X i=1 j=1 Nij , eij = Ni• · N•j . N n eij est l’effectif théorique, lorsque X prend la ième modalité et Y la jème. Le nombre N De façon théorique on peut montrer que, lorsque n −→ +∞, on a L 2 (k − 1)(` − 1) − − − − − → χ si H0 est vraie k ` X X (Nij − N eij )2 n→+∞ Dn = eij p.s. N i=1 j=1 −−−−−→ +∞ si H1 est vraie n→+∞ Hypothèse : On suppose que n, la taille de l’échantillon, est assez grand. Plus précisément, on eij est supérieur ou égal à 5. suppose que pour tous 1 ≤ i ≤ k, 1 ≤ j ≤ ` l’effectif théorique N Si ce n’est pas le cas, il faut regrouper des classes à trop faibles effectifs pour atteindre le seuil exigé. Mise en place du test : On note α le risque du test. À l’aide d’une table de loi du χ2 (k − 1)(` − 1) , on trouve xα est tel que P (X ≥ xα ) = α, avec X ∼ χ2 (k − 1)(` − 1) . On choisit une région de rejet égale à {Dn ≥ xα }. La règle de décision est la suivante. On calcule Dn grâce aux observations. Alors 122 CHAPITRE 8. TESTS DU KHI-DEUX • Si Dn ≥ xα alors on rejette H0 , et on accepte H1 . • Si Dn ≤ xα alors on ne rejette pas H0 . Exemple : On a observé pendant dix ans 240 individus. Parmi-ceux-ci : • 110 ont consommé de l’huile d’arachide. • 25 ont consommé de l’huile d’olive et ont eu des problèmes cardio-vasculaires. • 78 ont consommé de l’huile d’arachide et n’ont eu aucun problème. Diriez-vous que le risque cardio-vasculaire est indépendant du type d’huile consommée avec un risque 0.1 ? Avec un risque 0.01 ? On compare deux séries statistiques, l’une donnée par la variable x donnant l’état de santé et l’autre par la variable y donnant le type d’huile consommé. On obtient le tableau suivant Santé \Type d’huile Arachide Olive Problème cardio 32 25 Pas de problème cardio 78 105 Total 110 130 Total 57 183 240 On établit le tableau des effectifs théoriques (en supposant l’indépendance des caractères) Santé \Type d’huile Problème cardio Pas de problème cardio Total Arachide 26.125 83.875 110 Olive 30.875 99.125 130 Total 57 183 240 Les effectifs théoriques dans toutes les cases sont supérieurs à 5, on est dans les conditions d’application du test du χ2 . La valeur observée du χ2 est χ2obs = (32 − 26.125)2 (25 − 30.875)2 (78 − 83.875)2 (105 − 99.125)2 + + + = 3.20. 26.125 30.875 83.875 99.125 Comme le tableau a 2 lignes et 2 colonnes, on doit considérer un χ2 à (2 − 1)(2 − 1) = 1 degré de liberté. Soit X ∼ χ2 (1), alors comme P (X ≥ 2.71) = 0.1 et que χ2obs = 3.20 > 2.71, on peut conclure, au risque 10%, que le type d’huile consommé a un effet significatif sur la santé du patient. En revanche, vu que P (X ≥ 6.63) = 0.01 et que 3.20 < 6.63, on ne rejette pas l’hypothèse d’indépendance des deux variables au risque α = 0.01. Cela signifie qu’au risque 1%, on ne peut pas conclure que le type d’huile consommé a un effet significatif sur la santé du patient. Remarque : D’où vient la valeur (k − 1)(` − 1) du nombre de degrés de liberté ? En fait, pour avoir toute l’information du tableau de contingence, il n’est pas nécessaire de connaître la valeur de toutes les cases. Il suffit de connaître (k − 1) lignes et (` − 1) colonnes, soit (k − 1)(` − 1) termes. Les termes restants sont calculés avec les effectifs totaux des lignes et des colonnes. Annexe A Fonctions logarithme, exponentielle et puissance A.1 Fonction logarithme Définition A.1 On appelle logarithme népérien, la fonction ln : R∗+ −→ R, qui est l’unique fonction vérifiant pour tout x > 0 1 ln0 (x) = et ln(1) = 0. x Proposition A.2 • La fonction ln est strictement croissante sur R∗+ . • On a ln(1) = 0. • Il existe un unique nombre réel, noté e, tel que ln(e) = 1. On a e ≈ 2.7172... • Pour tous x, y > 0 et α ∈ R on a ln(xy) = ln(x) + ln(y), A.2 ln(xα ) = α ln(x) et 1 ln( ) = − ln(x). x Fonction exponentielle Définition A.3 On appelle l’exponentielle, la fonction exp : R −→ R∗+ , qui est l’unique fonction vérifiant pour tous x ∈ R et y ∈ R∗+ , y = exp(x) = ex ⇔ x = ln(y). On dit que les fonctions exp et ln sont réciproques l’une de l’autre. Ainsi, pour tous x ∈ R et y ∈ R∗+ , ln(ex ) = x et eln(y) = y. Les représentations graphiques de ces fonctions se déduisent l’une de l’autre par une symétrie par rapport à l’axe y = x (voir Figure A.2). 123 124 ANNEXE A. FONCTIONS LOGARITHME, EXPONENTIELLE ET PUISSANCE Figure A.1 – Représentation graphique des fonctions exponentielle et logarithme. Proposition A.4 • La fonction exp est strictement croissante sur R. • On a e0 = 1 et e1 = e. • Pour tous x, y ∈ R on a ex+y = ex ey , (ex )y = exy et e−x = 1 . ex Définition A.5 Pour a > 0 on définit ax par ax = ex ln a , x ∈ R. Pour tous x, y ∈ R, ax ay = ax+y . A.3 Fonction puissance Définition A.6 Pour α ∈ R et x > 0 on définit xα par xα = eα ln(x) . Si r est un entier, on retrouve ainsi la définition naturelle xα = x · x · ... · x (α facteurs). En effet, d’après la Proposition A.4, eα ln(x) = (eln(x) )α = xα . Pour tous x, y ∈ R, xα y α = (xy)α . Exemple : Combien de chiffre possède le nombre 216 en écriture décimale ? On cherche x tel que 216 = 10x . Alors 216 = ex ln(10) . En appliquant la fonction ln on trouve x ln(10) = 16 ln(2), A.3. FONCTION PUISSANCE 125 Figure A.2 – Représentation graphique des fonctions x 7→ xα . soit x = 16 ln(2) ln(10) ≈ 4.82. Ainsi, 216 a autant de chiffres que 104 , soit 5 chiffres. Exemple : Les fonctions x → 7 ln(x), x 7→ exp(x), x 7→ ax avec a > 1 et x 7→ xα avec α > 0 tendent vers l’infini lorsque x tend vers l’infini, mais à des vitesses très différentes. Calculons quelques valeurs : Valeur de x 10 20 100 1000 10000 ln(x) 2.30 3.00 4.61 6.91 9.21 x2 102 4 · 102 104 106 108 x10 1010 1.02 · 1013 1020 1030 1040 2x 1.02 · 103 1.05 · 106 1.27 · 1030 1.07 · 10301 2.00 · 103010 exp(x) 2.20 · 104 4.85 · 108 2.69 · 1043 1.97 · 10434 8.81 · 104342 10x 1010 1020 10100 101000 1010000 Si certaines valeurs du tableau précédent peuvent être directement obtenues avec une calculatrice, d’autres nécessitent plus de soin. Calculons par exemple exp(10000). On cherche a > 0 tel que exp(10000) = 10a . Par définition, 10a = exp(a ln 10), ainsi a = 10000 ln 10 = 4342.94. D’où, 4342.9448 0.9448 4342 4342 exp(10000) = 10 = 10 · 10 = 8.81 · 10 . Exercice : On suppose que les nombres d’opérations de certains algorithmes sont donnés par le tableau précédent. On dispose d’un ordinateur faisant 109 opérations par seconde. Donner les temps de calcul des algorithmes (voir également page 90). 126 ANNEXE A. FONCTIONS LOGARITHME, EXPONENTIELLE ET PUISSANCE Références • Les parties sur la cryptographie RSA et sur l’algorithme PageRank sont tirées du très bon livre « Mathématiques et technologie » de Christiane Rousseau et d’Yvan Saint-Aubin, Springer. • Le chapitre sur les graphes et arbres sont tirés d’un cours d’Olivier Bruneau et d’un cours disponible sur le web d’Éric Lallet et de Jean-Luc Raffy. • Le chapitre sur le test du khi deux est inspiré de notes de cours de Florent Malrieu. • Dans ce polycopié, de nombreux éléments sont issus de cours de collègues de l’UFR, en particulier d’Olivier Bruneau. Merci ! Planning indicatif : Chapitre 1 : Algèbre de Boole (4 séances) Chapitre 2 : Statistiques (5-6 séances) Chapitre 3 : Probabilités (4 séances) Chapitre 4 : Arithmétique (6 séances) Chapitre 5 : Systèmes linéaires (3-4 séances) Chapitre 6 : Graphes et arbres (5-6 séances) Chapitre 7 : Chaînes de Markov (3-4 séances) Chapitre 8 : Tests du khi-deux (2 séances) Présentations orales (2 séances) 127