Algorithmique P2. Optimisation d'un algorithme de tri , Ulg R.Dumont
|
|
- Maximilien Turgeon
- il y a 8 ans
- Total affichages :
Transcription
1 Algorithmique P2 Optimisation d'un algorithme de tri , Ulg R.Dumont
2 Sources supplémentaires Cours Algorithms and Data Structures in Java, Patrick Prosser, 2000, Glasgow University Algorithmique du tri, C.Jard, 2006, Département Informatique et Télécommunications, ENS Cachan Articles QuickSort, A Historical Perspective and Empirical Study, Laila Khreisat, Fairleigh Dickinson University, 2007 Autres QuickSort is Optimal, Sedgewick & Bentley
3 Diviser pour régner : Quicksort Diviser : Le tableau A[p.. r] est partitionné en deux soustableaux (éventuellement vides) A[p..q 1] et A[q+1..r] tels que chaque élément de A[p..q 1] soit inférieur ou égal à A[q] qui, lui-même, est inférieur ou égal à chaque élément de A[q+1..r]. L indice q est calculé dans le cadre de cette procédure de partitionnement Problème central Régner : Les deux sous-tableaux A[p..q 1] et A[q+1..r] sont triés par des appels récursifs au tri rapide. Combiner : Suite aux appels récursifs sur les sous-tableaux, aucun travail n est nécessaire pour les recombiner : le tableau A[p..r] est maintenant trié.
4 Quicksort
5 Quicksort Initialement, Le premier segment est vide Le deuxième segment également Le segment "non traité" s'étend de l'élément p à l'élément r-1 Le pivot est à l'indice r Chaque itération de la boucle réduit le segment non traité d'un élément Finalement, Le segment non traité est vide Les deux autres segments contiennent 0 ou plusieurs éléments.
6 Quicksort
7 Quicksort - Python
8 Choix du pivot Prendre le premier élément du tableau (ou le dernier ) Si les éléments ne sont pas déjà partiellement triés ou en ordre inverse Ok Sinon Considérons le cas d'une liste déjà triée (ou inversement triée) Quelle est la taille des sous-listes L et R? Tous les éléments vont dans A[p..q-1] ou A[q+1..r] Le pivot étant constamment choisi à cette position, le problème se répercute récursivement. Dans ces cas particuliers, le quicksort est dit "dégénéré" Complexité O(n 2 )
9 Quicksort : Complexité Soit l'arbre de partition du Quicksort À partir de P.Prosser (voir sources sup.)
10 Quicksort : Complexité v1 Soit s i (n), la taille totale des entrées au niveau i de l'arbre T On a s 0 (n) = n s 1 (n) = n-1 (on ne traite plus le pivot) s 2 (n) = n-3 (on ne traite plus les pivots) ou n-2 (si une partition est vide) Pire cas n 1 n 1 n i ( ) ( ) i= 0 i= 0 i= 1 2 ( ) O s n = O n i = O i = O n À partir de P.Prosser (voir sources sup.)
11 Quicksort : Complexité v1 Meilleur des cas = partitions de taille égale : s 0 (n) = n s 1 (n) = n-1 s 2 (n) = n-3 = n-(1+2) s 3 (n) = n-7 = n-(1+2+4)=n-( ) s i (n) = n-( i-1 )=n-(2 i -1)=n-2 i +1 i s ( n) = n + n 1+ n n Il vient i Or, au max, i=log n (puisque prop. à la hauteur de T) Donc, i si ( n) = ( i + 1) n ( ) + 1 Ou encore s ( n) = log n. n + n ( n) + 1 O( nlog n) i
12 Quicksort : Complexité v2 Plus formellement, la complexité de Partition est O(n), à une constante près notée α Le pivot sépare le tableau en deux parties (k) éléments et (n-k) éléments Travaillons sur la relation suivante T(n) = T(k) + T(n-k)+ αn
13 Quicksort : Complexité v2 Cas défavorable : Dans ce cas, on a k=1 et n-k=n-1 (une des soustableaux est vide) pivot le + petit ou le + grand Il vient successivement T(n) = T(1)+T(n-1)+αn = T(n-1)+T(1)+αn = [T(n-2)+T(1)+α(n-1)]+T(1)+αn = T(n-2)+2.T(1)+α(n-1+n) = [T(n-3)+T(1)+α(n-2)]+2.T(1)+α(n-1+n) = T(n-3)+3.T(1)+α(n-2+n-1+n) [= T(n-i)+i.T(1)+α(n-i+1+ +n-2+n-1+n) i 1 = T(n-i)+i.T(1)+α. ( n j) ] n 2 j= 0 = T(1)+(n-1)T(1)+α. ( n j) j= 0 = nt(1)+α(n(n-2)-(n-2)(n-1)/2) O(n²) O(n²)
14 Quicksort : Complexité v2 Cas favorable : Dans ce cas, on a k=n/2 et n-k=n/2 Il vient successivement T(n) = 2T(n/2)+αn = 2(2T(n/4)+α(n/2))+αn = 4T(n/4)+2α(n/2)+αn = 2²T(n/4)+2αn = 2²(2T(n/8)+α(n/4))+2αn = 2³T(n/8)+3αn [= 2 k T(n/2 k )+kαn] = nt(1)+αnlogn O(n O(n logn)
15 Optimisations possibles Choix du pivot Pivot aléatoire, central, median-of-three Autre algorithme de tri pour les petites listes Insertion Sort Optimisations avancées Différentes manières de partitionner les sous-listes (Dutch flag) Améliorations plus 'techniques' (Qsorte, Bsort, )
16 Optimisations possibles Afin de simplifier la présentation des améliorations, adoptons une nouvelle approche Le choix du pivot est inclus en tant que paramètre Le parcours s'effectue à partir des deux extrémités
17 Optimisations possibles Problème : Tableau en partie trié (pire des cas = tableau entièrement trié) Cas relativement fréquent Résulte du choix du pivot Solutions pour le pivot : 1. Pivot aléatoire Solution classique 2. Pivot en milieu de tableau
18 Pivot en tant qu'élément central i j i j i j j i
19 Optimisations possibles La solution idéale aurait été un pivot médian Obtention de deux sous-tableaux de tailles proches [N/2] et [N/2]-1 Problème : détermination coûteuse en temps 3. Calcul de la médiane (T[p], T[r] et T[ (p+r)/2 ]) Median-of-three partitioning: a. Calcul de la médiane à partir des valeurs de 3 éléments choisis aléatoirement, ou b. Calcul basé sur le premier élément, le central et le dernier, ou c. Choix sur 3 groupes de 3 éléments 3 médianes 1 médiane Peut dépendre du nombre d'éléments à trier. Exemple : < 7 : a. 7<=x<=40 : b. > 40 : c.
20 Pivot médian x y z x z y x<=z y>=z Choix des éléments choix du pivot Exemple x m z y placement du pivot sélection des 3 éléments déplacement des éléments échange du pivot sélectionné i j
21 QS : 3-way way, aperçu 'Multikey QuickSort', 'Qsort7' Implémentation du problème du drapeau hollandais (Dutch Flag) de Dijkstra par Benteley et McIlroy Optimisation pour le tri de chaines de caractères Choisir un élément comme pivot Considérer le premier caractère de la string pivot Partitionner en 3 sous-tableaux Le premier contient celles dont le caractère correspondant est inférieur Le second, contient les égaux Le troisième, les supérieurs Tri récursif sur les tableaux 1 et 3 Tri récursif sur le tableau 2, sur le second caractère du pivot
22 QS : 3-way way, aperçu a (d) pointe le premier (dernier) élément inférieur (supérieur) à l'élément pivot b (c) pointe le premier (dernier) élément à traiter b et c sont échangés quand nécessaire Au final, on rassemble les extrémités au centre du tableau Voir L. Khreisat, Sources Suppl.
23 Du tri rapide au tri par insertion Lorsque le tableau contient peu d'éléments (moins de 15), il est conseillé de passer au tri par insertion. Tri itératif Efficace en temps Plus efficace en espace mémoire en raison de l'absence de récursion sur les sous-listes
24 Tri par insertion
25 Complexité du tri par insertion Source basée sur C.Jard, voir s. supp.
26 Tri par insertion cas favorable et défavorable Cas favorable : tableau déjà trié. Fonction linéaire Cas défavorable : tableau trié par ordre décroissant Car et Fonction quadratique
27 Tri par insertion Cas moyen Cas le plus favorable = borne inférieure Cas le plus défavorable = borne supérieure Cas général = entre les deux On fait parfois des analyses de "cas moyen" : Tableau d'entrée = n nombres tirés au hasard (on suppose une loi uniforme). Pour une clé choisie ligne 2 en moyenne la moitié du tableau lui est supérieure et l'autre moitié lui est inférieure.
28 Tri par insertion Cas moyen Donc Il vient Fonction quadratique
29 Tri par insertion complexité simp. Op. fondamentale = comp. de deux éléments
30 Tri par insertion complexité simp.
31 Algorithmique P2 Techniques de preuves , Ulg R.Dumont
32 Preuve par (contre-)exemple Par l'exemple Proposition Il existe des nombres égaux au produit de la somme et du produit de leurs chiffres Preuve 135 = 9*15 Par contre-exemple Proposition Tout nombre 2 i 1 est premier Preuve 2 4-1=15=5*3
33 Preuve par contrapositive Proposition Soient a et b entiers. Si ab est pair, alors a est pair ou b est pair. Preuve Si a et b sont impairs, alors ab est impair. Supposons a = 2i + 1 et b = 2j + 1. Alors, ab = 4ij + 2i + 2j + 1 = 2(2i j + i + j) + 1 Par conséquent, ab est impair.
34 Preuve par contradiction Par contradiction Proposition Soient a et b entiers. Si ab est impair, alors a est impair et b est impair. Preuve Soit ab impair. Supposons que a est pair. Alors, a = 2i. Par conséquent, ab = 2ib. Donc ab est pair, ce qui constitue une contradiction. En conséquence, a est impair et b est impair.
35 Preuve par récurrence Proposition F(n) < 2 n où F est la fonction Fibonacci définie par F(0) = 0, F(1) = 1 et F(n) = F(n 2) + F(n 1). Preuve Initialisation F(0) <2 0, F(1)<2 1. Hérédité Supposons la relation vérifiée pour F(n-2) et F(n-1) Alors F(n)=F(n-2)+F(n-1)<2 n-2 +2 n-1 <2.2 n-1 =2 n
36 Preuve par récurrence Proposition n! 2 n 1 n Preuve Vrai pour n =0 et n =1 Par ailleurs (n +1)!=(n +1)n! (n +1)2 n n 1 =2 n
37 Algorithmique P2 Type de données abstrait , Ulg R.Dumont
38 TDA Type de Données Abstrait ADT Abstract Data Type TDA = Description d'une structure de données et des opérations de manipulation (accès, modification, suppression, ) de cette structure. Il comprend Une partie interface Description de la structure et des opérations possibles Opérations élémentaires (= primitives) Opérations possibles, basées sur ces primitives Les éventuels arguments et retours de ces opérations Une partie implémentation Description explicite
39 TAD La définition d'un TAD repose sur Des structures de données simples Les algorithmes permettant de les implémenter Éventuellement d'autres TAD Il ne dépend pas d'un langage particulier Il permet d'utiliser une structure de données sans pour autant y accéder directement Un TAD est un ensemble limité d'opérations
40 TAD - Exemples Pile push(e : element, p: pile) Place l'élément e au sommet de la pile p pop(p : pile) Supprime l'élément au sommet de la pile taille(p : pile) : entier Retourne la taille de la pile estvide(p : pile) : booleen Teste si la pile p est vide top(p : pile) : value Retourne la valeur de l'élément au sommet de la pile
41 TAD - Exemples File push(e : element, f: file) Place l'élément e en queue de la file f pop(f : file) Supprime l'élément en tête de la file taille(f : file) : entier Retourne la taille de la file estvide(f : file) : booleen Teste si la file f est vide top(f : file) : value Retourne la valeur de l'élément en tête de file
42 TAD Exemples Arbre binaire EstVide(A : arbre) : booleen Teste si l'arbre A est vide Racine(A : arbre) : value Retourne la valeur de l'élément racine de A Gauche(A : arbre) : tree Retourne le sous-arbre à gauche de A Droite(A) : tree Retourne le sous-arbre à droite de A Construire(x,B,C) Construit l'arbre de racine x, ss-arbres gauche B et droit C
1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert
1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes
Plus en dé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é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é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étailArchitecture des Systèmes d Information Architecture des Systèmes d Information
Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau
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é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étailChp. 4. Minimisation d une fonction d une variable
Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie
Plus en dé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é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é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é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é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é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é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é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é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étailMISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année
2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par
Plus en détailExo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.
Eo7 Calculs de déterminants Fiche corrigée par Arnaud Bodin Eercice Calculer les déterminants des matrices suivantes : Correction Vidéo ( ) 0 6 7 3 4 5 8 4 5 6 0 3 4 5 5 6 7 0 3 5 4 3 0 3 0 0 3 0 0 0 3
Plus en dé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é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é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é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étailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
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étail4. Les structures de données statiques
4. Les structures de données statiques 4.1 Tableaux à une dimension 4.1.1 Introduction Imaginons que dans un programme, nous ayons besoin simultanément de 25 valeurs (par exemple, des notes pour calculer
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
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é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é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é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é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étailConception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que
Plus en détailProbabilités sur un univers fini
[http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur
Plus en dé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é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é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é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étailComplexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation
Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul
Plus en dé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étailLes deux points les plus proches
MPSI Option Informatique Année 2001, Deuxième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Les eux pots les plus proches Lors e cette séance, nous allons nous téresser au problème suivant :
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étail* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours
Exo7 Continuité (étude globale). Diverses fonctions Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr * très facile ** facile *** difficulté moyenne **** difficile *****
Plus en détailExo7. Limites de fonctions. 1 Théorie. 2 Calculs
Eo7 Limites de fonctions Théorie Eercice Montrer que toute fonction périodique et non constante n admet pas de ite en + Montrer que toute fonction croissante et majorée admet une ite finie en + Indication
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é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é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é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é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étailImage d un intervalle par une fonction continue
DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction
Plus en détailCHAPITRE VIII : Les circuits avec résistances ohmiques
CHAPITRE VIII : Les circuits avec résistances ohmiques VIII. 1 Ce chapitre porte sur les courants et les différences de potentiel dans les circuits. VIII.1 : Les résistances en série et en parallèle On
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailSouad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
Plus en détailUniversité de Strasbourg UFR de Mathématique et d'informatique. L2 Informatique Semestres S3 et S4. Structures de Données et Algorithmes 1 et 2
Université de Strasbourg UFR de Mathématique et d'informatique L2 Informatique Semestres S3 et S4 Structures de Données et Algorithmes 1 et 2 Fiches d exercices année 2009 2010 1 2 Constructions de base
Plus en détailÉPREUVE COMMUNE DE TIPE 2008 - Partie D
ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE
Plus en dé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é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étailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
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étailLimites finies en un point
8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,
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é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étailBaccalauréat ES/L Amérique du Sud 21 novembre 2013
Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée
Plus en détail6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses
6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
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é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étailAlgorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques. Laurent Canet
Algorithmique, graphes et programmation dynamique Notes de Cours Rapport de Travaux Pratiques Laurent Canet Le 2 juillet 2003 Table des matières I IN202 - Algorithmique 6 1 Système formel de preuve de
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étailRésolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
Plus en détailTP 2 Réseaux. Adresses IP, routage et sous-réseaux
TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP
Plus en détailStructures algébriques
Structures algébriques 1. Lois de composition s Soit E un ensemble. Une loi de composition interne sur E est une application de E E dans E. Soient E et F deux ensembles. Une loi de composition externe
Plus en détailProgrammation Linéaire - Cours 1
Programmation Linéaire - Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence V. Chvátal - Linear Programming, W.H.Freeman, New York, 1983.
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étailGéométrie Algorithmique Plan du cours
Plan du cours Introduction Triangulation de polygones Recherche/localisation Diagrammes de Voronoï Triangulation de Delaunay Arbres de partition binaire 1 Intersection de segments de droite Intersection
Plus en détailPrésentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
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é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étailSuites numériques 3. 1 Convergence et limite d une suite
Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n
Plus en détailPage 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
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é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étailFibonacci et les paquerettes
Fibonacci et les paquerettes JOLY Romain & RIVOAL Tanguy Introduction Quand on entend dire que l on peut trouver le nombre d or et la suite de Fibonacci dans les fleurs et les pommes de pin, on est au
Plus en détailChapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :
Chapitre Chapitre. Séries de Fourier Nous supposons connues les formules donnant les coefficients de Fourier d une fonction - périodique : c c a0 f x dx c an f xcosnxdx c c bn f xsinn x dx c L objet de
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étailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailArchitecture des ordinateurs TD1 - Portes logiques et premiers circuits
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice
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é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étailContexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,
Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailChapitre 9. Algorithmique. Quelques définitions. L'informatique au lycée. http://ow.ly/36jth
L'informatique au lycée http://ow.ly/36jth On désigne par algorithmique l'ensemble des activités logiques qui relèvent des algorithmes ; en particulier, en informatique, cette discipline désigne l'ensemble
Plus en détailObjets Combinatoires élementaires
Objets Combinatoires élementaires 0-0 Permutations Arrangements Permutations pour un multi-ensemble mots sous-ensemble à k éléments (Problème du choix) Compositions LE2I 04 1 Permutations Supposons 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é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étailMATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.
Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
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étail