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.

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

Download "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."

Transcription

1 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, ingénieur développement et tuteur de mon stage, qui m a proposé un projet intéressant et enrichissant pour mon expérience dans le domaine informatique. Je tiens aussi à remercier M. Pierre Christian CELLE, Mme Isabelle RACINE, Mme Céline ANCELIN, Mme Corinne ALEXANDRE, Mme Isabelle RACINE, M. Pascal VITASSE, M. Jérémie DELESTRE, M. Stéphane CAZAT, M. Jean Charles LEBELLEGUY, M. Tony DORE, M. Benjamin PESCHET, M. Nicolas ABRAHAM, M. Marc TRUONG, M. Sébastien HULEUX ainsi que tout le service support et réseau pour leur accueil chaleureux qui a facilité mon intégration dans le service. 1

2 2 SOMMAIRE I. REMERCIEMENTS 1 II. SOMMAIRE 2 A. Références et chiffres-clés 5 B. Autoliv dans le monde 6 C. Autoliv en France 7 D. Le Service Informatique 11 III. INDEXATION 14 A. Introduction 14 B. Système d information de la gestion documentaire 15 C. Segmentation et classification 17 D. Dualité entre classification et segmentation 18 IV. ARBRE D INDEXATION 20 A. Introduction 20 B. B-Arbre 21 C. Structures 21 D. Algorithme des opérations sur les b-arbres 22 E. Exemple 25 V. APPLICATION 27 A. Compression huffman 27 a) Arbre représentant un code prefixe 27 b) arbre binaire complet 28 c) algorithme 28 d) demonstration 29 e) implémentation 29 B. Exemple Huffman 37 C. Diagramme UML B-Arbre 39 D. Diagramme UML des communications distribues 47 VI. PARALLELISATION DE L INDEXATION 42 A. Définitions 50 B. Fonctionnalité 50 C. Les taches 51 D. Structure d un index inversé 52 E. Partionnement de l indexation 53 F. Parallelisation de l indexer 54 G. Calculs des statistiques 55 a)calcul statistique pendant la phase d indexation 56 b)calcul statistique au moment de l ecriture 57 VII. CONCLUSION 59 2

3 Historique du groupe Autoliv Inc., équipementier automobile n 1 sur le marché mondial de l airbag, est une société dont le but est : d inventer, de développer, de produire et de vendre dans le monde entier des systèmes destinés à éviter ou à atténuer les risques de blessures lors d accidents automobiles. En 1962, la société Klippan a été crée par une famille suédoise croyant en le développement de la ceinture de sécurité, alors non obligatoire. Cette société, qui s est implantée à Gournay-en-Bray en 1966, est devenue la propriété du groupe américain Allied Chemical en 1970, au moment où les constructeurs automobiles eurent l obligation d installer des ceintures de sécurité sur leurs véhicules. En 1982, Allied Corporation, anciennement Allied Chemical, décide de vendre les unités de France, d Allemagne et d Espagne du groupe Klippan à un partenaire du groupe Klippan Italie, le groupe italien Nike Finanziaria. En 1985, le groupe Klippan est acheté par Electrolux qui possède déjà une activité similaire sous le nom d Autoliv. A cette période, il y a trois sociétés sur le territoire français : 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, La société Autoliv & Cie. Normandie. dont l usine est à Caudebec-lès-Elbeuf en 3

4 A partir de 1985, la direction entreprend la restructuration de son ensemble industriel, pour répondre à trois objectifs : Rationaliser l utilisation de l outil de production afin d améliorer la productivité et se permettre ainsi de réaliser d importants programmes d investissements permettant de renforcer la situation de la société sur le marché de la ceinture de sécurité, Normaliser les fabrications pour abaisser les prix de revient des produits et ainsi être le plus concurrentiel possible, Consolider la position du groupe auprès des clients : les constructeurs automobiles français, vis-à-vis de la concurrence. C est dans cet objectif que, dès 1986, Autoliv S.A. et Klippan France fusionnent pour former la société Autoliv Klippan, prenant en charge la totalité de l assemblage et de la distribution des ceintures de sécurité auprès des constructeurs. Pendant ce temps la société Autoliv & Cie. concentre son activité sur la fabrication des composants métalliques entrant dans l assemblage de ces ceintures. Au début de l année 1994, le groupe Electrolux décide de se concentrer sur son activité principale, l électroménager, et se sépare du groupe Autoliv en introduisant 100% de ses actions à la bourse de Stockholm. Le capital est ouvert principalement aux investisseurs institutionnels suédois et sur les marchés internationaux. Cette opération financière est réalisée avec un franc succès en juin 1994.Autoliv Klippan fait désormais partie du groupe suédois Autoliv AB et sa raison sociale devient Autoliv France. Le 1 er mai 1997, le groupe Autoliv AB fusionne avec l activité automobile du groupe Morton, donnant naissance à Autoliv Inc. Cette fusion place le nouveau groupe parmi les deux premières sociétés du marché mondial de la sécurité automobile. 2.1 Références et chiffres-clés Le groupe Autoliv Inc., dont les domaines d activités sont tout ce qui se rapporte aux équipements et systèmes de sécurité automobiles, comptait pour l année 2000, plus de employés (dont 2500 en Recherche & Développement) répartis sur 80 sites de production à travers le monde. Le chiffre d affaire s est élevé cette année là à 4,1 milliards $ US et le bénéfice à 169 millions $ US. Constructeurs automobiles clients du groupe Autoliv Inc. : Evolution des ventes des produits durant ces dernières années : 4

