Chapitre 4
Qu’est-ce qu’un algorithme
s´equentiel ?
4.1 Introduction
Nous allons tenter dans ce chapitre de d´efinir formellement la notion d’algo-
rithme. Nous allons pour cela utiliser les id´ees de [Gurevich, 2000].
Nous nous restreignons dans ce chapitre aux algorithmes s´equentiels (c’est-
`a-dire sur une seule machine et un seul processeur), non r´eactifs et d´eterministes
(c’est-`a-dire sans interaction avec l’environnement au cours du fonctionnement).
Nous allons ´enoncer un certain nombre de postulats, que doivent v´erifier les
algorithmes.
Exemple 4.1 (Algorithme d’Euclide) L’algorithme d’Euclide, qui nous ser-
vira d’illustration tout au long de ce chapitre, correspond `a l’algorithme sui-
vant :
read < a, b >
repeat
i f b = 0then out a
e l s e par
ab
ba mod b
endpar
until out!=undef
write out
o`u par · · · endpar esigne la mise en parall`ele.
1
2CHAPITRE 4. QU’EST-CE QU’UN ALGORITHME S ´
EQUENTIEL ?
4.2 Premier postulat
Le premier postulat affirme qu’un algorithme correspond `a une suite d’´etats,
et `a des transitions entre ces ´etats : l’id´ee est que les ´etats correspondent `a des
descriptions instantan´ees de l’algorithme.
Postulat 1 (Temps s´equentiel) A tout algorithme Aest associ´e un syst`eme
de transitions, c’est-`a-dire,
un ensemble S(A), dont les ´el´ements sont appel´es des ´etats,
un sous-ensemble I(A)S(A)dont les ´el´ements sont dits initiaux,
et une application τA:S(A)S(A)que l’on appelle ´evolution en un pas
de A.
Une ex´ecution du syst`eme de transition est une suite X0, X1,· · · , Xn,· · · o`u
X0est un ´etat initial (X0I(A)), chaque Xiest un ´etat (XiS(A)), et
Xi+1 =τA(Xi) pour tout i.
Exemple 4.2 Dans l’algorithme d’Euclide, `a un instant fix´e, a,b, et out pos-
s`edent une certaine valeur. Le triplet de ces valeurs peut ˆetre vu comme un ´etat.
Maintenant, les ´etats initiaux, sont ceux au d´ebut de l’ex´ecution. L’application
τAest celle qui d´ecrit l’´evolution de l’algorithme : elle associe `a l’´etat `a un
certain temps `a l’´etat au temps d’apr`es.
4.3 Second postulat
Il nous faut maintenant dire que les ´etats correspondent `a quelque chose que
l’on sait d´ecrire en langage math´ematique : le bon formalisme pour cela est la
notion de structure du premier ordre (voir le chapitre ??)
Postulat 2 (Etats abstraits) Les ´etats de Acorrespondent `a des struc-
tures du premier ordre.
Les ´etats sont tous sur la mˆeme signature.
La fonction d’´evolution en un pas τAne modifie pas l’ensemble de base
d’aucun ´etat.
S(A)et I(A)sont clos par isomorphisme. De plus, tout isomorphisme de
Xvers Yest un isomorphisme de τA(A)vers τA(Y).
Autrement dit, le premier point dit que les ´etats se d´ecrivent par des struc-
tures du premier ordre. La pratique des math´ematiques depuis plusieurs si`ecles
montre qu’une situation peut se d´ecrire fid`element avec le langage des math´e-
matiques, c’est-`a-dire avec la logique math´ematique. L’exp´erience montre que
la logique du premier ordre (la seule introduite dans ce document) est suffisante
pour d´ecrire les algorithmes.
En pratique, on d´ecrit un algorithme en utilisant une signature finie fix´ee.
Le deuxi`eme point permet alors d’exprimer que l’on travaille sur une signature
fix´ee, qui ne varie pas tout au long de l’ex´ecution de l’algorithme.
4.4. STRUCTURES VERSUS M ´
EMOIRE 3
Entre deux ´etats, la seule chose qui change est l’interpr´etation de certaines
fonctions ou relations, mais pas l’ensemble de base. C’est le sens du troisi`eme
point.
Exemple 4.3 Dans notre algorithme d’Euclide, les ´etats correspondent `a des
structures du premier ordre sur la signature
Σ=({a, b, out, mod},{=})
constitu´ee de trois symboles de constantes a, b et out et du symbole de fonction
mod. Par d´efinition, une structure sur cette signature correspond au choix d’un
ensemble de base (par exemple les entiers), d’un choix pour l’interpr´etation de
la fonction mod (l’op´eration reste de la division euclidienne sur les entiers), et
d’une valeur dans cet ensemble de base pour chacun de ces symboles, c’est-`a-dire
d’un choix de la valeur de a,b,out, i.e. d’un triplet. Les transitions entre ´etats
ne modifient que l’interpr´etation des valeurs a,b, et out.
Le dernier point, qui peut paraˆıtre plus myst´erieux, dit en fait simplement
que l’on raisonne toujours `a isomorphisme pr`es : en fait, c’est naturellement le
cas, donc dans un premier temps, on peut oublier cette assertion. Si l’on veut
mieux comprendre, plus concr`etement, on exprime en fait que l’on travaille `a un
niveau d’abstraction fix´e, compl`etement d´ecrit par l’algorithme : un algorithme
n’est pas autoris´e `a d´ependre de repr´esentations internes de l’algorithme qui ne
sont pas d´ecrites par l’algorithme. En langage logique, les d´etails en lesquels
l’algorithme d´epend, doivent ˆetre exprim´es par le type d’isomorphisme de l’´etat.
En pratique, on peut distinguer les symboles de fonctions ou de relations
statiques de ceux dynamiques : un symbole de fonction ou de relation est statique
si son interpr´etation ne varie jamais d’un ´etat `a son successeur. Il est dynamique
dans le cas contraire.
Exemple 4.4 Dans notre algorithme d’Euclide, les symboles de constantes a, b
et out sont dynamiques : la valeur de a,bet de out peut changer d’une ´etape
`a la suivante. Le symbole de fonction mod est statique : l’interpr´etation de la
fonction mod reste fix´ee d’une ´etape `a l’´etape suivante.
4.4 Structures versus m´emoire
En fait, en abstrayant autour de l’exemple de l’algorithme d’Euclide, il est
tr`es pratique de voir une structure comme une certaine m´emoire : si aΣ est
un symbole de constante (c’est-`a-dire un symbole de fonction de la signature
Σ d’arit´e 0), on peut voir acomme le nom d’un variable : sa s´emantique [[a]]
correspond `a sa valeur.
Plus g´en´eralement : si fΣ est un symbole de fonction d’arit´e k, son in-
terpr´etation [[f]] est une fonction de Mkdans M: on peut voir cette fonction
comme un tableau de dimension k. Aussi, ´etant donn´e un k-uplet md’´el´ements
de M, une paire (f, m) sera appel´ee emplacement. On appelle contenu la valeur
4CHAPITRE 4. QU’EST-CE QU’UN ALGORITHME S ´
EQUENTIEL ?
de [[f]](m), que l’on notera parfois [[(f, m)]] : on peut voir (f, m) comme d´esi-
gnant l’´el´ement d’indice mdu tableau f: son contenu [[(f, m)]] correspond `a sa
s´emantique [[f]](m).
4.5 Mises `a jour
Dans cet esprit, nous avons aussi besoin d’une notation pour les mises `a
jour : si (f, m) est un emplacement, et si best un ´el´ement de M, alors on notera
le triplet (f, m, b) aussi par (f, m)b, et on appelle un tel triplet une mise `a
jour. Une mise `a jour est dite triviale si [[f]](m) = b. Ex´ecuter une mise `a jour
(f, m)bconsiste `a changer [[f]](m) en b.
Deux mises `a jour sont contradictoires si elles font r´ef´erence au mˆeme em-
placement, mais elles sont distinctes.
Exemple 4.5 (f, m)1et (f, m)0sont deux mises `a jour contradictoires.
Un ensemble de mises `a jour est consistant s’il ne contient pas de mises `a jour
contradictoires. Pour ex´ecuter un ensemble de mise `a jour consistant, on ex´ecute
simultan´ement toutes les mises `a jour de l’ensemble. Le r´esultat de l’ex´ecution
de l’ensemble de mises `a jour ∆ sur la structure Xsera not´e X+ ∆.
Passer d’un ´etat `a un autre correspond `a faire des mises `a jour :
Lemme 4.1 Si Xet Ysont deux structures de mˆeme vocabulaire et de mˆeme
ensemble de base, il existe un unique ensemble de mises `a jour non triviales
consistantes tel que Y=X+ ∆.
emonstration: ∆ est l’ensemble des mises `a jour (f, m)b, pour tous
les fet mtels que [[f]](m) diff`erent dans Xet dans Y, avec bchoisi comme la
valeur de [[f]](m) dans Y. Notons que l’ensemble ∆ obtenu est bien consistant.
Cet ensemble ∆ sera not´e YX. En particulier, lorsque Xest un ´etat, on
notera
∆(A, X) = τA(X)X,
c’est-`a-dire l’ensemble des mises `a jour qui correspondent `a passer de l’´etat X
`a son successeur.
En fait, cet ensemble est bien d´efini `a isomorphisme pr`es. C’est ce que dit le r´esultat technique
suivant, que l’on peut ignorer dans un premier temps.
Lemme 4.2 Supposons que isoit un isomorphisme de l’´etat Xde Asur un ´etat Yde A.´
Eten-
dons ide la fa¸con naturelle pour que son domaine contienne aussi les uplets d’´el´ements et donc
les mises `a jour. Alors ∆(A, Y ) = i(∆(A, X)).
4.6 Troisi`eme postulat
Jusqu’`a maintenant, nous n’avons fait aucune hypoth`ese sur les transitions
entre ´etats. La cl´e de ce que l’on appelle un algorithme est dans le postulat qui
suit : soit Tun ensemble de termes sur la signature des ´etats. On dira que deux
4.7. D ´
EFINITION FORMELLE D’UN D’ALGORITHME 5
´etats (donc deux structures) Xet Yco¨
ıncident sur Tsi [[t]] poss`ede la mˆeme
valeur dans la structure Xet dans la structure Ypour tout tT.
Postulat 3 (Exploration born´ee) Il existe un ensemble fini de termes Tsur
le vocabulaire de l’algorithme A, tel que ∆(A, X) = ∆(A, Y )`a chaque fois que
les ´etats Xet Yde Aco¨
ıncident sur T.
Intuitivement, l’algorithme An’explore qu’un nombre fini de l’´etat courant
pour d´eterminer le prochain ´etat. Test appel´e un emoin d’exploration born´ee.
Exemple 4.6 Dans notre algorithme d’Euclide, on peut prendre T={b=
0, a, b, 0,1, a mod b,out}.
4.7 D´efinition formelle d’un d’algorithme
Nous avons tous les ingr´edients :
efinition 4.1 Un algorithme s´equentiel est un objet Aqui satisfait les trois
postulats.
Exemple 4.7 L’algorithme d’Euclide est un algorithme.
4.8 Une forme normale pour les algorithmes
En fait, ces discussions permettent de prouver que tout algorithme peut
s’´ecrire sous une certaine forme, que nous appelerons forme normale.
4.8.1 Termes critiques
Soit Tun t´emoin d’exploration born´ee. Sans perte de g´en´eralit´e, on peut
supposer que
1. Test clos par sous-terme : si t1T,t2est un sous-terme (sous-arbre) de
t1, alors t2T.
2. Tcontient les termes 0et 1.
Un terme de Test dit un terme critique. Pour tout ´etat X, les valeurs des
´el´ements des termes critiques de Xseront appel´ees les ´el´ements critiques de X.
Une cons´equence du postulat 3 est que les modifications sur les ´etats se
d´ecrivent par les termes critiques. Les valeurs des emplacements `a modifier et
leurs nouvelles valeurs correspondent n´ecessairement `a des valeurs critiques :
Lemme 4.3 (Les mises `a jour impliquent des ´el´ements critiques) Soit A
un algorithme qui v´erifie les trois postulats. Si Xest un ´etat de A, et si
(f, (a1,· · · , am)) a0
est une mise `a jour de ∆(A, X), alors tous les ´el´ements a1,· · · , amet a0sont
des ´el´ements critiques de X.
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !