CHAPITRE 5 STRUCTURATION DES DONNÉES

Dimension: px
Commencer à balayer dès la page:

Download "CHAPITRE 5 STRUCTURATION DES DONNÉES"

Transcription

1 CHAPITRE 5 STRUCTURATION DES DONNÉES Les numéros de sections à gauche me sont propres; ceux entre parenthèses indiquent les sections correspondantes du livre; les numéros à droite sont les numéros de pages de ces transparents. La structuration adéquate des données est un élément déterminant dans la conception d'algorithmes efficaces 1 Listes (5.1 à 5.3) - Tableau (5.1) - Pointeur (5.2) 2 Graphes (5.4) Orientés arc chemin circuit Non orientés arête chaîne cycle 3 Arborescences (5.5) 2 = arbres orientés 4 Monceaux (5.7) 5 = arbre binaire représenté par un vecteur Fabrication d un monceau 14 Application: Tri de Williams (Heapsort) 24 5 Structures d ensembles disjoints (5.9) 27 = partition d un ensemble Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 1

2 5.5 ARBORESCENCES Arbre libre (ou flottant) Définition: Graphe connexe acyclique non orienté. Propriétés Un arbre à n nœuds a n 1 arêtes L ajout d une arête (n importe où) crée un cycle La suppression d une arête déconnecte le graphe Arbre enraciné Définition: Un nœud particulier appelé racine. Termes spécifiques aux arbres enracinés: Père (parent), fils (fille, enfant), frère (sœur) d un nœud Ancêtre ou descendant d un nœud Feuille, nœud interne Représentation d un nœud Type Nœud1 = structure Valeur : Information (par exemple: réel) Fils-gauche, Frere-suivant : Nœud1 Type Nœud2 = structure Valeur : Information (par exemple: réel) Parent : Nœud2 2 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

3 5.5 ARBORESCENCES ARBORESCENCES BINAIRES Représentation d un nœud Type Nœud-binaire = structure Valeur : Information (par exemple: réel) Fils-gauche, Fils-droit : Nœud-binaire Arborescence de fouille binaire Définition Arborescence de fouille (arbre binaire de recherche) := Arborescence binaire telle que la valeur contenue dans tout nœud interne est celle de ses descendants de gauche celle de ses descendants de droite. Exemple d arborescence de fouille Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 3

4 5.5 ARBORESCENCES ARBORESCENCES DE FOUILLE BINAIRES Recherche d'un nœud FONCTION Trouver { Assertion: La valeur cherchée existe dans l arbre. } (a : Nœud-binaire; {racine} v : Information {valeur cherchée} ) : Nœud-binaire. {nœud recherché} SI v = a.valeur ALORS RETOURNER a SINON SI v < a.valeur ALORS RETOURNER Trouver (a^.fils-gauche, v) SINON {v > a.valeur} RETOURNER Trouver (a^.fils-droit, v) FIN Trouver. Algorithme d'ordre p (profondeur de l arbre de racine a) Exercice: Modifier cet algorithme pour qu il retourne un diagnostic d échec lorsque l arbre de racine a ne contient pas de nœud de valeur v. Exercice: Étendre cet algorithme à la recherche d un nœud dans une arborescence de fouille k-aire. 4 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

5 5.7 MONCEAUX (angl.: heaps) 1º Arborescence binaire essentiellement complète Définition - chaque nœud interne possède ses 2 fils (sauf éventuellement un seul nœud, au niveau 1, dont le fils unique est alors à gauche); - toutes les feuilles sont soit sur le niveau 0, soit sur les niveaux 0 et 1; - une feuille de niveau 1 ne se trouve jamais à la gauche d'un nœud interne du même niveau. Représentation à l'aide d'un tableau T Les sommets de profondeur k sont rangés dans les éléments T[2k], T[2k+ 1],..., T[2k+1-1]. Note: le père de T[i] est T[i DIV 2]; les fils de T[i] sont T[2i] et T[2i + 1]. T[1] T[2] T[3] T[4] T[5] T[6] T[7] T[8] T[9] T[10] Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 5

6 5.7 MONCEAUX 2º Monceau Définition - Arborescence binaire essentiellement complète ; - valeur de chaque nœud interne celles de ses fils. Exemple de monceau Représentation interne Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

7 5.7 MONCEAUX OPÉRATIONS SUR LES MONCEAUX A) Modification de la valeur d'un nœud Premier cas: la valeur du nœud est diminuée Stratégie. Pour rétablir la propriété du monceau, si la nouvelle valeur est inférieure à celle du plus grand des deux fils, il faut échanger le nœud avec ce fils, et continuer le processus vers le bas tant et aussi longtemps que la propriété du monceau n'est pas satisfaite. PROCÉDURE Tamiser (T[1..n], i) {T est le monceau, et i l indice de l élément qui a reçu la nouvelle valeur} { l ancienne valeur, non utilisée, n est pas passée en paramètre } k i { k est l indice du nœud courant } RÉPÉTER { Rechercher la plus grande valeur entre le nœud k et ses deux fils } j k { k est sauvegardé dans j aux fins de comparaisons } SI 2j n ET T[2j] > T[k] ALORS k 2j SI 2j < n ET T[2j+1] > T[k] ALORS k 2j+1 { Assertion: La plus grande valeur cherchée est dans le nœud k } { Assertion: Si j=k, le nœud courant est arrivé en position finale, sinon le nœud courant k est maintenant le plus grand fils du nœud sauvegardé en j } SI k > j ALORS {Noter que ce test n est pas indispensable} ÉCHANGER valeurs T[j] et T[k]. JUSQU'À j = k. FIN Tamiser. Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 7

