Algorithmique. Cristina Sirangelo, ENS-Cachan. Préparation à l'option Informatique de l'agrégation de mathématiques

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

Download "Algorithmique. Cristina Sirangelo, ENS-Cachan. Préparation à l'option Informatique de l'agrégation de mathématiques"

Transcription

1 Algorithmique Cristina Sirangelo, ENS-Cachan Préparation à l'option Informatique de l'agrégation de mathématiques

2 Plan 1. Analyse et compleité des algorithmes (S.Haddad) 2. Types abstraits et structures de données (suite) 3. Algorithmes de tri 4. Techniques classiques de conception d algorithmes 5. Algorithmes de graphes

3 Types abstraits et structures de données Les algorithmes opèrent sur des données (données en input, données auiliaires) Aspect central de l algorithmique: représentation et manipulation des données Deu niveau de représentation: niveau abstrait ou logique (type abstrait de données) implémentation (structure de données) Séparation des deu niveau : modularité et interface utiliser un objet ou une fonctionnalité par son interface abstraite, indépendamment des détails de son implémentation Type abstrait un ensemble d objets des opérations qui les manipulent Structure de données Représentation concrète des objets décrits par le type abstrait dans la mémoire d un ordinateur Implémentation des opérations sur cette représentation Représentation des données: en terme de types élémentaires et d autres types abstraits (hiérarchie de types)

4 Types abstraits et structures de données Piles Files Listes Arbres Graphes Dictionnaires Arbres binaires de recherche, tables de hachage,... Files de priorité etc

5 Dictionnaires et algorithmes de recherche Dictionnaire: un type abstrait de données qui permet de représenter et manipuler des ensembles (typiquement ordonnés). Principales opérations: recherche d un élément, insertion et suppression D autres opérations typiques: fusion, scission Éléments de l ensemble accessibles par un champ clef (identifiant) sur un domaine totalement ordonné D autres informations associées à chaque élément: schématisées par un seul autre champ valeur, qui peut être d un type complee.

6 Dictionnaires Implémentations possibles par Tableau (non-trié et trié) par Liste (non-trié et trié) par Table de Hachage par Arbre Binaire de Recherche : compleité des opérations de recherche/insertion/suppression: O(log n) cas moyen O(n) cas pire - dû au possible déséquilibre dans l arbre (cas pire: arbre dégénéré en une liste) Arbres de recherche équilibrés: arbres de recherche qui respectent des propriétés d'équilibre entre la hauteur des sous-arbres d un noeud (évitent que l arbre dégénère en une liste) la hauteur reste logarithmique dans le nombre de noeuds compleité de la recherche/insertion/suppression: O(log n) dans le cas pire les opérations de mise à jour (insertion/suppression) doivent maintenir la propriété d'équilibre

7 Arbres de recherche équilibrés Arbres AVL (Adelson-Velskii et Landis) Arbres a-b Arbres rouge-noir (ou bicolores)

8 Rotations Rappel: Soit Tclef un domaine totalement ordonné, et Tval un type pour les valeurs: Rotations: Arbre binaire de recherche (ABR) sur (Tclef, Tval): un arbre binaire sur un domaine (Tclef, Tval) tel que pour tout sommet clefs dans le sous-arbre gauche de <. clef < clefs dans le sous-arbre droit de des opérations de réorganisation locale des noeuds d un ABR, qui préservent la propriété d ABR briques de base pour les opérations de rééquilibrage dans les ABR équilibrés

9 Rotations rotation gauche y y A rotation droite C B C A B

10 Rotations rotation gauche-droite z y y z D A A B C D B C y rotation droite-gauche z y A z D A B C D B C Toutes les opérations de rotation sur les arbre binaires peuvent être réalisées en temps O(1)

11 Arbres AVL (Adelson-Velskii et Landis) Pour un arbre binaire A et un sommet de A : A() : sous-arbre de A de racine Ag () : sous arbre gauche de A() Ad () : sous-arbre droit de A() Equilibre de : δ () = hauteur( Ag() ) - hauteur( Ad() ) ( par convention la hauteur d un arbre vide est -1 ) Arbre AVL: ABR tel que, pour tout sommet de l arbre δ() { -1, 0, 1 } Proposition Soit A un arbre AVL ayant n sommets et de hauteur h, alors: log2 (n+1) h+ 1 1,44 log2 (n+2)

12 Hauteur d un arbre AVL Preuve. 1) L arbre binaire de hauteur h ayant plus de sommets est l arbre complet #sommets de l arbre complet: h = 2 h+1-1 n 2 h+1-1 h+ 1 log2 (n+1) 2) L arbre AVL de hauteur h ayant le nombre minimum de sommets (arbre de Fibonacci): h= -1: arbre vide h= 0 : arbre composé de la seule racine h 1: arbre composé d une racine, un sous arbre de hauteur h-1 ayant un minimum de sommets, et un sous arbre de hauteur h-2 ayant un minimum de sommets N(h): nombre minimum de sommets d un arbre AVL de hauteur h N(-1) = 0, N(0) = 1, N(h) = 1 + N(h-1) + N(h-2) pour h 1 ( N(1) = 2 ) On pose F(h) = N(h) +1 F(0) =2, F(1) =3 F(h) = F(h-1) +F(h-2) pour h 2

13 Hauteur d un arbre AVL F(0) =2, F(1) =3 F(h) = F(h-1) +F(h-2) pour h 2 F(h) est le nombre de Fibonacci d indice h+ 3, pour tout h 0 F(h)= 1 ( p h+3 - q h+3 ) 1+ 5 > 1 p = q = 5 5 ph q h+3 < 1 n N(h) = F(h) -1 n+1 > 1 5 ph+3-1 h+ 3 < log p (n+2) + log p 5 (1/ log2 p) log 2 (n+2) + 2 =1, 44 log 2 (n+2) + 2 h+ 1 < 1, 44 log 2 (n+2)

14 Opérations de dictionnaire sur les arbres AVL Recherche: algorithme habituel de recherche dans un ABR Compleité O(h), et par la proposition ci-dessus: La recherche d une clef dans un arbre AVL se fait en temps O(log n) dans le cas pire Insertion/ Suppression: algorithme habituel plus rééquilibrage Pour plus d efficacité: dans chaque sommet on stocke h(a())

15 Insertion dans un arbre AVL Deu phases: 1) descente de l arbre (comme dans les ABR), création d une nouvelle feuille (clef, valeur) s 2) rééquilibrage de l arbre A: l arbre avant insertion A : l arbre après insertion δ: l'équilibre avant insertion δ : l'équilibre après insertion

16 Insertion dans un arbre AVL Rééquilibrage de A u γ Remonter le chemin γ entre la nouvelle feuille s et la racine. Pour chaque sommet v de γ: calculer (et stocker) la nouvelle profondeur du sous-arbre A(v) (au plus +1) vérifier les conditions AVL pour A(v) s : le premier sommet de γ (de s vers la racine) tel que A() n est pas AVL ( δ () =2 ) u: le fils de dans γ (supposer u fils gauche, le cas u fils droit est symétrique) (u est dans A)

17 Propriétés de A (arbre avant l insertion) et γ Lemme Insertion dans un arbre AVL 1) Pour tous descendant v de sur le chemin γ ( eclus): δ(v)=0 2) Pour : δ() =1 A v γ Preuve: Soit P le sous arbre plus profond de v dans A et S l autre sous-arbre l insertion de la nouvelle feuille s (au bout de γ) se fait dans P (sinon h(a (v)) =h(a(v)) et donc δ() = δ () ) Donc δ (v) = δ(v) +1 Si δ(v) 0 alors δ (v) >1 contradiction (parce que A (v) est AVL ) Pour : δ() =1 et s est inséré dans le sous-arbre les plus profond de (sinon A () serait AVL ) L insertion se fait dans Ag() par hypothèse δ() =1

18 Rééquilibrage de A, deu cas 1) s inséré dans le sous-arbre gauche de u Insertion dans un arbre AVL A: u A u h h h s A : u rééquilibrage : rotation droite u équilibre rétabli h(a (u)) =h(a()) h h h+1 h h h+1

19 Rééquilibrage de A, deu cas 2) s inséré dans le sous-arbre droit de u Insertion dans un arbre AVL A: u y h A u h h-1 h-1 s A : u y h rééquilibrage : rotation gauche-droite u y y peut être éventuellement le nouveau noeud inséré équilibre rétabli h(a (y)) =h(a()) h h-1 h h-1 h h h

20 Compleité de l insertion : O(log n) Insertion dans un arbre AVL Phase de descente: O(log n) Phase de rééquilibrage O(log n): on remonte au pire jusqu'à la racine ensuite une opération de rééquilibrage (O(1))

21 Suppression dans un arbre AVL Deu phases: 1) suppression d une feuille s (algorithme de suppression ABR modifié): descente de l arbre pour trouver le sommet contenant la clef à supprimer si est une feuille il est supprimé sinon remplacer le contenu de avec le noeud y contenant le maimum de Ag() ou le minimum de Ad() supprimer y récursivement X s 2) rééquilibrage de l arbre A: l arbre avant suppression A : l arbre après suppression δ: l'équilibre avant suppression δ : l'équilibre après suppression

22 Suppression dans un arbre AVL Rééquilibrage de A A γ Remonter le chemin γ entre le père de s et la racine. Pour chaque sommet v de γ: X s calculer (et stocker) la nouvelle profondeur du sous-arbre A(v) vérifier les conditions AVL pour A(v) : le premier sommet de γ (de s vers la racine) tel que A() n est pas AVL ( δ () =2 ) supposons s dans le sous-arbre droit de (l'autre cas est symétrique)

23 Suppression dans un arbre AVL Dans A : plus précisément: u h+2 h AVL h+2 h AVL Deu cas: 1) Le sous-arbre gauche de u à hauteur h+1 u rééquilibrage : rotation droite u h h+1 h ou h+1 h+1 h ou h+1 h Si h+1: équilibre rétabli ( h(a (u)) = h(a()) ) Sinon h(a (u)) = h(a())-1

24 2) Le sous-arbre gauche de u à hauteur h Suppression dans un arbre AVL rééquilibrage : rotation gauche-droite y u y h u h(a (y)) = h(a())-1 h h-1 ou h h h-1 h ou h h h Si après une étape de rééquilibrage l'équilibre n est pas rétabli, répéter le rééquilibrage sur le noeud père, et ainsi de suite, au pire jusqu à la racine

25 Suppression dans un arbre AVL Compleité de la suppression : O(log n) Phase de descente: O(log n) Phase de rééquilibrage: O(log n) on remonte jusqu'à un noeud de hauteur h en suite O(h-h ) rééquilibrages au pire

26 Arbres a-b Pour a 2, b 2a -1 Un arbre a-b sur (Tclef, Tval) est un arbre A tel que: 1) les feuilles de A ont toutes la même profondeur et contiennent des couples (clef, val) 2) chaque noeud interne de A a: - un nombre d() de sous-arbres a d() b, dénotés Ai() ( i=1..d() ) - une suite de d()-1 clefs (dites balises) K1,..., Kd()-1 telles que pour tout i clefs dans Ai() Ki < clefs dans Ai+1() 3) à la racine la contrainte sur d() est moins forte: 2 d() b Un arbre 3-5 1, v1 2, v2 5, v3 7, v4 9, v5 10, v6 11, v7

27 Relation entre la hauteur et la taille Proposition Soit A un arbre a-b avec n feuilles et de hauteur h, alors log n / log b h 1 + log (n/2) / log a Preuve: n b h parce que chaque noeud interne a au plus b fils n 2 a h-1 parce que la racine a au moins 2 fils et les autres noeuds internes ont au moins a fils

28 Recherche dans les arbres a-b Recherche d une clef c dans A: descente dans la profondeur de l arbre racine de A Tant que le sommet courant n est pas une feuille trouver i tel que Ki-1 c Ki (parcours linéaire des balises de ) racine de Ai() ( i=1 si c K1 i=d() si c > Kd()-1) Ki-1 Ki c, v A Ai() Compleité: O(hauteur) O(log n) dans le cas pire ( Le parcours linéaire d un noeud interne se fait en temps O(1) )

29 Insertion dans les arbres a-b Insertion de (c,v) (c n apparaît pas dans l arbre) Première phase: descente dans la profondeur de l arbre guidée par les balises (recherche de c) soit ci la clef trouvé à la place de c Insertion de (c, v) comme nouvelle feuille: Deu cas c < ci Ki-1 Ki Ki-1 c Ki ci, vi c, v ci, vi c > ci Ki-1 Ki Ki-1 ci Ki ci, vi ci, vi c, v

30 Deuième phase (rééquilibrage) Insertion dans les arbres a-b Si la contrainte d() b est violée sur un noeud après la première phase: éclater Règle d'éclatement (équilibré) d un noeud interne avec d() fils b+1 d() 2b y K K d() / 2 d() / 2 a d() / 2 d() / 2 b (si est la racine une nouvelle racine contenant uniquement la clef K est créée) Observation: d() b+1 2 a les deu nouveau noeuds sont a-b Apres l éclatement de : le père y de peut avoir b+1 fils: répéter l'éclatement sur y et ainsi de suite (au pire) jusqu à la racine

31 Insertion dans les arbres a-b Compleité: Première phase: O(log n) Deuième phase : O(log n) - chaque opération d'éclatement se fait en temps O(1) L insertion dans un arbre a-b à n éléments (feuilles) se fait en temps O(log n) dans le cas pire

32 Suppression dans les arbres a-b Première phase: Recherche de la feuille y qui contient la clef c (descente dans la profondeur de l arbre) Suppression de y et de la balise correspondante c, v y c, v y Apres la suppression de la feuille, le père peut avoir un nombre insuffisant de fils

33 Suppression dans les arbres a-b Deuième phase (rééquilibrage): Si le noeud interne a un nombre insuffisant de fils, Trois cas: 1) est la racine (et a un seul fils) supprimer et le remplacer par son fils Sinon a un père, a-1 fils et au moins un frère

34 Suppression dans les arbres a-b Deuième phase (rééquilibrage): Si le noeud interne a un nombre insuffisant de fils, Trois cas: 2) a un frère (gauche ou droit) z qui a plus que a fils: partage entre et son frère Règle de partage entre deu noeuds frères: a-1 d() < b a < d(z) b K z K < b > a b a a-1 b a b L arbre est a-b après le partage

35 Suppression dans les arbres a-b Deuième phase (rééquilibrage): Si le noeud interne a un nombre insuffisant de fils, Trois cas: 3) tous les frères de ont a fils: fusion entre et son frère gauche ou droit Règle de fusion entre deu noeuds frères: a d()+d(z) b K y z K a a + b b En particulier a-1 + a b Le noeud y peut ne pas être a-b, après la fusion Répéter le rééquilibrage sur le noeud y et ainsi de suite (au pire) jusqu à la racine

36 Suppression dans les arbres a-b Compleité: Première phase: O(log n) Deuième phase : O(log n) - chaque opération de partage ou fusion se fait en temps O(1) La suppression dans un arbre a-b à n éléments (feuilles) se fait en temps O(log n) dans le cas pire

37 Concaténation et scission dans les arbres a-b Rappel: Type abstrait dictionnaire: un dictionnaire est un ensemble de couples (clef, valeur) Opérations typiques dans un dictionnaire: FUSIONNER ( Dictionnaire D1, Dictionnaire D2 ): Dictionnaire; Retourne D1 D2 SCINDER ( Dictionnaire D, Tclef c ): ( Dictionnaire, Dictionnaire) ; Retourne (D1, D2) où D1 = { (c,v) D c c } et D2=D \ D1 CONCATENER: Cas particulier de fusion, pre-condition: ma(d1) < min(d2) Concaténation et scission peuvent être implémentés efficacement (O(log n)) dans les arbres a-b

38 Concaténation de deu arbres a-b On suppose d abord avoir une clef ma(d1) c < min(d2) et on implémente la fonction suivante: pre-conditions: A1, A2 sont deu arbres a-b qui représentent les dictionnaires D1 et D2, respectivement ma(d1) c < min(d2) CONCATENER ( Arbre A1, Tclef c, Arbre A2 ): Arbre; Retourne un arbre a-b qui représente D1 D2 Compleité de l'implémentation: O( 1+ h1 -h2 ) où hi est la hauteur de Ai, i=1,2

39 Concaténation de deu arbres a-b CONCATENER ( Arbre A1, Tclef c, Arbre A2 ): Arbre; Supposer h1 h2 Première phase: O(1+ h1-h2 ) Descendre la branche la plus à droite de A1, jusqu'au noeud dont le sous arbre a hauteur h2 A1 h1 h2 (si h2 est 0 : cas particulier) h2 A2 Fusionner avec la racine de A2, en utilisant la clef c (Remarquer que clefs de A() c < clefs de A2) h1 c h2 d( ) 2b

40 Concaténation de deu arbres a-b CONCATENER ( Arbre A1, Tclef c, Arbre A2 ): Arbre; Supposer h1 h2 Deuième phase: O(1+ h1-h2 ) h1 c h2 Si d( ) > b éclatement équilibré de ( possible parce que b+1 d( ) 2b ) ; en suite, si nécessaire, éclatement des ancêtres de (au pire) jusqu à la racine

41 Concaténation de deu arbres a-b pre-conditions: A1, A2 sont deu arbres a-b qui représentent les dictionnaires D1 et D2, respectivement ma(d1) < min(d2) CONCATENER ( Arbre A1, Arbre A2 ): Arbre; Retourne un arbre a-b qui représente D1 D2 Implementation: trouver c = clef maimale dans A1 O(1+h1) retourner CONCATENER ( A1, c, A2 ); O( 1 + h1-h2 ) Compleité de la concaténation : O( ma (h1, h2) ) O( log(ma( D1, D2 )) )

42 Scission d un arbre a-b Pre-conditions: A est un arbre a-b qui représente le dictionnaire D La clef c apparaît dans D SCINDER ( Arbre A, Tclef c ): ( Arbre, Arbre) ; Retourne un couple d arbres a-b qui représentent les dictionnaires D1 = { (c,v) D c c } et D2=D \ D1

43 Scission d un arbre a-b Soit π le chemin de la racine de A à la feuille contenant la clef de scission c A g1 d1 g2 d2 d3 g3 c, v

44 Scission d un arbre a-b Soit π le chemin de la racine de A à la feuille contenant la clef de scission c A g1 d1 g2 d2 d3 g3 c, v Les arbres à gauche de π contiennent les clefs c Les arbres à droite de π contiennent les clefs > c

45 Scission d un arbre a-b Soit π le chemin de la racine de A à la feuille contenant la clef de scission c G1 g1 d1 D1 G2 g2 d2 D2 d3 D3 G3 g3 G4 c, v Gi, i h(a)+1 Di, i h(a) Chaque Gi, Di est un arbre a-b (sauf peut-être à la racine) clefs de Di+1 di clefs Di (parce que Di+1 est dans le sous-arbre gauche de di ) clefs de Gi gi clefs Gi+1 (parce que Gi+1 est dans le sous-arbre droit de gi )

46 Scission d un arbre a-b clefs de Gi gi clefs Gi+1 clefs de Di+1 di clefs Di G1 g1 d1 D1 G2 g2 d2 D2 d3 D3 G3 g3 G4 c, v CONCATENER (G3, g3, G4) G3 CONCATENER (D3, d2, D2) D2 CONCATENER (G2, g2, G3 ) G2 CONCATENER (D2, d1, D1) D1 CONCATENER (G1, g1, G2 ) G1 si la racine de G1 (ou D1 ) a un seul fils, la supprimer retourner (G1, D1 )

47 Scission d un arbre a-b G1 D1 G2 D2 D3 G3 G4 c, v CONCATENER (G3, g3, G4) G3 O(1+ h(g3) -h(g4) ) CONCATENER (G2, g2, G3 ) G2 O(1+ h(g2) -h(g3 ) ) CONCATENER (G1, g1, G2 ) G1 O(1+ h(g1) -h(g2 ) ) O(h(A)) ( h(gi ) = h(gi) ou h(gi ) = h(gi)+1, par récurrence )

48 Scission d un arbre a-b Pre-conditions: A est un arbre a-b qui représente le dictionnaire D La clef c apparait dans D SCINDER ( Arbre A, Tclef c ): ( Arbre, Arbre) ; Retourne un couple d arbres a-b qui représentent les dictionnaires D1 = { (c,v) D c c } et D2=D \ D1 Compleité de la scission : O( h(a) ) O( log D )

49 Coût amorti des arbres a-b Coût d une insertion/suppression: O(h + r) Où h = hauteur de l arbre a-b (phase de descente) r h : nombre d'étapes de rééquilibrage (éclatement/partage/fusion) Soit s une suite de n opérations d insertion et suppression dans un arbre a-b P(s): nombre totale de partages effectués dans la suite s d opérations E(s): nombre totale de éclatements effectués dans la suite s d opérations F(s): nombre totale de fusions effectués dans la suite s d opérations Coût amorti de rééquilibrage pour s : P(s)+E(s)+F(s) n

50 Coût amorti des arbres 2-4 Proposition Sur un suite s quelconque de n opérations d insertion et suppression dans un arbre 2-4 initialement vide, le coût amorti de rééquilibrage est constant. Plus précisément, soit i le nombre d insertions et d le nombre de suppressions dans s, alors P(s) d E(s)+F(s) n + (i-d-1) / 2 Par conséquent P(s)+E(s)+F(s) n 3 2 Preuve: Eercice

51 B-arbres Quand b=2a -1, un arbre a-b est appelé B-arbre d ordre a-1 (ordre = nombre de clefs dans un noeud) B-arbres: Utilisées pour la recherche de clefs en mémoire secondaire (indees sur les bases de données) Un noeud interne = une bloc du disque Mesure de compleité: nombre d accès au disque Informations associées a chaque clef (le champ val) : pointeur au données sur disque Compleité de la recherche/modification: O(log n) où n est le nombre de blocs

52 Arbres rouge-noir [Guibas-Sedgewick] Un arbre rouge-noir est un arbre binaire de recherche complet A sur un domaine (Tclef, Tval) avec une fonction c qui associe à chaque sommet de A une couleur {rouge, noir} tels que: 1) seules les noeuds internes (i.e. non-feuille) de A contiennent des couples (clef, valeur) 2) la fonction c satisfait les propriétés suivantes: a) le feuilles sont noires b) la racine est noire c) le père d un sommet rouge est noir d) tous les chemins d un même sommet vers les feuilles ont le même nombre de sommets noirs - ce nombre ( eclu) est appelé rang de

53 Un arbre rouge-noir et sa fonction de rang: Arbres rouge-noir - Eemple (par clarté seulement les clefs, et pas le valeurs, sont représentés)

54 Relation entre la hauteur et la taille Proposition Si A est un arbre-rouge noir ayant n (n>0) sommets et hauteur h, alors log n h 2 log n Preuve 1) Borne inférieure: clairement n h bin(n) = log n +1 h+1 2) Borne supérieure: On montre que pour chaque sommet de A de hauteur h(), de rang k et dont le sous-arbre a n() sommets: h() 2k et 2 k n() De plus, si est rouge, les inégalités sont strictes. Preuve par récurrence sur h(). Vrai si est une feuille ( est noir; h()=0; k=0; n()=1 ).

55 Relation entre la hauteur et la taille Preuve (suite). On montre que pour chaque sommet de A de hauteur h(), de rang k et dont le sous-arbre a n() sommets: h() 2k et 2 k n() De plus, si est rouge, les inégalités sont strictes. Si n est pas une feuille, 3 cas: a deu fils rouges a deu fils noirs a un fils rouge et un fils noir k k k k y z k k-1 y z k-1 k y z k-1 L'énoncé pour suit facilement en utilisant l'hypothèse de récurrence sur y et z

56 Insertion d un couple (c, v) Insertion dans les arbres rouge-noir Première phase: descente dans la profondeur de l arbre, guidée par les clefs dans les noeuds internes. Arrivé sur une feuille, la remplacer par un noeud rouge ayant deu feuilles noires: c Après insertion, tous les noeuds satisfont les propriétés rouge-noir sauf peut-être où les règles b) et c) peuvent être violés: - si est la racine, la racine n est pas noire - si le père de est rouge, le père d un noeud rouge n est pas noir

57 Insertion dans les arbres rouge-noir Deuième phase (rééquilibrage) Soit le noeud courant - est rouge et viole au plus b) et c) ; - est le seul noeud de l arbre qui ne satisfait pas les conditions rouge-noir, est la racine colorer noir l arbre devient rouge-noir n est pas la racine et a un père y rouge y a un père z et z est noir. Deu cas: 1) L autre fils de z est rouge z z y y Dans le cas 1) z devient le nouveau noeud courant

58 2) L autre fils de z est noir Insertion dans les arbres rouge-noir k+1 z k+1 y et t éloignés k+1 y k t rotation simple + recoloriage k+1 z k+1 k+1 w k+1 noeuds noirs, y compris w w t k k+1 z k+1 et t proches k+1 y k t rotation double y k+1 z k+1 + recoloriage k+1 t k Dans les cas 2) après les rotations l arbre est rouge-noir

59 Phase de rééquilibrage: Insertion dans les arbres rouge-noir Réitérer le rééquilibrage du noeud courant au pire jusqu à la racine (jusqu à l application d une règle d'arrêt) Compleité O(log n) (chaque étape de rééquilibrage se fait en O(1) ) Compleité de l insertion: O(log n)

60 Suppression dans les arbres rouge-noir Première phase: descente dans la profondeur de l arbre (recherche du noeud de clef c) et suppression de : 1) un fils de est une feuille, soit y l autre fils - rouge : 1 ( y noir) y équilibre rétabli - noir et y rouge: 1 y équilibre rétabli y - noir et y noir: 1 + feuille dégradée y

61 2) a deu fils non-feuille Suppression dans les arbres rouge-noir c m m y m y Remplacer le contenu de avec le contenu de y (le maimum du sous-arbre gauche) Supprimer y avec l algorithme du cas 1) Compleité de la première phase O(log n)

62 Suppression dans les arbres rouge-noir Deuième phase: élimination du sommet dégradé Propriétés d un sommet dégradé: Le sous-arbre enraciné dans un sommet dégradé est rouge-noir (quand le sommet dégradé est vu comme un noeud noir habituel) Un arbre rouge-noir avec un sommet noir dégradé satisfait toutes les conditions d un arbre rouge-noir si le sommet dégradé est vu comme un noeud noir, mais compte comme 2 dans le calcul du nombre de noeuds noirs sur les chemins rang dans un arbre avec un sommet dégradé: le sommet dégradé compte comme 2

63 Suppression dans les arbres rouge-noir Deuième phase: élimination du sommet dégradé Soit le sommet dégradé courant. Cas possibles: - a un frère noir z z a deu fils (sinon la règle sur les rangs n est pas satisfaite dans le père de : ) - z a deu fils noirs - z a un fils rouge + z - a un frère rouge - est la racine

64 Soit le sommet dégradé courant. Suppression dans les arbres rouge-noir - a un frère noir z et z a deu fils noirs père noir y + k+2 y k+1 y degradé + z k k+1 z k k+1 père rouge y k+2 y k+1 équilibre rétabli + z k k+1 z k k+1

65 Suppression dans les arbres rouge-noir Soit le sommet dégradé courant. - a un frère noir z et z a un fils rouge rotation simple y k+2 z k+2 et t éloignés + k z k+1 y k+1 t k+1 t k+1 k équilibre rétabli et t proches + k y k+2 z k+1 rotation double y k+1 t k+2 z k+1 k+1 t u k u k équilibre rétabli

66 Soit le sommet dégradé courant. Suppression dans les arbres rouge-noir - a un frère rouge y k+2 rotation simple z k+2 + k z k+2 y k+2 + k est dégradé, mais une seule autre étape de rééquilibrage suffit pour rétablir l'équilibre (toutes les règles telles que le père de est rouge rentabilisent l'équilibre) - est la racine + équilibre rétabli

67 Suppression dans les arbres rouge-noir La suppression peut introduire une feuille dégradée chaque étape de rééquilibrage: - augmente de 1 la hauteur du noeud dégradé ou - rétabli l'équilibre au pire à l'étape suivante; - quand le noeud dégradé est la racine, l'équilibre est rétabli Au plus h+1 étapes de rééquilibrage Compleité du rééquilibrage: O(log n) Compleité de la suppression: O(log n)

68 1) A.V. Aho, J.E. Hopcroft, J.D. Ullmann. Data Structures and Algorithms. Addison-Wesley. Bibliographie 2) Danièle Beauquier, Jean Berstel, Philippe Chrétienne. Éléments d Algorithmique. Masson, ) Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction à l'algorithmique. 2e édition, Dunod, 2002.

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

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

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

L exclusion mutuelle distribuée

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

Plus en détail

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

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

Indications pour une progression au CM1 et au CM2

Indications pour une progression au CM1 et au CM2 Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir

Plus en détail

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

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

Plus en détail

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

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

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

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

Plus en détail

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

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

Plus en détail

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

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

Fonction de hachage et signatures électroniques

Fonction de hachage et signatures électroniques Université de Limoges, XLIM-DMI, 123, Av. Albert Thomas 87060 Limoges Cedex France 05.55.45.73.10 pierre-louis.cayrel@xlim.fr Licence professionnelle Administrateur de Réseaux et de Bases de Données IUT

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

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

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

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

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

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

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

É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

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

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

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

La société Klippan France dont l usine est à Gournay-en-Bray en Normandie, La société Autoliv S.A. dont l usine est à Seclin dans le Nord, Normandie.

La société Klippan France dont l usine est à Gournay-en-Bray en Normandie, La société Autoliv S.A. dont l usine est à Seclin dans le Nord, Normandie. 1 REMERCIEMENTS Tout d abord, je tiens à remercier M. Benoît MARSAUD, DG d Autoliv France, pour l accueil qu il m a réservé au sein de sa société. J adresse également mes remerciements à M. Fabrice COQUIN,

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

Plus en détail

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses 6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation

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

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Pourquoi l apprentissage?

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

Plus en détail

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40 Description des actes en série sur le Baladeur Santé TABLE DES MATIERES 1. Généralités 5 1.1. Fonctionnement général du

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

Activité 11 : Nuage de points ou diagramme de dispersion

Activité 11 : Nuage de points ou diagramme de dispersion Activité 11 : Nuage de points ou diagramme de dispersion Un nuage de points, ou diagramme de dispersion, représente des coordonnées dans un plan cartésien. Chaque point dans le plan représente deux quantités.

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Recherche dans un tableau

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

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie

CRYPTOGRAPHIE. Signature électronique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie CRYPTOGRAPHIE Signature électronique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. SIGNATURE ÉLECTRONIQUE I.1. GÉNÉRALITÉS Organisation de la section «GÉNÉRALITÉS»

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

Les systèmes de gestion de version

Les systèmes de gestion de version Les systèmes de gestion de version Matthieu Herrb Envol 2010 http://homepages.laas.fr/matthieu/talks/envol10-sgv.pdf Systèmes de gestion de version - kesako? Logiciel permettant de gérer l historique des

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

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

Plus en détail

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Introduction a la recherche d information Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département

Plus en détail

Documentation RBS Change E-Commerce Core

Documentation RBS Change E-Commerce Core Documentation RBS Change E-Commerce Core 10 septembre 2010 2 Table des matières 1 Introduction à RBS Change 7 1.1 Concepts généraux................................... 7 1.1.1 Qu est-ce qu un module RBS

Plus en détail

Algorithmes récursifs

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

Plus en détail

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

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

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Tableau de bord. Tableau de bord. Statistiques des contenus de votre site (nb de pages, articles, commentaires...)

Tableau de bord. Tableau de bord. Statistiques des contenus de votre site (nb de pages, articles, commentaires...) Tutoriel WORDPRESS Tableau de bord 3 Tableau de bord Statistiques des contenus de votre site (nb de pages, articles, commentaires...) Press-Minute est un outils de publication rapide ou de préparation

Plus en détail

Baladeur Santé VITAL'ACT

Baladeur Santé VITAL'ACT Manuel utilisateur Baladeur Santé VITAL'ACT AUXILIAIRES MEDICAUX Description des actes en série sur le Baladeur Santé VITAL'ACT Description des actes isolés sur le Baladeur Santé VITAL'ACT 2 TABLE DES

Plus en détail

A. Définition et formalisme

A. Définition et formalisme Les cardinalités et les différents types d'associations I. Les cardinalités A. Définition et formalisme Les cardinalités sont des couples de valeur que l'on trouve entre chaque entité et ses associations

Plus en détail

4D Server et les licences : fonctionnement et environnement

4D Server et les licences : fonctionnement et environnement 4D Server et les licences : fonctionnement et environnement Introduction ---------------------------------------------------------------------------------------------------------- Cette note technique

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information TP Numéro 2 CRÉER ET MANIPULER DES TABLEAUX (Mise en forme, insertion, suppression, tri...) 1 CRÉER UN TABLEAU 1.1 Présentation Pour organiser et présenter des données sous forme d un tableau, Word propose

Plus en détail

Définition des Webservices Ordre de paiement par email. Version 1.0

Définition des Webservices Ordre de paiement par email. Version 1.0 Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document

Plus en détail

Algorithmes de recherche

Algorithmes de recherche Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème

Plus en détail

Introduction à MATLAB R

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

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

ODH. Mon Espace. Manuel d utilisation. MON ESPACE ODH Manuel d utilisation. Une question? Contactez le service client au 02 72 68 27 19

ODH. Mon Espace. Manuel d utilisation. MON ESPACE ODH Manuel d utilisation. Une question? Contactez le service client au 02 72 68 27 19 Mon Espace ODH Manuel d utilisation Réalisé par Vecteur Plus Janvier 2013 Sommaire Mon Espace ODH Présentation - Accueil - Livraisons ODH - Gestionnaire d information - Accompagnement ODH - Compte Mon

Plus en détail

UTILISATION DE LA BORNE PAR LE CLIENT

UTILISATION DE LA BORNE PAR LE CLIENT Page1 UTILISATION DE LA BORNE PAR LE CLIENT Achat de carte de lavage en carte bancaire Page 3 et 4 Achat de carte de lavage en billet Page 5 et 6 Rechargement de la carte de lavage en carte bancaire Page

Plus en détail

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU Les formations de remise à niveau(!) pour les bacheliers «non-s» à l'entrée des licences scientifiques. Patrick Frétigné CIIU Cinq exemples Nantes Clermont Ferrand Lorraine Rennes 1 Rouen Nantes REUSCIT

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

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

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

Calculateur quantique: factorisation des entiers

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

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

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

Plus en détail

Algorithmes 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

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. I- ACTIVITES NUMERIQUES (12 points) Exercice 1 (3 points) On considère

Plus en détail

Publication dans le Back Office

Publication dans le Back Office Site Web de l association des ingénieurs INSA de Lyon Publication dans le Back Office Note : dans ce guide, l'appellation GI signifie Groupe d'intérêt, et GR Groupe Régional laure Buisset Page 1 17/09/2008

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique Objectifs Clustering On ne sait pas ce qu on veut trouver : on laisse l algorithme nous proposer un modèle. On pense qu il existe des similarités entre les exemples. Qui se ressemble s assemble p. /55

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Document Object Model (DOM)

Document Object Model (DOM) Document Object Model (DOM) Jean-Claude Charr Maître de conférences IUT de Belfort Montbéliard Université de Franche Comté Description générale Définit un standard pour accéder aux documents structurés

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

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

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

Plus en détail

Cours 14. Crypto. 2004, Marc-André Léger

Cours 14. Crypto. 2004, Marc-André Léger Cours 14 Crypto Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1)

Plus en détail

TD : Codage des images

TD : Codage des images TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment

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

Manuel d utilisation Enregistreur autonome de poche. Version 1.1 TRO-TR-BADL100C-03-F

Manuel d utilisation Enregistreur autonome de poche. Version 1.1 TRO-TR-BADL100C-03-F Manuel d utilisation Enregistreur autonome de poche Version 1.1 TRO-TR-BADL100C-03-F Trotec GmbH & Co. KG Grebbener Str. 7 D-52525 Heinsberg Tel. +49 2452 962-400 Fa +49 2452 962-200 www.trotec.com E-Mail:

Plus en détail

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB Mode d emploi de la clef USB de l I.P.I. Ce mode d emploi est destiné aux étudiant(e)s qui suivent l enseignement de la Phytothérapie Clinique prodigué par l I.P.I. (Institut de Phytothérapie International)

Plus en détail

FANTEC DB-229US Manuel de l'utilisateur

FANTEC DB-229US Manuel de l'utilisateur Manuel de l'utilisateur Contenu: - Installation du disque dur - Guide de Formatage du disque dur - Utilisation du logiciel de sauvegarde INSTALLATION DU DISQUE DUR 1. Retirer le couvercle [A] du boîtier.

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

Programmation linéaire

Programmation linéaire Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire

Plus en détail

Guide d implémentation. Réussir l intégration de Systempay

Guide d implémentation. Réussir l intégration de Systempay Guide d implémentation - Interface avec la plateforme de paiement - Réussir l intégration de Systempay Version 1.4b Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa

Plus en détail

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail