Reconnaissance d écriture de chiffres et accélération à l aide d un kd-arbre
|
|
- Michel Roussy
- il y a 8 ans
- Total affichages :
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 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étailARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Plus en détailCours 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étailProjet 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étailTP : 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étailLes arbres binaires de recherche
Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s
Plus en détailProgrammation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Plus en détailBases 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étailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailCours 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étailGrandes 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étailConventions 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étailDE 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étailArbres 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étailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailDéfinitions. Numéro à préciser. (Durée : )
Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.
Plus en détailECR_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étailIntroduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
Plus en détailUniversité 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étailTravaux 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étailExercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT
Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,
Plus en détail1 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étailCompression 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étailTraitement 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étail1 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étailL 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étailFormats 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étailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailProjet 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étailLa 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étailAlgorithmique, 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étailPlan 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étailSUGARCRM 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étailAlgorithmique 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étailCentre 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étailAnalyse 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étailIntroduction 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étailInitiation à 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étail1. 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étailBig 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étailEncryptions, 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étailIntroduction 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étailFonctions 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étailLa 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étailIntelligence 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étailTP 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étailMaster 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étailBaccalauré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étailSOMMAIRE. 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étailINSERER 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étail6 - 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étailDé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étailOrganiser 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étailL 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étailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailTP3 : 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étailTransmission 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étailPlan 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étailOrganiser 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étailRapidMiner. 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étailAlgorithmes 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étailSauvegarde 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étailData 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étailM2-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étailJade. Projet Intelligence Artificielle «Devine à quoi je pense»
Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges
Plus en détailMaster 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étailExcel 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étailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailTUTORIAL 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étailt 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étailLa 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étailTraitement 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étail3. 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étailLogiciel 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étailUtilisez 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étailCARTE 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étailProgrammes 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étailSuivant 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étailRepré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étailINTRODUCTION 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étailUNE 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étailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailLangage 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étailBASE. 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étailQualité 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étailET 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étailChap 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étailArchitecture 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étailReconstruction 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étailwww.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étailTravaux 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étailInté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étail1/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étailDomain 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étailCours 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étailCré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étailBig 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étailBases 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étailCours 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