From ce0578399d35af6a4477d5654f81ccfe795f4ed6 Mon Sep 17 00:00:00 2001 From: gwen Date: Wed, 22 Mar 2017 09:13:07 +0100 Subject: [PATCH] =?UTF-8?q?d=C3=A9finition=20d'un=20algorithme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- algorithmique/abstract.txt | 11 ++-- algorithmique/cours/algo.txt | 109 +++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 5 deletions(-) diff --git a/algorithmique/abstract.txt b/algorithmique/abstract.txt index 8bb0511..52d472c 100644 --- a/algorithmique/abstract.txt +++ b/algorithmique/abstract.txt @@ -7,11 +7,11 @@ Initiation à l'algorithmique et présentation de la programmation algébrique. L'algorithmique est un sous-domaine de l'algèbre et des approches modulaires (arithmétique modulaire...) -- Le point de vue mathématique étant assez exigeant, aucun formalisme fort de - l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et +- Le point de vue mathématique étant assez exigeant, aucun formalisme fort de + l'algorithmique mathématique ne sera présenté. Aucun symbole mathématique donc, et seulement du pseudo-code. - L'approche mathématique forte utilisant le formalisme mathématique de - l'algorithmique algébrique est en général enseignée en France uniquement aux cours + L'approche mathématique forte utilisant le formalisme mathématique de + l'algorithmique algébrique est en général enseignée en France uniquement aux cours des grandes écoles. - L'algorithmique présentée ici est donc délibérément pseudo-scientifique mais en revanche @@ -32,4 +32,5 @@ Initiation à l'algorithmique et présentation de la programmation à propos de la programmation fonctionnelle et générique. - +- Introduire certains domaines et résultats importants de + l’informatique théorique diff --git a/algorithmique/cours/algo.txt b/algorithmique/cours/algo.txt index ce71b62..bad8bf5 100644 --- a/algorithmique/cours/algo.txt +++ b/algorithmique/cours/algo.txt @@ -14,6 +14,29 @@ mathématicien arabe du 9ème siècle. terme désignant une suite d'opérations constituant un schéma de calcul ou de résolution d'un problème. + C'est un processus systématique de résolution d'un problème + permettant de décrire précisément des étapes. + C'est une suite finie d'instructions permettant de donner la réponse + à un problème. + +L'algorithmique est l'étude et la production de règles et de techniques +qui sont impliquées dans la définition d'algorithmes. + +Implémentation d'un algorithme +------------------------------ + +Adaptation de la méthodologie de calculabilité au calcul effectif +sur une machine abstraite ou via un langage formel. + +Il n’y a pas de parcours à sens unique de l’algorithme vers l’implantation. +La quête d’une implantation efficace nous amène souvent à effectuer +un retour vers les algorithmes eux-mêmes, et à en modifier des points +essentiels. L’aspect théorique de réflexion sur les algorithmes, +et l’aspect pratique de l'implémentation sont donc en symbiose. + +Types d'algorithmes +------------------- + .. raw:: latex \begin{algorithm} @@ -41,6 +64,80 @@ mathématicien arabe du 9ème siècle. \end{algorithm} +L'algorithme comme généralisation de la calculabilité +------------------------------------------------------ + +L'importance croissante de l'informatique comme outil scientifique +impose d'élaborer un nouveau mode de description des méthodes de calcul (appelées algorithmes) +susceptible de satisfaire à la fois le critère de sécurité (maîtrise du résultat) et la possibilité +d'implémenter les calculs sur un ordinateur. + +Qualité d'un algorithme +----------------------- + +- correction d'un algorithme +- complétude d'un algorithme + +Sémantique + + Étude du sens, de la signification d'un langage + Définir la sémantique d’un langage formel consiste à lui donner une + signification mathématique. + +Sémantique opérationnelle + + on définit la sémantique par sa mise en œuvre sur + une machine abstraite. + +Sémantique dénotationnelle + + on associe à chaque construction syntaxique un + objet mathématique + +Sémantique axiomatique + + chaque construction est décrite par la manière dont + elle transforme des propriétés ou des prédicats. + +Proposition + + une proposition est un énoncé qui est soit vrai, soit faux + +**exemple** : ``2 + 3 = 5``. Proposition vraie. + +Prédicats + + Définition : Une proposition dont la valeur de vérité dépend de la valeur + d’une ou plusieurs variables + +**Exemple** : “n est pair” : vrai pour n = 4 mais faux pour n = 9 + + +Axiome + + une proposition qui est supposée vraie + +Un ensemble d’axiomes est consistant s’il n’existe pas de proposition +dont on peut démontrer qu’elle est à la fois vraie et fausse. + +Un ensemble d’axiomes est complet si, pour toute proposition, il est +possible de démontrer qu’elle est vraie ou fausse. + +Théorème d’incomplétude de Gödel (1931) : tout ensemble +consistant d’axiomes pour l’arithmétique sur les entiers est +nécessairement incomplet. + +**Les concepts de base en algorithmique sont les axiomes** + +inférence + + règles d’inférence, règles permettant de combiner des axiomes et des + propositions vraies pour établir de nouvelles propositions vraies. + +Démonstration + + vérification d’une proposition par une séquence de déductions logiques + à partir d’un ensemble d’axiomes. Comment rendre un algorithme lisible ------------------------------------ @@ -50,3 +147,15 @@ Comment rendre un algorithme lisible - Le bon algorithme est indenté. +Complexité d'un algorithme +-------------------------- + +On peut approximer la complexité des algorithmes. +C'est utile pour pouvoir comparer des algorithmes. + +complexité + + estimer la complexité d'unalgorithme, + c'est-à-dire estimer le nombre de calculs qu'il utilise. + +analyse de complexité