8 OPÉRATIONS SUR LES MONCEAUX MODIFICATION DE LA VALEUR D'UN NŒUD Exemple pour Tamiser Valeur Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

9 OPÉRATIONS SUR LES MONCEAUX MODIFICATION DE LA VALEUR D'UN NŒUD Exemple pour Tamiser (suite) Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 9

10 OPÉRATIONS SUR LES MONCEAUX MODIFICATION DE LA VALEUR D'UN NŒUD Second cas: la valeur du nœud est augmentée. Stratégie. Pour rétablir la propriété du monceau, si la nouvelle valeur dépasse celle du père, il suffit d échanger la valeur du nœud avec celle du père, et de continuer le processus vers le haut tant et aussi longtemps que la propriété du monceau n'est pas satisfaite. PROCÉDURE Percoler (T[1..n], i) {T est le monceau, et i l indice de l élément qui a reçu la nouvelle valeur} { l ancienne valeur, non utilisée, n est pas passée en paramètre } k i { k est l indice du nœud courant } RÉPÉTER { Rechercher la plus grande valeur entre le nœud k et son père } j k { k est sauvegardé dans j aux fins de comparaisons } SI j > 1 ET T[j DIV 2] < T[k] ALORS k j DIV 2 { Assertion: La plus grande valeur cherchée est dans le nœud k } { Assertion: si j=k, le nœud courant est arrivé en position finale; sinon, le nœud k est le père du nœud sauvegardé en j.} SI k < j ALORS {Noter que ce test n est pas indispensable} ÉCHANGER valeurs T[j] et T[k]. JUSQU'À j = k. FIN Percoler. 10 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

11 OPÉRATIONS SUR LES MONCEAUX MODIFICATION DE LA VALEUR D'UN NŒUD Exemple pour Percoler Valeur Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 11

12 OPÉRATIONS SUR LES MONCEAUX MODIFICATION DE LA VALEUR D'UN NŒUD Exemple pour Percoler (suite): Troisième cas (général): Mise à jour de la valeur d'un nœud PROCÉDURE Modif-Monceau (T[1..n], i, v) { Met la valeur v dans T[i] et reconstruit le monceau } x T[i]; T[i] v; SI v < x ALORS Tamiser (T, i) SINON Percoler(T, i) FIN Modif-Monceau. 12 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

13 OPÉRATIONS SUR LES MONCEAUX B) Chercher le plus grand élément du monceau FONCTION Maximum (T[1..n]) RETOURNER T[1]. FIN Maximum. C) Éliminer le plus grand élément du monceau PROCÉDURE Éliminer-Racine (T[1..n]) T[1] T[n]. Tamiser (T[1..n 1], 1). FIN Éliminer-Racine. D) Ajouter un nœud dont la valeur est v PROCÉDURE Ajouter-Nœud (T[1..n], v) T[n+1] v. Percoler (T[1..n+1], n+1). FIN Ajouter-Nœud. Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 13

14 FABRICATION D UN MONCEAU À PARTIR D UN TABLEAU NON ORDONNÉ Algorithmes et exemples Algorithme coûteux: Faire-Monceau-Lent Algorithme nécessitant un temps dans l'ordre de n logn PROCÉDURE Faire-Monceau-Lent (T[1..n]) POUR i 2 JUSQU'À n FAIRE Percoler (T[1..i], i). Fin Faire-Monceau-Lent. Exemple Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

15 FABRICATION D UN MONCEAU ALGORITHMES ET EXEMPLES Exemple pour Faire-Monceau-Lent (suite) État final: etc Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 15

16 FABRICATION D UN MONCEAU ALGORITHMES ET EXEMPLES Méthode plus efficace: Faire-Monceau Algorithme nécessitant un temps dans l'ordre de n PROCÉDURE Faire-Monceau (T[1..n]) POUR i n DIV 2 PAS 1 JUSQU'À 1 FAIRE Tamiser(T, i). FIN Faire-Monceau. Exemple (même état initial): Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

17 FABRICATION D UN MONCEAU ALGORITHMES ET EXEMPLES Exemple pour Faire-Monceau (suite) etc. État final: le même que pour Faire-Monceau-Lent Exercice Les algorithmes Faire-Monceau et Faire-Monceau-Lent conduisent-ils toujours au même monceau? Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 17

18 FABRICATION D UN MONCEAU ANALYSES D EFFICACITÉ Analyse directe de Faire-Monceau (basée sur le code) Soient: m le nombre max. d itérations à l intérieur de Tamiser (T[1..n], i) (c est ce qu on cherche); j t la valeur de j après l exécution de «j k» à la te itération. au démarrage:j 1 = i à la fin de l étape précédente k 2j d où: {j t 2j t 1, 1< t m} à la dernière itération à l intérieur de Tamiser: n j m n j m 2j m 1 2 m 1 j 1 = 2 m 1 i. 2 m 1 n i m 1 + lg ( n i ). Cela pour l intérieur de Tamiser. Or, il y a n/2 appels à Tamiser. D où une borne supérieure sur le nombre total d itérations de Faire-Monceau: n/2 n/2 n M = m = (1 + lg i=1 i=1 i ). Supposons d abord n pair. Alors n 2 = n 2, et il vient: n/2 M = n 2 + i=1 lg n i = n 2 + lg nn/2 (n/2)! n 2 + lg nn/2 e n/2 n n/2 πn = n 2 + n 2 lge 1 1+lge 2 lg(πn) < 2 n O(n) Supposons maintenant n impair. Alors n 2 = n 1 2, et le calcul fait pour n pair s applique sans modification: M reste une borne supérieure sur le nombre total d itérations. Ainsi, dans tous les cas, M O(n), ce qui prouve que: La fabrication d un monceau s effectue en un temps linéaire 18 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