5 Exemple de produits fabriqués par Autoliv Inc. : 2.2 Autoliv dans le monde Le groupe Autoliv Inc. est une des deux principales sociétés de fabrication de systèmes de sécurité automobiles (ceintures de sécurité, airbags). A travers le monde, le groupe Autoliv Inc. est représenté par la présence de sites de productions sur tous les continents. Les entreprises Autoliv locales ont non seulement leurs propres ressources de production, mais aussi leurs propres ressources d ingénierie, facilitant ainsi une meilleure accessibilité pour les clients de proximité. Ainsi, certains sites du groupe sont dotés de leur propre centre de R&D et d une unité de crash-tests, faisant profiter leurs recherches et leurs découvertes à tout le groupe. Répartition des sites du groupe Autoliv Inc. dans le monde : 5

6 2.3 Autoliv en France Autoliv France (AKF), dont le siège social est à Paris, dispose d une usine de production de ceintures et systèmes de sécurité à Gournay-en-Bray (à 90 Km de Paris). Pour l année 2001, le chiffre d affaire d AKF était de 629 millions, et l effectif était de 1207 employés et environ 1500 prestataires et intérimaires. Autoliv Composants, filiale d Autoliv France, est spécialisée dans la production de composants métalliques. En 2001, le chiffre d affaire de cette filiale était de 42 millions pour un effectif de 267 personnes. Autoliv Electronics (anciennement Sagem Autoliv) est devenue une filiale à part entière du groupe Autoliv France en Son chiffre d affaire pour 2001 était e 157 millions pour un effectif de 405 employés. D autre part, le groupe Autoliv France détient des participations dans trois autres sociétés : 51% dans Livbag, qui produit des générateurs de gaz entrant dans la fabrication des airbags, 49% dans E.A.K., qui produit et distribue des ceintures de sécurité et des airbags pour le groupe Peugeot S.A., 76% dans Isodelta pour la production de volants. Autoliv France occupe au sein du groupe Autoliv Inc. une place prépondérante sur le plan de la R&D. En effet, la société travaille en étroite collaboration avec les bureaux d études d Autoliv Suède et d Autoliv Allemagne sur le développement de nouveaux produits tels que les airbags et les systèmes pyrotechniques. 6

7 Répartition du groupe Autoliv en France (avec CA et effectifs) : 7

8 Autoliv France, à Gournay-en-Bray, est un centre de compétence leader dans le groupe Autoliv Inc. Ce site est chargé de la conception et de la réalisation des lignes d assemblage des composants entrant dans la fabrication des systèmes de sécurité automobiles. Ce département réalise les équipements de production de nombreuses filiales du groupe, exportant ainsi dans une douzaine de pays. Plan du site de Gournay-en-Bray : 2.4 Le Service Informatique Sous la responsabilité de M. Pierre Christian CELLE, le rôle du service informatique d Autoliv France est de mettre en œuvre un système d informations et une architecture technique performante pour répondre aux besoins des employés de la société. Ce service apporte aussi le support aux clients internes et aux filiales sur différents outils mis à leur disposition. Au niveau du matériel, on ne dénombre pas moins de 650 ordinateurs, dont 120 en production, une centaine de stations de C.A.O. et une quarantaine de serveurs. Les nombreuses interventions quotidiennes en maintenance informatique, représentent l une des facettes les plus connues de ce service. Mais il serait incomplet de penser que l informatique ne se caractérise que par le matériel... L équipe informatique a également à charge l administration d un véritable patrimoine de données et d informations qui sont essentielles à la bonne marche de l entreprise. C est pourquoi le service informatique est composé de six grandes familles de métiers au sein de cette équipe de 30 personnes : Le système réseau : Administration et mise en œuvre de l ensemble des matériels et logiciels permettant aux utilisateurs et aux ordinateurs d échanger des informations. 8

9 Les études : Analyses et développements de programmes spécifiques à Autoliv France et intégration de logiciels du marché. Le support clients interne : Assistance aux utilisateurs et mise en place des postes de travail (logiciels et matériels). Les bases de données : Administration des bases de données (classification des informations afin de pouvoir les retrouver et garantir leur intégrité et unicité). La C.A.O. (Conception Assistée par Ordinateurs) : Développement de programmes et assistance aux utilisateurs. L informatique industrielle : Développement de programmes d informatique industrielle spécifiques aux chaînes de fabrication. 9

10 Ce sujet est proposé dans le cadre de recherche, conception, analyse et développement d un outil permettant la recherche par mots clefs dans un ensemble de document utilisateur qui seront périodiquement mis à jour. Ce sujet est proposé par l entreprise Autoliv Dans l optique de recherche, conception d analyse et de développement, l étudiant devra concevoir un outil de recherche documentaire. Cet outil devra indexer les mots clefs des différents documents afin d effectuer de manière optimale le parcours arborescent de la dite structure. Ce projet devra répondre des contraintes de temps (et par conséquent de complexités) ou l indexation pourra être effectué par l intermédiaire d un traitement parallèle des informations. Le projet proposé est d une durée de cinq mois compter du 8 mars Nous pourrons dégagez différent axes principaux. Tout d abord l indexation des documents, puis le moteur permettant le stockage des informations dégagez lors de cette indexation, la mise en parallèle de l algorithme d indexation. 10

11 3 Indexation 3.1 Introduction Cet outil devra en réponse fournir une liste de document qui devront correspondre à une requête fournit par l utilisateur. Il y a deux possibilités pour l atteindre soit par une recherche sur les informations du document lui-même (libelle, domaine, etc.... ) soit sur le contenu de ces documents (résultat de l indexation). Nous verrons tout d abord le système d information qui recense l ensemble des documents avec leurs propriétés. Ensuite nous verrons quels traitements possibles lors de l indexation sont possibles. Nous verrons la segmentation et la classification thématique d un document servant pour le réordonnement pour le classement des documents par pertinence. 11

12 3.2 Système d information de la gestion documentaire 12

13 Ce système d information constitue la couche supérieure du repository ou sont stocké toutes les informations nécessaires pour la classification des différents documents. Les documents sont organisés en une arborescence. Ces documents peuvent être de type différent. En effet un document peut être un fichier ou un dossier. Ils sont classés par axe. Chaque dossier possède donc un père. Sont aussi rattachés à ces documents un certains nombre de mots clefs prédéfinis permettant une certaine classification globale pour chaque document. De plus différent moyen de stockage des historiques des actions sur les documents sont présent. 13

