Algorithme
1. Un peu d’histoire
D`es l’antiquit´e, des algorithmes ont ´et´e utilis´es dans le commerce ou le calcul des impˆots (des descriptions exhaustives ont ´et´e retrouv´ees) : ils permettaient notamment aux marchands de faire leurs calculs d’int´erˆets sans rien connaˆıtre aux math´ematiques !
Par ailleurs, l’algorithme math´ematique le plus connu, d´ecrit par Euclide vers -300, permet de trouver le plus grand diviseur commun `a deux entiers.
Mais le mot ”algorithme” vient du nom du c´el`ebre math´ematicien perse Al Khuwaritzmi (latinis´e au Moyen-
Age en Algoritmi) qui au IXe si`ecle, ´ecrivit le premier ouvrage sur la r´esolution syst´ematique des ´equations du premier et deuxi`eme degr´e.
2. De l’agorithme `a sa programmation
L’int´erˆet majeur qu’il y a `a disposer d’algorithme de r´esolution de probl`eme est de permettre l’automatisation
: on peut d´el´eguer `a une machine l’ex´ecution de tˆaches routini`eres conduisant `a la solution.
La traduction de l’algorithme en vue de son ex´ecution par une machine pose deux probl`emes distincts :
a) le d´ecoupage en tˆaches suffisamment simples et sans ambig¨uit´e pour qu’une machine sache les ex´ecuter correctement ;
b) la traduction de ces tˆaches dans un langage compr´ehensible par la machine.
a) Analyse descendante
Une technique d’´elaboration d’un bon algorithme est appel´ee m´ethode descendante (top down). Elle consiste
`a consid´erer un probl`eme dans son ensemble, `a pr´eciser les donn´ees fournies et les r´esultats `a obtenir puis `a d´ecomposer le probl`eme en plusieurs sous-probl`emes plus simples qui seront trait´es s´epar´ement et ´eventuellement d´ecompos´es eux-mˆemes de mani`ere plus fine.
Exemple : imaginons un robot domestique `a qui nous devons fournir un algorithme lui permettant de pr´eparer une tasse de caf´e soluble. Une premi`ere version de l’algorithme pourrait ˆetre :
(1) faire bouillir de l’eau
(2) mettre le caf´e dans la tasse
(3) ajouter l’eau dans