19 FABRICATION D UN MONCEAU ANALYSES D EFFICACITÉ Analyse de Faire-Monceau basée sur le nombre de nœuds de chaque niveau On prend une instruction quelconque à l intérieur de la boucle RÉPÉTER comme instruction baromètre. On doit tamiser tous les nœuds internes. Pour tamiser un nœud au niveau r, on doit faire au plus r+1 tours de boucle. La hauteur d un monceau contenant n nœuds est k = lgn. Dans le monceau, il y a: 2 k 1 nœuds de niveau 1 (nœuds internes + feuilles), 2 k 2 nœuds de niveau 2 (tous des nœuds internes),... 2 k k = 1nœud de niveau k (la racine). Soit M le nombre total d itérations (pour Faire-Monceau) à l intérieur de RÉPÉTER. On a: t 2 k k k (k+1) 2 k k k k (k+1) = 2 k+1 ( (k+1) 2 (k+1) ) k+1 = 2 k+1 i 2 i 2 k+1 i 2 i = 2 k+1 2 = 2 k+2 = 4n i=1 i=1 où la somme de la série résulte de l égalité 7º de l aidemémoire (Chapitre 1, page 4). Ainsi, on trouve encore que M O(n) Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 19

20 FABRICATION D UN MONCEAU ANALYSES D EFFICACITÉ Analyse de Faire-Monceau basée sur la récursivité A chaque étape, l algorithme réunit deux monceaux voisins pour faire un nouveau monceau en plaçant un nœud au-dessus d eux qui est pris comme racine de ce nouveau monceau. Plus spécifiquement, pour construire un monceau de hauteur k (on suppose k 2), l algorithme: part de deux monceaux de hauteur au plus k 1 (celui de gauche pourrait avoir une hauteur k 2); tamise ensuite la racine sur un chemin de longueur au plus la hauteur du monceau à construire, soit k. Quel temps d exécution cela prend-il? Appelons T(k) le temps mis pour construire un monceau de hauteur k. la construction de chacun des deux monceaux de départ prend un temps T(k 1); le tamisage de la nouvelle racine prend en pire cas un temps s(k) O(k) (il peut s arrêter après un chemin plus court). On a donc la relation de récurrence: T(k) = 2 T(k 1) + s(k) Cette équation est analogue à T(k) = 2 T(k 1) + k non homogène de type 2, que nous avons résolue au chapitre 4 (voir exemple du livre, repris dans les transparents) et qui donne T(k) O(2 k ) Mais un monceau de n éléments a comme hauteur lgn, et peut donc être construit en un temps T( lgn ) O(2 lgn ). Et comme 2 lgn n, ce temps est (tiens!) dans O(n). J 20 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

21 FABRICATION D UN MONCEAU ANALYSES D EFFICACITÉ Analyse de Faire-Monceau-Lent en pire cas (problème 5.19) PROCÉDURE Faire-Monceau-Lent (T[1..n]) POUR i 2 JUSQU À n FAIRE Percoler (T[1..i], i). PROCÉDURE Percoler (T[1..n], i) k i RÉPÉTER j k SI j > 1 ET T[j 2] < T[k] ALORS k j 2. Échanger T[j] et T[k]. JUSQU À j = k. Lors d un appel à Percoler (T[1..i], i), soient m le nombre de tours dans la boucle RÉPÉTER j t 1 la valeur de j juste après «j k» dans le t e tour. Alors i = j 1 2j 2 4j 3 2m 1j m 2m 1 d où m 1 lgi puis, puisque m est entier, m 1 + lgi. Le pire cas correspond à celui où T est initialement en ordre croissant. Chaque appel à Percoler (T[1..i], i) nécessite alors exactement 1 + lgi tours de boucle. Cela nous donne pour le nombre total de tours en pire cas: n i=2 n (1 + lgi ) (1 + lgi) = n 1 + lg n! i=2 n lgi = lgn! i=2 d où un temps dans Θ(lg(n!)), ou encore dans Θ(n lgn) (Voir transparents chapitre 3, ancien problème iii) Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 21

22 MONCEAUX EXERCICES Problème 5.20 Soit le vecteur T Montrer le contenu de T après chacun des appels: Faire-Monceau (T), Modif-Monceau (T, 12, 10), Modif-Monceau (T, 1, 6), Modif-Monceau (T, 5, 8). Problème 5.21 Présentez un monceau T contenant n valeurs distinctes, tel que l exécution de la suite d instructions suivantes résulte en un monceau différent. m Maximum (T) Éliminer-Racine (T [1..n]) Ajouter-Nœud (T [1..n 1], m) Solution Avec 3 éléments, soit le monceau T = Après m Maximum (T), on obtient m = 3 et Après Éliminer-Racine (T), on obtient 2 1. Après Ajouter-Nœud (T[1..2], 3), on obtient Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

23 MONCEAUX EXERCICES Autres exercices (faisables ou non) A) Donnez un algorithme qui retourne l'élément minimum dans un monceau? Quelle est la complexité de cet algorithme? B) Donnez un algorithme qui liste en ordre décroissant la valeur des nœuds d'un monceau T[1..n], en un temps dans l'ordre de n logn. C) Donnez un algorithme qui retourne un nœud d'un monceau T[1..n] dont la valeur est v, en un temps dans l'ordre de logn. D) Donnez un algorithme qui élimine un nœud quelconque d'un monceau Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 23

24 APPLICATION DES MONCEAUX: TRI DE WILLIAMS (HEAPSORT) Présentation de l algorithme L idée générale est de partir du fait que la racine d un monceau est son plus grand élément. De manière itérative, il suffit donc d éliminer la racine (tout en la conservant), et de rétablir la propriété du monceau avec les éléments restants: on obtient chaque fois à la racine l élément le plus grand suivant ceux déjà éliminés. En pratique, on conserve chaque nouvelle racine éliminée à la place devenue libre dans le vecteur (puisque chaque élimination d une racine réduit de 1 le nombre d éléments restants). Cela donne l,algorithme très simple suivant: PROCÉDURE Heapsort (T[1..n]) {T[1..n] est un tableau à trier} Faire-Monceau (T) POUR i n PAS 1 JUSQU À 2 FAIRE Échanger T[1] et T[i] Tamiser (T[1..i 1], 1) {Assert: T est trié} Noter que le même vecteur contient maintenant les éléments du monceau, donc du vecteur initial, dans l ordre croissant, sans utilisation d un vecteur auxiliaire. Exemple Exercice 1º Exécuter à la main, mais en détail, l algorithme pour le vecteur initial de la page 13 (ou 15). 2º Combien d échange de nœuds avez-vous effectués au total pour fabriquer le monceau? 3º Et pour exécuter la boucle POUR ci-dessus? 24 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

25 TRI DE WILLIAMS (HEAPSORT): ANALYSE D EFFICACITÉ Calcul en pire cas (ancien problème 2.2.3) D après la structure de l algorithme Heapsort, on obtient: d n pour la fabrication du monceau (d est une constante); c (une autre constante) pour la gestion de la boucle POUR, 1 pour l échange de T[1] et T[i], au plus lg(i 1) échanges pour Tamiser (hauteur de T[1..i 1]), d où au total: n d n + [c lg(i 1)] n (c + d + 1) + lg (n 1)! i=2 Cela donne un temps dans O(lg n!) ou encore O(n lg n). Efficacité en moyenne On peut être plus précis et démontrer (mais c est plus difficile) que, en pire cas comme en moyenne (en supposant que toutes les permutations des objets à trier sont équiprobables), on a pour Heapsort: t(n) Θ(n lgn) Exercice (ancien problème 2.2.4) À nombre égal d éléments à trier, quelles sont la pire et la meilleure façons de placer ceux-ci au départ, pour ce qui est de ce temps d exécution? Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 25

26 MONCEAUX: VARIATIONS, AMÉLIORATIONS, LIMITES Monceaux k-aires Définition: comme pour les monceaux, mais arbre k-aire. Utilité: Si on doit percoler plus souvent que tamiser (arbre moins profond, mais au détriment de l efficacité de Tamiser) Si on doit souvent tamiser jusqu en bas une racine modifiée Si les instances à trier sont dans ce cas, on peut avoir intérêt à tamiser jusqu en bas une racine vide égale à - (une seule comparaison à faire au lieu de deux), puis percoler la varie valeur (une seule comparaison). Dans certaines applications, cette approche s est parfois révélée plus efficace que l algorithme Heapsort classique. Monceau inversé Pour certaines applications (p. ex. recherche très fréquente de plus petits éléments) Application utile Gestion de listes de priorités dynamiques Limite importante Pas de moyen de rechercher efficacement une valeur donnée dans un monceau (la propriété du monceau n aide pas vraiment). 26 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

27 5.9 STRUCTURES D'ENSEMBLES DISJOINTS Position du problème Soient N objets numérotés de 1 à N. On se propose de définir et de représenter une partition de ces objets en sous-ensembles ou classes. Chaque élément de la partition possède donc une étiquette ou représentant. Dans la situation initiale, il y a une classe par objet. Opérations de base Pour toute partition on définit deux opérations: a) Pour un objet donné x, trouver dans quelle classe il se trouve, et retourner l étiquette de cette classe (représentant de l objet x). b) Étant donné deux étiquettes distinctes, fusionner les deux classes correspondantes et associer une étiquette à la nouvelle classe obtenue. Représentation interne de cette structure de données et traitement correspondant? Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 27

28 5.9 STRUCTURES D'ENSEMBLES DISJOINTS SOLUTION A Dans cette solution, l'étiquette correspond à l'élément le plus petit de chaque classe. On peut utiliser un tableau Ensemble[1..N]: entier dans lequel on stocke l'étiquette propre à chaque objet (son représentant) dans la position correspondante du tableau. Exemple (N = 10) Soit l'ensemble E= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, et une partition de E: {1, 4}, {5, 9, 10}, {3, 6, 7, 8}, {2} FONCTION Trouver1(x). { Trouve l'étiquette de l'ensemble contenant l'objet x } Retourner Ensemble[x]; FIN Trouver1. PROCÉDURE Fusionner1(a, b). { Fusionne les classes de représentants a et b } NouveauReprésentant Min (a, b) Autre a + b - NouveauRepr {= Max (a, b)} POUR k Autre {ou k 1} JUSQU'À N FAIRE SI Ensemble[k] = Autre ALORS Ensemble[k] NouveauRepr. FIN Fusionner1. Note : M opérations consécutives de recherche et de fusion donnent dans le pire cas un temps dans l'ordre de M * N. 28 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