14 3.3 Segmentation et classification Une simple liste des documents ne suffit pas à l utilisateur pour sélectionner avec pertinence le ou les documents qui lui conviennent. Un court extrait du document doit lui être aussi présenté. Le classement peut être aussi structuré dans une organisation thématique du document (ceci en couplant les deux modes de recherche). Mais il est possible de déterminer des structures dynamiques dans les textes proposés. On peut considérer séparément chaque zone textuelle et de dégager un nouveau mode de lecture. Si on utilise les techniques statistiques classiques d indexation et de calcul de similarités, les thématiques trouvés seront probablement masquées par une prise de vue globale du document. En segmentant dynamiquement un article on pourra isoler les zones textuelles relative à la requête. 3.4 Dualité entre classification et segmentation En classifiant les phrases ou les paragraphes d un document on obtient directement une segmentation. Les frontières thématiques sont trouvées lorsque deux phrases contiguës sont dans deux classes différentes. Un grand nombre de méthode de segmentation sont utilisées, pour la re- 14

15 connaissance de frontières thématique et à la création de résumés automatique. Parmis les documents rapportés certains d entre eux peuvent être impertinent malgré un premier classement par segmentation. Il s agit ici seulement de réordonner. La plupart des algorithmes de segmentation utilisent un modèle vectoriel selon l hypothèse que deux extraits de texte ayant une faible similarité ont de faibles liens thématiques. Ceci étant proche de l hypothèse selon laquelle un document est pertinent vis-à-vis d une requête si leur similarité est grande. Une méthode simple constitue en un calcul des similarités des paragraphes adjacents (analyse des répétitions de chaîne de mots à l intérieur des textes pour trouver les frontières thématiques. Un même concept peut être exprimé par des termes différents, la technique précédente n est donc suffisante. Il faut alors calculer un coefficient de cohésion thématique, ceci étant évalué suivant un réseau sémantique. Tant qu il restera des segments non classés, les segments adjacents les plus proches sont regroupés hiérarchiquement entre la distance qui les sépares et la profondeur de l arbre. Cette technique ne sera appliquée qu a une certaine classe de document. Les différentes unités documentaire étant déterminer lors du stockage des différents documents on effectuera une nouvelle classification sur le document globale et non sur les phrases qu il contient, cela nous permettra de relier les documents liées thématiquement. On pourra ensuite en déduire une seconde segmentation en fonction de l appartenance ou non à une même classes de deux unités documentaires adjacentes dans les textes, et ainsi de suite. Les différentes itérations de ce processus définiront la granularité de la recherche. Une segmentation peut être déduite d une classification effectuée au préalable sur les unités de base composant les textes. Inversement, une classification peut être effectuée à partir de toute segmentation. La classification et la segmentation permettent d offrir à l utilisateur du système de recherche documentaire un parcours thématique à l intérieur des documents ainsi qu une liste ordonnée de zones textuelles pertinentes. Cette technique bien que très fines requiert néanmoins beaucoup de ressources. Toutes les informations obtenues devront être triées et rangé dans une structure adéquate. 15

16 4 Arbre d indexation 4.1 Introduction Il existe différentes techniques pour le stockage d une indexation. Certain stocke ces informations dans un automate pondéré. Ce système est notamment utilisé pour la reconnaissance du langage. Cette représentation compacte forme un large nombre de séquences alternatives et les poids reflètent l incertitude ou la variabilité des données. L index résultant est représenté par un automate déterministe ce qui est optimale pour une recherche. Ceci permet la recherche de motif complexe incluant les informations syntaxiques. Nous considérons que pour chaque langage d expression ui de l ensemble des données considérées i=1.., un automate pondéré Ai sur un alphabet Σ. Le plus gros problème est l indexation total celle qui permet la recherche direct de n importe quel facteur de n importe quel chaîne accepté par cet automate. Ce problème diffère des problèmes d indexation classique du fait que les données entrées sont incertaines. L algorithme doit s assurer des poids de chacune des chaînes fournit en entrée. L idée principale est donc de faire intervenir un automate pondéré finit reliant chaque facteur x à un ensemble d indices de l automate où apparaît x et le nombre d occurrence de x. Néanmoins les données sur lesquels porte notre recherche documentaire ne nécessitent pas obligatoirement un système permettant l entrée de donnée incertaine ou variable à proprement parler. Nous utiliserons donc un arbre (BV arbre) pour le stockage et la restitution des informations provenant de l indexation. 4.2 B-Arbre Les structures de ces arbres supportent un ensemble d opérations de base tel que la recherche, les prédécesseurs, les successeurs, minimum, maximum, insertion et suppression. Toutes ces opérations ont une complexité en fonction de la hauteur de l arbre. L arbre sera équilibré et la hauteur sera en log n ou n est le nombre de nœuds de l arbre. Afin d assurer un l arbre le plus petit possible on peut se baser sur des structures d arbres tel que le red-black tree, l arbre avl ou le b-arbre. Du au grand nombre d informations, l arbre sera stockés sur le disque dur. Les données du fichier de donnée seront indexées par l arbre. Les b-arbres balancés sont optimisés pour ce stockage lent (disque dur). L arbre doit minimiser les accès au disque. 4.3 Structures Contrairement aux arbres binaires, chaque nœud contient un nombre de clef variable et des enfants. Les clefs sont stockées en ordre croissant. Chaque clef a un enfant associé qui est la racine du sous arbre qu elle contient. Ce sous arbre possède des clefs inférieures ou égales à celle-ci mais plus grandes que la clef précédente (par rapport à la racine précédemment citée). 16

17 Dans un b-arbre chaque nœud a un nombre minimum d enfant désigné par le facteur de minimisation (t). Chaque nœud doit avoir au moins t-1 clefs. Dans certaine circonstance le nœud racine peut avoir moins de t-1clefs. Chaque nœud peut avoir au plus 2t-1 clef où autrement dit 2t enfants. Chaque nœud tend à avoir un grand nombre d enfant, ce qui permet de traverser l arbre en un minimum de nœud avant d obtenir la clef désirée. Le facteur t est utilisé pour détermine la taille total de chaque nœud qui est un multiple de la taille d un block sur le dur. Ce choix permet d optimiser les accès au disque. Pour n>=1, la hauteur d une n-clef du b-arbre T de hauteur h et avec t>=2 on a : (Preuve : Cormen, Leiserson et Rivest pages ). Le pire cas est 0(log n). 4.4 Algorithme des opérations sur les b-arbres Les algorithmes pour la recherche, la création et l insertion seront exposés dans cette partie. Les nœuds sont stockés sur le disque, par conséquent chaque chargement d un nœud sera précédé par HD-READ et l écriture par HD-WRITE. 1. Recherche(x,k) Avec x un noeud et k la clef de la recherche i=1 tant que i<= n[x] et k > clef i x] i++ si i<= n[x] et k=clef i [x] alors return (x,i) si feuille[x] alors return null sinon HD-READ(ci[x]) return Recherche(ci[x],k) Cette recherche est similaire à la recherche dans un arbre binaire. Au lieu de choisir entre le fils gauche ou droit, la recherche se fait sur les clefs du nœud courant. Ce choix est linéaire. Apres avoir trouvé une valeur plus grande ou égale on donne la valeur à gauche de cette clef. Si toutes les valeurs sont inférieur à la valeur de la clef désiré alors le fils le plus à droite est suivi. 1. creation d un arbre 17

