Reconnaissance d écriture de chiffres et accélération à l aide d un kd-arbre

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

Download "Reconnaissance d écriture de chiffres et accélération à l aide d un kd-arbre"

Transcription

1 Reconnaissance d écriture de chiffres et accélération à l aide d un kd-arbre Ensimag 1A - Préparation au Projet C Année scolaire Présentation L objet de ce projet est de réaliser un petit programme de reconnaissance d écriture de chiffres. Le programme que vous allez écrire prendra une ou plusieurs images en entrée, représentant un chiffre dessiné par l utilisateur. En sortie, votre programme affichera le chiffre reconnu dans chaque image donnée, après en avoir effectué l analyse. (a) (b) FIGURE 1 (a) Image en niveau de gris de pixels, représentant le chiffre 3. (b) Quelques exemples d images de chiffres issus de la base MNIST. Comme illustré en figure 1(a), l image d un chiffre fourni à votre programme est composée d un rectangle de pixels, chacun représenté par une valeur entre 0 et 255 encodant son niveau de gris. Cette image n est donc pas trivialement interprétable par le programme, pour lequel il est un tableau de valeurs brutes. Pour trouver le chiffre représenté, il faut faire appel à un algorithme de reconnaissance de motif. Il existe de nombreux algorithmes de reconnaissance ; une majorité d entre eux utilise une base d apprentissage, c est à dire une liste d images exemples qui ont préalablement été étiquetées par un ou plusieurs experts (ici humain). La figure 1(b) illustre quelques éléments de la base de chiffres MNIST 1, obtenue en faisant écrire les 10 chiffres à plusieurs milliers de personnes. L expert étiquette chaque image, c est à dire donne, pour chaque image de la base, le chiffre correspondant à son interprétation de l image. Le programme de reconnaissance fournit alors pour toute nouvelle image test (ne figurant pas dans la base), une étiquette en extrapolant à partir des exemples de la base. Parmi les nombreux algorithmes de reconnaissance de motifs existant, il en existe un très simple, qui fait l objet de ce projet. Il s agit de l algorithme de recherche du plus proche voisin (Nearest Neighbor

2 search). Celui-ci consiste, pour une image test donnée, à trouver la plus proche dans la base d exemples étiquetés, et à renvoyer l étiquette correspondante associée dans la base. Cette recherche du plus proche voisin peut être naïve (exhaustive), auquel cas l image test est comparée à toutes les images de la base d apprentissage. Mais ceci n est pas très efficace, particulièrement si l on souhaite reconnaître un grand nombre de chiffres. C est pourquoi on précalcule en général une structure intermédiaire facilitant la recherche et permettant d éviter le parcours exhaustif. Une des structures les plus utilisées pour accélérer cette recherche est le kd-arbre[2]. Vous allez implémenter les structures et algorithmes nécessaires à cette recherche, détaillés ci-dessous. 2 Distance entre images Pour trouver l image de la base la plus «proche» d une image test donnée, il faut définir une distance entre deux images. Pour cela on considère que chaque image d un chiffre est centrée correctement sur le chiffre, et d une résolution carrée d de taille raisonnable. C est le cas des images de la base MNIST, qui font pixels. Une fois centrées, comparer deux images se ramène à comparer deux à deux leurs pixels. On peut alors traiter chaque image de taille d d comme un grand vecteur de valeurs en niveau de gris, de dimension d 2. En notant une image I, une distance d(i 1, I 2 ) peut alors être définie sur la base des normes L p classiques sur les vecteurs : D p (I 1, I 2 ) = x {1,,d 2 } (I 1 (x) I 2 (x)) p 1 p, (1) où I i (x) désigne le niveau de gris du pixel x. En particulier, par exemple, la norme euclidienne entre deux images est très utilisée (p = 2) : D 2 (I 1, I 2 ) = x {1,,d 2 } (I 1 (x) I 2 (x)) 2 (2) Le coût de calcul de cette distances est en O(d 2 ), c est pourquoi, avant de traiter les images, on en réduit en général la dimension, en faisant une mise à l échelle de l image à une dimension plus petite : typiquement d = 7 ou 8. Une fois la distance choisie, et la base d apprentissage chargée, l algorithme du plus proche voisin dans sa version naïve/exhaustive est très simple à écrire. Reconnaître une image test consiste en une simple boucle calculant sa distance à chaque image exemple en gardant l image la plus proche. Implémentez l algorithme du plus proche voisin version naïve, en vous appuyant sur les structures de données et fonctions fournies pour le chargement d images (cf. Annexe). 3 Accélération avec un kd-arbre La complexité de la reconnaissance en version naïve est en O(Nd 2 ) avec N le nombre d éléments dans la base d apprentissage, et O(P Nd 2 ) si l on veut reconnaître P images tests. Le kd-arbre [2, 1] est un arbre binaire permettant de réduire cette complexité. Son but est d appliquer une stratégie de type «diviser-pour-régner» à la recherche, en stockant les images de la base de manière judicieuse. Le principe est une généralisation de la structure d arbre binaire de recherche, pour des données à plusieurs dimensions. Chaque nœud interne de l arbre partitionne l ensemble des images en deux sous-ensembles de taille équivalente selon la valeur d un pixel choisi. Ainsi, lors d une recherche du plus proche voisin d une image, on pourra progressivement descendre l arbre en fouillant récursivement l un ou l autre de ces sous-ensembles, et obtenir un comportement logarithmique dans les meilleurs cas. 2

3 3.1 Propriété du kd-arbre Chaque nœud interne de l arbre, stocke une image séparatrice I s et une coordonnée de séparation x s (l indice d un pixel), qui partitionne les images en deux sous-ensembles, accessibles via le fils gauche et le fils droit de l arbre. Toute image I du sous-ensemble gauche est telle que I(x s ) < I s (x s ), c est à dire que le niveau de gris du pixel séparateur de I est inférieur à celui du pixel séparateur de l image séparatrice. Réciproquement toute image I du sous-ensemble droit est telle que I(x s ) I s (x s ). Un arbre est illustré en figure FIGURE 2 Un exemple de kd-arbre (deux premiers niveaux seulement). Pour simplifier l exemple, l arbre est représenté avec des images de taille 2 2 (4 valeurs de pixels), représentées ici en chaque noeud. Le carré de couleur représente le pixel séparateur à un nœud donné. L ensemble des images stockées à gauche ont un pixel de valeur inférieure, celles stockées à droite un pixel de valeur supérieure. En résumé, chaque nœud interne de l arbre stocke donc les informations suivantes (voir structure imposée en Annexe) : L indice du pixel séparateur x s. Un pointeur sur l image séparatrice I s stockée dans le nœud. Les pointeurs sur les racines des sous arbres gauches et droits. 3.2 Construction d un kd-arbre La construction d un kd-arbre est récursive. La fonction de construction d un arbre prend en entrée l ensemble des images à structurer. Une bonne construction doit scinder cet ensemble d images en deux sous-ensembles de taille équivalente pour obtenir un arbre équilibré. Les deux sous-arbres gauche et droit sont ensuite construits par récursion sur ces sous-ensembles. Sélection du pixel séparateur. Un critère naïf facile à implémenter dans un premier temps, est de sélectionner un pixel séparateur aléatoirement. Mais il est peu efficace pour la recherche. Un critère très efficace est de choisir un pixel avec la plus large plage de valeurs sur l ensemble des images à partitionner : cela permet de sélectionner un pixel qui sera discriminant pour la recherche. Pour le mettre en oeuvre, on pourra calculer la différence entre max et min des valeurs de chaque pixel sur l ensemble des images, pour conserver celui aux valeurs les plus étendues. Sélection de l image séparatrice. L algorithme de construction sélectionne l image permettant d obtenir deux sous-ensembles de taille équivalente. Pour cela, il trie l ensemble des images selon la valeur (niveau de gris) du pixel séparateur, pour enfin stocker l image médiane de l ensemble dans le nœud. Retour à l algorithme naïf pour les feuilles. L algorithme de construction ci-dessus pourrait être poursuivi jusqu à obtenir des ensembles d images (et donc des feuilles) vides. Pour gagner en stockage 3

