Arbres binaires de recherche optimaux et quasi-optimaux

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

Download "Arbres binaires de recherche optimaux et quasi-optimaux"

Transcription

1 Université Libre de Bruxelles Faculté des Sciences Département d Informatique Arbres binaires de recherche optimaux et quasi-optimaux Mémoire présenté par Gabriel Kalyon en vue de l obtention du grade de Licencié en Informatique. Année académique

2 Table des matières 1 Introduction 5 I Fondements et définitions 7 2 Arbres binaires et complexité Arbres binaires Définitions Profondeur d un nœud Hauteur d un nœud Rotations Arbres binaires de recherche Modèle Classes d arbres binaires de recherche Performances asymptotiques Notation O(.) Notation Ω(.) Notation Θ(.) Lien entre les notations asymptotiques Complexité Complexité au pire cas Complexité moyenne Complexité amortie Conclusion Propriétés des arbres binaires de recherche Relations entre les propriétés Static finger Optimalité statique Working set Dynamic finger

3 3.6 Unifiée Optimalité dynamique Conclusion II Arbres binaires de recherche particuliers 26 4 Arbres Binaires de Recherche Optimaux Généralités Algorithme exhaustif Algorithme de Knuth Conclusion Arbres binaires de recherche équilibrés Définition Arbres rouges-noirs Définition Recherche Insertion Successeur Prédécesseur Analyse des performances Conclusion Arbres binaires de recherche auto-ajustables Définition Splay trees Splaying Recherche Insertion Suppression Analyse des performances Comparaisons Conclusion III Optimalité dynamique 46 7 Bornes inférieures sur le coût des arbres binaires de recherche Modèle La borne inférieure de couverture de rectangle Applications de la borne inférieure de couverture de rectangle 53 2

4 7.3.1 La borne inférieure d entrelacement La seconde borne de Wilber Conclusion Tango Structures de données Algorithme de l arbre de référence Arbres auxiliaires Définition Concaténation Éclatement Cutting Joining Algorithme Tango Analyse des performances Conclusion Multi-splay tree Structures de données Algorithmes Algorithme de l arbre de référence Algorithme multi-splay tree Analyse des performances Fonction potentiel Access Lemma Généralisé Multi-Splay Access Lemma Propriétés Conclusion Optimalité de recherche dynamique Définition Intérêt Structure Conclusion Expérimentations Jeux de tests Distribution aléatoire Distribution working set Conclusion

5 12 Conclusion Annexe Implémentation Multi-splay trees Splay trees Arbres rouges-noirs Jeux de tests

6 Chapitre 1 Introduction Lorsque nous recherchons un élément dans un ensemble, nous pouvons effectuer deux types de recherche : une recherche linéaire et une recherche dichotomique. La recherche linéaire consiste à examiner un à un les éléments de l ensemble, ce qui ne donne pas des performances intéressantes. La recherche dichotomique consiste à éliminer à chaque étape la moitié des éléments de l ensemble. Cette méthode donne des résultats intéressants, car la recherche se fait en temps logarithmique et non plus en temps linéaire. Les arbres binaires de recherche sont une application de la recherche dichotomique. Ce type de structure organise les éléments sous forme d arbre pour tenter d éliminer à chaque étape de la recherche le plus d éléments possibles (dans le meilleur des cas la moitié des éléments sont éliminés) de manière à localiser le plus rapidement possible un élément. Depuis que ce type de structure a été développé dans les années 1960, il y a eu énormément de travaux réalisés sur le sujet. En général, le but de ces travaux était d essayer de développer une structure qui atteigne l optimalité dynamique, c est-à-dire qui donne le meilleur coût de recherche et cela quelle que soit la séquence d éléments à rechercher. Ce mémoire consiste en un travail de recherche bibliographique et le but est de présenter les principaux travaux réalisés dans le domaine des arbres binaires de recherche et de l optimalité dynamique, ainsi que les principales étapes franchies dans ces domaines. Cela va en général consister à présenter des structures et à analyser leurs performances. La présentation de ces résultats se fera de manière plus détaillée et plus didactique que dans les articles dans lesquels ils sont présentés. Le second objectif de ce mémoire est d implémenter quelques structures de données pour vérifier si en pratique nous obtenons des résultats aussi intéressants qu en théorie. En effet, il se peut que pour des structures trop complexes les résultats obtenus en pratique soient moins bons que ceux auxquels nous aurions pu nous attendre à avoir 5

7 par la théorie. Ceci s explique notamment par le fait que dans les analyses des coûts d une structure, nous omettrons les constantes multiplicatives et les termes d ordre inférieur. Dans les chapitres 2 et 3, nous allons définir un certain nombre de notions. En fait, dans le chapitre 2, nous allons définir des notions de base dans le domaine des arbres binaires de recherche et dans le chapitre 3, nous allons définir des propriétés permettant de caractériser le coût d exécution d une séquence d accès dans un arbre binaire de recherche. Parmi ces propriétés, nous pouvons notamment citer l optimalité statique et l optimalité dynamique. Dans le chapitre 4, nous allons étudier les arbres binaires de recherche optimaux. Cette structure se base sur une connaissance préalable de la distribution des clés à accéder pour atteindre l optimalité statique. Dans les chapitres 5 et 6, nous allons présenter deux catégories d arbres binaires de recherche : les arbres binaires de recherche équilibrés et les arbres binaires de recherche auto-ajustables. Chacune de ces catégories sera illustrée par une structure de données : les arbres rouges-noirs pour la première et les splay trees pour la seconde. Nous détaillerons les algorithmes de ces structures et nous analyserons leurs performances. Dans le chapitre 7, nous présenterons trois bornes inférieures sur le coût d exécution d une séquence d accès dans un arbre binaire de recherche. Une de ces trois bornes est la borne inférieure d entrelacement. Celle-ci est à la base de la structure Tango étudiée dans le chapitre 8. Cette structure présente un grand intérêt, parce qu elle approche l optimalité dynamique à un facteur log(log n) près. Dans le chapitre 9, nous étudierons la structure des multi-splay trees, qui approche également l optimalité dynamique à un facteur log(log n) près. Cette structure présente comme principal intérêt d être plus facile à implémenter que Tango. À l heure actuelle, aucune structure de données n atteint l optimalité dynamique, mais nous présenterons dans le chapitre 10 un cas particulier où cette propriété est atteinte. Nous montrerons dans ce chapitre, que nous pouvons atteindre l optimalité dynamique en changeant le modèle de coût et en permettant à la structure d effectuer un nombre quelconque d opérations de réorganisation entre chaque accès sans que cela soit comptabilisé dans le coût d exécution. Pour analyser les performances en pratique des structures étudiées, nous en avons implémenté certaines pour y exécuter des jeux de tests. Dans le chapitre 11, nous fournirons les résultats des jeux de tests exécutés, ainsi que les conclusions que nous pouvons en tirer. L implémentation des structures, accompagnée d explications, est fournie en annexe. 6

8 Première partie Fondements et définitions 7

