Algorithmique 1. 1 Contenu soumis à la licence CC-BY-SA 3.0. Source : Article Algorithmique de Wikipédia en français (auteurs).

Documents pareils
Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Évaluation et implémentation des langages

Cours d algorithmique pour la classe de 2nde

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Machines virtuelles Cours 1 : Introduction

Programmes des classes préparatoires aux Grandes Ecoles

Raisonnement par récurrence Suites numériques

Cours 1 : La compilation

Pourquoi l apprentissage?

PEUT- ON SE PASSER DE LA NOTION DE FINALITÉ?

La Certification de la Sécurité des Automatismes de METEOR

L informatique comme discipline au gymnase. Renato Renner Institut für Theoretische Physik ETH Zürich

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Éléments de programmation et introduction à Java

Rappels sur les suites - Algorithme

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Le génie logiciel. maintenance de logiciels.

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

4- Grace Hopper : 1- Al Khwarismi : [ 9ème siècle ] Notion d algorithme page 4. [ mi 20ème siècle ] Notion de logiciel page Claude Shannon :

Calculateur quantique: factorisation des entiers

Quelques algorithmes simples dont l analyse n est pas si simple

Algorithmes de recherche

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Indications pour une progression au CM1 et au CM2

CH.6 Propriétés des langages non contextuels

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Chapitre 1 : Introduction aux bases de données

Cours d Informatique

Les BRMS Business Rules Management System. Groupe GENITECH

Organigramme / Algorigramme Dossier élève 1 SI

Sujet de thèse CIFRE RESULIS / LGI2P

PARCOURS COMPLET AU COURS MOYEN

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

ISFA INSTITUT DE SCIENCE FINANCIÈRE ET D ASSURANCES GRANDE ÉCOLE D ACTUARIAT ET DE GESTION DES RISQUES

LE PROBLEME DU PLUS COURT CHEMIN

6. Les différents types de démonstrations

Introduction à la méthodologie de la recherche

UE Programmation Impérative Licence 2ème Année

Algorithmes récursifs

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Introduction à l algorithmique et à Java

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

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

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Informatique Machines à calculer en théorie et en pratique

Peut-on tout programmer?

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

OPTION INFORMATIQUE EN CLASSE DE SECONDE. UN EXEMPLE DE PROGRESSION PÉDAGOGIQUE (suite et fin)

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Le chiffre est le signe, le nombre est la valeur.

Fondements de l informatique Logique, modèles, et calculs

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Méthodes de développement. Analyse des exigences (spécification)

Les diagrammes de modélisation

OASIS Date de publication

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

Initiation à l algorithmique

QUELQUES IDEES POUR UNE FORMATION DANS LE CADRE DE LA MAFPEN EN DIRECTION DES HISTORIENS/GEOGRAPHES.

Présentation du PL/SQL

CORRECTION EXERCICES ALGORITHME 1

Vers l'ordinateur quantique

Introduction à MATLAB R

Programmation linéaire

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Cours Gestion de projet

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Qu est-ce qu un résumé?

MASTER LPL : LANGUE ET INFORMATIQUE (P)

Cours d algorithmique BTS SIO première année. Nicolas FRANCOIS nicolas.francois@free.fr

Master de Bioinformatique et Biologie des Systèmes Toulouse Responsable : Pr. Gwennaele Fichant

Introduction à l Informatique licence 1 ère année Notes de Cours

Les documents primaires / Les documents secondaires

SAS ENTERPRISE MINER POUR L'ACTUAIRE

LICENCE PROFESSIONNELLE

M Études et développement informatique

Cours de Master Recherche

Algorithme. Table des matières

1 I ) Une première approche de l algorithme en seconde, saison 2010 _ Antoine ROMBALDI

Corrigé des TD 1 à 5

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

utiliser un Macintosh dans la classe

Cours Informatique Master STEP

Calculabilité Cours 3 : Problèmes non-calculables.

ITIL V2. Historique et présentation générale

Disparités entre les cantons dans tous les domaines examinés

1 L évolution de l informatique

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

Brique BDL Gestion de Projet Logiciel

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

N oubliez pas de sauvegarder après avoir intégré ce fichier dans votre espace extranet!

Transcription:

Algorithmique 1 L'algorithmique est l'étude et la production de règles et techniques qui sont impliquées dans la définition et la conception d'algorithmes, c'est-à-dire de processus systématiques de résolution d'un problème permettant de décrire précisément des étapes pour résoudre un problème algorithmique. En d'autres termes, un algorithme est une suite finie et non-ambiguë d instructions permettant de donner la réponse à un problème. 1 Contenu soumis à la licence CC-BY-SA 3.0. Source : Article Algorithmique de Wikipédia en français (auteurs).

Table des matières 1 Étymologie...3 2 Histoire...3 2.1 Antiquité...3 2.2 Étude systématique...3 2.3 L'époque contemporaine...4 3 Vocabulaire...4 4 Étude formelle...4 4.1 Structures algorithmiques...5 4.2 Correction, complétude, terminaison...5 Index lexical complétude...2, 4 sv machines de Turing...4 terminaison...2, 4 sv i

1 Étymologie Le mot «algorithme» vient du nom du mathématicien Al-Khwarizmi 2 (latinisé au Moyen Âge en Algoritmi), qui, au IXe siècle écrivit le premier ouvrage systématique donnant des solutions aux équations linéaires et quadratiques. «Algorithme» a donné «algorithmique» auxquels certains préfèrent le néologisme «algorithmie». 2 Histoire 2.1 Antiquité Les premiers algorithmes dont on a retrouvé des descriptions datent des Babyloniens, au III e millénaire av. J.-C.. Ils décrivent des méthodes de calcul et des résolutions d'équations à l'aide d'exemples. Un algorithme célèbre est celui qui se trouve dans le livre 7 des Éléments d'euclide, et appelé algorithme d'euclide. Il permet de trouver le plus grand diviseur commun, ou PGCD, de deux nombres. Un point particulièrement remarquable est qu il contient explicitement une itération et que les propositions 1 et 2 démontrent sa correction. C'est Archimède qui proposa le premier un algorithme pour le calcul de π. 2.2 Étude systématique Le premier à avoir systématisé des algorithmes est le mathématicien arabophone Al Khuwarizmi, actif entre 813 et 833. Dans son ouvrage Abrégé du calcul par la restauration et la comparaison, il étudie toutes les équations du second degré et en donne la résolution par des algorithmes généraux. Il utilise des méthodes semblables à celles des Babyloniens, mais se différencie par ses explications systématiques là où les Babyloniens donnaient seulement des exemples. Le savant arabe Averroès (1126-1198) évoque une méthode de raisonnement où la thèse s affine étape par étape, itérativement, jusqu à une certaine convergence et ceci conformément au déroulement d un algorithme. À la même époque, au XIIe siècle, le moine Adelard de Bath introduit le terme latin de algorismus, par référence au nom de Al Khuwarizmi. Ce mot donne algorithme en français en 1554. Au XVIIe siècle, on pourrait entrevoir une certaine allusion à la méthode algorithmique chez René Descartes dans la méthode générale proposée par le Discours de la mé- 2 Il ne faut pas confondre ce mathématicien avec un autre auteur perse : Abu- Abdollâh Mohammad Khuwârizmi qui, lui, est l auteur de Mafâtih al- Olum (Les clés des sciences), encyclopédie écrite dans les années 976-997. 1