4 et en rapidité de traitement récursif, on choisit d arrêter la récursion lorsque le nombre d images restant passe en dessous d un certain seuil (un paramètre de votre méthode, par exemple 10). Les feuilles stockeront donc un ensemble d images non partitionnées, dans un ordre quelconque. On impose pour cela une structure de données basée sur une union, permettant de stocker les deux types de nœuds de l arbre, interne et feuilles (cf. Annexe). 3.3 Recherche du plus proche voisin dans un kd-arbre La recherche dans un kd-arbre repose sur le principe de la séparation et évaluation (branch and bound en anglais). C est à dire que les données sont séparées et hierarchisées, pour permettre une sélection du plus proche voisin la plus économe possible, en élagant au plus tôt toute branche dont l exploration est inutile. Ici, les données ont été séparées spatialement lors de la construction de l arbre. Chaque couple (pixel,image) séparateur dans un nœud interne créée un hyperplan séparateur dans l espace des images, le scindant en deux sous-volumes contenant les sous-ensembles gauche et droit d images. La figure 3 illustre ce phénomène dans le cas d un espace de recherche à deux dimensions (correspondant au cas simplifié où les images n auraient que 2 pixels, pour permettre la visualisation). [5,8] (a) (b) (c) FIGURE 3 (a) Exemple de kd-arbre pour 4 images à 2 pixels, deux nœuds internes et deux feuilles. (b) Visualisation des hyperplans séparateurs correspondants dans l espace des images à deux pixels (abscisse : niveau de gris du premier pixel, ordonnée : celui du deuxième pixel). Il faut imaginer un espace plus général et volumique pour des dimensions supérieures à 2, mais le principe est identique. (c) Principe d élagage des feuilles. Une requête recherchant l image la plus proche de l image test [5,8] n a pas besoin d examiner la feuille contenant [6,3], ni de la comparer à [2,5], dès lors que [8,9] est examinée en premier. En effet, ni le plan séparateur passant par [2,5], ni le sous-espace de la feuille [6,3] n intersecte la sphère maximale donnée par la distance au meilleur candidat [8,9]. En revanche l hyperplan passant par [3,8] intersecte cette sphère et [3,8] devra donc être examinée. Ce qui permettra de trouver que [3,8] est le plus proche voisin de [5,8]. Tiré de [3]. La phase d évaluation des nœuds se fait récursivement, en conservant à tout instant du parcours l image candidate actuellement la plus proche de l image test ainsi que la distance correspondante. Cette distance est une borne maximale et définit une sphère maximale dans laquelle doit se trouver tout meilleur candidat. Ainsi tout sous-volume de l arbre n intersectant pas cette sphère n a pas besoin d être examiné (figure 3(c)). Cette propriété est vraie pour toute distance de forme exprimée en (1). En pratique pour évaluer cette intersection il suffira de faire un test d intervalle sur les valeurs du pixel séparateur du nœud : un sous arbre est exploré ssi son intervalle intersecte l intervalle couvert par la sphère maxi- 4

