Algorithmique et Analyse d Algorithmes
|
|
- Sophie Briand
- il y a 7 ans
- Total affichages :
Transcription
1 Algorithmique et Analyse d Algorithmes L3 Info Cours 8 : Arbres partiellement ordonnés Benjamin Wack / 1
2 La dernière fois Structure dynamique Arbre Binaire de Recherche (ABR) Opérateurs de base Coûts des opérateurs Aujourd hui Arbre partiellement ordonné, tassé Structure de tas Application à la FAP Algorithmes gloutons 2 / 1
3 Plan 3 / 1
4 Arbre partiellement ordonné, tassé Arbre partiellement ordonné Définition Les clés des nœuds sont munies d un ordre total. Arbre ordonné Un arbre est ordonné si tout nœud a une clé supérieure ou égale à celles de chacun de ses fils (s ils existent). On convient qu un arbre vide est ordonné. J H B F D F E On se limite ici à des arbres binaires : les algorithmes et propriétés présentées ici restent valables mais l implantation est facilitée (cf TD) 5 / 1
5 Arbre partiellement ordonné, tassé Arbre partiellement ordonné Propriétés E H R K N B Les sous-arbres d un arbre ordonné sont eux-mêmes des arbres ordonnés. (par définition) Dans tout chemin de l arbre, les clés sont en ordre décroissant (de père en fils). (par définition) La clé de la racine d un arbre ordonné a la valeur maximum des clés de l arbre. (récurrence structurelle sur l arbre) On parle parfois d arbre tournoi. 6 / 1
6 Arbre partiellement ordonné, tassé Arbre tassé Définition Rappels La hauteur d un arbre est la longueur maximum d un chemin. Le niveau d un nœud est la longueur de son chemin d accès. Arbre tassé Un arbre binaire de hauteur h est tassé si : Tous les nœuds internes ont deux fils, sauf éventuellement le dernier dans l ordre par niveaux. Les feuilles de niveau h sont «tassées à gauche». Ce qui équivaut (presque) à dire : que les feuilles de niveau h 1 sont «tassées à droite» ou que les nœuds internes de niveau h 1 sont «tassés à gauche». Quand l arbre a toutes ses feuilles au niveau h, l arbre binaire est complet. 8 / 1
7 Arbre partiellement ordonné, tassé Arbre tassé Propriétés Structure Tous les niveaux sont complets, sauf éventuellement le dernier. Un arbre tassé contient au max. un nœud unaire et dans ce cas : ce nœud n a qu un fils gauche ; n est pair. Hauteur et nombre de nœuds Le nombre de nœuds du niveau (complet) i est 2 i. Le nombre total de nœuds est n = 2 h 1 (niveaux complets) + x où 0 < x 2 h (dernier niveau) Par conséquent h = log 2 n. 9 / 1
8 Structure de tas Définition et applications Définition Tas binaire Un tas (heap en anglais) est un arbre binaire tassé et ordonné. T B F E P K N R H Il s agit d une structure de données «intermédiaire» : ce n est pas un type abstrait (en particulier il sert à réaliser une FAP efficace) mais on a encore le choix de la représentation de l arbre en mémoire. (pas forcément sous forme chaînée notamment) Remarque Ne pas confondre avec la zone d allocation dynamique en mémoire. 11 / 1
9 Structure de tas Définition et applications Applications Réalisation d une file à priorités efficace On ordonne les nœuds de l arbre par priorité Nœud de priorité maximale (racine) est accessible en temps constant Pas d information superflue à maintenir On retrouvera donc un tas dans tous les algorithmes qui demandent de gérer des priorités : Algorithme de Huffman Algorithmes de graphes (Prim, Dijkstra) Application «évidente» : tri par tas (heapsort) Insérer les éléments à trier dans un tas, puis les extraire un par un. Version plus efficace en place avec un bon choix de représentation. 12 / 1
10 Structure de tas Opérations Ensemble minimal d opérations Tas_Vide : () Tas Est_Vide : Tas bool Insérer : Element Tas () Ajoute (par effet de bord) l élément à ceux déjà présents. Au besoin, réorganise les éléments pour conserver un tas. Trouver_Max : Tas Element Permet de consulter l élément maximum sans modifier le tas (pas d effet de bord). Extraire_Max : Tas () Supprime (par effet de bord) l élément de clé maximale. Au besoin, réorganise les éléments pour conserver un tas. S il y a plusieurs maximums, un seul est supprimé. Dans toute la suite, on manipule des tas de caractères qui sont leur propre clé. 14 / 1
11 Structure de tas Opérations Insertion B F E P K T N R H Idée générale : il faut que l arbre reste tassé et ordonné. Tassé. On ne peut ajouter le nouveau nœud que : au dernier niveau, après la dernière feuille ; ou si le dernier niveau est complet, au tout début du prochain niveau. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, le long du chemin de la nouvelle feuille à la racine. INSERER( e, t ) Créer une nouvelle feuille n de clé e après la dernière feuille de t p := Père(n) while n n est pas la racine et clé(p) < clé(n) Échanger les clés de p et de n n := p p := Père(n) (Percolation vers le haut) 15 / 1
12 Structure de tas Opérations Insertion B F E P S K T N R H Idée générale : il faut que l arbre reste tassé et ordonné. Tassé. On ne peut ajouter le nouveau nœud que : au dernier niveau, après la dernière feuille ; ou si le dernier niveau est complet, au tout début du prochain niveau. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, le long du chemin de la nouvelle feuille à la racine. INSERER( e, t ) Créer une nouvelle feuille n de clé e après la dernière feuille de t p := Père(n) while n n est pas la racine et clé(p) < clé(n) Échanger les clés de p et de n n := p p := Père(n) (Percolation vers le haut) 15 / 1
13 Structure de tas Opérations Insertion B F E P K S T N R H Idée générale : il faut que l arbre reste tassé et ordonné. Tassé. On ne peut ajouter le nouveau nœud que : au dernier niveau, après la dernière feuille ; ou si le dernier niveau est complet, au tout début du prochain niveau. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, le long du chemin de la nouvelle feuille à la racine. INSERER( e, t ) Créer une nouvelle feuille n de clé e après la dernière feuille de t p := Père(n) while n n est pas la racine et clé(p) < clé(n) Échanger les clés de p et de n n := p p := Père(n) (Percolation vers le haut) 15 / 1
14 Structure de tas Opérations Insertion B F E S K P T N R H Idée générale : il faut que l arbre reste tassé et ordonné. Tassé. On ne peut ajouter le nouveau nœud que : au dernier niveau, après la dernière feuille ; ou si le dernier niveau est complet, au tout début du prochain niveau. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, le long du chemin de la nouvelle feuille à la racine. INSERER( e, t ) Créer une nouvelle feuille n de clé e après la dernière feuille de t p := Père(n) while n n est pas la racine et clé(p) < clé(n) Échanger les clés de p et de n n := p p := Père(n) (Percolation vers le haut) 15 / 1
15 Structure de tas Opérations Extraction du maximum B F E P K T N R H Même principe : Tassé. On doit supprimer la dernière feuille du dernier niveau. Cependant le maximum est à la racine : on commence par échanger. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, en descendant cette fois vers les feuilles. EXTRAIRE_MAX( t ) f := Dernière feuille de t n := Racine de t Échanger les clés de f et de n Supprimer f while n n est pas une feuille et clé(n) < clé d un fils de n m := Fils de n de clé maximale Échanger les clés de m et de n n := m (Percolation vers le bas) 16 / 1
16 Structure de tas Opérations Extraction du maximum B F P K E N R H Même principe : Tassé. On doit supprimer la dernière feuille du dernier niveau. Cependant le maximum est à la racine : on commence par échanger. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, en descendant cette fois vers les feuilles. EXTRAIRE_MAX( t ) f := Dernière feuille de t n := Racine de t Échanger les clés de f et de n Supprimer f while n n est pas une feuille et clé(n) < clé d un fils de n m := Fils de n de clé maximale Échanger les clés de m et de n n := m (Percolation vers le bas) 16 / 1
17 Structure de tas Opérations Extraction du maximum B F P K R N E H Même principe : Tassé. On doit supprimer la dernière feuille du dernier niveau. Cependant le maximum est à la racine : on commence par échanger. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, en descendant cette fois vers les feuilles. EXTRAIRE_MAX( t ) f := Dernière feuille de t n := Racine de t Échanger les clés de f et de n Supprimer f while n n est pas une feuille et clé(n) < clé d un fils de n m := Fils de n de clé maximale Échanger les clés de m et de n n := m (Percolation vers le bas) 16 / 1
18 Structure de tas Opérations Extraction du maximum B F P K R E N H Même principe : Tassé. On doit supprimer la dernière feuille du dernier niveau. Cependant le maximum est à la racine : on commence par échanger. Ordonné. On procède par échange de clés sans modifier la structure de l arbre, en descendant cette fois vers les feuilles. EXTRAIRE_MAX( t ) f := Dernière feuille de t n := Racine de t Échanger les clés de f et de n Supprimer f while n n est pas une feuille et clé(n) < clé d un fils de n m := Fils de n de clé maximale Échanger les clés de m et de n n := m (Percolation vers le bas) 16 / 1
19 Structure de tas Opérations Complexité Les opérations potentiellement coûteuses sont la comparaison et l échange de clés. Les deux opérations Insérer et Extraire_max sont constituées d une boucle effectuant à chaque itération : une comparaison un échange le long d un seul chemin : leur coût est majoré par la hauteur de l arbre. Celui-ci étant tassé : Complexité de la mise à jour du tas La complexité des opérations Insérer et Extraire_max est en O(log 2 n). 17 / 1
20 Structure de tas Opérations Opérations supplémentaires Pour certains algorithmes, on a besoin d une opération supplémentaire Modifier_priorité (Noeud n, Priorité p) Priorité(n) := p if clé(n) > clé( Père(n) ) Percolation vers le haut else if clé(n) < clé d un fils de n Percolation vers le bas On peut également définir des opérations dérivées des précédentes : Créer_tas ( Tableau t de taille n ) Version naïve par n insertions successives en O(n log n) Version efficace procédant des feuilles vers la racine en O(n) Tri_Par_Tas ( Tableau t ) cf TD 18 / 1
21 Algorithmes gloutons Principe Définition On considère un problème dont la solution est une séquence, un ensemble... On cherche la «meilleure» séquence parmi toutes celles possibles. Algorithme glouton Un algorithme glouton est un algorithme qui construit une telle solution : élément par élément sans jamais revenir en arrière en se basant sur des considérations locales. La séquence construite est un optimum global ; ses sous-séquences sont des optimums des sous-problèmes. Il s agit d une caractéristique de l algorithme mais surtout de la structure du problème (notamment c est impossible s il existe des optima locaux). 20 / 1
22 Algorithmes gloutons Principe Premier exemple : rendu de monnaie Problème : fournir une somme d argent S en monnaie Solution : une suite de (valeurs de) pièces ayant pour total S Meilleure solution : celle utilisant le moins possible de pièces Algorithme glouton 1. Tant que S > 0 : 2. Choisir la pièce de plus grande valeur v inférieure à S 3. Recommencer avec S v. Exemple correct S = 16 avec pièces de 10, 5, 2, 1 : = = = 0 3 pièces Exemple incorrect S = 16 avec pièces de 9, 8 et 1 : 16 9 = = pièces alors que = 16 en 2 pièces 21 / 1
23 Algorithmes gloutons Principe Algorithme générique Utilisables := E Sol := // ensemble vide ou suite vide ou... while Sol non complète et Utilisables non vide Sélectionner x dans Utilisables // selon critère glouton if x compatible avec Sol Ajouter x à Sol // dans certains problèmes // c est toujours le cas if condition // true ou x incompatible ou... Retirer x de Utilisables Renvoyer Sol 22 / 1
24 Algorithmes gloutons Principe Complexité Le choix du prochain élément est en principe efficace car il ne considère qu une partie des données : log n dans une FAP 1 pour les pièces de monnaie (si leurs valeurs sont préalablement triées)... La complexité de l algorithme sera en général de la forme O(n f (n)) où f (le coût du choix) est une fonction sub-linéaire. 23 / 1
25 Algorithmes gloutons Principe Preuve de correction Schéma de preuve générique Pour la boucle principale, on maintient l invariant : Il existe une solution (c-à-d une séquence) optimale dont Sol est un préfixe. La preuve de cet invariant se fait en utilisant les propriétés de l opération Sélectionner et de la mise à jour de Utilisables. Lorsqu il y a potentiellement plusieurs solutions optimales, il est souvent nécessaire de faire appel à une propriété «d échange» : Soit S une solution qui diffère de la gloutonne Sol en construction par le dernier choix effectué : on peut transformer S en une autre solution aussi bonne et qui contient Sol. 24 / 1
26 Algorithmes gloutons Exemple : le problème de choix des activités Problème de choix des activités Énoncé du problème On dispose d une salle pouvant être louée pour une durée variable. On choisit parmi un ensemble de n demandes de location celles qui seront acceptées. Données : les dates de début d i et de fin f i de chaque demande i. Solution optimale = satisfaisant le plus de demandes. CHOIX_ACTIVITES (demandes) Trier les demandes par date de fin croissante. Sol := dispo := 0 // Première date disponible for i := 1 to n if d i dispo // demande acceptable Insérer i dans Sol dispo := f i 26 / 1
27 Algorithmes gloutons Exemple : le problème de choix des activités Preuve de l algorithme glouton On maintient l invariant : Sol est un préfixe d une solution optimale. En début d algorithme Sol est vide, c est donc un préfixe de toute solution. Supposons qu au début de la ième itération Sol est un préfixe d une solution optimale S. Si l itération n ajoute pas de demande à Sol alors elle reste un préfixe de la même S. Sinon, elle ajoute la demande i à Sol. 27 / 1
28 Algorithmes gloutons Exemple : le problème de choix des activités Preuve de l algorithme glouton (2) On distingue alors trois possibilités sur la première demande de S\Sol : c est une demande k < i : impossible car dans ce cas, à l itération k, on a refusé la demande k qui était incompatible avec la dernière demande de Sol. c est la demande k = i : alors Sol {i} est encore un préfixe de S. c est une demande k > i : on montre qu on peut la remplacer par i. Propriété d échange Si la première demande de S\Sol est une demande k > i, alors T = (S\{k}) {i} est également une solution optimale : f i f k donc la demande i est compatible avec toutes les autres demandes de S (qui ont des dates postérieures à f k ). T est de même taille que S. 28 / 1
29 Algorithmes gloutons Exemple : le problème de choix des activités En résumé Aujourd hui Pour accéder rapidement au maximum d un ensemble, il suffit de maintenir une structure partiellement ordonnée. Un tas est un arbre partiellement ordonné dont la forme est fixée (et donc la hauteur aussi). Cette structure permettra de réaliser une File à Priorités avec des opérations en temps logarithmique. Un algorithme glouton permet de résoudre efficacement un problème d optimisation, mais il n en existe pas toujours. La prochaine fois Arbre de codage Entropie Algorithme de Huffman 29 / 1
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étailLes 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étailQuelques Algorithmes simples
Quelques Algorithmes simples Irène Guessarian ig@liafa.jussieu.fr 10 janvier 2012 Je remercie Patrick Cegielski de son aide efficace pour la programmation Java ; la section sur le codage de Huffman a été
Plus en dé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é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é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étailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en dé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é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é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é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étailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en dé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étailMIS 102 Initiation à l Informatique
MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ
Plus en détail1 Recherche en table par balayage
1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément
Plus en détailSub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"
TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION
Plus en détailQuelques algorithmes simples dont l analyse n est pas si simple
Quelques algorithmes simples dont l analyse n est pas si simple Michel Habib habib@liafa.jussieu.fr http://www.liafa.jussieu.fr/~habib Algorithmique Avancée M1 Bioinformatique, Octobre 2008 Plan Histoire
Plus en détailChapitre 7. Récurrences
Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,
Plus en détailFeuille TD n 1 Exercices d algorithmique éléments de correction
Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détail# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailINF601 : Algorithme et Structure de données
Cours 2 : TDA Arbre Binaire B. Jacob IC2/LIUM 27 février 2010 Plan 1 Introuction 2 Primitives u TDA Arbin 3 Réalisations u TDA Arbin par cellules chaînées par cellules contiguës par curseurs (faux pointeurs)
Plus en détailInitiation à LabView : Les exemples d applications :
Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple
Plus en détailAlgorithmes de recherche
Algorithmes de recherche 1 Résolution de problèmes par recherche On représente un problème par un espace d'états (arbre/graphe). Chaque état est une conguration possible du problème. Résoudre le problème
Plus en dé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étailSUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com
Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique
Plus en détailArbres binaires de décision
1 Arbres binaires de décision Résumé Arbres binaires de décision Méthodes de construction d arbres binaires de décision, modélisant une discrimination (classification trees) ou une régression (regression
Plus en dé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é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étailEnsimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1
Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
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étailPlus courts chemins, programmation dynamique
1 Plus courts chemins, programmation dynamique 1. Plus courts chemins à partir d un sommet 2. Plus courts chemins entre tous les sommets 3. Semi-anneau 4. Programmation dynamique 5. Applications à la bio-informatique
Plus en détailQuatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailOrganigramme / Algorigramme Dossier élève 1 SI
Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué
Plus en détail1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4
1 Introduction 1-1 Chaîne de développement Algorithm e C+ + Algorigramm e languag e machine binaire Le programme est écrit à l aide de Multiprog sous forme d algorigramme puis introduit dans le microcontrôleur
Plus en détailSNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources
SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en dé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é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étailLes algorithmes de base du graphisme
Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détailOptimisation for Cloud Computing and Big Data
1 / 23 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 23 Aujourd hui Problèmes de fiabilité on va oublier la dynamicité Placement de VMs en programmation par contraintes
Plus en détailLES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
Plus en détailLe langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Plus en détailPourquoi l apprentissage?
Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage
Plus en dé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étailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
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étailintroduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
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é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étailAlgorithmes récursifs
Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément
Plus en détailCH.6 Propriétés des langages non contextuels
CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
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étailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailAlgorithmique et Programmation
École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................
Plus en détailInitiation à l algorithmique
Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -
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étailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
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étailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
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étailRésolution d équations non linéaires
Analyse Numérique Résolution d équations non linéaires Said EL HAJJI et Touria GHEMIRES Université Mohammed V - Agdal. Faculté des Sciences Département de Mathématiques. Laboratoire de Mathématiques, Informatique
Plus en dé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é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étailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII
ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
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étailThéorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France
Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes
Plus en détaildonnées en connaissance et en actions?
1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailExercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?
Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version
Plus en détailInitiation à la Programmation en Logique avec SISCtus Prolog
Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées
Plus en détailDéroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009
Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30
Plus en détailProgrammation sous QT
SN IR 1 2014-2015 Développement logiciel Programmation Objet Programmation sous QT Projet Alarme Domestique ~ TD n 6~ Conception et Tests Unitaires Date : mars 2015 Version : 3.2 Référence : TD6 Conception
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailOPTIMISATION À UNE VARIABLE
OPTIMISATION À UNE VARIABLE Sommaire 1. Optimum locaux d'une fonction... 1 1.1. Maximum local... 1 1.2. Minimum local... 1 1.3. Points stationnaires et points critiques... 2 1.4. Recherche d'un optimum
Plus en détailTRACER LE GRAPHE D'UNE FONCTION
TRACER LE GRAPHE D'UNE FONCTION Sommaire 1. Méthodologie : comment tracer le graphe d'une fonction... 1 En combinant les concepts de dérivée première et seconde, il est maintenant possible de tracer le
Plus en détailStratégie de recherche adaptative en programmation par contrainte
Université Paul Sabatier École Nationale de l Aviation Civile Master 2 Recherche Informatique et Télécommunication parcours Intelligence Artificielle Simon Marchal Stratégie de recherche adaptative en
Plus en détailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plus en détailPlateforme de capture et d analyse de sites Web AspirWeb
Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises
Plus en détailAlgorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon
Algorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon Rédaction Etudiants-scribes, MIM 2003 et 2004 Cours Yves Robert Travaux Dirigés Yves Caniou et Eric Thierry 2003-2004-2005 2 Table
Plus en détailSTAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Plus en détailArithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot
Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,
Plus en dé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étailUML Diagramme de communication (communication diagram) Emmanuel Pichon 2013
UML Diagramme de communication (communication diagram) 2013 Diagramme de communication (communication diagram) Utilisation / objectifs Sens Ce diagramme présente des objets, des acteurs, des liens et des
Plus en détailUne dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour
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é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étailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailGestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 19/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Gestion de Projet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/0/007 Est-ce bien nécessaire? Principes de gestion = beaucoup d'évidences Pourtant
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détail