Introduction à l’algorithmique et aux structures de données

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

Trois domaines Arithmétique 50% Similitudes planes 30%
Eléments de Génie Logiciel
Algorithmes et structures de données
Introduction à l’Algorithmique
Calculs de complexité d'algorithmes
Les fractions.
Quel est en centimètres le périmètre d’un carré de 5 cm de côté ?
Enseigner l’arithmétique en série L
et évaluation des compétences
Algorithme des différences Fraction irréductible
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Animation pédagogique 2010 / 2011 Circonscription de Loudéac
Références Bibliographiques
Introduction à l’algorithmique
Tice (logiciels) et aide personnalisée.
II. Chaînage, SDD séquentielles
Analyse lexicale Généralités Expressions rationnelles Automates finis
Les algorithmes: complexité et notation asymptotique
Le codage des nombres en informatique
Nombres entiers. Ensembles de nombres
CHAPITRE 1 Arithmétique
Structures de données IFT-10541
Introduction à l’algorithmique
STRUCTURES DE DONNÉES Maxime CROCHEMORE
Algorithmique (Introduction)
Le dernier théorème de Fermat
Calcul des groupes d'homologie d’objets discrets
En calcul mental Trois types dobjectifs peuvent être distingués :
Programmation linéaire en nombres entiers : les méthodes de troncature

III. Récursivité Principe et exemples
Modélisation géométrique de base
IFT Complexité et NP-complétude Chapitre 0 Rappels.
ASI 3 Méthodes numériques pour l’ingénieur
IA IPR Académie de Rennes L’algorithmique une nouveauté ? Regard sur les programmes et les ressources ; quelques pistes.
Mise en forme en Mathématiques
MAXIMISER les RESULTATS
Donc vous aimerez sûrement ce qui suit!!!
Conditions aux Frontières Ouvertes
Soutenance de stage 16 Mai au 5 Août 2011
Soutenance de stage 16 Mai au 5 Août 2011
Un peu de maths (et d’info)
Introduction à l’algèbre
I. Introduction A propos du sujet  L’organisation du cours.
Elaboré par : Seif MESDOUA Mme M.DRIDI
La division Seif Mesdoua..
Eléments d’arithmétique dans l’ensemble des naturels
Paradigmes des Langages de Programmation
ASI 3 Méthodes numériques pour l’ingénieur
Arithmétique Classe 3e.
V. Complexité  Exemples pour démarrer (tri insertion, tri fusion)
Programmation dynamique
INTRODUCTION.
Les principes de la modélisation de systèmes
TAI DE MATHEMATIQUE Michaël Gallego, Alexis Yvin, Bruno Gabriel Promo 2013 Janvier 2009.
ITI1520 Lab #8: Récursivité Gilbert Arbez, Mohamad Eid, Daniel Amyot, Sylvia Boyd, Diana Inkpen et Alan Williams.
Algorithmique et programmation (1)‏
Multiprécision.
III. Récursivité Principe et exemples
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Arbres binaires et tables de hachage
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Introduction et Généralités sur l’Algorithmique
La Récursivité.
Post-optimisation, analyse de sensibilité et paramétrage
Comment améliorer les performances des élèves en calcul mental?
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Le calcul mental _ février 2010 ARGENTEUIL SUD
Pierre Joli Cours de Mathématique Pierre Joli
Transcription de la présentation:

Introduction à l’algorithmique et aux structures de données

I. Introduction  A propos du sujet L’organisation du cours

Plan de séance De quoi est-il question ? Session SDD 2011 Algorithme & SDD : dualité Culture G : histoire et anecdotes Enjeux et principes de l’algorithmique Session SDD 2011 Programme Méthode pédagogique Quelques repères : cours, TD, TP, … Evaluation, coefficients Ce qui change par rapport à 2010 Equipe pédagogique Pour approfondir : bibliographie