29 5.9 STRUCTURES D'ENSEMBLES DISJOINTS SOLUTION B On utilise le même tableau Ensemble[1..N]: entier mais la nouvelle convention est que chaque classe est représentée par un arbre de racine son représentant. Ainsi: Ensemble[i] = i indique que i est à la fois l étiquette et la racine de l arborescence contenant la classe de i. Ensemble[i] = j i indique que j est le père de i (mais non nécessairement le représentant) dans une arborescence. Avec le même exemple, on peut représenter les 4 classes par les quatre arbres suivants ou le vecteur équivalent: Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 29

30 5.9 ENSEMBLES DISJOINTS SOLUTION B (SUITE) FONCTION Trouver2 (x) { Trouve l'étiquette de l'ensemble contenant l'objet x } i x TANTQUE Ensemble[i] i FAIRE i Ensemble[i] RETOURNER i. FIN Trouver2. PROCÉDURE Fusionner2(a, b). { Fusionne les ensembles portant les étiquettes a et b } SI a < b ALORS Ensemble[b] a SINON Ensemble[a] b. FIN Fusionner2. Exemple: fusionner les classes de représentants 3 et Il suffit de changer le contenu de Ensemble[5] de 5 en Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

31 5.9 ENSEMBLES DISJOINTS Étude de Trouver2 et Fusionner2 (ancien problème 1.9.4) Montrer qu exécuter M opérations Trouver2 ou Fusionner2 demande un temps dans l'ordre de M*M en pire cas. Preuve - Situation initiale: N objets disposés en N classes. - Fusionner2 prend un temps constant. - Après k fusions, la hauteur d une arborescence peut atteindre k dans le pire cas. - Trouver2 prend un temps dans l ordre de k dans le pire cas. - Dans le pire cas, la suite d'opérations prend donc un temps dans l ordre de M k = M(M+1) k=1 2 c est-à-dire dans l ordre de M*M. Ainsi, le temps obtenu est dans l ordre de M*M, donc indépendant de la taille N de l ensemble total. Donc: La solution B semble meilleure que la solution A? Mais si M = N alors les 2 solutions A et B se comparent. Donc on n a pas gagné grand chose! C est parce que, dans le pire cas, les arborescences peuvent devenir très profondes. D où: Stratégie: limiter la hauteur des arborescences. Comment? Lors d'une fusion, choisir toujours la racine de l'arborescence la moins haute comme fils de l autre racine. Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 31

32 5.9 ENSEMBLES DISJOINTS THÉORÈME (ancien problème 1.9.5) Prouvez par induction mathématique que, si cette tactique est adoptée, alors après une séquence quelconque d opérations de fusion à partir de la situation initiale, une arborescence contenant k nœuds aura une hauteur h lgk. Preuve - Pour k=1, c'est trivial car la hauteur est 0 = lg1. - Supposons que c est vrai pour toute arborescence de taille 1 à k 1 (k>1), et montrons que c'est vrai pour k. Soit donc une arborescence de k nœuds. Elle a été obtenue en fusionnant deux arborescences, disons de i et k i nœuds respectivement (1 i < k), et de hauteurs h 1 lgi et h 2 lg (k i). Si h 1 h 2 alors la hauteur h de l'arborescence résultante sera h = Max(h 1, h 2 ) = lg (Max (i, k i)) lgk. Si h 1 = h 2 alors au moins l'une des deux arborescences fusionnées (la plus petite) contenait au plus k 2 nœuds. Sa hauteur est donc au plus égale à lg ( k 2 ) = lgk 1 = lgk 1. Puisque h 1 = h 2, on a h = h ( lgk 1) + 1 = lgk. C.Q.F.D. 32 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

33 5.9 ENSEMBLES DISJOINTS SOLUTION C Comme pour la solution B, mais en limitant la hauteur des arborescences Si i est une racine, au lieu d avoir Ensemble[i] = i, on aura Ensemble[i] = h où h 0 est la hauteur de l arborescence de racine i. Alternativement, on peut, comme dans le livre, stocker dans un vecteur Hauteur [x] la hauteur de tout nœud x dans son arbre (programmation moins économe mais plus prudente). FONCTION Trouver3(x) { Trouve l'étiquette de l'ensemble contenant l'objet x } i x TANTQUE Ensemble[i] > 0 FAIRE i Ensemble[i] { Ensemble[i] 0, donc i est le représentant } RETOURNER i. FIN Trouver3. PROCÉDURE Fusionner3 (a, b) { Fusionne les ensembles portant les étiquettes a et b } SI Ensemble[a] = Ensemble[b] ALORS { Même hauteur } Ensemble[a] Ensemble[a] 1 {Augmenter hauteur de a } Ensemble[b] a { Accrocher b à a } SINON si Ensemble[a] < Ensemble[b] { Hauteur de b plus courte } ALORS Ensemble[b] a { Accrocher b à a } SINON Ensemble[a] b. { Accrocher a à b } FIN Fusionner3. Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 33

34 5.9 ENSEMBLES DISJOINTS: SOLUTION C Étude de Trouver3 et Fusionner3 (anc. Problème 1.9.6) Prouvez que le temps nécessaire pour exécuter M opérations Trouver3 et Fusionner3 à partir de la situation initiale est dans l'ordre de M lgm en pire cas. Preuve - Fusionner3 prend un temps constant. - Après k fusions, Trouver3 prend un temps dans l ordre de lgk en pire cas. - La suite des opérations prend un temps dans l ordre de M k=1 lgk M lgm. C.Q.F.D. 34 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

35 5.9 ENSEMBLES DISJOINTS SOLUTION D Stratégie: Compression du chemin Une modification optimisante de la fonction Trouver3 consiste, en plus de remonter de x pour la trouver la racine, à faire le parcours une seconde fois afin d accrocher directement à la racine chaque nœud rencontré. Exemple: soit à chercher le représentant du nœud Autres nœuds 2 Autres nœuds Avec les tableaux correspondants, cela donne: Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 35

36 5.9 ENSEMBLES DISJOINTS: SOLUTION D (suite) Traduction de la stratégie de compression des chemins FONCTION Trouver4 (x) { Trouve l'étiquette de l'ensemble contenant l'objet x } {Boucle de recherche} r x TANT QUE Ensemble[r] > 0 FAIRE r Ensemble[r] {r est la racine de l'arborescence, et donc la réponse} {Boucle de compression} i x TANT QUE i r FAIRE j Ensemble[i] Ensemble[i] r i j RETOURNER r. FIN Trouver4. FONCTION Fusionner4 (x) Identique à Fusionner3 (x) Note: La hauteur de l'arborescence dont la racine est a, est inférieure ou égale à Ensemble[a] (et non pas forcément égale à Ensemble[a] ). Par exemple, dans le schéma précédent, on constate que (en supposant que les autres nœuds grisés n augmentent pas cette hauteur) Ensemble[2] = 4, alors que l arbre de racine 2 a pour hauteur 3 (et non pas 4). Définition On appelle structure d ensembles disjoints l association Tableau unique Ensemble défini comme ci-dessus + Procédures Trouver4 et Fusionner4. 36 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

37 5.9 ENSEMBLES DISJOINTS: SOLUTION D (suite) ***Analyse Cette analyse précise est très compliquée. Notons que, asymptotiquement, nous avons deux variables: le nombre total c d opérations Trouver4 et Fusionner4, le nombre N d objets sur lesquels portent ces opérations. Avec un univers de N objets dans la situation initiale, considérons une suite de n appels à Trouver4 et m N 1 appels à Fusionner4. Soit c = n + m. En utilisant deux fonctions A, dérivée de la fonction d Ackermann (qui croît très vite), α, inverse de la précédente (qui croît très lentement), et en supposant que toute consultation ou modification d un élément de vecteur se fait en un temps unitaire (opération élémentaire), Tarjan a montré que cette suite s exécute en pire cas en un temps dans Θ (c α(c, N)) A titre indicatif, notons que α(c, N) > 3 uniquement lorsque lg N > A(3,4) = où l échelle d exposants à droite comprend exposants 2, ce qui est énorme. Ainsi, sauf pour des valeurs astronomiques de N, on peut dire que α(c, N) 3. Ainsi, le temps mis par cette suite d opération est essentiellement linéaire en c. Toutefois, aucun algorithme connu ne nous permet d exécuter cette suite en un temps qui soit vraiment linéaire en c. (voir détails dans le livre, pages ). Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 37

38 5.9 ENSEMBLES DISJOINTS: VARIANTE: PROBLÈME 5.32 (ancien 1.9.7) a) Pour fusionner deux ensembles, une autre tactique consiste à faire en sorte que la racine de l arborescence contenant le plus petit nombre de nœuds devienne un fils de l autre racine. La racine d une arborescence peut alors contenir exactement le nombre de ses nœuds (la compression des chemins ne change pas ce nombre). PROCÉDURE Fusionner5 (a, b) { Assert: a et b sont négatifs (représentants de classes) } SI Ensemble[a] < Ensemble[b] ALORS { Accrocher a à b } Ensemble[b] Ensemble[a] + Ensemble[b] Ensemble[a] b SINON { Accrocher b à a } Ensemble[a] Ensemble[a] + Ensemble[b] Ensemble[b] a. FIN Fusionner5. b) Prouvez par induction mathématique que, en adoptant cette tactique, après une séquence quelconque d'opérations de fusion à partir de la situation initiale, une arborescence contenant k nœuds aura une hauteur h lgk. Base.k = 1 trivial. Étape d induction. Soit une arborescence de taille k ; elle a été obtenue par fusion de 2 arborescences de k 1 et k 2 nœuds (k 1 + k 2 = k), et de hauteurs h 1 lgk 1 et h 2 lgk 2. - Si k 1 < k 2 alors {on accroche l arbre 1 à l arbre 2} h = Max (h 2, h 1 +1) Mais h 2 lgk 2 lgk et h 1 lgk 1 lgk/2 = lgk 1. Donc h Max ( lgk, lgk 1 + 1) = lgk. - Si k 1 > k 2 même raisonnement (intervertir k 1 et k 2 ). - Si k 1 = k 2 alors {on accroche l arbre 2 à l arbre 1} h = Max (h 1, h 2 +1) Max ( lgk 1, lgk ) = lgk. C.Q.F.D. 38 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