thode (1637), notamment quand, en sa deuxième partie, le mathématicien français propose de : «diviser chacune des difficultés que j examinerois, en autant de parcelles qu il se pourroit, et qu il seroit requis pour les mieux résoudre.» Sans évoquer explicitement les concepts de boucle, d itération ou de dichotomie, l approche de Descartes prédispose la logique à accueillir le concept de programme, mot qui naît en français en 1677. L utilisation du terme algorithme est remarquable chez Ada Lovelace (voir l'illustration page 4), fille de Lord Byron et assistante de Charles Babbage (1791-1871). 2.3 L'époque contemporaine L algorithmique du XXe et du XXIe siècle se base souvent sur des formalismes comme celui des machines de Turing, qui permettent de définir précisément ce qu'on entend par «étapes», par «précis» et par «non ambigu» et elle donne un cadre scientifique pour étudier les propriétés des algorithmes. Cependant, le type de formalisme choisi engendre des algorithmes différents pour résoudre un même problème, par exemple l'algorithmique récursive, l'algorithmique parallèle ou l informatique quantique donnent lieu à des algorithmes différents de ceux de l'algorithmique itérative issue de la machine de Turing. Avec l'informatique, l'algorithmique s'est beaucoup développée dans la deuxième moitié du XX e siècle et Donald Knuth, auteur du traité The Art of Computer Programming, qui décrit de très nombreux algorithmes, en a posé des fondements mathématiques rigoureux de leur analyse. 3 Vocabulaire Le substantif algorithmique désigne la méthode utilisant des algorithmes. Le terme est également employé comme adjectif. Un algorithme énonce une résolution sous la forme d une série d opérations à effectuer. La mise en œuvre de l algorithme consiste en l écriture de ces opérations dans un langage de programmation et constitue alors la brique de base d un programme informatique. Les informaticiens utilisent fréquemment l anglicisme implémentation pour désigner cette mise en œuvre. L écriture en langage informatique est aussi fréquemment désignée par le terme «codage», qui n a ici aucun rapport avec la cryptographie, mais qui se réfère au terme «code source» pour désigner le texte, en langage de programmation, constituant le programme. L algorithme devra être plus ou moins détaillé selon le niveau 2

d abstraction du langage utilisé, de même qu'une recette de cuisine doit être plus ou moins détaillée selon l expérience du cuisinier. 4 Étude formelle De nombreux outils formels ou théoriques ont été développés pour décrire les algorithmes, les étudier, exprimer leurs qualités, pouvoir les comparer : ainsi, pour décrire les algorithmes, des structures algorithmiques ont été mises en évidence : structures de contrôle et structures de données ; pour justifier de la qualité des algorithmes, les notions de correction, de complétude et de terminaison ont été mises en place ; enfin, pour comparer les algorithmes, une théorie de la complexité des algorithmes a été définie. 4.1 Structures algorithmiques Les concepts en œuvre en algorithmique, par exemple selon l'approche de N. Wirth pour les langages les plus répandus (Pascal, C, etc.), sont en petit nombre. Ils appartiennent à deux classes : les structures de contrôle : séquences, conditionnelles, boucles ; les structures de données : constantes, variables, tableaux, structures récursives (listes, arbres, graphes). Ce découpage est parfois difficile à percevoir pour certains langages (Lisp, Prolog ) plus basés sur la notion de récursivité où certaines structures de contrôle sont implicites et, donc, semblent disparaître. 4.2 Correction, complétude, terminaison Ces trois notions «correction», «complétude», «terminaison» sont liées, et supposent qu'un algorithme est écrit pour résoudre un problème. La terminaison est l'assurance que l'algorithme terminera en un temps fini. Les preuves de terminaison font habituellement intervenir une fonction entière positive strictement décroissante à chaque «pas» de l'algorithme. 3

Étant donnée la garantie qu'un algorithme terminera, la preuve de correction doit apporter l'assurance que si l'algorithme termine en donnant une proposition de solution, alors cette solution est correcte c'est-à-dire qu'elle est effectivement une solution au problème posé. La preuve de complétude garantit que, pour un espace de problèmes donné, l'algorithme, s'il termine, donnera une solution pour chacune des entrées. Illustration 1: Ada Lovelace 4