Algorithme But : effectuer une opération complexe Données en entrée Production d’un résultat : données en sortie Moyen : succession d’opérations élémentaires Méthode systématique, déterministe Implique une façon de structurer les données à manipuler Equifinalité Plusieurs méthodes possibles Elles ne se valent pas toutes  ENJEU : la performance ! Intro Sujet Algo & SDD

Structure de donnée Organisation des données à manipuler Deux grandes familles élémentaires Structures séquentielles Structures arborescentes Plus généralement… les graphes La structure appelle la méthode de traitement SDD séquentielles : traitement naturellement itératif SDD arborescentes : traitement naturellement récursif Intro Sujet Algo & SDD

Etude de cas Deux exemples issus de l’algorithmique numérique Arithmétique But : addition et multiplication SDD : Numération de position vs. TFA A vous de jouer avec 23.32 = 72 et 22.33 = 108 Polynômes But : Evaluer un polynôme SDD : Polynôme développé vs. factorisé Problème : factoriser est difficile Solution : Algorithme de Horner Intro Sujet Algo & SDD

A retenir Algorithme et SDD sont indissociables Se conçoivent ensemble Répondent à un même but Réaliser une opération complexe De la manière la plus performante possible Pour approfondir (niveau ontologique) http://www.scriptol.fr/programmation/algorithme- definition.php Intro Sujet Algo & SDD

Algorithme : origine étymologique Al Khawarizmi, 783-850 Le Diophante perse Chiffres indiens Œuvre : ..Al-jabr.. (825) Résolution d’équations Méthode systématique Condition d’arrêt Structure algébrique Intro Sujet Culture G

Algorithme : l’archétype antique Euclide, 325-265 av. JC Les Eléments (livre 7) Algorithme d’Euclide Calcul du PGCD Intuition géométrique Simplicité : 1 ligne Efficacité : O(n) Généricité : entiers, polynômes, etc. Intro Sujet Culture G

Algorithme : l’archétype antique En langage algorithmique Exemple de traduction en C unsigned gcd(unsigned a, unsigned b) { if (b == 0) return a; else return gcd(b, a % b); // ou // return b ? gcd(b, a % b) : a; } Elaborer (schématiser, tâtonner, intuiter) Spécifier (langage algorithmique) Implémenter (langage de programmation) Intro Sujet Méthode

Et bien avant Euclide Babyloniens 2000 à 500 av. JC Algorithmes pratiques Astronomie Economie Mathématiques Numération sexagésimale Triplets pythagoriciens 1000 ans avant Pythagore Résolution d’équations Elévation à la puissance Intro Sujet Culture G

Et bien avant Euclide Os d’Ishango ~20000 av. JC De nature arithmétique Associé à un procédé Lequel ? Intro Sujet Culture G

L’art d’opérer avec efficacité Rappel de la motivation historique Le calcul : astronomie, économie, mathématique Ishango, les babyloniens, Euclide et les autres Enjeu : la performance (minimiser la complexité) Temporelle, spatiale Equifinalité, optimalité difficile à prouver Nombreux problèmes ouverts L’algorithmique est un domaine de recherche très actif Plutôt un art qu’une science Mais un art scientifique A rapprocher des arts tactiques en général Astuce et sagacité : une anecdote : Karatsuba Intro Sujet Enjeu

Une anecdote contemporaine Kolmogorov, 1903-1987 Monstre sacré Conjecture de 1952 Multiplication ≥ O(n2) Conférence de 1960 Karatsuba, 1937-2008 Simple étudiant Réfutation : O(n1,58) Nouveau paradigme « diviser pour régner » Intro Sujet Culture G

Une anecdote contemporaine Multiplication de deux nombres en numération de position Nombres de 2n chiffres Décomposition en deux moitiés Représentation algébrique de la multiplication naïve Les multiplications sont plus coûteuses que les additions Version naïve : 4 multiplications intermédiaires Forme équivalente de Karatsuba Complexification Mémorisation et réutilisation de résultats intermédiaires Ajout de 3 opérations additives supplémentaires On tombe à 3 multiplications ! Application récursive du procédé : O(n2)  O(n1,58) Intro Sujet Culture G