5 male de recherche. La borne maximale est initialisée à l infini au début du parcours (racine de l arbre). L algorithme d examen d un arbre aura donc les étapes suivantes : Si le nœud examiné est une feuille, comparer l image test à toute image du nœud pour conserver le plus proche et mettre à jour la borne max en conséquence. Pour les nœuds internes, réaliser les 3 étapes suivantes : 1. Examiner le sous-arbre correspondant au volume incluant l image test. Cet examen met à jour la borne et le candidat. 2. Si le plan séparateur passant par l image stockée dans le nœud intersecte la sphère maximale, alors évaluer la distance de cette image distance à l image test. Si inférieure à la borne maximale, mettre à jour celle-ci : l image de ce nœud devient le meilleur candidat. 3. Si le volume correspondant au sous arbre opposé (ne contenant pas l image test) intersecte la sphère maximale, alors examiner ce sous arbre. Cet examen met à jour la borne et le candidat. L ordre est important ici : on examine les candidats du plus proche au plus éloigné selon la valeur du pixel séparateur : tout d abord le sous-arbre ayant le plus de chances de contenir le plus proche voisin (1) puis le nœud lui-même (2), et enfin le sous espace opposé (3). Cela permet de trouver rapidement la borne la plus restrictive possible. Lorsque tous les nœuds pertinents ont été examinés, renvoyer le meilleur candidat, qui est le plus proche voisin dans la base. 4 Travail demandé Pour le mini-projet, il est demandé de réaliser en langage C le module de construction du kd-arbre ainsi que deux programmes décrits ci-dessous. 4.1 Module kd-arbre Le mini-projet devra fournir un module de recherche du plus proche voisin basé sur un kd-arbre. Les fonctionnalités suivantes devront y figurer : types et fonctions pour les distances entre images construction et allocation d un kd-arbre recherche dans un kd-arbre destruction d un kd-arbre le module devra être paramètrable par une fonction d évaluation de distance image (type pointeur de fonction, donné en Annexe) 4.2 Progamme attendu Nous souhaitons trouver dans l archive un programme recognize, qui prend en entrée une seule image de type pgm et renvoie sur la sortie standard uniquement le chiffre reconnu. Les arguments seront fournis via ligne de commande. Les options en ligne de commande devront permettre de spécifier si l on applique l algorithme naïf ou le kd-arbre, ainsi que la dimension d à laquelle les images seront réduites pour la reconnaissance. 4.3 Recommandations d implémentation Représentation des ensembles d images. Pour éviter toute duplication des données images lors de la manipulation d ensembles d images, il est préconisé d utiliser un tableau de pointeurs d images pour les représenter. La manipulation de l ensemble d images ne nécessite alors aucune copie d image ; utiliser quicksort (librairie standard C) pour effectuer le tri à la construction de l arbre. On pourra utiliser un tableau temporaire de pointeurs sur les valeurs d un même pixel pour un ensemble d images, pour faciliter l appel à quicksort. 5