9 Chapitre 2 Arbres binaires et complexité Dans ce chapitre, nous allons définir toute une série de notions de base dans le domaine des arbres binaires de recherche et dans le domaine de la complexité. Ces rappels seront utiles au lecteur de manière à poser ces notions, qui seront sans cesse utilisées. 2.1 Arbres binaires Dans cette section, nous allons donner la définition d un arbre binaire, ainsi que de la terminologie associée à ce type de structure Définitions Cette section est basée sur les notes d un cours dispensé par Olivier Markowitch [Mar02]. Un arbre est une structure de données permettant de stocker un ensemble d éléments et il consiste en une collection de nœuds et d arêtes (on utilisera aussi le terme arc pour désigner une arête). Un nœud permet de stocker un élément de cet ensemble et une arête (arc) est un lien entre deux nœuds. L organisation de l arbre est telle que deux nœuds quelconques de l arbre sont reliés entre eux par un chemin unique. Un chemin est une suite de nœuds distincts dans laquelle deux nœuds successifs sont reliés par une arête. Un nœud peut posséder des fils. Un nœud y est le fils d une nœud x si y se situe en-dessous de x dans l arbre et s il est relié à ce nœud par une arête. Un nœud x possède également un père ; il s agit du nœud ayant x comme fils. Les nœuds qui n ont pas de fils sont appelés des feuilles. Le nœud au sommet de l arbre est appelé la racine et il ne possède pas de père. 8

10 Un arbre binaire est un arbre, où chaque nœud possède au plus deux fils appelés fils gauche et fils droit. Les ancêtres d un nœud x sont les nœuds qui appartiennent au chemin reliant la racine de l arbre à x. Les descendants d un nœud x sont les nœuds qui ont x comme ancêtre. Le sous-arbre d un nœud x dans un arbre A est la partie de A contenant x, ainsi que ses descendants. Le sous-arbre gauche d un nœud x est le sousarbre du fils gauche de x. Le sous-arbre droit d un nœud x est le sous-arbre du fils droit de x. Un sous-arbre est vide s il ne contient pas d éléments ; par exemple si x n a pas de fils droit, alors le sous-arbre droit de x est vide Profondeur d un nœud Cette section est basée sur les notes d un cours dispensé par Olivier Markowitch [Mar02]. La profondeur d un nœud x, notée d(x), est le nombre d arcs sur le chemin allant de la racine de l arbre au nœud x plus 1. De manière plus formelle : 1. d(x) = 1 si x est la racine de l arbre 2. d(x) = 1 + d(parent) sinon où parent est le nœud père de x Hauteur d un nœud Cette section est basée sur les notes d un cours dispensé par Olivier Markowitch [Mar02]. La hauteur d un nœud x, notée h(x), est le nombre d arcs sur le chemin allant de x à la feuille la plus profonde du sous-arbre de x. De manière plus formelle : 1. h(x) = 0 si x est feuille 2. h(x) = 1 + maxh(fg),h(fd) sinon où fg et fd sont, respectivement, les fils gauche et droit de x Rotations Il existe trois types de rotations possibles sur les arbres binaires : 1. une rotation simple 2. une rotation double 3. une rotation zig-zig 9

11 Fig. 2.1 Rotation simple entre x et y Rotation simple Cette opération a été décrite pour la première fois dans l article d Adel son-vel skii et Landis [AVL62]. Une rotation simple entre un nœud x et un nœud y (avec d(x) >d(y), où d(x) est la profondeur de x et d(y) est la profondeur de y) consiste à permuter la profondeur de x et de y comme décrit à la figure 2.1. Une rotation simple est dite droite si x est le fils gauche de y et elle dite gauche si x est le fils droit de y. La rotation à la figure 2.1 correspond à une rotation droite. La rotation gauche est déduite de manière symétrique par rapport à la rotation droite Rotation double Une rotation double entre un nœud x, un nœud y et un nœud z (avec d(x) >d(y) >d(z)) consiste à effectuer une rotation simple entre x et y, puis une rotation simple entre x et z (cfr figure 2.2). Pour pouvoir effectuer une rotation double, il faut que x soit un fils droit (respectivement fils gauche) et y soit un fils gauche (respectivement fils droit). 10

12 Fig. 2.2 Rotation double entre x, y et z Rotation zig-zig Cette opération a été décrite pour la première fois dans l article de Sleator et Tarjan [ST85]. Une rotation zig-zig entre un nœud x, un nœud y et un nœud z (avec d(x) >d(y) >d(z)) consiste à permuter la profondeur de x et de z comme décrit à la figure 2.3. Pour pouvoir effectuer une rotation zig-zig, il faut que x et y soient tous deux des fils gauches ou des fils droits. 2.2 Arbres binaires de recherche Le point principal dans cette section consiste à définir le modèle des arbres binaires de recherche, qui sera étudié. Il faut noter, qu il existe plusieurs modèles d arbres binaires de recherche. En général, ces variantes sont équivalentes (à un facteur constant près) en terme de performances au modèle décrit ci-dessous. 11

13 2.2.1 Modèle Fig. 2.3 Rotation zig-zig entre x, y et z. Nous considérons le modèle défini par Demaine, Harmon, Iacono et Patrascu [DHIP04]. Ils ont défini ce modèle en se basant sur celui de Wilber [Wil89], qui correspond également à celui utilisé par Sleator et Tarjan [ST85]. Un ABR(Arbre Binaire de Recherche) est un arbre binaire qui maintient un ensemble de clés selon une règle précise : pour chaque nœud x de l arbre, la clé de x est plus grande que toutes les clés contenues dans le sous-arbre gauche de x et elle est plus petite que toutes les clés contenues dans le sousarbre droit de x. Dans cette définition, nous considérons qu un ABR ne supporte qu une seule opération : la recherche d un élément. Cette recherche se fait sur un ensemble statique de n clés. Nous considérons seulement des recherches réussies, appelées accès. Nous supposons également, sans nuire à la généralité, que chaque clé d un ABR prend une valeur unique dans l ensemble 1, 2,..., n. Un ABR est utilisé pour servir une séquence d accès, qui consiste en une suite de clés X = x 1,x 2,..., x m. L algorithme d accès de l ABR permet, en fait, de servir chaque accès x i de cette séquence. Pour accéder à un nœud x i, l algorithme d accès ne peut utiliser qu un seul pointeur P durant le parcours de l arbre. Au début de l accès, ce pointeur est initialisé à la racine de l arbre. 12

14 L algorithme d accès peut, ensuite, réaliser les opérations de coût unitaire suivantes : 1. déplacer le pointeur P vers son fils gauche 2. déplacer le pointeur P vers son fils droit 3. déplacer le pointeur P vers son père 4. effectuer une rotation simple entre le pointeur P et son père L algorithme d accès réalise une séquence des opérations ci-dessus jusqu à ce que le pointeur P atteigne le nœud x i. Le coût d accès au nœud x i est le nombre d opérations de coût unitaire réalisées pour l atteindre. Dès lors, le coût exigé par un ABR pour exécuter une séquence X = x 1,x 2,..., x m vaut m i=1 cout(x i). Nous désignerons ce modèle par le terme modèle dynamique. Comme autre modèle pour les arbres binaires de recherche, nous pouvons citer le modèle standard. Ce modèle est défini dans les articles [DSW05] et [BCK03] et il sera abordé dans le chapitre Classes d arbres binaires de recherche Il existe deux grandes classes d ABR, basées sur la manière de choisir l opération de coût unitaire suivante à réaliser lors d un accès x i : 1. les ABR online 2. les ABR offline ABR online Un ABR online [DHIP04] est une structure de données ABR dans laquelle chaque nœud peut contenir des données supplémentaires. Lors de chaque opération de coût unitaire, les données contenues dans le nœud pointé par le pointeur P peuvent être modifiées. Les données contenues dans les nœuds permettent, en général, de garder de l information sur les clés déjà accédées, de manière à améliorer le coût d accès aux clés devant encore être accédées. Lors d un accès, l algorithme d accès choisit l opération de coût unitaire suivante à réaliser en fonction de la clé à accéder et des informations supplémentaires contenues dans le nœud pointé par le pointeur P. La quantité d informations supplémentaires contenues dans un nœud doit être la plus petite possible de manière à avoir une incidence négligeable sur le temps d exécution du programme. En effet, si cette quantité est trop grande, la mise à jour de ces informations après une opération risque de coûter cher. 13