39 STRUCTURES D ENSEMBLES DISJOINTS: APPLICATION Méthode d'ajustement à l'aide de polygones Définition de l ajustement Chaque courbe peut être approximée par une suite d'arêtes consécutives, avec la précision désirée. But Déterminer un nombre minimum de sommets parmi (x i, y i ), i = 1, 2,..., n pour former cette suite d'arêtes consécutives, tout en respectant la précision demandée. Principes directeurs de la stratégie utilisée i) Former des groupes de points consécutifs sur la courbe. ii) Les points d'un groupe seront approximés par une arête. iii) Si les points d'un groupe ne sont pas approximativement colinéaires, alors le groupe est subdivisé. iv) Deux groupes seront fusionnés uniquement si le nouveau groupe contient seulement des points approximativement colinéaires. v) Critère d arrêt: lorsqu il est impossible de mettre à jour les groupes. vi) Étiquette d un groupe: le sommet qui correspond à l extrémité terminale de l arête approximant les points du groupe. vii) Initialement, chaque sommet (x i, y i ) forme un groupe. Analyse d Algorithmes 2001 Ch. 5 - STRUCTURATION DES DONNÉES 39

40 EN RÉSUMÉ... Rappel: structures de données du cours IFT Tableaux, piles et files, listes avec pointeurs, enregistrements (records), graphes généraux, tables associatives et techniques de hachage (hashing) Arbres et arborescences - Arborescence = arbre orienté (=> racine, feuilles, etc.) - Arbre flottant et arbre enraciné - Hauteur (height), Profondeur (depth), et Niveau (level) - Techniques de représentation d un nœud - Arbres (= arborescences) binaires - Arbres (= arborescences) de recherche (= fouille/search) Monceaux (heaps) Arborescence binaire essentiellement complète Propriété du monceau Opérations de base: modification de la valeur d un nœud: - Procédures Tamiser (Sift-down) et Percoler (Percolate) - Implantation efficace (chiffrée) de ces procédures Autres opérations: - Chercher/éliminer le plus grand élément du monceau - Ajouter un nœud à valeur donnée - Transformer en monceau un tableau non ordonné - Implantation efficace de Faire-Monceau (MakeHeap) Application: Tri de Williams (Heapsort) Structures d ensembles disjoints Position du problème: partition, classe, représentant Opérations de base: Trouver et Fusionner Implantations efficaces (chiffrées) de ces procédures et de leurs variantes (solutions A. B, C et D) Technique de compression du chemin 40 Ch. 5 - STRUCTURATION DES DONNÉES 2001 R. Lelouche

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

