Title: CSI%203505%20/%20Automne%202005:%20Conception%20et%20Analyse%20des%20Algorithmes%20I.
1CSI 3505 / Automne 2005 Conception et Analyse
des Algorithmes I.
- Plan du Cours
- Introduction (Chapitre 1)
- Techniques de résolution Diviser pour régner
(Chapitre 2) - Techniques de résolution Programmation
dynamique(Chapitre 3) - Techniques de résolution Algorithmes
voraces(Chapitre 4) - Introduction a la théorie de Complexité du
calcul(Chapitre 9)
2CSI 3505 La théorie de Complexité
- Bornes inférieures pour la complexité dun
problème
Un algorithme A est optimal (dans le cas pire)
pour P si on peut montrer quil est impossible de
trouver un autre algorithme pour P et qui a une
meilleure complexité (dans le cas pire) que A.
3CSI 3505 La théorie de Complexité
- Comment montrer quun algorithme est optimal ?
- Trouver une borne inférieure (Lower Bound) sur le
nombre dopérations nécessaires pour résoudre P.
Cest dire que pour tous les algorithmes A on
doit prouver que
WA(n) ? K
4CSI 3505 La théorie de Complexité
- Exemple Multiplication des matrices
Algorithme de Strassen n2.81
Meilleur algorithme connu n2.376
Il existe une borne inférieure pour ce problème
n2
Pour tout algorithme optimal A de multiplication
des matrices
n2 ? WA(n) ? n2.376
5CSI 3505 La théorie de Complexité
- Exemple 2 recherche dun élément dans une liste
de n nombres - Il existe une borne inférieure pour ce problème
n - Donc lalgorithme de recherche séquentielle est
optimal
6CSI 3505 La théorie de Complexité
- Exemple Tri (basé sur les comparaisons des
clefs) - On sait quil y a des algorithmes de tri dont la
complexité est (n log n). - Peut on faire mieux?
- Quelle est la borne inférieure pour ce problème?
7CSI 3505 La théorie de Complexité
- Arbres de décision
- arbre binaire où chaque nœud interne représente
une comparaison de lalgorithme - Exemple du tri par insertion pour le cas n3
8CSI 3505 La théorie de Complexité
- Trier trois nombres avec lalgorithme du tri par
insertion - comportement de lalgorithme pour (5,7,2)
Chaque type dentrée correspond à un chemin de la
racine à une feuille dans larbre de décision.
En général Le nombre maximal de comparaisons est
Ă©gal Ă la longueur du plus long chemin de la
racine aux feuilles.
9CSI 3505 La théorie de Complexité
10CSI 3505 La théorie de Complexité
- Propriété des arbres binaires
- Profondeur longueur du plus long chemin de la
racine aux feuilles - Un arbre binaire avec k feuilles a une profondeur
- d ? ?log k?
- Preuve par induction k ? 2d
- d ? ?log k?
- log k ? log 2d
log k ? d
11CSI 3505 La théorie de Complexité
- Obtenir une borne inférieure pour tout les
algorithmes de tri qui utilisent des comparaisons - A algorithme de tri qui utilise des comparaisons
- TA(n) arbre de décision pour A avec un input de
taille n - WA(n) profondeur de TA(n)
WA(n) ? ?log t? (t est le nombre des feuilles
dans larbre de décision)
12CSI 3505 La théorie de Complexité
- Nombre de feuilles ?
- pour chaque permutation des valeurs a trier x1,
, xn on aura au moins une feuille - Chaque permutation est une solution pour quelques
ensembles de valeurs (donc elle doit apparaître
comme feuille dans l'arbre
Donc t ? n !
WA(n) ? ?log t? ? ?log n!?
13CSI 3505 La théorie de Complexité
- log n ! ?(n log n )
- Donc la complexité de tout algorithme de tri par
comparaisons est
?(n log n)
14CSI 3505 La théorie de Complexité
- Nous savons que il existe des algorithmes de tri
avec une complexité O(n log n) (exemple tri par
fusion) - Puisque la borne inférieure pour les algorithmes
de tri est de - n log n
Tri par fusion est un algorithme optimal
?(n log n) est un temps nécessaire et suffisant
pour trier n éléments.
15CSI 3505 La théorie de Complexité
- Un algorithme est dit polynomial si sa
complexité dans le pire cas est inférieure ou
Ă©gale Ă ?(p(n)), oĂą p(n) est un polynĂ´me en n
(n est la taille de l'input). - Ex. ?(n2) oui
- ?(n4) oui
- ?(nn) non
- ?(n!) non
- ?(n200000) oui
16CSI 3505 La théorie de Complexité
- Un algorithme est efficace (polynomial) si sa
complexité dans le pire cas est O(p(n)) ou n est
la taille de linput du problème. - efficace polynomial
17CSI 3505 La théorie de Complexité
- Un problème est tractable si l'on connaît un
algorithme - polynomial pour le résoudre.
-
- Il existe de nombreux problèmes pour lesquels
aucun - algorithme polynomial n'est connu.
- Pour certains d'entre eux, des algorithmes
- polynomiaux existent mais aucun n'a encore été
découvert. - Pour d'autres, nous avons une forte impression
- qu'aucun algorithme polynomial ne peut ĂŞtre
trouvé.
18CSI 3505 La théorie de Complexité
- Un problème est non tractable
- sil ny a aucun algorithme polynomial qui le
résout. - (Tous les algorithmes ont une complexité dans le
pire cas qui ne peut être borné par un polynôme
p(n) où n est la taille du problème.) - Exemples de fonctions non bornés par un polynôme
19CSI 3505 La théorie de Complexité
- Lutilité de cette classification?
- Si le problème est non tractable ne sert a rien
dessayer de chercher un algorithme efficace. - Tous les algorithmes seront trop lents pour des
données assez grandes. - Changer la stratégie en utilisant des
approximations, heuristiques, etc. - Quelque fois on a besoin de résoudre des versions
restreintes du problème. La version restreinte
pourrait ĂŞtre tractable
20CSI 3505 La théorie de Complexité
- Non décidable
- problème impossible à résoudre il ne peut
jamais exister un algorithme. - Turing a montré quil existe des problèmes quon
ne pourra jamais résoudre non décidable - Exemple Problème darrêt
21CSI 3505 La théorie de Complexité
22CSI 3505 La théorie de Complexité
- Pour plusieurs problèmes pratiques, personne na
jamais trouvé un algorithme efficace pour les
résoudre - Exemples
- Commis voyageur, coloration des graphes, etc.
- La plupart des problèmes en "testing et routing".
- Plusieurs problèmes de réseaux, bases de données,
problèmes sur les graphes, etc.
23CSI 3505 La théorie de Complexité
- La théorie des problèmes NP-complets
- Cette théorie nous permet de prouver que la
plupart de ces problèmes non-tractables sont
équivalents en termes de difficulté. - Un problème de ce type NP complet ne peut
probablement pas être résolu dune façon efficace
24CSI 3505 La théorie de Complexité
- Besoin de définir
- Problème de décisions
- La classe des problèmes P
- Algorithmes non déterministes
- La classe des problèmes NP
- Le concept de transformations polynomiales
- La classe des problèmes NP-complets
25CSI 3505 La théorie de Complexité
- Dans toute cette théorie, on ne considère que les
problèmes de décisions - Un problème est dit de décision si pour tout
input, lunique output possible est de type - OUI ou NON
26CSI 3505 La théorie de Complexité
- Exemples
- Étant donnés un graphe G, un nombre k et deux
sommets s et t dans G, - existe-t-il un chemin de longueur au plus k?
- Étant donné un graphe G,
- existe-t-il un cycle Hamiltonien dans G?
- (Un cycle est, dit Hamiltonien si tous les
sommets du graphe apparaissent une et une seule
fois dans ce cycle)
27CSI 3505 La théorie de Complexité
- La plupart des problèmes doptimisation peuvent
ĂŞtre convertis Ă des problèmes de dĂ©cision. - Il suffit dajouter une borne K sur la valeur Ă
optimiser et changer la question - Existe-t-il une solution dont la valeur est au
plus K (Pour les problèmes de minimisation) - Existe-t-il une solution dont la valeur est au
moins K (Pour les problèmes de maximisation)
28CSI 3505 La théorie de Complexité
- Version du commis voyageur comme problème de
décision - Soient un ensemble de villes Cc1,...,cm, une
fonction distance d(ci, cj) entre les villes dans
C. Soit un nombre K. Existe-t-il un tour de
toutes les villes dont la longueur est au plus K?
La problème du commis voyageur est tractable si
est seulement si le problème de décision
correspondant est tractable
29CSI 3505 La théorie de Complexité
- Algorithme polynomial non-déterministe
- 1) Guessing (partie non-déterministe)
- retourne un string S pour une instance I
donnée du problème - 2) Vérification (partie déterministe)
- retourne oui/non pour l'instance I et le string
S - (ou bien ne s'arrĂŞte pas)
30CSI 3505 La théorie de Complexité
- DĂ©finition La classe P
- Un problème de décision est dans la classe P sil
a des algorithmes polynomiaux déterministe qui le
résout. - Définition La classe NP
- Un problème de décision est dans la classe NP
sil a des algorithmes polynomiaux non
déterministe qui le résoud. - NP Non-deterministic Polynomially bounded.
31CSI 3505 La théorie de Complexité
- Classe NP classe des problèmes pour lesquels on
est capable de vérifier dans un temps polynomial
si S (une proposition de solution) est ou non une
solution. - Théorème P ? NP
32CSI 3505 La théorie de Complexité
- Algorithme de vérification pour le problème du
commis voyageur - Vérification si un ensemble de sommets représente
une solution - VĂ©rifier que cest un cycle.
- VĂ©rifier que sa longueur est au plus K.
- Il y a un algorithme polynomial qui fait cette
vérification - Le problème du commis voyageur est dans NP
33CSI 3505 La théorie de Complexité
- Algorithme de vérification pour le problème
CHEMIN (Étant données un graphe G, un nombre k
et deux sommets s et t, existe-t-il un chemin de
longueur au plus k?) - Vérification si un ensemble de sommets représente
une solution - VĂ©rifier que cest un chemin de s a t.
- VĂ©rifier que sa longueur est au plus K.
- Il y a un algorithme polynomial qui fait cette
vérification. Le problème CHEMIN est dans NP
34CSI 3505 La théorie de Complexité
Soit G (V,E) un graphe orienté dont on veut
colorer les Sommets avec la condition
suivante Deux sommets reliés par une arête, ont
deux couleurs différentes.
Problème Étant donnée un graphe G, trouver un
algorithme qui colore proprement G et qui utilise
le nombre minimum possible de couleurs
Forme de Décision Étant données un graphe G et
un entier positif k, est-ce qu'il existe une
coloration qui utilise au plus k couleurs ?
35CSI 3505 La théorie de Complexité
- Ordonnancement des Examens exemple dun
problème qui peut s'exprimer en termes de
coloration d'un graphe
Un graphe dont les sommets sont tous les cours,
et on met une arĂŞte entre u et v sil existe au
moins un Ă©tudiant qui prends les cours u et v en
mĂŞme temps.
36CSI 3505 La théorie de Complexité
3
1
2
5
4
Deux couleurs
37CSI 3505 La théorie de Complexité
2 couleurs
5 couleurs
2 couleurs
3 couleurs
38CSI 3505 La théorie de Complexité
- Algorithme de vérification pour le problème
COLORATION - VĂ©rification si une coloration des sommets
représente une solution - Vérifier que le nombre de couleurs utilisées est
au plus K. - Pour chaque arĂŞte (u, v) dans le graphe, VĂ©rifier
que u et v sont colorés différemment. - Il y a un algorithme polynomial qui fait cette
vérification. Le problème COLORATION est dans NP
39CSI 3505 La théorie de Complexité
- Algorithme de vérification pour le problème
HAMILTONIEN - Vérification si un ensemble de sommet représente
une solution - VĂ©rifier que ce ensemble contient tous les
sommets du graphe une seule fois. - Il y a un algorithme polynomial qui fait cette
vérification. Le problème HAMILTONIEN est dans NP
40CSI 3505 La théorie de Complexité
- Une question ouverte (personne na pu la
résoudre) - Est ce que P NP?
41CSI 3505 La théorie de Complexité
- La classe des problèmes NP-complets est
lensemble de tous les problèmes P vérifiant
les propriétés suivantes -
- 1- P est dans NP.
- 2- Il existe une algorithme polynomial pour
résoudre P si est seulement si pour tout problème
Q dans la classe NP il existe un algorithme
polynomial pour résoudre Q.
42CSI 3505 La théorie de Complexité
- Comment prouver
- Il existe un algorithme polynomial pour résoudre
P - si est seulement si
- pour tout autre problème dans la classe NP il
existe un algorithme polynomial pour le résoudre?
43CSI 3505 La théorie de Complexité
- Réduction des problèmes.
1. La transformation doit se faire en temps
polynomial
2. La réponse correcte de P1 pour x est
 OUI" si et seulement si la réponse correcte
de P2 pour T(x) est aussi " OUI ".
44CSI 3505 La théorie de Complexité
- Si la fonction T peut ĂŞtre calculer en temps
polynomial, - nous dirons que P1 est polynomialement
réductible en P2 - ( P1 ? P2)
- P1 ? P2 sil existe une fonction T qui
transforme tout input x de P1 en T(x), un
input de P2, de telle sorte que la réponse
correcte de P1 pour x soit "oui" si et
seulement si la réponse correcte de P2 pour
T(x) est aussi "oui".
45CSI 3505 La théorie de Complexité
- P1 ? P2
- P2 est au moins, aussi difficile à résoudre que
P1 - La composition de la fonction T et de
l'algorithme résolvant P2 nous donne un
algorithme pour résoudre P1.
46CSI 3505 La théorie de Complexité
- Théorème
- Si P1 ? P2 et P2 est dans P, alors P1 est aussi
dans P. - DĂ©finition Ă©quivalente de la classe NP-complet
- Un problème P1 est NP-complet si
- P1 est dans NP et,
- pour tout autre problème P2 dans NP, P2 ? P1
47CSI 3505 La théorie de Complexité
- Conséquence trés importante
- si l'on parvient à montrer qu'un problème
NP-complet - se trouve dans P, alors on aura démontré que
tous les - problèmes de NP sont dans P ! ET DONC P NP!!!
Prenons un problème P2 quelconque dans
NP. Puisque P est NP-complet, alors P2 ? P1. La
composition de la transformation (polynomiale) et
lalgorithme polynomial de P1 nous donne un
algorithme polynomial pour P2.
Très improbable que ceci soit vrai
48CSI 3505 La théorie de Complexité
- DĂ©finition Forme normale conjonctive (FNC)
- Littéral variable booléenne ou sa négation (x
ou ?x) - Clause littéral ou une disjonction de littéraux
(?) - Une expression booléenne est en Forme normale
conjonctive (FNC) si elle est une clause ou une
conjonction (?) de clauses
(?x1 ? x2 ? ?x3 ) ? (x1 ? ?x4 ) ? (?x2 ? ?x3 ?
?x4 )
K-FNC les clauses contenant un maximum de k
littéraux
49CSI 3505 La théorie de Complexité
- Problème de Satisfaisabilité
Une expression booléenne est satisfaisable s'il
existe (au moins) une assignation de valeurs a
ses variables booléenne qui la rende vraie
SAT Problème de décider, étant donnée une
expressions booléenne, si elle est satisfaisable
K-SAT Problème de décider, étant donnée une
expressions booléenne avec ? k littéraux, si elle
est satisfaisable
50CSI 3505 La théorie de Complexité
- SAT-FNC
- la restriction de SAT aux formes normales
conjonctives
k-SAT-FNC la restriction de SAT aux formes
normales conjonctives avec au plus k littéraux
(exemple 2-SAT est resolvable en temps
polynomial)
51CSI 3505 La théorie de Complexité
(?x1 ? x2 ? ?x3 ) ? (x1 ? ?x4 ) ? (?x2 ? ?x3 ?
?x4 )
OUI
x1 vrai x2 vrai x3 faux x4 faux
NON
(x1 ? x2) ? (?x1) ? (?x2)
52CSI 3505 La théorie de Complexité
- Theorème de Cook
- SAT-FNC est un problème NP-complet
- Conséquence
- 3-SAT-FNC est un problème NP-complet
53CSI 3505 La théorie de Complexité
- C est une Clique dans un graphe G si toutes les
paires de sommets dans C sont adjacentes. C est
un sous graphe complet dans G - Problème CLIQUE
- Étant donnée un graphe G, un nombre k,
existe-t-il une clique de taille k?
G contient une clique de taille 4
54CSI 3505 La théorie de Complexité
- CLIQUE est NP-complet
- Clique est dans NP
- Vérification si un ensemble de sommet représente
une solution - VĂ©rifier que ce ensemble contient k sommets.
- Vérifier que ce ensemble de sommets représente
une clique toutes les paires sont reliées. - Il y a un algorithme polynomial qui fait cette
vérification. Le problème CLIQUE est dans NP
55CSI 3505 La théorie de Complexité
- Il suffit de réduire 3-SAT au probléme CLIQUE
- 3-SAT ? CLIQUE
- Transformer une expression booléenne 3-FNS en un
graphe tel que ce graphe contient une clique de
taille k - si est seulement si
- lexpression booléenne est satisfaisable.
56CSI 3505 La théorie de Complexité
- La réduction
- Soit B C1 ? C2 ? ? Ck une formule en 3-CNF,
avec k clauses, contenant chacune 3 littéraux
distincts. - Pour chaque clause on crée 3 sommets, un pour
chaque littéral dans la clause. - On relie deux sommets sils proviennent de deux
clauses différentes et que leurs littéraux sont
consistents lun nest pas la négation de
lautre - Exemple B (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x
? y ? z )
57CSI 3505 La théorie de Complexité
- Exemple E (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x ?
y ? z )
58CSI 3505 La théorie de Complexité
- Preuve
- Si E est satisfaisable, alors chaque clause a au
moins un littéral sommet avec une valeur
Vraie - Prends le sommet correspondant de chaque
littéral. Ça doit former une clique de taille k.
(Pourquoi?) - Si G a une clique V de taille k, alors V
contient un sommet (littéral) dans chacune des
clause de E. (Pourquoi?) - Il suffit de donner la valeur Vraie pour ces
littéraux. Ceci satisfait la formule E, sans
risque davoir des contradictions.
59CSI 3505 La théorie de Complexité
- Exemple E (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x ?
y ? z)
X Vrai Y Vrai Z Faux
60CSI 3505 La théorie de Complexité
- Autres exemples de problèmes NP-complets
- Vertex Cover (VC)
- Instance Graphe G(V,E) et un entier k
- Question Existe-t-il une couverture de G par un
ensemble de sommets de taille au plus k? - (V? V une couverture de G si pour tout (u,v)?E,
on a u?Vou v?V). - Ensemble Indépendant (IND)
- Instance Graphe G(V,E) et un entier k
- Question Existe-t-il un ensemble indépendant
dans G de taille au moins k? - (V? V est indépendant si pour tous u,v?V,
(u,v)?E.)
61CSI 3505 La théorie de Complexité
- Cycle Hamiltonien (HAM)
- Instance Graphe G(V,E) et un entier k
- Question Existe-t-il un cycle Hamiltonien dans
G? - Coloration des graphes(COLORATION)
- Instance Graphe G(V,E) et un entier k
- Question Peut on colorer les sommets de G avec
au plus k couleurs, tel que toute paire de
sommets adjacents ont des couleurs differentes. - 3-Coloration des graphes (lorsque k3)
- Somme
- Instance Un ensemble dentiers E et un entier T
- Question Existe-t-il un sous ensemble de E dont
la somme est T?
62CSI 3505 La théorie de Complexité
Problèmes NP
Problèmes NP-Complets
TSP
ArrĂŞt
Problèmes P
TRI
63CSI 3505 La théorie de Complexité
SAT
3-SAT-CNF
Clique
Somme
VertexCover
Hamiltonien
Commis Voyageur
64CSI 3505 La théorie de Complexité
- Prouver quun problème Q est NP-complet?
- Prouver que Q est dans NP (VĂ©rification si un
ensemble représente une solution en un temps
polynomial) - Trouver un problème R quon sait deja quil est
NP-complet et trouver une fonction T qui
transforme chaque instance du probléme R en une
instance du probléme Q avec les propriétés
suivantes - La transformation T se fait en un temps
polynomial - Si la réponse a linstance I du problème R est
OUI alors la réponse a linstance T(I) du
problème Q est OUI - Si la réponse a linstance T(I) du problème Q est
OUI alors la réponse a linstance I du problème
R est OUI
65CSI 3505 La théorie de Complexité
- Exemple Problème du plus long cycle (PLC).
- Soit un graphe G et un entier k, déterminer si G
possède un cycle de longueur ? k. - Le problème PLC est NP-complet.
- Supposons quon a déjà prouver que le Problème
Hamiltonien est NP-complet
66CSI 3505 La théorie de Complexité
- 1) PLC est dans NP une solution proposée peut
clairement être vérifiée en temps polynomial. - 2) Montrons que le problème du cycle hamiltonien
(HAM) est polynomialement réductible en PLC, HAM
? PLC. - Supposons que le graphe G(V,E) soit l'input de
HAM, et que nous désirions donc savoir s'il
existe un cycle hamiltonien pour G. Nous
transformons cet input en un input pour PLC
étant donné G, déterminer si G possède un cycle
de longueur ? V.
67CSI 3505 La théorie de Complexité
- Clairement,
- Si G possède un cycle hamiltonien alors G a un
cycle de longueur supĂ©rieure ou Ă©gale Ă V'. - Si G a un cycle de longueur supĂ©rieure ou Ă©gale Ă
V' alors G possède un cycle hamiltonien. - Nous avons ainsi montré que HAM ? PLC.
-
- PLC est NP-complet
68CSI 3505 La théorie de Complexité
- Problème du commis voyageur (TSP).
- Soit un graphe G complet et pondéré avec n
sommets, et soit une valeur k, existe-t-il un
tour de poids ? k?. - Le problème TCP est NP-complet.
- Supposons quon a déjà prouver que le Problème
Hamiltonien est NP-complet
69CSI 3505 La théorie de Complexité
- TSP est dans NP une solution proposée peut
clairement être vérifiée en temps polynomial. - Vérifier que cest un cycle.
- VĂ©rifier que sa longueur est au plus k
- 2) Montrons que le problème du cycle hamiltonien
(CH) est polynomialement réductible en TSP, HAM ?
TSP. - Supposons que le graphe G(V,E) soit l'input de
HAM, et que nous désirions donc savoir s'il
existe un cycle hamiltonien pour G. Nous
transformons cet input en un input G pour TSP
ou n V - Ajoute a G toutes les arĂŞtes qui manquent dans
G pour obtenir un graphe complet - Les arĂŞtes qui existaient dans G auront un
poids de 1, et les nouvelles arĂŞtes auront un
poids de 2.
70CSI 3505 La théorie de Complexité
71CSI 3505 La théorie de Complexité
- On a besoin dau plus (n2) pour effectuer la
transformation (Créer la matrice dadjacence pour
G). - Supposons quil existe un cycle Hamiltonien v1,
v2, , vn pour G. Ce cycle est un tour dans G et
son poids est n puisque toutes les arĂŞtes de G
ont un poids de 1. Donc la rĂ©ponse est OUI Ă
linput G pour le problème TSP. - Supposons quil existe un tour dans G de poids
n. Puisque ce tours contient tous les sommets de
G et donc n arĂŞtes et puisque chaque arĂŞte a un
poids 1, alors le poids du tour est n et toutes
ses arĂŞtes ont un poids de 1. Donc les arĂŞte du
tours sont toutes dans G. Ce qui représente un
cycle Hamiltonien dans G. Donc la réponse est
OUI à linput G pour le problème Hamiltonien
(HAM).
72CSI 3505 La théorie de Complexité
- Qui faire si le problème est NP-complet?
- Approche 1
- Chercher à obtenir autant d'amélioration que
possible sur la simple - recherche exhaustive. (Tout en acceptant
l'apparente inévitabilité que lalgorithme aura
une complexité exponentiel) - Approche 2
- Tenter de trouver une "bonne" solution (pas
nécessairement optimale) en un temps acceptable. - Ces algorithmes sont appelés algorithmes
approximatifs ou heuristiques ils sont souvent
basés sur quelques règles empiriques
intelligemment choisies.
73CSI 3505 La théorie de Complexité
- Exemple Un heuristique vorace pour le problème
du commis voyageur "plus proche voisin" - Choisir une ville initiale puis toujours choisir
comme ville suivante la ville non encore visitée
la plus proche de la ville courante. -
-
- Heuristique simple
- La différence entre la solution trouver et la
solution optimale pourrait ĂŞtre arbitrairement
grande -
74CSI 3505 La théorie de Complexité
- Les algorithmes approximatifs sont habituellement
évalués par une combinaisons d'études
empiriques. - Certains offrent des garanties théoriques
d'efficacité, - alors que d'autres n'en offrent guère et peuvent
même - s'avérer extrêmement mauvais pour certaines
instances de problèmes.
75CSI 3505 La théorie de Complexité
- Bornes inférieures sur les solutions optimales
pour calibrer les solutions heuristiques - Cas des solutions heuristiques pour les problème
de minimisation
La valeur d'une solution optimale Ă notre
problème ? la valeur d'une solution
heuristique à notre problème.
Si la solution heuristique n'offre pas de
garantie théorique d'efficacité, ces deux valeurs
peuvent être très éloignées - aucun moyen
d'évaluer la qualité de notre solution
heuristique.
76CSI 3505 La théorie de Complexité
- On ne connaît pas la valeur de la solution
optimale, par contre supposons que nous obtenions
une borne inférieure - (pas trop petite) sur la valeur d'une solution
optimale.
La valeur de la borne inférieure ? la valeur
d'une solution optimale à notre problème ? la
valeur d'une solution heuristique Ă notre
problème.
Si la différence entre la borne inférieure et la
solution heuristique est petite . Si par
contre cette différence est grande ..
77CSI 3505 La théorie de Complexité
- Borne inférieure pour le problème du commis
voyageur (avec des poids non-négatifs) - Prenons un tour T de poids minimal et soit T
obtenu de T en éliminant une arête quelconque. - T est un arbre recouvrant du graphe de départ et
Poids(T) ? Poids(T) - On est capable de construire facilement un arbre
recouvrant minimal (MST) et donc - Poids(MST) ? Poids(T) ? Poids(T)
78CSI 3505 La théorie de Complexité
- Le poids dun arbre recouvrant minimal représente
une borne inférieure pour le problème du commis
voyageur
79CSI 3505 La théorie de Complexité
- 2-approximation pour le problème du commis
voyageur (TSP) - On suppose quon a linégalité triangulaire
- w(a,b) w(b,c) w(a,c) pour tout les sommets
a, b et c. - Même dans ce cas, le problème est NP-complet
80CSI 3505 La théorie de Complexité
- Algorithme dapproximation
- Construire un arbre recouvrant minimale T avec
une racine quelconque r (en utilisant par exemple
lalgorithme de Prim) - On explore larbre en utilisant un pre-ordre
(visiter sommet avant les fils). Soit L la liste
des sommets par ordre de visite - Retourner le tour qui correspond a lordre des
sommets dans L.
81CSI 3505 La théorie de Complexité
82CSI 3505 La théorie de Complexité
- Un tour pour TSP (moins une arête) représente un
arbre recouvrant donc MltOPT. - Le tour dEuler P visite chacune des arĂŞtes de M
deux fois, donc P2M - Les raccourcis quon fait dans P, naugmente pas
le poids total du tour à cause de linégalité
triangulaire w(a,b) w(b,c) gt w(a,c) donc,
TltP. - Conclusion, TltP2Mlt2OPT
83CSI 3505 La théorie de Complexité
- 3/2-approximation TSP (Christofides 1976)
- Meilleure approximation connue pour TSP