Top-down ou bottom-up

publicité
Approches pratiques
L'algorithmique a développé quelques stratégies pour résoudre les problèmes :






algorithme glouton : un premier algorithme peut souvent être proposé en ne regardant
que les cas simples, ou ceux apparaissant le plus souvent. On parle alors d'algorithme
glouton. L'algorithme glouton n'est souvent qu'une première étape dans la rédaction
d'un algorithme plus performant.
diviser pour régner : pour améliorer les performances des algorithmes, une technique
usuelle consiste à diviser les données d'un problème en sous-ensembles de tailles plus
petites, jusqu'à obtenir des données que l'algorithme pourra traiter au cas par cas. Une
seconde étape dans ces algorithmes consiste à « fusionner » les résultats partiels pour
obtenir une solution globale. Ces algorithmes sont souvent associés à la récursivité.
recherche exhaustive (ou combinatoire) : une méthode utilisant l'énorme puissance de
calcul des ordinateurs consiste à regarder tous les cas possibles. Cela n'est pour autant
possible que dans certains cas particuliers (la combinatoire est souvent plus forte que
l'énorme puissance des ordinateurs, aussi énorme soit-elle)
aléatoire, ou par approximations successives : certains algorithmes utilisent des
recherches aléatoires, ou par approches successives, donnant de meilleurs résultats (en
moyenne) que des recherches directes ou explicites.
décomposition top-down / bottom-up : les décompositions top-bottom consistent à
essayer de décomposer le problème en sous-problèmes à résoudre successivement, la
décomposition allant jusqu'à des problèmes triviaux faciles à résoudre. L'algorithme
global est alors donné par la composée des algorithmes définis au cours de la
décomposition. La démarche bottom-up est la démarche inverse, elle consiste à partir
d'algorithmes simples, ne résolvant qu'une étape du problème, pour essayer de les
composer pour obtenir un algorithme global.
pré-traitement / post-traitement : parfois, certains algorithmes comportent une ou deux
phases identifiées comme des pré-traitements (à faire avant l'algorithme principal), ou
post-traitement (à faire après l'algorithme principal), pour simplifier l'écriture de
l'algorithme général.
[http://fr.wikipedia.org/wiki/Algorithmique]
Une approche ascendante (dite bottom-up) ou descendante (dite top-down) caractérise le
principe général de fonctionnement d'une démarche procédurale.
En première analyse, la distinction peut désigner le sens d'une démarche intellectuelle :


Il peut s'agir d'une synthèse (Bottom-Up) où l'on part du détail, du « bas » , c'est-à-dire
l'échelon le plus fin, pour consolider progressivement et opérer une synthèse.
Il peut s'agir d'une analyse (Top-down) où, partant de l'ensemble, on décompose en
éléments toujours plus détaillés, pour déboucher sur une « mise à plat », une
« dissection totale » , un état des lieux , de l'objet étudié.
Par extension, la distinction peut désigner le mode d'animation et de pilotage d'une démarche :


Il peut s'agir d'un pilotage participatif (Bottom-Up) où le fil directeur de l'animation
démarre des perceptions et initiatives de l'échelon le plus « bas » ( au sens
hiérarchique) ou le plus « terrain » (au sens opérationnel) pour être répercutées ,
déclinées et prises en compte par les échelons supérieurs.
Il peut s'agir aussi d'un pilotage directif (Top-Down) où au contraire, le fil directeur de
l'animation est actionné par la hiérarchie. Les échelons « subordonnés » ayant pour
fonction de mettre en forme, d'exécuter, de déduire, d'améliorer les consignes
prescrites.
Dans son livre Effondrement, Jared Diamond présente les deux approches dans le cadre de la
gestion des problèmes écologiques par les sociétés menacées d'effondrement1.
Approche descendante[modifier]
Une approche dite descendante, ou approche top-down (« de haut en bas » en anglais),
implique des processus qui, à partir d'un apport de matière première brute, visent à forger
celle-ci, à la transformer par étapes en vue d'y apporter une valeur ajoutée en augmentant la
complexité de l'ensemble.
Par analogie, dans les domaines techniques, cette approche consiste à concevoir le sujet
d'études ou le produit dans les grandes lignes, puis, itérativement, à s'intéresser à des détails
de plus en plus fins.
L'approche top-down permet de délimiter et de conceptualiser rapidement le projet et de le
diviser en sous-parties aisément manipulables. Elle permet donc d'avoir une vue globale du
projet final et de donner une estimation rapide, bien qu'approximative, de sa complexité et de
son coût.
Exemples




Le travail d'une matière brute pour créer un objet plus élaboré : usinage d'une pièce,
taille d'un bloc de pierre par un artiste sculpteur…
L'ébauche d'un dessin, avant le détail.
La conception d'un produit en suivant un cahier des charges (décrivant un objectif
dans sa globalité), entrant au fur et à mesure dans le détail des exigences : élaboration
de circuits intégrés, conception logicielle…
Gestion des problèmes écologiques par le haut du Japon de l'ère Togukawa2.
Approche ascendante[modifier]
Une approche dite ascendante, ou approche bottom-up (« de bas en haut » en anglais), se
caractérise par une suite de processus qui apportent chacun une partie fondamentale de
l'édifice qu'elle cherche à produire, à partir d'éléments de base.
Exemples




L'assemblage de pièces : construction d'une maison, montage d'un kit, briques de
Lego…
En management, le bottom-up désigne les processus au sein d'une organisation qui
prennent leur origine en bas de l'échelle.
Dans le cadre de la recherche (terme notamment employé en informatique), l'approche
bottom-up tente de faire émerger des théories de la pratique.
Gestion des problèmes écologiques par le bas par les populations des hautes terres de
la Nouvelle-Guinée et de l'île de Tikopia2.
Comparaison des approches[modifier]
En informatique on utilise les méthodes top-down dans le domaine du développement, parce
qu'on en maîtrise en principe déjà les concepts dans le cadre d'une théorie qu'on met en
œuvre, et au contraire la méthode bottom-up dans le cadre de la recherche, où on cherche à les
faire émerger de la pratique.
Un important réquisitoire contre l'approche top-down a été dressé par Richard Feynman dans
son rapport sur l'accident de la navette spatiale Challenger de 19863. Selon lui, l'approche topdown oblige à des décisions de conception prématurées et rend beaucoup plus difficile les
corrections de design que l'approche bottom-up où on part en permanence de ce qui est bien
connu et solidement maîtrisé. Voir aussi émergence.
[http://fr.wikipedia.org/wiki/Approche_ascendante,_descendante]
Top-down ou bottom-up ?
Le monde du développement informatique a été longtemps agité par la question suivante : devait-on développer

top-down, ce qui correspond à la décomposition progressive de Descartes évoquée ici. On va du
complexe au simple.
o
Avantage : On est certain que la complexité de ce qu’on étudie se réduit à chaque étape
o
Inconvénient 1 : La manière de décomposer n’a pas de raison d’être unique, ergo il se peut
qu’on ne choisisse pas la meilleure. Le problème se répète et se cumule à chaque nouvelle étape de
décomposition.
o
Inconvénient 2 : Le découpage d’un problème en tranches peut escamoter involontairement les
questions transversales qui n’appartiennent spécifiquement ni à une tranche, ni à une autre. Pire : au
moment où on examine chaque tranche, on peut de bonne foi croire que le problème transversal est du
ressort de l’autre. Or, pour un problème complexe il ne semble guère possible de garder en tête
simultanément tous les problèmes transversaux en suspens, sauf dans les cas où l’on sait déjà très bien
formaliser pour des raisons d’habitude
Ces considérations conduisent à ne pas remettre en cause le modèle top-down dans un cas : celui des
problèmes qu’à quelques détails près on connaît bien.

bottom-up, ce qui correspond à la maîtrise progressive d’éléments simples, et que l’on combine pour
cheminer vers une complexité de plus en plus grande. On va du simple au complexe.
o
Inconvénient : beaucoup d’essais et d’erreurs, et pas toujours dans les bonnes directions. On
tâtonne.
o
Mais en contrepartie on se familiarise avec les éléments de la résolution, on voit où on met les
pieds, on acquiert des bases stables.
Un pianiste qui fait des gammes, puis des accords, puis des arpèges, puis des exercices de déliateur avant
d’attaquer des œuvres simples, puis de plus en plus compliquées travaille en bottom-up. En top-down, il prendrait
d’emblée la Fantaisie impromptue de Chopin, puis la décomposerait, par exemple mesure par mesure. Cela
marchera aussi, mais cela serait-il la méthode la plus efficace ?
Le chat qui attrape une souris travaille aussi en bottom-up, en jouant avec la souris et en acquérant peu à peu les
concepts qui le rendent plus efficace. Il n’a pas de théorie générale sur l’apprentissage des souris, qu’il
décompose en éléments pour vérifier chacun un par un.
Peindre la Joconde par la méthode de Descartes sur un écran 1024×1024 : couper le tableau en 4, puis chaque
quart en quatre, jusqu’à ce qu’on tombe sur un pixel. On ne peut pas trouver plus simple ni plus petit. Il n’y a donc
plus qu’à choisir la couleur du pixel. " Diviser chacune des difficultés que j’examinerais, en autant de parcelles
qu’il se pourrait, et qu’il serait requis pour les mieux résoudre ", c’est fait. Est-on bien certain d’obtenir la Joconde
par ce moyen ?
Cela suggère une approche où chaque méthode a son domaine d’usage optimal :

Le top-down pour tout ce qu’on maîtrise à peu près dans les grandes lignes

Le bottom-up pour explorer efficacement les terra incognita
[ http://www.techno-science.net/?onglet=glossaire&definition=720 ]
Téléchargement