18 x = new Nœud x.feuille = vrai x.nb clef = 0 HD-WRITE(x) Racine[T] = x La création d un arbre vide se fait en 0(1). Rappelons que seul le nœud racine peut violer les propriétés sur le nombre de clef dans un nœud. 1. scinder arbre(x,i,y) Avec x un noeud i position du découpage y un noeud et z un nœud temporaire z = new nœud z.feuille = y.feuille z.nb clef = t-1 pour j=1 à t-1 clef j [z] = clef j+t [y] si y.feuille == faux alors pour j=1 à t c j [z] = cj+t [y] y.nb clef = t-1 pour j=x.nb clef+1 à i+1 cj+1[x]=cj[x] ci+1=z pour j=x.nb clef à i clefj+1[x]=clefj[x] clefi[x]=cleft[y] x.nb clef++ HD-WRITE(y) HD-WRITE(z) HD-WRITE(x) Si un noeud est plein il est nécessaire d effectuer cette opération de scission. L opération déplace la clef médiane du nœud x dans son père y ou x est le ieme fils de y. Un nouveau nœud z est crée avec les clefs droite de x. Les clefs gauche reste dans x. Le nœud z devient le fils situé à droite de la clef médiane de x qui s est déplacé dans le père y. x quant à lui devient le fils à gauche de la clef médiane. Cet algorithme transforme un nœud plein (avec 2t-1 clefs) dans deux nœuds avec t-1 clefs chacun et que l une des clef est déplacé dans le nœud parent. Cet algorithme à une complexité de O(t) ou t est constant. 1. insertion(k) 18

19 r la racine de l arbre si r.nb clef == 2t-1 alors s = new nœud r = s s.feuille = faux s.nb clefs = 0 c1 = r scinder arbre(s,1,r) insertion(s,k) sinon insertion(r,k) insertion(x,k) i=x.nb clefs si x.feuille == vrai alors tant que i>=1 et k < clefi[x] clefi+1[x]=clefi[x] i clef i+1[x]=k x.nb clef[x]++ HD-WRITE(x) Sinon tant que i<= et k<clef i[x] i i++ HD-READ(ci[x]) Si ci[x].nb clef == 2t-1 Alors scinder arbre(x,i,ci[x]) Si k > clefi[x] Alors i++ Insertion(ci[x],k) Pour effectuer une insertion dans un arbre, le nœud approprié doit être localisé en utilisant un algorithme similaire à celui vu précédemment. Ensuite la clef doit être inséré dans le nœud. Si le nœud est plein on doit scinder le nœud pour faire de la place pour la nouvelle clef. Lors du déplacement de la clef vers le père il se peut que celui-ci soit plein alors il faudra le scinder lui aussi à son tour. L insertion s effectue donc en deux passes, l une pour la recherche du bon nœud et l autre pour des découpages de l arbre. L algorithme présenté ici découpe les nœuds pleins lors de la recherche dans l arbre dans la première passe. Tout ceci afin d éviter de remonter l arbre pour le découper, ceci économisant des accès au disque inutile. Cependant il se peut que certain découpage soit inutile. La complexité de l insertion est en O(t logt n). Un cas particulier subsiste lorsque le nœud root est a scinder, dans ce cas on créer une nouvelle racine. L arbre grandira par le haut. 1. suppression La suppression d un arbre pose un problème. En effet l arbre devant toujours être équilibre il se peut que le nombre de clef d un nœud soit inférieur à t-1. il faudra alors recombiner pour réduire la taille de l arbre. 19

20 Tout d abord on cherche le nœud contenant la clef. Si le nœud est une à supprimer et on la retire de la feuille puis on fait glisser les clefs pour combler le trou. Si le nombre de clef est inférieur au nombre minimal de clef pour le nœud alors on ajuste l arbre. Si le nœud à ajuster est la racine alors on ne fait rien de plus. Sinon on récupère les enfants de même parent supérieur et inférieur. On cherche les feuilles avec les successeurs de la clef On copy les successeurs dans un nœud Si les enfants de même parent ont de la place dans le nœud alors on redistribue les clefs entre le nœud et les enfants de même parent. Sinon si le nœud parent n a qu une clef et qu il est le nœud racine alors on concatène le nœud avec les frères et le parent Chaque noeud de l arbre doit être à 50% remplit. En général il l est à 69%. 1. Exemples L exemple suivant est un b-arbre d ordre 5 c est à dire tous les nœuds interne ont au moins 3 enfants (5/2) et au moins 2 clefs. Le nombre maximum d enfant est 5. Insertion : En accord avec l algorithme de Kruse (exposé précédemment) nous allons à l aide d un exemple construire un arbre avec les lettres C N G A H E K Q M F W L T Z D P R X Y S. Les quatre premières lettres sont donc insérées dans le même nœud racine ce qui donne la figure ci-dessous. Lorsque on tente d insérer le H on ne trouve plus de place dans ce nœud alors on scinde en 2 noeuds, déplaçant la clef médiane G dans un nouveau 20

21 noeud racine. L insertion de E K et Q donne ceci : L insertion de M demande la scission d un nœud en remontant cette même clef. 21

22 Les lettres F, W L et T ne demande aucune scission. Lorsque Z est ajouté le noeud le plus à droite doit être découpé. T est re- 22

23 monté dans son père. Lorsque D est ajouté le noeud le plus à gauche doit être découpé. D est remonté dans son père et on continue en ajoutant P R X Y. Finalement lorsque S est ajouté le noeud avec NPQR est découpé. Néanmoins le père est plein donc on le découpe à son tour envoyant M pour créer une nouvelle racine. 23

24 Suppression : Pour effacer H par exemple on commence bien sur par le rechercher dans l arbre. Si le H est dans une feuille et qu il aura assez de clef restante alors il suffit alors de simplement le retirer. Ce qui donne : Ensuite on supprime T qui n est pas dans une feuille. On cherche son successeur qui est W. On déplace W pour prendre la place de T. Ce qui revient à supprimer W qui fait partit d une feuille. Dans tous les cas ceci revient à une suppression dans une feuille en utilisant cette méthode. 24

25 Ensuite on supprime R. Ceci viole les contraintes de notre arbre. Si le nœud de même parent à gauche où à droite a une clef disponible on pourra prendre cette clef du parent et déplacer une clef du nœud de même parent. Dans ce cas le nœud droit a une clef qu il peut donner. Le successeur W de S est déplacé du parent et X est remonté et S est déplacé ainsi W peut y être insère à sa bonne place. Finalement on supprime E. E est dans une feuille même possédant un nombre de clef insuffisant ni ses frères. Dans un tel cas la feuille doit être combiné avec un ou plusieurs frères. Ceci incluse de descendre la clef père qui est entre ces 25

26 deux feuilles. Dans cet exemple on combine le noeud contenant F avec la feuille contenant A et C et on descend aussi D. Bien sur on peut tout de suite voir que le nœud parent ne contient plus qu une clef G. Ceci viole les contraintes de l arbre. Si ce nœud a un frère a sa gauche ou droite qui a une clef on devra alors emprunter une clef. Supposons que le nœud frère contenant QX avec une clef supplémentaire a droite de Q on pourrait alors descendre M et monter Q ou M était. Toutefois le sous arbre de Q devrais devenir le sous arbre droit de M. En d autre terme le nœud avec NP devrait être rattaché la droite de M dans sa nouvelle position. Dans cet exemple on combinera avec le frère et en descendant M. 26

27 27

28 5 APPLICATION Le langage de programmation utilisé étant java, l écrire sur le disque n est pas optimisé en espace il faut par conséquent compresser les données. Nous utiliserons ici la compression de Huffman. Nous présenterons l algorithme d Huffman puis le diagramme UML du b-arbre. Ensuite nous présenterons le diagramme UML de l architecture distribué pour la communication inter programme. Enfin un exemple de la compression d Huffman. 5.1 Compression huffman Arbre représentant un code prefixe Considérons un arbre binaire infini T avec chaque flèche étiqueté 1 pour la flèche de gauche et 0 pour la flèche de droite. On définit le nommage de chaque nœud x de T tel que la concaténation des étiquettes des flèches soit unique de la racine à x. Un code préfixe sera représenté par un unique et finit sous arbre de T qui contient la racine et la feuille représentant l ensemble du mot. Une telle représentation est possible car deux mots ne peuvent avoir le même chemin dans l arbre. Soit A l alphabet. Pour chaque a de A soit f(a) la fréquence d apparition de a. La formulation des fréquences par une valeur positive ne change pas le problème du calcul d un code optimal. Nous adopterons qu une fréquence de symbole nulle ne peut assigné un mot dans un code optimal. arbre binaire complet Un arbre binaire complet est un arbre qui pour chacun de ces nœuds possède exactement deux enfants. Théorème : Tous les codes préfix optimaux correspondent à un arbre binaire complet. La preuve en est que le poids d un code préfixe à un arbre non complet décroît lorsque l on parcourt le chemin d un nœud. Théorème : Chaque code préfix optimal satisfait l inégalité de McMillan. Théorème de MacMillan : Il existe un code décodable unique avec de longueurs l1... lq si et seulement si Σ2ˆ-li <=1 Corollaire : lorsqu il existe un code décodable unique il y a aussi un code préfix de même coût. algorithme L algorithme manipule une foret d arbre binaire complet. Le nombre total de feuilles est n= A et chaque feuille est étiqueté par un symbole distinct de A. Au début il y a n singleton d arbre. L algorithme fond par pair chacun de ces arbres. Cet algorithme se termine lorsqu il n y a plus qu un seul arbre. Pour fondre deux arbres T1 et T2 on introduit un nouveau nœud avec pour fils gauche T1 et fils droit T2.( peu importe s il l arbre T1 ou T2 est à droite ou à gauche). Il faut donc spécifier qu elle paire d arbre doit être fondu à chaque itération. 28

29 La règle de fusion des arbres est la suivante. Chacun des arbres possèdent une fréquence qui est la somme des symboles associés à l arbre. On fusionne les deux plus petit arbres de la foret. Soit a et b les deux symboles de A de plus petite fréquence. Soit A0=(A \ {a, b}) [ {c} ou c est un nouveau symbole avec f(c)=f(a)+f(b) Ensuite on calcul récursivement l arbre représentant un code préfixe optimale pour A0. On modifie cet arbre en ajoutant deux enfants étiqueté a et b à la feuille c. L arbre résultant est un code préfixe optimal pour A. demonstration Soit X l ensemble des arbres de représentation de tous les codes préfixes pour A dans lesquels les symboles a et b sont associés avec les feuilles de même parent. Lemme : L ensemble X contient l arbre de représentation d un code préfixe optimale. Soit Y l ensemble d arbre représentant tous les codes préfixe de A0. Il y a correspondance entre les ensembles X et Y, pour chaque arbre T dans Y soit h(t) l arbre correspondant à X. Lemme : Pour chaque arbre T de Y, le poids de h(t) est égale au poids de T plus f(a) + f(b). Ceci montre que pour chaque arbre T de poids minimum dans Y correspond à un arbre arbre h(t) de poids minimal dans X. Tant qu il restera un code préfixe optimal on poursuit l algorithme. Tous les codes optimaux ne sont pas forcement des codes préfixes. Par exemple sur un alphabet {a,b,c} ayant les même fréquences, deux codes préfixes optimaux( pour la même entrée) peuvent avoir une distribution différente pour un mot. implémentation On utilise une file de priorité supportant les opérations d insertions et de suppression en O(log n). Initialement on insert chacun des n symboles dans la file de priorité. A chaque itération (ou niveau de récursivité) on retire deux entrées de la file de priorité et on en insert une nouvelle. Le coût total est 2n-1 pour l insertion et de O(n log n) pour la suppression. Toutes les autres opérations ont un coût de O(1) par itération et O(n) pour la totalité. En admettant que les feuilles sont fournit par une file trié par fréquences, au fur et à mesure que l algorithme se déroule on peut trouver la plus petite fréquence en O(1). Néanmoins lorsque qu un noeud est crée on l ajoute à une seconde file de nœud (qui ne sont donc pas des feuilles). Cette file est elle aussi trié. La moyenne du nombre de bit utilisé pour encoder chaque symbole est proche de un, la limite inférieure de l entropie. Excepte dans les cas où l entropie est très proche de zéro ceci implique une compression quasi optimal. Néanmoins on doit connaître la probabilité des symboles avant d encoder. 29

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

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

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr)

Partie 3. Gilles Lebrun (gilles.lebrun@unicaen.fr) Partie 3 Gilles Lebrun (gilles.lebrun@unicaen.fr) Les arbres binaires Définition : C est une structure arborescente ou hiérarchique ou récursive Chaque élément (nœud) constituant la structure de l arbre

Plus en détail

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

Plus en détail

Recherche d information textuelle

Recherche d information textuelle Recherche d information textuelle Pré-traitements & indexation B. Piwowarski CNRS / LIP6 Université Paris 6 benjamin@bpiwowar.net http://www.bpiwowar.net Master IP - 2014-15 Cours et travaux pratiques

Plus en détail

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont

Algorithmique P2. HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Algorithmique P2 HeapSort et files de priorité Ulg, 2009-2010 Renaud Dumont Structure de tas - arbre Un tas est une structure de données qui Permet un nouveau type de tri (Tri par tas) Permet l'implémentation

Plus en détail

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

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

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

Arbres binaires et codage de Huffman

Arbres binaires et codage de Huffman MP Option Informatique Premier TP Caml Jeudi 8 octobre 2009 Arbres baires et codage de Huffman 1 Arbres baires Soit E un ensemble non vide. On défit la notion d arbre baire étiqueté (aux feuilles) par

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

ARBRES BINAIRES DE RECHERCHE

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

Plus en détail

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

Présentation. Logistique. Introduction

Présentation. Logistique. Introduction Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET,

Plus en détail

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51

Séance de TD 05 TD05. 1 Exercice 1. 1.1 Question 1 : dessins des ABR avec hauteurs différentes AG51 Séance de TD 05 1 Exercice 1 1. Dessinez les arbres binaires de recherche de hauteur 2,3,4,5 et 6 pour le même ensemble de clés S = 1,4,5,10,16,17,21. 2. Donnez l algorithme de l opération ArbreRechercher(x,k)

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

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

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

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

THÉORIE DE L'INFORMATION : RAPPELS

THÉORIE DE L'INFORMATION : RAPPELS THÉORIE DE L'INFORMATION : RAPPELS 1920 : premières tentatives de définition de mesure de l'information à partir de 1948 : travaux de Shannon Théorie de l'information discipline fondamentale qui s'applique

Plus en détail

Formats d images. 1 Introduction

Formats d images. 1 Introduction Formats d images 1 Introduction Lorsque nous utilisons un ordinateur ou un smartphone l écran constitue un élément principal de l interaction avec la machine. Les images sont donc au cœur de l utilisation

Plus en détail

Introduction à l Algorithmique

Introduction à l Algorithmique Introduction à l Algorithmique N. Jacon 1 Définition et exemples Un algorithme est une procédure de calcul qui prend en entier une valeur ou un ensemble de valeurs et qui donne en sortie une valeur ou

Plus en détail

Détection et Correction d erreurs

Détection et Correction d erreurs Chapitre 4 Détection et Correction d erreurs 4.1 La couche liaison de données La couche 3 (couche réseau) a pour mission, entre autres, de trouver le meilleur chemin pour acheminer le message. Cette tâche

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 6 Arbres binaires de recherche 6.1 Introduction On a étudié le problème de la recherche dans une collection d éléments ordonnés entre eux : on a montré que Pour une liste contiguë, la recherche

Plus en détail

OBJECTIFS DE CE GUIDE... 5 QU EST-CE QU UN DOCUMENT ACCESSIBLE... 5 LA STRUCTURE D UN DOCUMENT... 6 LES TITRES ET LES SOUS-TITRES...

OBJECTIFS DE CE GUIDE... 5 QU EST-CE QU UN DOCUMENT ACCESSIBLE... 5 LA STRUCTURE D UN DOCUMENT... 6 LES TITRES ET LES SOUS-TITRES... Diffusion de l information dans Internet Guide de création de documents Word accessibles 5 novembre 2009 OBJECTIFS DE CE GUIDE... 5 QU EST-CE QU UN DOCUMENT ACCESSIBLE... 5 LA STRUCTURE D UN DOCUMENT...

Plus en détail

TS214 - Compression/Décompression d une image binaire

TS214 - Compression/Décompression d une image binaire Filière Télécommunications, 2 ème année TS214 - Compression/Décompression d une image binaire De nombreux télécopieurs utilisent la recommandation T.4 Groupe 3 de l International Telecommunications Union

Plus en détail

UV Théorie de l Information. Codes à longueur variable

UV Théorie de l Information. Codes à longueur variable Cours n 5 : UV Théorie de l Information Compression de l information : Codage de source sans distorsion Ex 1 : Code de Shannon Fano Ex 2 : Code de Huffman Ex 3 : Codage par plage Ex 4 : Codage de Lempel

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

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

Représentation d un entier en base b

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

Plus en détail

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

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak

Arbres Binaire. PSI DAKHLA Prof Youssef El marzak. 1 Prof Youssef Elmarzak Arbres Binaire PSI DAKHLA Prof Youssef El marzak 1 Prof Youssef Elmarzak 1.introduction: Les arbre sont très utilisées en informatique, d une part parce que les informations sont souvent hiérarchisées,

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

alg - Arbres binaires de recherche [br] Algorithmique

alg - Arbres binaires de recherche [br] Algorithmique alg - Arbres binaires de recherche [br] Algorithmique Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 25 avril 2015 Table des matières 1 Définition, Parcours, Représentation

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

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

Langages de spécification cours 4

Langages de spécification cours 4 Langages de spécification cours 4 Diagrammes de décision binaire(bdd) Catalin Dima Arbres de décision binaire Étant donnée une formule logique, on peut lui associer un arbre qui permet d évaluer la valeur

Plus en détail

Les principaux domaines de l informatique

Les principaux domaines de l informatique Les principaux domaines de l informatique... abordés dans le cadre de ce cours: La Programmation Les Systèmes d Exploitation Les Systèmes d Information La Conception d Interfaces Le Calcul Scientifique

Plus en détail

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE

COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Le 29 novembre 2013, Rapport projet TS114 COMPRESSION/DECOMPRESSION D UNE IMAGE BINAIRE Par Marc BELLINGER et Antoine BINON. 2eme année Télécommunications. 1 Introduction : Le but de ce projet est d implémenter

Plus en détail

Une calculatrice qui manipule les régions cubiques