15 Comme exemples d ABR online, nous pouvons citer : les arbres rougesnoirs (qui nécessitent un bit de couleur par nœud), les arbres AVL (qui nécessitent un compteur par nœud) et les splay trees (qui ne nécessitent pas d informations supplémentaires) ABR offline Un ABR offline est une structure de données ABR, qui a une connaissance préalable de la séquence X à exécuter. En fait, il s agit d une structure utopique, qui avant même de servir X, connaît déjà les nœuds qui devront être accédés dans cette séquence. De par cette connaissance, une telle structure n a pas besoin de garder des informations supplémentaires dans ses nœuds. Lors d un accès x i, le choix de l opération de coût unitaire suivante à réaliser est basé sur la connaissance de toute la séquence X. La différence entre un ABR online et un ABR offline est que, pour choisir l opération de coût unitaire suivante à réaliser lors d un accès x i, ce dernier peut se baser sur les accès qui suivent x i dans la séquence X. 2.3 Performances asymptotiques Cette section est basée sur l ouvrage de Flajolet et Sedgewick [FS98]. Pour caractériser l efficacité d un algorithme, nous étudions ses performances asymptotiques. Ceci consiste à étudier la façon dont varie le temps d exécution d un algorithme quand la taille de l entrée tend vers l infini. Plusieurs raisons justifient l usage des méthodes asymptotiques : 1. les performances asymptotiques d un algorithme sont plus faciles à calculer que son temps d exécution exact. 2. calculer le temps d exécution exact d un algorithme est en général inutile. En effet, pour des entrées suffisamment grandes, les effets des constantes multiplicatives et des termes d ordre inférieur dans le temps d exécution exact sont négligeables. 3. les méthodes asymptotiques fournissent de bons critères de comparaison entre les algorithmes. En effet, un algorithme, qui est asymptotiquement meilleur qu un autre, est plus efficace que ce dernier pour des entrées suffisamment longues. Ci-dessous suivent trois notations asymptotiques permettant de décrire le temps d exécution asymptotique d un algorithme. 14

16 2.3.1 Notation O(.) Soit N la taille de l entrée d un algorithme. Nous disons que le temps d exécution T (N) d un algorithme est en O(g(N)) (dit grand o de g de N ) s il existe des constantes positives c 1 et n 0 telles que : n n 0, 0 T (n) c 1.g(n) (2.1) Nous constatons, que pour n suffisamment grand, T (n) est borné supérieurement par c 1 g(n). Intuitivement, la notation O(.) sert à majorer la fonction T (N) Notation Ω(.) Soit N la taille de l entrée d un algorithme. Nous disons que le temps d exécution T (N) d un algorithme est en Ω(g(N)) (dit grand omega de g de N ) s il existe des constantes positives c 1 et n 0 telles que : n n 0, 0 c 1.g(n) T (n) (2.2) Nous constatons, que pour n suffisamment grand, T (n) est borné inférieurement par c 1 g(n). Intuitivement, la notation Ω(.) sert à minorer la fonction T (N) Notation Θ(.) Soit N la taille de l entrée d un algorithme. Nous disons que le temps d exécution T (N) d un algorithme est en Θ(g(N)) (dit grand theta de g de N ) s il existe des constantes positives c 1, c 2 et n 0 telles que : n n 0, 0 c 1.g(n) T (n) c 2.g(n) (2.3) Nous constatons, que pour n suffisamment grand, T (n) est borné inférieurement par c 1 g(n) et supérieurement par c 2 g(n). Intuitivement, la notation Θ(.) fournit une valeur approchée de la fonction T (N) Lien entre les notations asymptotiques Une fois les trois définitions ci-dessus présentées, il est assez aisé d établir un lien entre elles. Ce lien est explicité par le théorème suivant. Théorème 1. Pour deux fonctions quelconques g(n) et f(n), nous avons que f(n) = Θ(g(n)) si et seulement si f(n) = O(g(n)) et f(n) = Ω(g(n)). 15

17 Ce théorème peut facilement être démontré en prouvant d abord l implication du théorème dans un sens, puis en prouvant son implication dans l autre sens et cela en se basant à chaque fois sur la définition de O(.), Θ(.) et Ω(.) 2.4 Complexité Cette section est basée sur l ouvrage de Jean Cardinal [Car04] et l article de Tarjan [Tar85]. Il existe principalement trois manières d analyser la complexité d une structure : 1. effectuer une analyse au pire cas 2. effectuer une analyse amortie 3. effectuer une analyse du cas moyen Dans cette section, nous allons définir ces trois analyses et développer de manière plus précise l analyse amortie Complexité au pire cas L analyse au pire cas consiste à caractériser la complexité d une opération dans le pire des cas. Ce pire cas peut se produire de manière répétée ou non. Si ce pire cas peut se produire de manière répétée, la complexité au pire cas donne une bonne indication des performances en pratique de la structure. Par contre, si ce pire cas ne peut pas se produire souvent, elle ne donne pas une indication concrète sur les performances en pratique. Ceci peut être illustré par l exemple suivant : la complexité au pire cas de l algorithme de Knuth-Morris-Pratt (pour la recherche de motifs) est bien meilleure que la complexité au pire cas de l algorithme de Boyer-Moore, alors qu en pratique ce deuxième algorithme est plus efficace que le premier Complexité moyenne L analyse de la complexité moyenne est en général délicate. La complexité moyenne est calculée sur la base d une distribution de probabilités sur l ensemble des entrées de l algorithme, pour laquelle des hypothèses ont été posées. La source de l aléatoire vient alors des entrées. Cette complexité donne des informations assez significatives concernant les performances en pratique si les pire cas sont rares. 16

18 Il existe une seconde manière de calculer une complexité moyenne, dans laquelle la source de l aléatoire ne vient pas des entrées, mais de l algorithme qui fait des choix aléatoires. La complexité est calculée sur ces choix et on parle alors de complexité moyenne randomisée Complexité amortie Définition La complexité amortie est la complexité au pire cas d une séquence de M opérations divisée par M. La complexité amortie donne des informations significatives concernant les performances en pratique d une structure, tout en se basant sur les performances au pire cas. Cette analyse apparaît, donc, comme un bon intermédiaire entre la complexité moyenne et la complexité au pire cas. Elle permet, mieux que les deux analyses précédentes, de concevoir des structures efficaces en pratique. Il existe plusieurs méthodes pour effectuer une analyse amortie d une structure. La méthode qui sera développée dans le point suivant est la méthode du potentiel Méthode du potentiel La méthode du potentiel nécessite de définir une fonction potentiel. Cette fonction peut être comparée à un compte bancaire. Celui-ci ne peut pas descendre en dessous d une certaine valeur (par exemple 0). Lorsqu un achat nécessite un coût moindre que prévu, l argent restant est remis dans le compte et celui-ci augmente. Par contre, lorsque le coût d un achat est supérieur à celui prévu, il faut aller puiser dans le compte pour payer le reste et celui-ci diminue donc. Cette analogie permet de donner une première idée de ce qu est une fonction potentiel. Une définition plus précise est donnée ci-dessous. La fonction potentiel est une valeur qui est bornée inférieurement par une constante. Cette borne dépend de la structure, mais vaut en général 0. La fonction potentiel va augmenter, lorsque le temps réel pour effectuer une opération est inférieur à son temps amorti. Et elle va diminuer, si le temps réel pour effectuer une opération est supérieur à son temps amorti. En d autres termes, lorsque le coût effectif d une opération est inférieur à son coût amorti, la fonction potentiel sauvegarde la différence entre ces deux coûts, et lorsque le coût d une opération est supérieur à son coût amorti, la fonction potentiel puise dans sa réserve pour compenser ce surcoût. 17

19 Pour prouver une complexité amortie C A, il faut établir l équation suivante, qui utilise une fonction potentiel P : C A = C E + P, (2.4) où C E est la complexité effective de l opération et P est la variation de la fonction potentiel entre le début et la fin de l opération. Pour établir l équation ci-dessus, il faut prouver, qu à la ième ( 1 i M) opération d une séquence de M opérations, l égalité suivante est vérifiée : C A = C E (i)+ P (i), (2.5) où C E (i) est le coût effectif de la ième opération et P (i) est la variation de potentiel à la ième étape, c est-à-dire la différence entre le potentiel après la ième étape (= P (i)) et le potentiel avant la ième étape (= P (i 1)). Cette équation peut être réécrite de la manière suivante : 2.5 Conclusion C A = C E (i)+p (i) P (i 1) (2.6) Dans ce chapitre, nous avons d abord défini la notion d arbre binaire, ainsi que la terminologie associée à ce type de structure. Ensuite, nous avons défini le modèle dynamique des arbres binaires de recherche. Et finalement, nous avons présenté plusieurs outils (les performances asymptotiques et les différents types de complexité) permettant de caractériser les performances d une structure ABR et permettant de comparer les performances de telles structures. 18

20 Chapitre 3 Propriétés des arbres binaires de recherche Dans ce chapitre, nous allons présenter plusieurs propriétés caractérisant le coût d exécution d une séquence d accès dans des ABR. Ces propriétés sont également valables pour certaines structures qui ne sont pas des ABR. 3.1 Relations entre les propriétés Nous allons décrire dans ce chapitre six propriétés : 1. Static Finger 2. Optimalité Statique 3. Working Set 4. Dynamic Finger 5. Unifiée 6. Optimalité Dynamique La figure 3.1 illustre la relation d implication entre ces propriétés. La propriété static finger est la plus faible de toutes, car elle est une conséquence de toutes les autres propriétés. De plus, les propriétés working set et dynamic finger sont indépendantes. Les définitions des propriétés ci-dessus sont basées sur deux articles de Iacono [Iac01] et [Iac05]. 3.2 Static finger Considérons un ensemble de n clés 1, 2,..., n, une séquence d accès X = x 1,x 2,..., x m et un nœud spécifique f, appelé le finger, appartenant à 19

21 Fig. 3.1 Relation d implication entre les propriétés. l ensemble 1, 2,..., n. Une structure a la propriété static finger si le coût total pour exécuter la séquence X vaut : ( m ) O log (1 + x i f ) (3.1) i=1 L expression x i f est la distance dans l ordre symétrique entre le finger f et le nœud x i. En d autres termes, la distance x i f est le nombre d éléments situés entre x i et f dans la séquence triée des nœuds plus 1. Une fois fixé, le finger reste le même durant toute l exécution de la séquence X. Les Finger Search Trees [BLM + 03] possèdent cette propriété, mais cette structure ne répond pas à la définition du modèle dynamique des ABR (cfr point 2.2.1), car son opération de recherche peut débuter à partir d une feuille quelconque de l arbre. Les splay trees [ST85] possèdent également cette propriété. De l équation (3.1), nous constatons que plus la distance entre le finger f et le nœud x i est petite, plus le coût sera petit et inversement. Par conséquent, pour une structure ayant la propriété static finger, le coût total pour exécuter une séquence X sera déterminé par la distance dans l ordre symétrique entre le finger f et chaque nœud de la séquence X à exécuter. 20

22 3.3 Optimalité statique Considérons un ensemble de n clés 1, 2,..., n et une séquence d accès X = x 1,x 2,..., x m. Une structure a la propriété d optimalité statique, si elle exécute X avec un coût de : O ( n i=1 ( ) ) m f (i) log, (3.2) f (i) où f (i) est le nombre d accès à i dans la séquence X. Supposons que nous ayons une variable aléatoire discrète qui puisse prendre n valeurs ( 1, 2,..., n ), l entropie de cette variable est la quantité : H = n p i log (p i )= i=1 n i=1 ( ) 1 p i log, (3.3) p i où p i est la probabilité que la variable aléatoire soit égale à i. Prenons l équation (3.2) et réécrivons-la de la manière suivante : ( n ( ) ) f(i) m O m m log (3.4) f(i) i=1 En posant p i = f(i)/m, nous obtenons : ( n ( ) ) 1 O m p i log = O(m H) (3.5) p i i=1 Une structure, qui atteint l optimalité statique, exécute donc la séquence X avec un coût égal à O(m H). De plus, elle exécute un accès avec un coût amorti O(H). Les Arbres Binaires de Recherche Optimaux [Knu73] et les splay trees [ST85] sont deux structures ABR ayant cette propriété d optimalité statique. Ces deux structures feront l objet d explications plus détaillées, respectivement, dans les chapitres 4 et Working set Considérons un ensemble de n clés 1, 2,..., n et une séquence d accès X = x 1,x 2,..., x m. Soit l(i, x)égal à j si x j est le dernier accès à x dans la séquence x 1,x 2,..., x i 1. Si x n est pas accédé dans cette séquence, alors l(i, x) vaut 1. Nous définissons w(i, x) comme étant le nombre d éléments distincts accédés dans 21

23 la séquence x l(i,x)+1,x l(i,x)+2,..., x i. Dès lors, w(i, x i ) est le nombre d éléments distincts accédés dans la séquence x l(i,xi )+1,x l(i,xi )+2,..., x i. Il s agit donc du nombre d éléments distincts accédés entre l accès x i et le précédent accès à cet élément. Notons w(i, x i ) par w(x i ). Une structure a la propriété working set, si elle exécute une séquence d accès X avec un coût : ( m ) O log (w (x i )) (3.6) i=1 De cette propriété, nous déduisons que plus il y a d éléments différents accédés entre deux accès successifs d un nœud x i, plus le coût d accès à ce nœud x i sera élevé et inversement. De plus, nous constatons que, si les accès d une séquence X ne se font que sur un sous-ensemble de k éléments parmi les n, la complexité d un accès à une clé x i de cette séquence sera d au plus O(log k), car w(x i ) ne pourra jamais être supérieur à k. Par conséquent, pour une structure ayant la propriété working set, le coût total pour exécuter une séquence X dépend de deux critères : 1. le nombre de clés différentes dans la séquence X. 2. le nombre d éléments différents accédés entre deux accès successifs d une même clé dans la séquence X. Plus la première quantité sera petite, plus elle aura d importance dans le coût d exécution de la séquence X. En fait, cette propriété est basée sur la localité temporelle : plus la localité temporelle entre deux accès successifs d une même clé est petite (c est-à-dire que le temps écoulé entre ces deux accès est petit), plus le coût d accès à ce nœud est petit et inversement. La Working Set Data Structure proposée par Iacono [Iac01] atteint un pire cas de O(log(w(x i ))) pour un accès x i. Cependant, cette structure ne répond pas à la définition du modèle dynamique des ABR, car elle utilise des pointeurs et des files additionnels. Les splay trees [ST85] possèdent également cette propriété. 3.5 Dynamic finger Considérons un ensemble de n clés 1, 2,..., n et une séquence d accès X = x 1,x 2,..., x m. Une structure a la propriété dynamic finger si le coût total pour exécuter la séquence X vaut : 22