ARBRES BINAIRES DE RECHERCHE

ARBRES BINAIRES DE RECHERCHE ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

CCP PSI - 2010 Mathématiques 1 : un corrigé

CCP PSI - 2010 Mathématiques 1 : un corrigé CCP PSI - 00 Mathématiques : un corrigé Première partie. Définition d une structure euclidienne sur R n [X]... B est clairement symétrique et linéaire par rapport à sa seconde variable. De plus B(P, P

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Résolution d équations non linéaires

Résolution d équations non linéaires Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

C f tracée ci- contre est la représentation graphique d une

C f tracée ci- contre est la représentation graphique d une TLES1 DEVOIR A LA MAISON N 7 La courbe C f tracée ci- contre est la représentation graphique d une fonction f définie et dérivable sur R. On note f ' la fonction dérivée de f. La tangente T à la courbe

Plus en détail

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2. Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

Introduction à la théorie des graphes. Solutions des exercices

Introduction à la théorie des graphes. Solutions des exercices CAHIERS DE LA CRM Introduction à la théorie des graphes Solutions des exercices Didier Müller CAHIER N O 6 COMMISSION ROMANDE DE MATHÉMATIQUE 1 Graphes non orientés Exercice 1 On obtient le graphe biparti

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme Chapitre 3 Quelques fonctions usuelles 1 Fonctions logarithme et eponentielle 1.1 La fonction logarithme Définition 1.1 La fonction 7! 1/ est continue sur ]0, +1[. Elle admet donc des primitives sur cet

Plus en détail

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

Plus en détail

Feuille TD n 1 Exercices d algorithmique éléments de correction

Feuille TD n 1 Exercices d algorithmique éléments de correction Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

CH.6 Propriétés des langages non contextuels

CH.6 Propriétés des langages non contextuels CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Comparaison de fonctions Développements limités. Chapitre 10

Comparaison de fonctions Développements limités. Chapitre 10 PCSI - 4/5 www.ericreynaud.fr Chapitre Points importants 3 Questions de cours 6 Eercices corrigés Plan du cours 4 Eercices types 7 Devoir maison 5 Eercices Chap Et s il ne fallait retenir que si points?

Plus en détail

Quelques Algorithmes simples

Quelques Algorithmes simples Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été

Plus en détail

4. Les structures de données statiques

4. Les structures de données statiques 4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Continuité et dérivabilité d une fonction

Continuité et dérivabilité d une fonction DERNIÈRE IMPRESSIN LE 7 novembre 014 à 10:3 Continuité et dérivabilité d une fonction Table des matières 1 Continuité d une fonction 1.1 Limite finie en un point.......................... 1. Continuité

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

CHAPITRE VIII : Les circuits avec résistances ohmiques

CHAPITRE VIII : Les circuits avec résistances ohmiques CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Suites numériques 3. 1 Convergence et limite d une suite

Suites numériques 3. 1 Convergence et limite d une suite Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n

Plus en détail

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis

Plus en détail

Chapitre 6. Fonction réelle d une variable réelle

Chapitre 6. Fonction réelle d une variable réelle Chapitre 6 Fonction réelle d une variable réelle 6. Généralités et plan d étude Une application de I dans R est une correspondance entre les éléments de I et ceu de R telle que tout élément de I admette

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Raisonnement probabiliste

Raisonnement probabiliste Plan Raisonnement probabiliste IFT-17587 Concepts avancés pour systèmes intelligents Luc Lamontagne Réseaux bayésiens Inférence dans les réseaux bayésiens Inférence exacte Inférence approximative 1 2 Contexte

Plus en détail

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures) Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures) Eercice 1 (5 points) pour les candidats n ayant pas choisi la spécialité MATH Le tableau suivant donne l évolution du chiffre

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, 94235 Cachan Cedex. Resume Introduction a l'algorithmique des objets partages Bernadette Charron{Bost Robert Cori Lix, Ecole Polytechnique, 91128 Palaiseau Cedex, France, charron@lix.polytechnique.fr cori@lix.polytechnique.fr Antoine

Plus en détail

Algorithmique et Programmation

Algorithmique et Programmation École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Taux d évolution moyen.

Taux d évolution moyen. Chapitre 1 Indice Taux d'évolution moyen Terminale STMG Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Indice simple en base 100. Passer de l indice au taux d évolution, et réciproquement.

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Une nouvelle approche de détection de communautés dans les réseaux sociaux

Une nouvelle approche de détection de communautés dans les réseaux sociaux UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS Département d informatique et d ingénierie Une nouvelle approche de détection de communautés dans les réseaux sociaux Mémoire (INF 6021) pour l obtention du grade de Maîtrise

Plus en détail

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer

Plus en détail

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Peut-on imiter le hasard?

Peut-on imiter le hasard? 168 Nicole Vogel Depuis que statistiques et probabilités ont pris une large place dans les programmes de mathématiques, on nous propose souvent de petites expériences pour tester notre perception du hasard

Plus en détail

Polynômes à plusieurs variables. Résultant

Polynômes à plusieurs variables. Résultant Polynômes à plusieurs variables. Résultant Christophe Ritzenthaler 1 Relations coefficients-racines. Polynômes symétriques Issu de [MS] et de [Goz]. Soit A un anneau intègre. Définition 1.1. Soit a A \

Plus en détail

Optimisation for Cloud Computing and Big Data

Optimisation for Cloud Computing and Big Data 1 / 23 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 23 Aujourd hui Problèmes de fiabilité on va oublier la dynamicité Placement de VMs en programmation par contraintes

Plus en détail

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Poteaux Adrien XLIM-DMI, UMR-CNRS 6172 Université de Limoges Soutenance de thèse 15 octobre

Plus en détail

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines

FctsAffines.nb 1. Mathématiques, 1-ère année Edition 2007-2008. Fonctions affines FctsAffines.nb 1 Mathématiques, 1-ère année Edition 2007-2008 Fonctions affines Supports de cours de mathématiques de degré secondaire II, lien hpertete vers la page mère http://www.deleze.name/marcel/sec2/inde.html

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA 75. Un plombier connaît la disposition de trois tuyaux sous des dalles ( voir figure ci dessous ) et il lui suffit de découvrir une partie de chacun d eux pour pouvoir y poser les robinets. Il cherche

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Statistiques Descriptives à une dimension

Statistiques Descriptives à une dimension I. Introduction et Définitions 1. Introduction La statistique est une science qui a pour objectif de recueillir et de traiter les informations, souvent en très grand nombre. Elle regroupe l ensemble des

Plus en détail

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin. Exo7 Matrice d une application linéaire Corrections d Arnaud odin. Exercice Soit R muni de la base canonique = ( i, j). Soit f : R R la projection sur l axe des abscisses R i parallèlement à R( i + j).

Plus en détail

Les deux points les plus proches

Les deux points les plus proches MPSI Option Informatique Année 2001, Deuxième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Les eux pots les plus proches Lors e cette séance, nous allons nous téresser au problème suivant :

Plus en détail

Objets Combinatoires élementaires

Objets Combinatoires élementaires Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons que

Plus en détail

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année Cours d électricité Circuits électriques en courant constant Mathieu Bardoux mathieu.bardoux@univ-littoral.fr IUT Saint-Omer / Dunkerque Département Génie Thermique et Énergie 1 re année Objectifs du chapitre

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Groupe symétrique. Chapitre II. 1 Définitions et généralités Chapitre II Groupe symétrique 1 Définitions et généralités Définition. Soient n et X l ensemble 1,..., n. On appelle permutation de X toute application bijective f : X X. On note S n l ensemble des permutations

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Calcul intégral élémentaire en plusieurs variables

Calcul intégral élémentaire en plusieurs variables Calcul intégral élémentaire en plusieurs variables PC*2 2 septembre 2009 Avant-propos À part le théorème de Fubini qui sera démontré dans le cours sur les intégrales à paramètres et qui ne semble pas explicitement

Plus en détail

Plus courts chemins, programmation dynamique

Plus courts chemins, programmation dynamique 1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

Quelques algorithmes simples dont l analyse n est pas si simple

Quelques algorithmes simples dont l analyse n est pas si simple Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire

Plus en détail

BACCALAUREAT GENERAL MATHÉMATIQUES

BACCALAUREAT GENERAL MATHÉMATIQUES BACCALAUREAT GENERAL FEVRIER 2014 MATHÉMATIQUES SERIE : ES Durée de l épreuve : 3 heures Coefficient : 5 (ES), 4 (L) 7(spe ES) Les calculatrices électroniques de poche sont autorisées, conformement à la

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

Plus en détail

Calculateur quantique: factorisation des entiers

Calculateur quantique: factorisation des entiers Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Problème : Calcul d'échéanciers de prêt bancaire (15 pt) Problème : Calcul d'échéanciers de prêt bancaire (15 pt) 1 Principe d'un prêt bancaire et dénitions Lorsque vous empruntez de l'argent dans une banque, cet argent (appelé capital) vous est loué. Chaque

Plus en détail

Géométrie Algorithmique Plan du cours

Géométrie Algorithmique Plan du cours Plan du cours Introduction Triangulation de polygones Recherche/localisation Diagrammes de Voronoï Triangulation de Delaunay Arbres de partition binaire 1 Intersection de segments de droite Intersection

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

La persistance des nombres

La persistance des nombres regards logique & calcul La persistance des nombres Quand on multiplie les chiffres d un nombre entier, on trouve un autre nombre entier, et l on peut recommencer. Combien de fois? Onze fois au plus...

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail