CHAPITRE 5 STRUCTURATION DES DONNÉES
|
|
- Géraldine Bélanger
- il y a 6 ans
- Total affichages :
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 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en détailARBRES 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étailComplexité. 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étailCCP 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étailSouad 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étailRé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étailDé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étailUEO11 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étailChapitre 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étailLE 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étailC 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étailExo7. 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étailRaisonnement 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étailIntroduction à 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étailLes 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étailChapitre 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étailChp. 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étailCORRECTION 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étailAlgorithmes 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étailFeuille 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étailintroduction 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étailALGORITHMIQUE 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étailArchitecture 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étailCH.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étailRappels 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étailInitiation à 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étailMIS 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étailComparaison 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étailQuelques 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étail4. 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étailInitiation à 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étailTravaux 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étailContinuité 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étailchapitre 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étailInitiation à 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étailSUPPORT 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étailPROBLEMES 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étailIntroduction à 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étailCHAPITRE 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étailINITIATION 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étailProbabilité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étailProgrammation 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étailSuites 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étailJean-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étailChapitre 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étailTP 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étailRaisonnement 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étailBac 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étailChapitre 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étailIntroduction 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étailAlgorithmique 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étailImage 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 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étailTaux 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étail1 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étailUne 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étailDe 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étailNouvelles 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étailRecherche 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étailLa 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étailL 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étailLES 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étailPeut-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étailPolynô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étailOptimisation 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étailCalcul 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étailFctsAffines.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étailArithmé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étailCours 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étailExercices 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étailAlgorithme. 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étailStatistiques 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étailExo7. 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étailLes 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étailObjets 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étailCours 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étailContexte. 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étailGroupe 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étailJade. 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étailResolution 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étailPré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étailCalcul 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étailPlus 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étailUniversité 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étailOrganigramme / 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étailVision 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étailChapitre 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étailExercices - 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étailQuelques 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étailBACCALAUREAT 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étailOptimisation 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étailCalculateur 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étailExercices 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étailProblè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étailGé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étailProbabilité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étailEteindre. 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étailLa 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étailRepré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étailPourquoi 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