Académique Documents
Professionnel Documents
Culture Documents
: ALGORITHMIQUE - 2
SYNTHESE DE SEQUENCE
Synthèse
A. Principe
La méthode dite «diviser pour régner» se décompose ainsi en trois phases :
— Diviser : on divise les données initiales en plusieurs sous-parties.
— Régner : on résout récursivement chacun des sous-problèmes associés (ou on les résout directement
si leur taille est assez petite).
— Combiner : on combine les différents résultats obtenus pour obtenir une solution au problème initial.
B. Exemples
— Calcul du maximum d’une liste.
— Recherche d’un élément dans une liste.
— Distance minimale dans un nuage de points.
Ces exemples ont été implémentés en Python.
2. Programmation dynamique
A. Principe
La programmation dynamique, comme la méthode diviser pour régner, résout des problèmes en combinant
des solutions de sous-problèmes.
Il est important de bien comprendre que «programmation» dans «programmation dynamique», ne doit pas
s’entendre comme «utilisation d’un langage de programmation», mais comme synonyme de planification et
ordonnancement.
La programmation dynamique s’applique généralement aux problèmes d’optimisation. Par exemple les
algorithmes gloutons vus en première.
B. Exemples
— Le problème du rendu de monnaie
— Le problème du sac à dos
— Les problèmes d’arbre couvrant
— De parcours en largeur
Ces exemples ont été implémentés en Python.
3. La recherche textuelle
A. Principe
Les algorithmes qui permettent de trouver une sous-chaine de caractères dans une chaine de caractères
plus grande sont des «grands classiques» de l’algorithmique. On parle aussi de recherche d’un motif
(sous-chaine) dans un texte.