Une calculatrice qui manipule les régions cubiques Une calculatrice qui manipule les régions cubiques Emmanuel Haucourt 1 Introduction Alors qu une calculatrice usuelle effectue des opérations numériques (addition, multiplication, soustraction, division,

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

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

Utiliser un tableau de données

Utiliser un tableau de données Utiliser un tableau de données OBJECTIFS : - Définir une Base de Données. - Présentation : tableau de données. - Création d un tableau de données - Gestion d un tableau de données. - Trier et Filtrer des

Plus en détail

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche

Université Paris Diderot Paris 7. TD n 2. Arbres Binaire de Recherche Université Paris Diderot Paris L Informatique Algorithmique Année 00-0, er semestre TD n Arbres Binaire de Recherche Le type de donné arbre" sera utilisé pour indiquer l ensemble de toutes les Arbres Binaires

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

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

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles Access est un logiciel permettant de gérer des données en masse : une liste de clients ou de fournisseurs, un stock de produits, des commandes, des salariés, un club de tennis, une cave à vin, une bibliothèque,

Plus en détail

Initiation aux algorithmes des arbres binaires

Initiation aux algorithmes des arbres binaires Initiation aux algorithmes des arbres binaires Plan I. Les arbres biniaires I. Définition II. Représentation graphique d un arbre III. Terminologie IV. Représentation en mémoire des arbres binaires V.

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

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

Représentation de l information en binaire

Représentation de l information en binaire Représentation de l information en binaire Les ordinateurs sont capables d effectuer de nombreuses opérations sur de nombreux types de contenus (images, vidéos, textes, sons,...). Cependant, quel que soit

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

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire

Arbres binaires. Chapitre 1. 1. Introduction. option informatique. 1.1 Définition formelle d un arbre binaire Chapitre option informatique Arbres binaires. Introduction Dans son acceptation la plus générale, un arbre est un graphe acyclique orienté enraciné : tous les sommets, à l exception de la racine, ont un

Plus en détail

Rapport de TER : Collecte de médias géo-localisés et recherche de points d intérêt avec l algorithme Mean Shift Martin PUGNET Février 2014

Rapport de TER : Collecte de médias géo-localisés et recherche de points d intérêt avec l algorithme Mean Shift Martin PUGNET Février 2014 Rapport de TER : Collecte de médias géo-localisés et recherche de points d intérêt avec l algorithme Mean Shift Martin PUGNET Février 2014 résumé : Ce projet a pour but de récupérer des données géolocalisées

Plus en détail

Systèmes d exploitation Gestion des fichiers. Catalin Dima

Systèmes d exploitation Gestion des fichiers. Catalin Dima Systèmes d exploitation Gestion des fichiers Catalin Dima 1 Problématique Certains processus doivent stocker/avoir accès à une très grande quantité de mémoire Parfois plusieurs ordres de grandeur par rapport

Plus en détail

Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows

Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows Les compromis temps-mémoire et leur utilisation pour casser les mots de passe Windows Philippe Oechslin Laboratoire de Securité et de Cryptographie (LASEC) École Polytechnique Fédérale de Lausanne Faculté

Plus en détail

GUIDE Excel (version débutante) Version 2013

GUIDE Excel (version débutante) Version 2013 Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte

Plus en détail

Découverte de la calculatrice TI-nspire CX / TI-nspire CX CAS

Découverte de la calculatrice TI-nspire CX / TI-nspire CX CAS Découverte de la calculatrice TI-nspire CX / TI-nspire CX CAS Ce document a été réalisé avec la version 3.02 de la calculatrice TI-Nspire CX CAS. Il peut être traité en une ou plusieurs séances (la procédure

Plus en détail

LES ARBRES BINAIRES DE RECHERCHE

LES ARBRES BINAIRES DE RECHERCHE 1 INTRODUCTION À L ALGORITHMIQUE - LES ARBRES BINAIRES DE RECHERCHE Chargée de cours: Transparents:http://www-npa.lip6.fr/~blin/Enseignements.html Email: lelia.blin@lip6.fr Arbres binaires de Recherche

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

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

Plus en détail

Les arbres binaires. Terminologie avancée (1) TAD arbre binaire. Terminologie avancée (2) Terminologie avancée (3)

Les arbres binaires. Terminologie avancée (1) TAD arbre binaire. Terminologie avancée (2) Terminologie avancée (3) Les arbres Structures les plus importantes et les plus utilisées en informatique Liste = cas dégénéré d arbre Eemples: Arbres généalogiques Arbres de classification Arbres d epression / - Traduction de

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire ENSIIE : Programmation avancée 1/20 Langages et mémoire Différence principale entre langages de haut niveau : OCaml, Java, C# langages de bas niveau : C, C++ : Gestion de la mémoire

Plus en détail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Comparaison de tables à distance

Comparaison de tables à distance Rapport de recherche A/375/CRI Fabien Coelho fabien@coelho.net composé avec LAT E X, révision 463 du document 1 Fabien Coelho job enseignant-chercheur à MINES ParisTech ingénieur civil 1993, docteur en

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

ReportBuilder. Pour EBP Bâtiment et EBP Devis et Facturation. Guide d initiation et de prise en main

ReportBuilder. Pour EBP Bâtiment et EBP Devis et Facturation. Guide d initiation et de prise en main ReportBuilder Pour EBP Bâtiment et EBP Devis et Facturation Guide d initiation et de prise en main Edité par EBP Informatique, Rue de Cutesson, BP 95 78513 Rambouillet Cedex Tél : 01 34 94 80 20, Fax :

Plus en détail

Débuter avec Excel. Excel 2007-2010

Débuter avec Excel. Excel 2007-2010 Débuter avec Excel Excel 2007-2010 Fabienne ROUX Conseils & Formation 10/04/2010 TABLE DES MATIÈRES LE RUBAN 4 LE CLASSEUR 4 RENOMMER LES FEUILLES DU CLASSEUR 4 SUPPRIMER DES FEUILLES D UN CLASSEUR 4 AJOUTER

Plus en détail

Algorithme. Table des matières

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

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Liste B. Jacob IC2/LIUM 15 février 2010 Plan 1 Définition du TDA Liste 2 Réalisation du TDA Liste 3 Type de stockage des éléments 4 Recherche d un élément Dans une liste non triée Dans une

Plus en détail

www.netexplorer.fr contact@netexplorer.fr

www.netexplorer.fr contact@netexplorer.fr www.netexplorer.fr 05 61 61 20 10 contact@netexplorer.fr Sommaire Sécurité applicative... 3 Authentification... 3 Chiffrement... 4 Traçabilité... 4 Audits... 5 Sécurité infrastructure... 6 Datacenters...

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1 Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1 Table des matières 1. Accéder au gestionnaire de notes... 3 2. Sélectionner une classe... 4 3. Première

Plus en détail

Plateforme de capture et d analyse de sites Web AspirWeb

Plateforme de capture et d analyse de sites Web AspirWeb Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises

Plus en détail

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Anne Brygoo, Maryse Pelletier, Christian Queinnec, Michèle Soria Université Paris 6 Pierre et Marie Curie septembre 2005

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

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

# 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 =

# 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

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Algorithmique avancée en Python TDs

Algorithmique avancée en Python TDs Algorithmique avancée en Python TDs Denis Robilliard sept. 2014 1 TD 1 Révisions 1. Ecrire un programme qui saisit un entier, et détermine puis affiche si l entier est pair où impair. 2. Ecrire un programme

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

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

Les arbres binaires de recherche équilibrés

Les arbres binaires de recherche équilibrés Les arbres binaires de recherche équilibrés Stéphane londu Table des matières 1 rbres binaires de recherche 1.1 Rappels.................................. 1. Rotations................................. rbres

Plus en détail

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

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

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Guide de démarrage rapide de Windchill

Guide de démarrage rapide de Windchill Guide de démarrage rapide de Windchill OPTIMISEZ VOTRE EXPÉRIENCE UTILISATEUR Table des matières Utilisation du navigateur Le navigateur facilite la navigation... 3 Recherches dans Windchill La partie

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

Chapitre 3 Structures de données linéaires : listes, piles et files

Chapitre 3 Structures de données linéaires : listes, piles et files Chapitre 3 Structures de données linéaires : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de données de base telles les listes en général

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE

EPREUVE OPTIONNELLE d INFORMATIQUE EPREUVE OPTIONNELLE d INFORMATIQUE A) QCM Les réponses au QCM doivent être portées directement sur la feuille de sujet de QCM. Ne pas omettre de faire figurer votre numéro de candidat sur cette feuille

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail