Exercices corrig´es
Arbre de d´ecision
Les arbres de d´ecisions permettent de caract´eriser une classe d’algorithmes de tris : les algos de tris par
comparaisons s´equentiels et d´eterministes. Cela correspond grosso-modo aux programmes de tri qu’on peut
´ecrire dans les langages imp´eratifs standard comme Ada, et en ne faisant que l’hypoth`ese d’une fonction de
pr´eordre <sur les ´el´ements `a trier.
Plus pr´ecis´ement, un algorithme donn´e correspond `a un ensemble d’arbres de d´ecision, dans lequel chaque
arbre de d´ecision repr´esente les suites de comparaisons effectu´ees par l’algorithme lorsque la s´equence en
entr´ee a une taille fix´ee n.´
Etant donn´e le caract`ere s´equentiel et d´eterministe des algos consid´er´es, ces suites
ont une structure d’arbre.
D´efinition 1 (Arbre de d´ecision).Soit Σun ensemble fini `a n´el´ements appel´e alphabet. Un arbre de
d´ecision sur Σ est un arbre binaire, dont :
– chaque nœud interne est ´etiquet´e “a?b” avec aet bdans Σ; un tel nœud repr´esente une comparaison
effectu´ee par l’algorithme entre deux ´el´ements de nom aet bdans la s´equence d’entr´ee.
– chaque feuille est ´etiquet´ee
– soit par une permutation des ´el´ements de Σ, qu’on note ha1, a2, . . . , anipour signifier a1< a2, etc.
(cette permutation correspond donc `a la permutation appliqu´ee par l’algorithme pour trier la s´equence
en entr´ee.)
– soit ´etiquet´ee par un symbole sp´ecial ⊥qui repr´esente du code de l’algorithme qui n’est jamais
ex´ecut´e. 1
Pour une s´equence d’entr´ee donn´ee (qui associe `a chaque ´el´ement de Σ une valeur concr`ete), l’ex´ecution
de l’algorithme de tri repr´esent´e par l’arbre de d´ecision, doit correspondre exactement `a un chemin entre la
racine et une feuille-permutation dans l’arbre. La figure 1 illustre par exemple le d´eroulement d’un algorithme
de tri par insertion sur un ensemble de trois ´el´ements Σ = {a, b, c}. Si on prend par exemple a= 27, b= 42
et c= 5, l’algorithme va suivre le chemin surlign´e en rouge.
Figure 1 – Arbre de d´ecision sur Σ = {a, b, c}pour un algorithme de tri par insertion.
1. On peut donc ainsi repr´esenter des algorithmes qui font des tests superflus.
Grenoble-INP Ensimag, 1`ere ann´ee, 2010-2011 Algo 2 — Exercices corrig´es