Vous êtes sur la page 1sur 29

Methodes de conception des

algorithmes
Atsa Etoundi Roger, Professeur
Méthodologie de résolution d'un problème
1) Poser le problème 5) Compilation
2) Analyser le problème 6) Exécution
3) Résoudre le problème 7) Vérification des résultats
4) Implémentation
Conception et analyse des algorithmes
• Concevoir: c’est formuler le problème à résoudre avec une précision
mathématique suffisante de manière a poser une question concrète
et définir un algorithme permettant de résoudre ce problème
• Analyser : c’est montrer la correction de cet algorithme et donner
une borne sur son temps d’éxecution et/ou l’espace mémoire qu’il
utilise pour établir son éfficacite
• En pratique on s’appuie sur quelques techniques de conception
fondamentales, très utiles pour évaluer la complexité inhérente du
problème et pour formuler un algorithme qui le résout
Objectifs des paradigmes de conception des
algorithmes
• Apprendre comment partir d’un problème pour écrire un algorithme
• Savoir construire une solution selon une démarche allant du plus
simple (algorithme naïf) au plus efficace (Diviser Pour Régner, etc.)
• Savoir démontrer la correction des algorithmes
Paradigmes de conception des algorithmes
• La méthode Diviser pour Régner
• Les approches gloutonnes
• La méthode par Programmation Dynamique
• La méthode par Programmation Linéaire
• La technique des Essais Successifs
• La notion de problèmes NP-complets
La méthode Diviser pour Régner
• Idée: On prend un problème et on le casse en sous-problèmes. On
résout les sous-problèmes (possiblement en les cassant de nouveau)
et on combine les résultats pour obtenir la solution au problème
original.
• C’est une approche de haut en bas.
• Construction générale: Si l’instance à résoudre est suffisamment
petite, on utilise un algorithme classique pour la résoudre, sinon, on
la décompose en morceaux (si possible de même taille) et on rappelle
l’algorithme sur ces morceaux pour ensuite les recombiner.
Méthode gloutonne (1/ 2)
• Lors de la résolution d’un problème d’optimisation, la
construction d’une solution se fait souvent de manière
séquentielle, l’algorithme faisant a chaque étape un
certain nombre de choix.
• Le principe glouton consiste a faire le choix qui semble
le meilleur sur le moment (choix local), sans se
préoccuper des conséquences dans l’avenir, et sans
revenir en arrière.
Méthode gloutonne (2/2)
• Un algorithme glouton est donc un algorithme qui ne se remet jamais
en question et qui se dirige le plus rapidement possible vers une
solution.
• Le glouton n’est pas sur d’arriver à une solution optimale, mais il
fournit un résultat rapidement.
• Même si la solution n’est pas optimale, il n’est pas rare que l’on s’en
contente (par exemple pour un problème NP-difficile). On rentre alors
dans le monde des algorithmes d’approximation
• NB: Les algorithmes gloutons s’appuient sur le principe des
Matroïdes.
Matroïde
• Un matroïde M est un couple (E,I) où E est un ensemble fini (usuelle-
ment E = {1,...,n})
• I est une famille de sous-ensembles de E qui vérifie les conditions
suivantes :
(a) ∅∈I,
(b) Si I1 ∈I et I2 ⊂ I1 alors I2 ∈I,
(c) (propriété d’augmentation) Si I1,I2 ∈ I et |I1| < |I2| alors il existe e ∈ I2\I1
tel que I1 ∪e ∈I.
• Les membres de I sont appelés les indépendants de M. Un sous-ensemble de E qui n’est
pas dans I est appelé dépendant.
Propriété d’un Matroïde
• Si (E,F ) est un Matroïde et si A⊂E alors (A,FA) en
est également un, avec FA={F∈F’ tel que F⊆A}.

• On dit que (A,FA) est le Matroïde partiel de (E,F )


engendré par A.
Théorème sur les Matroïde
• Si F satisfait les propriété (a) et (b) ci-dessus alors les 3 affirmations
suivantes sont équivalentes :
1) L’algorithme GLOUTON produit un ensemble F∈F de coût c(F) maximum,
quel que soit c : E →IR+

2) F satisfait la propriété (c) (et (E,F ) est donc un Matroïde)

3) si E’⊆E, F,F’∈F et F,F’ sont tous deux maximaux au sens de l’inclusion dans
E’, alors |F’|=|F|.
La méthode par Programmation Dynamique
(1/2)
• La solution d’un problème Pk contient les solutions de
problèmes ayant des tailles plus petites 2.
• La construction de la solution pour Pk s’effectue à
l’aide d’un faible nombre d’informations sur Pj, j < k
La méthode par Programmation Dynamique
(2/2)

La programmation dynamique est fondée sur le


principe d’optimalité de Bellman.
Principe d’optimalité de Bellman
Soit f une fonction réelle de x et y = (y1,y2,...,yn). Si f est
décomposable, sous la forme :
f(x,y) = f1(x,f2(y))
alors, on a : Optx,yf(x,y) = Optx{f1(x,Opty{f2(y)})
Opt représente la fonction Min ou Max.
Programmation linéaire
• L'objectif de la programmation linéaire (P.L.) est de
trouver la valeur optimale d'une fonction linéaire sous
un système d'équations d'inégalités de contraintes
linéaires.
Programmation linéaire
• La fonction à optimiser est baptisée "fonction
économique" (utilisée en économie dans le cadre
d'optimisations) et on la résout en utilisant une
méthode dite "méthode simplexe" dont la
représentation graphique consiste en un "polygone
des contraintes"
Polygone de contraintes
Définition:
On appelle polygone de contraintes la forme
géométrique délimitée dans un plan cartésien par la
rencontre des diverses régions-solutions au système
d’inéquations donné.
Il s’agit de la région qui contient tous les points qui sont
des solutions pour toutes les inéquations données.
Système d'inéquations
Définition
Un système d'inéquations du premier degré à deux
variables est un ensemble composé d'au moins deux
inéquations.
Programmation linéaire: Remarques
• R1. La programmation linéaire est beaucoup utilisée (pour ne
citer que les cas les plus connus) dans la logistique, la finance
d'entreprise ou encore aussi en théorie de la décision
lorsque nous devons résoudre un jeu à stratégie.
• C'est pour cette raison que MS Excel intègre un outil appelé
le "solveur" dans lequel il existe une option appelée "modèle
supposé linéaire" qui alors impose l'utilisation du modèle du
simplexe que nous allons voir ci-après (dans MS Excel 2010,
celle-ci est nommée "Simplex PL").
Programmation linéaire: Remarques
• R2. Dans le cadre de résolution de problèmes où interviennent des
produits de deux variables nous parlons alors logiquement
"programmation quadratique".
• C'est typiquement le cas en économétrie dans la modélisation des.
C'est pour cette raison que MS Excel intègre un outil appelé le
"solveur" dans lequel il existe une option appelée "estimation
quadratique".
Programmation linéaire: Remarques
• R3. La programmation quadratique et linéaire sont réunies dans
l'étude générale de ce que nous appelons la "recherche
opérationnelle".
Programmation linéaire: Remarques
La programmation quadratique et linéaire sont réunies dans l'étude
générale de ce que nous appelons la "recherche opérationnelle".
Technique des Essais Successifs
• Comme son nom l’indique, vous devez proposer ou choisir une
solution, puis une seconde solution et ainsi de suite jusqu'à ce que
vous trouviez la solution recherchée.
Problèmes NP-complets: Classification des
problemes
• La classe P. c’est la classe des problème pouvant être résolus en un
temps polynomial. C’est la classe des problèmes dits facile.
• La classe NP : C’est l’abréviation pour "nondeterministic polynomial
time". Cette classe renferme tous les problèmes de décision dont on
peut associer à chacun d’eux un ensemble de solutions potentielles
(de cardinal au pire exponentiel) tel qu’on puisse vérifier en un temps
polynomial si une solution potentielle satisfait la question posée. Le
terme nondeterministe désigne un pouvoir qu’on incorpore à un
algorithme pour qu’il puisse deviner la bonne solution
Problèmes NP-complets: Classification des
problemes
• La classe PSPACE: Problèmes pouvant être résolus en utilisant une
quantité d’espace mémoire raisonnable (définie comme une
expression polynomiale en fonction de la taille des données) sans
considération du temps d’exécution que cela prendra. .
• Classe EXPTIME: Problèmes ne pouvant être résolus que par des
algorithmes de complexité temporelle exponentielle.
• Classe Indécidable: Pour certains problèmes, il est possible de
montrer qu’il ne peut exister du tout d’algorithmes pour les résoudre,
peu importe le temps ou l’espace qui leur est alloué.
NP-complétude
• La théorie de la NP-complétude concerne la reconnaissance des
problèmes les plus durs de la classe NP.
• La notion de la difficulté d’un problème qui est introduite dans cette
classe est celle d’une classe de problème qui sont équivalents en ce
sens que si l’un d’eux est prouvé être facile alors tous les problèmes
de NP le sont.
• Inversement, si l’un d’eux est prouvé être difficile, alors la classe NP
est distincte de la classe P.
Probleme NP-complet
• Definition: Un problème de décision est dit NP-complet si tout
problème de la classe NP lui est polynomialement réductible.
• Le concept central relié à la définition de la NP-complétude est celui
de la réduction entre problème
La réduction polynomiale
• Définition: Un problème A est réductible à un problème B s’il existe
un algorithme résolvant A qui utilise un algorithme résolvant B.
• Définition: Si l’algorithme résolvant A est polynomial, considérant les
appels à l’algorithme résolvant B comme de complexité constante, la
réduction est dite polynomiale. On dit que A est polynomialement
réductible à B et l’on note A
Comment montrer qu’un probleme est NP-
Complet?
Sachant que la réduction polynomiale est transitive, pour montrer
qu’un nouveau problème P est NP-complet, on procède comme suit:
1. Montrer P est dans NP
2. Choisir un problème, P2, NP-complet approprié
3. Construire une réduction f, qui transformant P2 vers P telle que I une
oui-instance de P2 ⇔ f(I) une oui-instance de P

Vous aimerez peut-être aussi