24 O ( m 1 i=1 log (1 + x i+1 x i ) ) (3.7) Cette propriété est analogue à la propriété static finger. La différence étant que pour cette dernière, le finger f est fixe, tandis que pour la propriété dynamic finger, le finger est le dernier élément accédé. Les Level-Linked Trees [BT80] possèdent cette propriété, mais cette structure ne répond pas à la définition du modèle dynamique des ABR, car elle utilise des pointeurs additionnels. Les level-linked trees atteignent un pire cas de O(log (1 + x i+1 x i )) pour un accès. Les splay trees [ST85] possèdent également la propriété dynamic finger. De l équation (3.7), nous déduisons que l accès à un nœud est d autant plus rapide que la distance entre l élément auquel on doit accéder et le dernier élément auquel on a accédé est petite. En fait, cette propriété est basée sur la localité spatiale : plus la distance entre deux accès adjacents est petite, plus le coût d accès au nœud est petit et inversement. Par conséquent, pour une structure ayant la propriété dynamic finger, le coût total pour exécuter une séquence X sera déterminé par la distance entre les accès adjacents de la séquence. Plus la distance entre les accès adjacents de la séquence sera grande, plus le coût pour exécuter X sera grand et inversement. 3.6 Unifiée Considérons un ensemble de n clés 1, 2,..., n et une séquence d accès X = x 1,x 2,..., x m. Une structure a la propriété unifiée si elle exécute X avec un coût : ( m ) O min (log (w(i, j)+ x i j + 1)) (3.8) j X i=1 L Unified Structure [Iac01] possède cette propriété, mais elle ne répond pas à la définition du modèle dynamique des ABR. Les splay trees [ST85] sont conjecturés avoir la propriété unifiée. À l heure actuelle, il n existe aucune structure ABR qui atteigne cette borne. Une structure ayant cette propriété exécutera une séquence avec un coût faible si les accès sont proches en terme de distance à des éléments accédés récemment et inversement. Cette propriété est donc basée sur la localité temporelle et la localité spatiale des accès. 23

25 La propriété unifiée implique la propriété working set et la propriété dynamic finger. L intérêt de la propriété unifiée est d unifier les propriétés working set et dynamic finger ; ces deux propriétés étant indépendantes, car aucune des deux n implique l autre. 3.7 Optimalité dynamique Considérons une séquence quelconque d accès X = x 1,x 2,..., x m. Certains ABR peuvent l exécuter de manière optimale. Notons par OP T (X) ce coût minimal pour exécuter X. Ce coût OP T (X) est le coût de l ABR offline le plus rapide qui puisse exécuter X. En effet, dans le modèle ABR offline, il n y a aucune contrainte dans l algorithme d accès sur la manière de choisir la prochaine opération de coût unitaire à réaliser. Et en particulier, ce choix peut dépendre des futurs accès à servir dans la séquence. Une structure de données ABR a la propriété d optimalité dynamique, si elle exécute une quelconque séquence d accès X avec un coût O(OP T (X)). On dit qu une structure de données A est α compétitive (ou a un taux de compétitivité de α) si pour toute séquence X : COUT A (X) α OP T (X), (3.9) où COUT A (X) est le coût nécessaire à la structure A pour exécuter X. La conjecture d optimalité dynamique, énoncée par Sleator et Tarjan [ST85], affirme que les splay trees sont O(1) compétitif s. Cependant, aucune démonstration n est venue étayer cette conjecture. Jusqu il y a peu, le meilleur taux de compétitivité était le taux trivial de O(log(n)), atteint par exemple par les arbres rouges-noirs. Ce n est qu en 2004, que ce taux a pu être amélioré par une structure de données appelée Tango [DHIP04]. Cette structure atteint un taux de compétitivité de O(log(log n)). Par après, une autre structure de données, les Multi-Splay Trees ([SW04] et [DSW06]), a été développée sur base de Tango pour atteindre également un taux de compétitivité de O(log(log n)). Ces deux structures seront détaillées dans les chapitres 8 et 9. La propriété d optimalité dynamique a une signification profonde : connaître le futur ne permet d améliorer le temps d exécution d une séquence d accès que d un facteur constant. En effet, si nous parvenons à développer un ABR online, qui atteint l optimalité dynamique, cela signifierait que nous sommes parvenus à créer une structure, qui en se basant sur le passé de la séquence d accès X à exécuter, donne des résultats équivalents, à un facteur constant près, à la meilleure structure de données offline, qui se base sur la 24

26 connaissance du futur pour exécuter de manière optimale la séquence d accès X. 3.8 Conclusion Dans ce chapitre, nous avons défini toute une série de propriétés permettant de caractériser le coût d exécution d une séquence d accès dans un ABR. La propriété la plus forte étant bien évidemment l optimalité dynamique. De plus, nous avons présenté la relation d implication entre ces propriétés de manière à spécifier celles qui sont les plus fortes et celles qui sont les plus faibles. 25

27 Deuxième partie Arbres binaires de recherche particuliers 26

28 Chapitre 4 Arbres Binaires de Recherche Optimaux La rédaction de ce chapitre est basée sur l ouvrage de Knuth [Knu73]. La structure des ABRO (= Arbres Binaires de Recherche Optimaux) a été développée par Knuth [Knu73]. Le but de cette structure est d atteindre l optimalité statique et elle nécessite pour cela de connaître la distribution des clés à accéder. Pour rappel, une structure a la propriété d optimalité statique (cfr point 3.3), si elle exécute une séquence d accès X = x 1,x 2,..., x m sur un arbre de n clés 1, 2,..., n avec un coût de : O ( n i=1 ( ) ) m f (i) log, (4.1) f (i) où f (i) est le nombre d accès à i dans la séquence X. 4.1 Généralités Pour construire l ABRO d un ensemble de nœuds P = p 1,p 2,..., p n, nous disposons, en plus de ces nœuds, de leur fréquence relative d accès. Pour tenir compte des recherches infructueuses, nous avons également besoin d un ensemble de nœuds externes Q = q 0,q 1,q 2,..., q n. Ces nœuds externes représentent les pointeurs nuls des nœuds de l arbre. Chaque nœud de Q représente un intervalle de nœuds pour lesquels la recherche est infructueuse : q 0 représente l intervalle (,p 1 ), q i représente l intervalle (p i,p i+1 )( 0 < i<n) et q n représente l intervalle (p n, ). Les nœuds de Q sont accompagnés de leur fréquence relative d accès. 27

29 Fig. 4.1 Arbre dont le coût de recherche est de 2.2 Le coût d une recherche dans l arbre T construit sur les clés de P est donné par la quantité : c(t )= ( 1 j n f(p j ) profondeur(p j ) ) + ( 0 j n f(q j ) (profondeur(q j ) 1) où f(p j ) est la fréquence relative d accès au nœud p j et où f(q j ) est la fréquence relative d accès au nœud externe q j, c est-à-dire la probabilité que la clé recherchée appartienne à l intervalle (q j,q j+1 ). La notion de profondeur est définie au point Considérons l arbre T de la figure 4.1 et l assignation de fréquences suivante : f(p 1 ) = 0.15, f(p 2 ) = 0.1, f(p 3 ) = 0.25, f(q 0 ) = 0.05, f(q 1 ) = 0.2, f(q 2 )=0.15, f(q 3 )=0.1. Le coût d une recherche dans l arbre T est le suivant : ), c(t ) = (0.15) 3 + (0.1) 2 + (0.25) 1 + (0.05) 3 +(0.2) 3 + (0.15) 2 + (0.1) 1 = 2.2 Pour déterminer l ABRO de P, il suffit de trouver l arbre T, dont le coût de recherche c(t ) est le minimum parmi les coûts de recherche de tous les arbres possibles. À noter qu il peut exister plusieurs arbres, dont le coût de recherche est minimal. 28

30 4.2 Algorithme exhaustif Pour déterminer l ABRO de l ensemble P de nœuds, il suffit de construire tous les arbres possibles sur P, de calculer leur coût de recherche et de retenir celui dont le coût est minimal. Cependant, la complexité d un tel algorithme est exponentielle. En effet, avec n nœuds il est possible de construire C n+1 (= le (n + 1)ème nombre de Catalan) arbres binaires de recherche. Or, C n+1 = ( 2n n ) (n + 1) 4 n π 1/2 n 3/2 Clairement un tel algorithme pour construire l ABRO est à exclure. 4.3 Algorithme de Knuth L algorithme de Knuth est un algorithme de programmation dynamique. Il se base sur la propriété suivante : tous les sous-arbres d un ABRO sont optimaux. En effet, une amélioration du coût de recherche d un quelconque sous-arbre d un ABRO mène à une amélioration du coût de recherche de l ABRO. L idée est de considérer le problème de manière récursive (cfr figure 4.2). Un ABRO T est constitué d une racine p k, d un sous-arbre gauche (qui est un ABRO) et d un sous-arbre droit (qui est un ABRO). On construit de manière récursive le sous-arbre gauche et le sous-arbre droit de p k avant de construire T. Pour construire l ABRO avec l algorithme de programmation dynamique, nous avons besoin de trois tables : 1. la table C, où C(i, j) ( 0 i j n) est le coût de l ABRO sur les nœuds p i+1,..., p j,q i,..., q j. 2. la table r, où r(i, j) ( 0 i j n) est l indice k de la racine p k de l ABRO sur les nœuds p i+1,..., p j,q i,..., q j. 3. la table W, où W (i, j) =f(p i+1 )+...+ f(p j )+f(q i )+...+ f(q j ) ( 0 i j n). Le remplissage de la table C commence à la ligne 0 et se termine à la ligne n. Il est basé sur la formule suivante : 29

31 Fig. 4.2 ABRO d un point de vue récursif 0 si i j C(i, j) = W (i, j) + min i<k j si i<j (4.2) L idée de cette formule est de déterminer pour chaque indice k le coût de l arbre construit avec p k comme racine, un ABRO de coût C(i, k 1) comme sous-arbre gauche et un ABRO de coût C(k, j) comme sous-arbre droit ; il faut retenir celui qui minimise la quantité C(i, k 1) + C(k, j). Une fois k déterminé (si plusieurs indices donnent un coût minimal, il faut en choisir un arbitrairement), il faut stocker cet indice dans r(i, j). Il faut noter que dans le calcul de C(i, j), il faut rajouter le terme W (i, j). En effet, lorsque le sousarbre gauche de coût C(i, k 1) et le sous-arbre droit de coût C(k, j) sont rattachés à la racine p k, la profondeur de chacun des nœuds dans ces sousarbres augmente de 1. Ceci implique qu il faut rajouter dans le coût C(i, j) la fréquence de chacun de ces nœuds. Comme il faut également rajouter la fréquence de p k, cela revient finalement à rajouter W (i, j) au coût C(i, j). Il est possible d optimiser la formule 4.2 en se basant sur l inégalité suivante démontrée par Knuth dans [Knu73] : r(i, j 1) r(i, j) r(i +1,j) (4.3) 30

32 La formule devient alors : 0 si i j C(i, j) = W (i, j) + min (C(i, k 1) + C(k, j)) si i<j r(i,j 1) r(i,j) r(i+1,j) (4.4) La construction de l ABRO en utilisant la formule 4.4 nécessite un coût en O(n 2 ) (si n est la taille de l arbre), alors que la construction avec la formule 4.2 nécessite un coût en O(n 3 ) [Knu73]. De plus, le coût d une recherche dans un tel arbre se fait en O(H) [Knu73] (où H est l entropie). 4.4 Conclusion Dans cette section, nous avons présenté un algorithme de programmation dynamique, qui construit avec un coût en O(n 2 ) une structure qui atteint l optimalité dynamique. Cette structure est statique et elle requière la connaissance de la fréquence des nœuds. En 1979, Bitner [Bit79] a présenté et analysé les Arbres Monotones Dynamiques. Cette structure est un ABR dynamique (un ABR qui permet les insertions et les suppressions), qui essaie d approximer l ABRO. 31

33 Chapitre 5 Arbres binaires de recherche équilibrés Dans ce chapitre, nous allons d abord définir la notion d arbre binaire de recherche équilibré. Ensuite, nous allons illustrer ce concept par la présentation des arbres rouges-noirs. Le choix de cette structure plutôt qu une autre se justifie par le fait qu elle fait partie des plus connues et des plus efficaces de sa catégorie. 5.1 Définition Un arbre binaire de recherche équilibré est un ABR, qui maintient des informations supplémentaires dans ses nœuds, de manière à ce qu il reste équilibré. Le but de cet équilibrage est qu à tout moment, la hauteur de l arbre soit logarithmique, à un facteur constant près, en le nombre d éléments dans l arbre. Ceci permet d avoir des opérations sur la structure en temps logarithmique en le nombre d éléments dans l arbre. 5.2 Arbres rouges-noirs Dans la littérature, il existe deux manières de présenter les arbres rougesnoirs : soit de les décrire comme une implémentation des arbres (une description de cette structure-ci est présentée dans l ouvrage [Sed04]), soit de les décrire comme une structure vérifiant un certain nombre de conditions, qui permettent d équilibrer l arbre. Les deux méthodes sont bien évidemment équivalentes. La première méthode est plus intéressante, car elle permet de comprendre le sens des propriétés imposées aux arbres rouges-noirs. Elle permet, de plus, de comprendre aisément les algorithmes d insertion et de 32

34 suppression des arbres rouges-noirs, ainsi que leur preuve de correction. La deuxième méthode permet de présenter la structure de manière plus brève. Nous utiliserons la deuxième méthode pour présenter la structure. Cette description est basée sur les ouvrages de Jean Cardinal [Car04] et de Sedgewick [Sed04] Définition Les arbres rouges-noirs ont deux types d arcs : les arcs rouges et les arcs noirs. Un seul bit par nœud x est nécessaire comme information supplémentaire. Ce bit indique si l arc pointant vers ce nœud x est rouge ou noir. Un arbre, pour répondre à la définition d arbres rouges-noirs, doit vérifier les propriétés suivantes : 1. dans un chemin de la racine à une feuille, il n y a jamais deux arcs rouges successifs 2. le nombre d arcs noirs dans un chemin de la racine à un sous-arbre vide est le même quel que soit le chemin 3. le bit de couleur de la racine est noir Ces conditions permettent d équilibrer l arbre, comme il le sera démontré plus loin dans ce chapitre, de manière à ce que les opérations sur les arbres rouges-noirs se fassent en temps logarithmique au pire cas en le nombre d éléments dans l arbre Recherche L algorithme de recherche pour les arbres rouges-noirs est identique à l algorithme d accès des ABR défini pour le modèle dynamique (cfr point 2.2.1) Insertion L algorithme d insertion pour les arbres rouges-noirs est le suivant. En commençant le traitement à la racine, il faut effectuer les opérations suivantes : 1. Désignons par x le nœud courant. Si x a deux arcs sortants rouges, il faut traiter ce nœud de la manière suivante : (a) colorier les deux arcs sortants de x en noir (b) colorier l arc liant x à p (où p est le père de x) en rouge 33

35 (c) si l arc liant p à g (où g est le père de p ) est rouge, il faut effectuer une rotation. Cette rotation est simple (rotation entre p et g) si x et p sont tous deux des fils gauches ou s ils sont tous deux des fils droits ; elle est double sinon. Après cet éventuel traitement, il faut déplacer le pointeur courant sur le fils gauche ou le fils droit de x suivant que la clé à insérer soit, respectivement, plus petite ou plus grande que x. Cette première étape est à itérer tant que le nœud courant ne pointe pas sur un sous-arbre vide. 2. À ce niveau, le pointeur courant pointe sur un sous-arbre vide. Il ne suffit, dès lors, qu à insérer le nouveau nœud dans ce sous-arbre vide en coloriant son bit de couleur en rouge. Après cela, si l arc liant p (où p est le père du nœud inséré) à g (où g est le père de p) est rouge, il faut effectuer une rotation. Cette rotation est simple (rotation entre p et g) si le nœud inséré et p sont tous deux des fils gauches ou s ils sont tous deux des fils droits ; elle est double sinon. Les notions de rotation simple et de rotation double sont définies au point Certains lecteurs pourraient être sceptiques quant à la correction de cet algorithme, mais si nous considérons les arbres rouges-noirs comme une implémentation des arbres 2-3-4, alors cette preuve peut facilement être établie. Les utilisateurs intéressés par cela peuvent consulter la référence [Car04] ou [Sed04] Successeur L opération successeur pour un nœud x donne l élément, qui suit x dans l ordre symétrique. L algorithme suivant permet de déterminer le successeur de x. Supposons que le pointeur courant pointe sur le nœud x (si ce n est pas le cas, il suffit de réaliser une recherche sur cet élément). Ensuite, deux cas sont à envisager, selon que x ait un fils droit ou non : 1. Si x a un fils droit, noté y, il faut se positionner sur le fils droit de x et suivre le chemin des fils gauches à partir de y. Le successeur de x est alors le dernier nœud rencontré sur ce chemin. 2. Si x n a pas de fils droit, il faut remonter dans l arbre, tant que x appartient au sous-arbre droit du nœud courant. Le successeur de x est, alors, le premier nœud dans cette remontée, qui contient x dans son sous-arbre gauche. S il n existe pas de tel nœud, alors x n a pas de successeur. 34

36 5.2.5 Prédécesseur L opération prédécesseur pour un nœud x donne l élément, qui précède x dans l ordre symétrique. L algorithme suivant permet de déterminer le prédécesseur de x. Supposons que le pointeur courant pointe sur le nœud x (si ce n est pas le cas, il suffit de réaliser une recherche sur cet élément). Ensuite, deux cas sont à envisager, selon que x ait un fils gauche ou non : 1. Si x a un fils gauche, noté y, il faut se positionner sur le fils gauche de x et suivre le chemin des fils droits à partir de y. Le prédécesseur de x est alors le dernier nœud rencontré sur ce chemin. 2. Si x n a pas de fils gauche, il faut remonter dans l arbre, tant que x appartient au sous-arbre gauche du nœud courant. Le prédécesseur de x est, alors, le premier nœud dans cette remontée, qui contient x dans son sous-arbre droit. S il n existe pas de tel nœud, alors x n a pas de prédécesseur Analyse des performances Les deux démonstrations présentées dans cette partie sont basées sur l ouvrage de Sedgewick [Sed04] Lemme 1. Soient un arbre rouge-noir et un nœud x appartenant à cet arbre. Le sous-arbre A de x contient au moins 2 bh(x) 1 nœuds (bh(x) est la hauteur noire de x, c est-à-dire le nombre de nœuds ayant un bit noir entre x (inclus) et la feuille la plus profonde de x moins 1. On impose que bh(x) 0). Démonstration : la hauteur de x : La démonstration de ce lemme se fait par récurrence sur 1. Initialisation de la récurrence : Si la hauteur de x vaut 0, alors bh(x) vaut 0. Dès lors, le sous-arbre A de x doit contenir au moins 2 bh(x) 1= = 0 nœud. Or, si x a une hauteur de 0, cela signifie que le sousarbre A consiste en la seule feuille x. Le sous-arbre A contient, donc, un élément et le lemme est, alors, vérifié. 2. Pas de récurrence : Supposons que le lemme soit vrai pour une hauteur h 1 et montrons qu il l est aussi pour une hauteur h. Supposons que le nœud x ait une hauteur h et une hauteur noire bh(x). Considérons le pire cas, où x a deux enfants ; en effet, on augmente ainsi le nombre d éléments dans le sous-arbre de x. Chaque enfant de x a une hauteur noire qui vaut bh(x) ou bh(x) 1, selon que son bit de 35

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

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

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

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

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

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

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

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

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

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

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

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

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

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

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Dualité dans les espaces de Lebesgue et mesures de Radon finies Chapitre 6 Dualité dans les espaces de Lebesgue et mesures de Radon finies Nous allons maintenant revenir sur les espaces L p du Chapitre 4, à la lumière de certains résultats du Chapitre 5. Sauf mention

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

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

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

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

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES Théorème - Définition Soit un cercle (O,R) et un point. Une droite passant par coupe le cercle en deux points A et

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

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

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

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

La mesure de Lebesgue sur la droite réelle

La mesure de Lebesgue sur la droite réelle Chapitre 1 La mesure de Lebesgue sur la droite réelle 1.1 Ensemble mesurable au sens de Lebesgue 1.1.1 Mesure extérieure Définition 1.1.1. Un intervalle est une partie convexe de R. L ensemble vide et

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

É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

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

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

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

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

Le produit semi-direct

Le produit semi-direct Le produit semi-direct Préparation à l agrégation de mathématiques Université de Nice - Sophia Antipolis Antoine Ducros Octobre 2007 Ce texte est consacré, comme son titre l indique, au produit semi-direct.

Plus en détail

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

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

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

Eléments de Théorie des Graphes et Programmation Linéaire

Eléments de Théorie des Graphes et Programmation Linéaire INSTITUT NATIONAL POLYTECHNIQUE DE LORRAINE Ecole Nationale Supérieure d Electricité et de Mécanique Eléments de Théorie des Graphes et Programmation Linéaire Didier Maquin Professeur à l INPL Version

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

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

Propriétés des options sur actions

Propriétés des options sur actions Propriétés des options sur actions Bornes supérieure et inférieure du premium / Parité call put 1 / 1 Taux d intérêt, capitalisation, actualisation Taux d intéret composés Du point de vue de l investisseur,

Plus en détail

I. Polynômes de Tchebychev

I. Polynômes de Tchebychev Première épreuve CCP filière MP I. Polynômes de Tchebychev ( ) 1.a) Tout réel θ vérifie cos(nθ) = Re ((cos θ + i sin θ) n ) = Re Cn k (cos θ) n k i k (sin θ) k Or i k est réel quand k est pair et imaginaire

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

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

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

Continuité en un point

Continuité en un point DOCUMENT 4 Continuité en un point En général, D f désigne l ensemble de définition de la fonction f et on supposera toujours que cet ensemble est inclus dans R. Toutes les fonctions considérées sont à

Plus en détail

Sur certaines séries entières particulières

Sur certaines séries entières particulières ACTA ARITHMETICA XCII. 2) Sur certaines séries entières particulières par Hubert Delange Orsay). Introduction. Dans un exposé à la Conférence Internationale de Théorie des Nombres organisée à Zakopane

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 demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

Plus en détail

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE LA PHYSIQUE DES MATERIAUX Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE Pr. A. Belayachi Université Mohammed V Agdal Faculté des Sciences Rabat Département de Physique - L.P.M belayach@fsr.ac.ma 1 1.Le réseau

Plus en détail

Chapitre VI - Méthodes de factorisation

Chapitre VI - Méthodes de factorisation Université Pierre et Marie Curie Cours de cryptographie MM067-2012/13 Alain Kraus Chapitre VI - Méthodes de factorisation Le problème de la factorisation des grands entiers est a priori très difficile.

Plus en détail

I Stabilité, Commandabilité et Observabilité 11. 1 Introduction 13 1.1 Un exemple emprunté à la robotique... 13 1.2 Le plan... 18 1.3 Problème...

I Stabilité, Commandabilité et Observabilité 11. 1 Introduction 13 1.1 Un exemple emprunté à la robotique... 13 1.2 Le plan... 18 1.3 Problème... TABLE DES MATIÈRES 5 Table des matières I Stabilité, Commandabilité et Observabilité 11 1 Introduction 13 1.1 Un exemple emprunté à la robotique................... 13 1.2 Le plan...................................

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

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

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

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

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

Développement décimal d un réel

Développement décimal d un réel 4 Développement décimal d un réel On rappelle que le corps R des nombres réels est archimédien, ce qui permet d y définir la fonction partie entière. En utilisant cette partie entière on verra dans ce

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Complément d information concernant la fiche de concordance

Complément d information concernant la fiche de concordance Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours

Plus en détail

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

F411 - Courbes Paramétrées, Polaires

F411 - Courbes Paramétrées, Polaires 1/43 Courbes Paramétrées Courbes polaires Longueur d un arc, Courbure F411 - Courbes Paramétrées, Polaires Michel Fournié michel.fournie@iut-tlse3.fr http://www.math.univ-toulouse.fr/ fournie/ Année 2012/2013

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

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

Calcul différentiel sur R n Première partie

Calcul différentiel sur R n Première partie Calcul différentiel sur R n Première partie Université De Metz 2006-2007 1 Définitions générales On note L(R n, R m ) l espace vectoriel des applications linéaires de R n dans R m. Définition 1.1 (différentiabilité

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

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

I. Ensemble de définition d'une fonction

I. Ensemble de définition d'une fonction Chapitre 2 Généralités sur les fonctions Fonctions de références et fonctions associées Ce que dit le programme : Étude de fonctions Fonctions de référence x x et x x Connaître les variations de ces deux

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

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

Programmation linéaire et Optimisation. Didier Smets

Programmation linéaire et Optimisation. Didier Smets Programmation linéaire et Optimisation Didier Smets Chapitre 1 Un problème d optimisation linéaire en dimension 2 On considère le cas d un fabricant d automobiles qui propose deux modèles à la vente, des

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

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

Précision d un résultat et calculs d incertitudes

Précision d un résultat et calculs d incertitudes Précision d un résultat et calculs d incertitudes PSI* 2012-2013 Lycée Chaptal 3 Table des matières Table des matières 1. Présentation d un résultat numérique................................ 4 1.1 Notations.........................................................

Plus en détail

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE Le schéma synoptique ci-dessous décrit les différentes étapes du traitement numérique

Plus en détail

Table des matières. I Mise à niveau 11. Préface

Table des matières. I Mise à niveau 11. Préface Table des matières Préface v I Mise à niveau 11 1 Bases du calcul commercial 13 1.1 Alphabet grec...................................... 13 1.2 Symboles mathématiques............................... 14 1.3

Plus en détail

Fibonacci et les paquerettes

Fibonacci et les paquerettes Fibonacci et les paquerettes JOLY Romain & RIVOAL Tanguy Introduction Quand on entend dire que l on peut trouver le nombre d or et la suite de Fibonacci dans les fleurs et les pommes de pin, on est au

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

Problèmes de Mathématiques Filtres et ultrafiltres

Problèmes de Mathématiques Filtres et ultrafiltres Énoncé Soit E un ensemble non vide. On dit qu un sous-ensemble F de P(E) est un filtre sur E si (P 0 ) F. (P 1 ) (X, Y ) F 2, X Y F. (P 2 ) X F, Y P(E) : X Y Y F. (P 3 ) / F. Première Partie 1. Que dire

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

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal

CHOIX OPTIMAL DU CONSOMMATEUR. A - Propriétés et détermination du choix optimal III CHOIX OPTIMAL DU CONSOMMATEUR A - Propriétés et détermination du choix optimal La demande du consommateur sur la droite de budget Résolution graphique Règle (d or) pour déterminer la demande quand

Plus en détail

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1 CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste

Plus en détail

III- Raisonnement par récurrence

III- Raisonnement par récurrence III- Raisonnement par récurrence Les raisonnements en mathématiques se font en général par une suite de déductions, du style : si alors, ou mieux encore si c est possible, par une suite d équivalences,

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

Calcul fonctionnel holomorphe dans les algèbres de Banach

Calcul fonctionnel holomorphe dans les algèbres de Banach Chapitre 7 Calcul fonctionnel holomorphe dans les algèbres de Banach L objet de ce chapitre est de définir un calcul fonctionnel holomorphe qui prolonge le calcul fonctionnel polynômial et qui respecte

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Arbres binaires de décision

Arbres binaires de décision 1 Arbres binaires de décision Résumé Arbres binaires de décision Méthodes de construction d arbres binaires de décision, modélisant une discrimination (classification trees) ou une régression (regression

Plus en détail

LES GENERATEURS DE NOMBRES ALEATOIRES

LES GENERATEURS DE NOMBRES ALEATOIRES LES GENERATEURS DE NOMBRES ALEATOIRES 1 Ce travail a deux objectifs : ====================================================================== 1. Comprendre ce que font les générateurs de nombres aléatoires

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail