Académique Documents
Professionnel Documents
Culture Documents
htm
- Prsentation - Les graphes - Les arbres - Reprsentation - Complexit - Chemin - Ordonnancement - Flot maximum - Prog. linaire - Version PDF
file:///C|/Documents%20and%20Settings/puma/Mes%20documents/de...info/cours/Recherche%20op/EFFICACITE%20DES%20ALGORITHMES,.htm
alors que jusqu prsent on considrait la complexit temporelle. La complexit spatiale peut se dfinir dune manire semblable la complexit temporelle. Dans la suite de ce cours, on sintressera uniquement la complexit temporelle.
ALGORITHME EFFICACE
Une fois la complexit dfinie de manire succincte, on peut tenter de dfinir ce quest un algorithme efficace. Un algorithme sera dit efficace si sa complexit est borne par un polynme ayant la taille des donnes comme variable. Par exemple, un algorithme qui a en entre un tableau de n lments et qui a une complexit de n2 est un algorithme efficace. On dit aussi que lalgorithme est polynomial. Cette dfinition est justifie par le fait quon sintresse aux performances des algorithmes quand la taille des donnes en entre devient trs importante. Par exemple, considrons les algorithmes A, B et C. Leur complexit sont les suivantes.
q
Avec 4 lments, il faut respectivement 320, 160 et 24 oprations aux algorithmes A, B et C pour sexcuter. Le plus efficace pour 4 lments est donc C. Considrons maintenant 20 lments, il faut respectivement 1600, 4000 et 2.4 1018 oprations pour raliser lexcution. On saperoit tout de suite que lalgorithme C nest plus utilisable. Par contre, A et B restent applicables. Maintenant, avec 100 lments, il faut respectivement 8000 et 100000 oprations. Bien videmment, lalgorithme A est le plus performant, mais lalgorithme B reste applicable. Cet exemple justifie la notion defficacit. Si le nombre doprations "nexplose pas" avec une augmentation de la taille des donnes, lalgorithme est considr efficace. Certains pourraient demander ce quest prcisment une opration. En gnral, on considre comme tant une opration lmentaire une affectation, une addition, un test... Mais cela est discutable puisque selon le langage et le compilateur, une opration sera excute plus ou moins vite, une addition sexcutera plus ou moins vite quun test... Cependant, il faut bien comprendre que lon sintresse au comportement gnral de lalgorithme face des problmes de grande taille. Ainsi, ce nest pas utile de compter toutes les oprations dans le dtail, ni de considrer le langage de programmation. Dans notre exemple, les coefficients 80 et 10 ne sont pas trs importants, ds que la taille augmente, on saperoit que cest le terme en n qui prime. Ceci explique la difficult dterminer la complexit dun algorithme. Il faut tre trs prcis dans la dmarche mais ne pas se soucier de la valeur exacte en terme de temps dexcution de chaque opration.
file:///C|/Documents%20and%20Settings/puma/Mes%20documents/de...info/cours/Recherche%20op/EFFICACITE%20DES%20ALGORITHMES,.htm
Problme de reconnaissance
Un problme de reconnaissance est un problme qui consiste apporter une rponse "oui" ou "non" une question. A chaque problme doptimisation combinatoire, on peut associer un problme de reconnaissance de la manire suivante. Soit un problme doptimisation combinatoire: Trouver s S | f(s) = min{f(s) | s S}. Soit a un nombre, on dfinit le problme de reconnaissance associ: Existe-t-il s S | f(s) a ? Un problme doptimisation combinatoire est au moins aussi difficile que le problme de reconnaissance associ. De plus, on peut gnralement prouver que le problme de reconnaissance nest pas plus facile que le problme doptimisation combinatoire. En dautres termes, cela signifie quun problme doptimisation combinatoire est souvent du mme niveau de difficult que le problme de reconnaissance associ. Cela justifie que la suite de ce chapitre ne concerne que les problmes de reconnaissance.
La classe NP
Parmi les problmes dcidables, les plus simples rsoudre sont regroups dans la classe NP. Un problme appartient la classe NP si quelquun ayant la solution au problme peut dmontrer que c'est la solution en un temps polynomial. Les autres problmes dcidables sont considrs comme trs difficiles. La classe NP est galement dcompose en trois catgories qui permettent didentifier les problmes les plus simples et les problmes les plus compliqus de la classe.
La classe P
La classe P, qui regroupe les problmes les plus simples de la classe NP, contient les problmes pour lesquels on connat au moins un algorithme polynomial pour les rsoudre. Pour le reste de la classe NP, on nest pas sr quil nexiste pas un algorithme polynomial pour rsoudre chacun de ses problmes.
file:///C|/Documents%20and%20Settings/puma/Mes%20...echerche%20op/EFFICACITE%20DES%20ALGORITHMES,.htm (3 of 5)06/04/2006 22:05:51
file:///C|/Documents%20and%20Settings/puma/Mes%20documents/de...info/cours/Recherche%20op/EFFICACITE%20DES%20ALGORITHMES,.htm
Ainsi, on sait que P est inclu dans NP mais on na pas pu prouver que P n'est pas NP.
Rduction polynomiale
Soit deux problmes P1 et P2. On dit que P1 est rduit au problme P2 si on peut rsoudre P1 en utilisant un algorithme pour P2 comme sous-routine. Cette rduction est dite polynomiale si lalgorithme pour P1 est polynomial en comptant lappel la sous-routine de P2 comme une opration lmentaire. P2 est au moins aussi difficile que P1. En effet, si P2 appartient la classe P, P1 y appartient aussi, car lalgorithme ci-dessus est polynomial. Si P2 nest pas polynomial, rien nempche P1 de ltre sil existe un algorithme polynomial pour le rsoudre.
La classe NP-Complet
La classe NP-Complet regroupe les problmes les plus difficiles de la classe NP. Elle contient les problmes de la classe NP tels que nimporte quel problme de la classe NP leur est polynomialement rductible. Entre eux, les problmes de la classe NP-Complet sont aussi difficiles.
La classe NP-Difficile
La classe NP-Difficile regroupe les problmes (pas forcment dans la classe NP) tels que nimporte quel problme de la classe NP leur est polynomialement rductible.
Tableau rcapitulatif
file:///C|/Documents%20and%20Settings/puma/Mes%20documents/de...info/cours/Recherche%20op/EFFICACITE%20DES%20ALGORITHMES,.htm