6 Tests recommandés Vous écrirez et fournirez tout test que vous jugerez pertinent permettant de vérifier la correction du programme. Le programme devra être exempt de fuite mémoire et être débogué. Pour contrôler le bon fonctionnement du module, il est conseillé de : comparer l exécution à celle de l algorithme naïf. contrôler le temps d éxécution du programme avec la commande UNIX time compter le nombre de nœuds visités et le nombre de distances image calculées dans le cadre des recherches dans l arbre 5 Extensions facultatives En extension, vous pouvez implémenter un programme perf qui test les images de la base de test MNIST (voir annexe) et renvoie sur la sortie standard le taux de reconnaissance (nombre d images correctement reconnues / nombre d image tests total). Les options en ligne de commande devront permettre de spécifier si l on applique l algorithme naïf ou le kd-arbre, la dimension d, mais aussi le nombre d images testées de la base MNIST (on évitera de tester systématiquement l ensemble complet des images tests, ce qui prend plusieurs minutes). Préférer travailler avec un sous ensemble de 10, 100 ou images tests pour le débogage. On utilisera pour cela la fonction resize_array du module array (cf. Annexe). 6 Annexe 6.1 Structure de données imposée Une structure de données vous est imposée pour le kd-arbre, permettant la représentation des types de nœuds sous forme d une union node de deux structures (interne : kdbranch, feuille : kdleaf). La caractérisation du nœud repose sur un type enuméré kdnode_type, et l accès à l une ou l autre des interprétations du nœud se fera en fonction, avec le champs leaf et branch de l union. Chaque image est supposée stockée comme un tableau de d 2 pixels stockés, indexable de 0 à d 2 1 (une image est donc de type uint8_t*). s t r u c t kdnode ; / noeud i n t e r n e / s t r u c t kdbranch { u i n t 8 _ t split_image ; / p o i n t e u r sur l image s e p a r a t r i c e / u i n t 3 2 _ t index ; / i n d i c e du p i x e l s e p a r a t e u r / s t r u c t kdnode l e f t, r i g h t ; } ; / f e u i l l e / s t r u c t kdleaf { u i n t 3 2 _ t s i z e ; u i n t 8 _ t images ; / images de l a f e u i l l e ( t a b. de p o i n t e u r s ) / } ; typedef enum { BRANCH, / c a r a c t e r i s a t i o n noeud i n t e r n e / LEAF / c a r a c t e r i s a t i o n f e u i l l e / } kdnode_type ; / s t r u c t u r e de noeud du kd a r b r e / s t r u c t kdnode { kdnode_type type ; 6

7 } ; union { } node ; s t r u c t kdleaf l e a f ; s t r u c t kdbranch branch ; / s t r u c t u r e e n c a p s u l a n t un kd a r b r e / s t r u c t kdtree { const s t r u c t array d a t a s e t ; / p o i n t e u r sur images de l a b a s e / s t r u c t kdnode root ; / r a c i n e du kd t r e e / image_distance d i s t _ f u n c ; / p o i n t e u r de f o n c t i o n de d i s t a n c e / u i n t 3 2 _ t nb_pixel ; / nb de p i x e l s d une image / u i n t 3 2 _ t l i n e a r _ c u t o f f ; / t a i l l e max d e s f e u i l l e s / } ; 6.2 Modules et données fournis Nous vous fournissons deux modules, image et array, permettant de manipuler des images. Module array. Le module array définit un allocateur et accesseur de tableau d images, avec la propriété que toutes les images d un même tableau ont des dimensions communes données par get_width et get_height. / c r e a t e s a 3 e n t r y array, i n d e x e d by image, x and y ; i n d i c a t e p i x e l s i z e in b y t e s / s t r u c t array c r e a t e _ a r r a y ( u i n t 3 2 _ t size, u i n t 3 2 _ t width, u i n t 3 2 _ t height, u i n t 3 2 _ t p i x e l _ s i z e ) ; / r e s i z e number o f images / void r e s i z e _ a r r a y ( s t r u c t array array, u i n t 3 2 _ t new_size ) ; / r e c l a i m a r r a y memory / void f r e e _ a r r a y ( s t r u c t array array ) ; / image a c c e s s o r : g i v e s p o i n t e r t o image as l i n e a r a r r a y o f p i x e l s images can be a d d r e s s e d as ( u i n t 8 _ t ) g e t _ e l e m ( a, elem ) [ y g e t _ w i d t h + x ] / void get_elem ( const s t r u c t array a, u i n t 3 2 _ t elem ) ; / number o f images in a r r a y a / u i n t 3 2 _ t g e t _ s i z e ( const s t r u c t array a ) ; / g e t s i z e o f s c a l a r v a l u e in b y t e s, as d e f i n e d a t a r r a y c r e a t i o n / u i n t 3 2 _ t g e t _ s c a l a r _ s i z e ( const s t r u c t array a ) ; / g e t width o f image a r r a y / u i n t 3 2 _ t get_width ( const s t r u c t array a ) ; / g e t h e i g h t o f image a r r a y / u i n t 3 2 _ t get_height ( const s t r u c t array a ) ; / g e t i n d e x o f image from i t s d a t a p o i n t e r o b t a i n e d from g e t _ e l e m / u i n t 3 2 _ t get_index ( const s t r u c t array a, void data ) ; Module image. Le module image fournit des fonctions utilitaires permettant de charger les données de la base MNIST - images et étiquettes (labels). Il permet également le chargement et la sauvegarde 7

8 de fichiers image au format pgm, utiles pour le débogage et pour écrire les programmes d application. Enfin il fournit une fonction utilitaire permettant de réduire les dimensions des images d un tableau d images (image_downscale), pour passer des dimensions MNIST à une taille plus réduite, 7 7 par exemple. Les fonctions de chargement load_* crééent toutes un tableau d images ou d étiquettes (appel create_array en interne). Il faudra donc pour chacune bien appeler free_array pour libérer l espace correspondant. Pour le cas des étiquettes il s agit d images de taille 1 1, avec un seul entier de type uint8_t représentant l étiquette (valeur du chiffre). Pour la fonction load_pgm_image chargeant une image pgm, un tableau d une seule image est créé avec l image chargée. / d o w n s c a l e e v e r y image in t h e a r r a y a t o new ( s m a l l e r ) s i z e width x h e i g h t / s t r u c t array image_downscale ( const s t r u c t array a, u i n t 3 2 _ t width, u i n t 3 2 _ t height ) ; / l o a d image a r r a y in MNIST f o r m a t : s e e h t t p : / / yann. l e c u n. com / exdb / mnist / / s t r u c t array load_image_array ( char filename ) ; / l o a d l a b e l a r r a y in MNIST f o r m a t : s e e h t t p : / / yann. l e c u n. com / exdb / mnist / / s t r u c t array l o a d _ l a b e l _ a r r a y ( char filename ) ; / l o a d a pgm as s i n g l e image a r r a y / s t r u c t array load_pgm_image ( char filename ) ; / s a v e a r r a y e l e m e n t ( elem ) as a pgm as s i n g l e image a r r a y / void save_pgm_image ( char filename, const s t r u c t array a, u i n t 3 2 _ t elem ) ; / d e f i n e f u n c t i o n p o i n t e r t y p e f o r d i s t a n c e s between two images / typedef f l o a t ( image_distance ) ( const u i n t 8 _ t imga, const u i n t 8 _ t imgb, u i n t 3 2 _ t width, u i n t 3 2 _ t height ) ; / e u c l i d e a n d i s t a n c e ( with i m a g e _ d i s t a n c e p r o t o t y p e ) / f l o a t image_euclidean_distance ( const u i n t 8 _ t imga, const u i n t 8 _ t imgb, u i n t 3 2 _ t width, u i n t 3 2 _ t height ) ; Données fournies. Nos fournissons les fichiers de la base MNIST contenant images test (t10k-images-idx3-ubyte) et images de la base d apprentissage (train-images-idx3-ubyte). Toutes deux sont étiquetées, les fichiers d étiquette sont réciproquement t10k-labels-idx1-ubyte et train-labels-idx1-ubyte. La base d apprentissage est étiquetée par définition, celle des tests l est aussi pour vérification des performances de l algorithme. On peut pour cela calculer des statistiques sur le taux de succès/erreur de la reconnaissance, connaissant la vraie réponse pour les images de la base de test. Références [1] Jon Louis Bentley. Multidimensional divide-and-conquer. Commun. ACM, 23(4) : , April [2] Jerome H. Friedman, Jon Louis Bentley, and Raphael Ari Finkel. An algorithm for finding best matches in logarithmic expected time. ACM Trans. Math. Softw., 3(3) : , September [3] A. Moore. An introductory tutorial on kd-trees. Technical Report Technical Report No. 209, Computer Laboratory, University of Cambridge, Pittsburgh, PA,

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

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

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

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

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

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

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

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

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 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

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

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

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

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

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

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

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

Travaux pratiques avec RapidMiner

Travaux pratiques avec RapidMiner Travaux pratiques avec RapidMiner Master Informatique de Paris 6 Spécialité IAD Parcours EDOW Module Algorithmes pour la Fouille de Données Janvier 2012 Prise en main Généralités RapidMiner est un logiciel

Plus en détail

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

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

Plus en détail

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

Compression de Données - Algorithme de Huffman Document de Conception

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

Plus en détail

Traitement des données avec Microsoft EXCEL 2010

Traitement des données avec Microsoft EXCEL 2010 Traitement des données avec Microsoft EXCEL 2010 Vincent Jalby Septembre 2012 1 Saisie des données Les données collectées sont saisies dans une feuille Excel. Chaque ligne correspond à une observation

Plus en détail

1 Modélisation d être mauvais payeur

1 Modélisation d être mauvais payeur 1 Modélisation d être mauvais payeur 1.1 Description Cet exercice est très largement inspiré d un document que M. Grégoire de Lassence de la société SAS m a transmis. Il est intitulé Guide de démarrage

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

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

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

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

La postproduction. 2014 Pearson France Canon EOS 70D Philippe Garcia

La postproduction. 2014 Pearson France Canon EOS 70D Philippe Garcia 7 La postproduction 7 n La postproduction Revenons maintenant à la photo. Vous venez d immortaliser un instant et vous êtes satisfait de la prise de vue que vous avez contrôlée sur l écran arrière. Attention,

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

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

SUGARCRM MODULE RAPPORTS

SUGARCRM MODULE RAPPORTS SUGARCRM MODULE RAPPORTS Référence document : SYNOLIA_Support_SugarCRM_Module_Rapports_v1.0.docx Version document : 1.0 Date version : 2 octobre 2012 Etat du document : En cours de rédaction Emetteur/Rédacteur

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

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

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

Introduction au maillage pour le calcul scientifique

Introduction au maillage pour le calcul scientifique Introduction au maillage pour le calcul scientifique CEA DAM Île-de-France, Bruyères-le-Châtel franck.ledoux@cea.fr Présentation adaptée du tutorial de Steve Owen, Sandia National Laboratories, Albuquerque,

Plus en détail

Initiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr

Initiation à Excel. Frédéric Gava (MCF) gava@univ-paris12.fr Initiation à Excel Frédéric Gava (MCF) gava@univ-paris12.fr LACL, bâtiment P2 du CMC, bureau 221 Université de Paris XII Val-de-Marne 61 avenue du Général de Gaulle 94010 Créteil cedex Plan de cette année

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

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

Introduction au Data-Mining

Introduction au Data-Mining Introduction au Data-Mining Alain Rakotomamonjy - Gilles Gasso. INSA Rouen -Département ASI Laboratoire PSI Introduction au Data-Mining p. 1/25 Data-Mining : Kèkecé? Traduction : Fouille de données. Terme

Plus en détail

Fonctions de plusieurs variables

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

Plus en détail

La classification automatique de données quantitatives

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

Plus en détail

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

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Master IMA - UMPC Paris 6 RDMM - Année 2009-2010 Fiche de TP

Master IMA - UMPC Paris 6 RDMM - Année 2009-2010 Fiche de TP Master IMA - UMPC Paris 6 RDMM - Année 2009-200 Fiche de TP Préliminaires. Récupérez l archive du logiciel de TP à partir du lien suivant : http://www.ensta.fr/~manzaner/cours/ima/tp2009.tar 2. Développez

Plus en détail

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

SOMMAIRE. Comment se connecter?

SOMMAIRE. Comment se connecter? SOMMAIRE Comment se connecter? Présentation de l interface Notions sur l espace documentaire Création d un dossier Création d un document Modifier un document Copier ou déplacer des documents Exporter

Plus en détail

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Organiser les informations ( approche technique )

Organiser les informations ( approche technique ) Organiser les informations ( approche technique ) Introduction : Le stockage des informations est une fonctionnalité essentielle de l outil informatique, qui permet de garantir la pérennité des informations,

Plus en détail

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence? L ARBORESCENCE Qu est-ce qu un dossier? Un dossier est une pochette vide dans laquelle on peut disposer des documents créés à l aide de l outil informatique. Comme les systèmes utilisés dans la vie courante

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

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

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

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus

Plus en détail

Organiser le disque dur Dossiers Fichiers

Organiser le disque dur Dossiers Fichiers Ce document contient des éléments empruntés aux pages d aide de Microsoft Organiser le disque dur Dossiers Fichiers Généralités La connaissance de la logique d organisation des données sur le disque dur

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

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

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 1 Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 2 Introduction Pourquoi pair à pair? Utilisation de ressources

Plus en détail

Data Mining. Vincent Augusto 2012-2013. École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

Data Mining. Vincent Augusto 2012-2013. École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto. des des Data Mining Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2012-2013 1/65 des des 1 2 des des 3 4 Post-traitement 5 représentation : 6 2/65 des des Définition générale Le

Plus en détail

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

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

Master IMEA 1 Calcul Stochastique et Finance Feuille de T.D. n o 1

Master IMEA 1 Calcul Stochastique et Finance Feuille de T.D. n o 1 Master IMEA Calcul Stochastique et Finance Feuille de T.D. n o Corrigé exercices8et9 8. On considère un modèle Cox-Ross-Rubinstein de marché (B,S) à trois étapes. On suppose que S = C et que les facteurs

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

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

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters

TUTORIAL REUTERS. Utilisation de l'utilitaire de recherche Reuters TUTORIAL REUTERS Connexion à Reuters Allez sur https://portal.hpd.global.reuters.com/auth/login.aspx Le login est reut@ensimag.imag.fr, =1 à 5, le et le mot de passe étant ceux qui vous ont été

Plus en détail

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre : Terminale STSS 2 012 2 013 Pourcentages Synthèse 1) Définition : Calculer t % d'un nombre, c'est multiplier ce nombre par t 100. 2) Exemples de calcul : a) Calcul d un pourcentage : Un article coûtant

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

Traitement bas-niveau

Traitement bas-niveau Plan Introduction L approche contour (frontière) Introduction Objectifs Les traitements ont pour but d extraire l information utile et pertinente contenue dans l image en regard de l application considérée.

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Utilisez Toucan portable pour vos sauvegardes

Utilisez Toucan portable pour vos sauvegardes Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser

Plus en détail

CARTE DE VOEUX À L ASSOCIAEDRE

CARTE DE VOEUX À L ASSOCIAEDRE CARTE DE VOEUX À L ASSOCIAEDRE JEAN-LOUIS LODAY Il y a cinq ans le Centre International de Rencontres Mathématiques de Luminy a envoyé ses voeux avec la carte ci-dessus. L illustration choisie par Robert

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Odile VERBAERE UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU Résumé : Cet article présente une réflexion sur une activité de construction de tableau, y compris

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

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

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

Plus en détail

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

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous : BASE BioArray Software Environment (BASE) est une base de données permettant de gérer l importante quantité de données générées par des analyses de bio-puces. BASE gère les informations biologiques, les

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

www.h-k.fr/publications/objectif-agregation

www.h-k.fr/publications/objectif-agregation «Sur C, tout est connexe!» www.h-k.fr/publications/objectif-agregation L idée de cette note est de montrer que, contrairement à ce qui se passe sur R, «sur C, tout est connexe». Cet abus de langage se

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail

Intégrateur de l ERP Proginov 25 chefs de projet et 32 développeurs dédiés aux clients Proginov

Intégrateur de l ERP Proginov 25 chefs de projet et 32 développeurs dédiés aux clients Proginov Comment gérer 10 000 bases Progress Dans un environnement CLOUD Comment gérer 10 000 Bases Progress 1 Proginov 2 Opérations de bases 3 4 5 Analyse temps réel Optimisation du Code Conclusion 1 Quelques

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Domain Name Service (DNS)

Domain Name Service (DNS) Domain Name Service () 1 PLAN Introduction Nommage avec /etc/hosts Principe du découpage en domaines Configuration de BIND Création d une zone Outils de débuggage (dig, nslookup) Déclaration d une zone

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail