SlideShare une entreprise Scribd logo
11/12/2023 Dr. Nejib Zaguia 1
CSI 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)
11/12/2023 Dr. Nejib Zaguia 2
CSI 3505
La théorie de Complexité
Un algorithme A est optimal (dans le cas pire) pour P
si on peut montrer qu’il est impossible de trouver un
autre algorithme pour P et qui a une meilleure
complexité (dans le cas pire) que A.
Bornes inférieures pour la complexité d’un
problème
11/12/2023 Dr. Nejib Zaguia 3
CSI 3505
La théorie de Complexité
Comment montrer qu’un algorithme est optimal ?
Trouver une borne inférieure (Lower Bound) sur le nombre
d’opérations nécessaires pour résoudre P. C’est dire que
pour tous les algorithmes A on doit prouver que:
WA(n)  K
11/12/2023 Dr. Nejib Zaguia 4
CSI 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
11/12/2023 Dr. Nejib Zaguia 5
CSI 3505
La théorie de Complexité
 Exemple 2: recherche d’un élément dans une liste
de n nombres
Il existe une borne inférieure pour ce problème: n
Donc l’algorithme de recherche séquentielle est
optimal
11/12/2023 Dr. Nejib Zaguia 6
CSI 3505
La théorie de Complexité
Exemple: Tri (basé sur les comparaisons des clefs)
On sait qu’il 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?
11/12/2023 Dr. Nejib Zaguia 7
CSI 3505
La théorie de Complexité
Arbres de décision:
arbre binaire où chaque nœud interne représente
une comparaison de l’algorithme
Exemple du tri par insertion: pour le cas n=3
11/12/2023 Dr. Nejib Zaguia 8
CSI 3505
La théorie de Complexité
ca  b
non
non
oui
En général: Le nombre maximal de
comparaisons est égal à la longueur du
plus long chemin de la racine aux
feuilles.
Trier trois nombres avec l’algorithme du tri par insertion:
comportement de l’algorithme pour (5,7,2)
Chaque type d’entrée correspond à un
chemin de la racine à une feuille dans
l’arbre de décision.
a < b
b<c
a<c
11/12/2023 Dr. Nejib Zaguia 9
CSI 3505
La théorie de Complexité
 Arbres de décision a < b non
oui
b<c
non
oui
a<c
acb cab
non
oui
a bc
b<c
non
oui
b ac bca
cba
a<c
non
oui
11/12/2023 Dr. Nejib Zaguia 10
CSI 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
11/12/2023 Dr. Nejib Zaguia 11
CSI 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 l’arbre de décision)
11/12/2023 Dr. Nejib Zaguia 12
CSI 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!
11/12/2023 Dr. Nejib Zaguia 13
CSI 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)
11/12/2023 Dr. Nejib Zaguia 14
CSI 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.
11/12/2023 Dr. Nejib Zaguia 15
CSI 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
11/12/2023 Dr. Nejib Zaguia 16
CSI 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 l’input du
problème.
efficace = polynomial
11/12/2023 Dr. Nejib Zaguia 17
CSI 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é.
11/12/2023 Dr. Nejib Zaguia 18
CSI 3505
La théorie de Complexité
 Un problème est non tractable
s’il n’y 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:
f n c n
n n
( ) , ,
log
= etc.
11/12/2023 Dr. Nejib Zaguia 19
CSI 3505
La théorie de Complexité
L’utilité de cette classification?
 Si le problème est non tractable: ne sert a rien d’essayer 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
11/12/2023 Dr. Nejib Zaguia 20
CSI 3505
La théorie de Complexité
 Non décidable
 problème impossible à résoudre : il ne peut
jamais exister un algorithme.
Turing a montré qu’il existe des problèmes qu’on ne
pourra jamais résoudre: non décidable
Exemple: Problème d’arrêt
11/12/2023 Dr. Nejib Zaguia 21
CSI 3505
La théorie de Complexité
Problème d’arrêt:
Donnée X
OUI P(X) NON (ne s’arrêtera jamais)
P va-t-il s’ arrêter
pour la donnée X
Problème P
11/12/2023 Dr. Nejib Zaguia 22
CSI 3505
La théorie de Complexité
Pour plusieurs problèmes pratiques, personne n’a
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.
11/12/2023 Dr. Nejib Zaguia 23
CSI 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 d’une façon
efficace
11/12/2023 Dr. Nejib Zaguia 24
CSI 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
11/12/2023 Dr. Nejib Zaguia 25
CSI 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, l’unique output possible est de type
“OUI” ou “NON”
11/12/2023 Dr. Nejib Zaguia 26
CSI 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)
11/12/2023 Dr. Nejib Zaguia 27
CSI 3505
La théorie de Complexité
 La plupart des problèmes d’optimisation peuvent
être convertis à des problèmes de décision.
 Il suffit d’ajouter 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)
11/12/2023 Dr. Nejib Zaguia 28
CSI 3505
La théorie de Complexité
Version du commis voyageur comme problème de
décision
Soient un ensemble de villes C={c1,...,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
11/12/2023 Dr. Nejib Zaguia 29
CSI 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)
11/12/2023 Dr. Nejib Zaguia 30
CSI 3505
La théorie de Complexité
 Définition: La classe P
 Un problème de décision est dans la classe P s’il 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 s’il a
des algorithmes polynomiaux non déterministe qui le
résoud.
 NP “Non-deterministic Polynomially bounded.”
11/12/2023 Dr. Nejib Zaguia 31
CSI 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
11/12/2023 Dr. Nejib Zaguia 32
CSI 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 c’est 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
11/12/2023 Dr. Nejib Zaguia 33
CSI 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 c’est 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
11/12/2023 Dr. Nejib Zaguia 34
CSI 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 ?
Coloration d'un graphe
11/12/2023 Dr. Nejib Zaguia 35
CSI 3505
La théorie de Complexité
Ordonnancement des Examens: exemple d’un problème qui
peut s'exprimer en termes de coloration d'un graphe:
CSI 3505
Phy 1500
ENG 1000
ENG 3300
CSI 3503
Un graphe dont les sommets sont tous les cours, et on met une arête entre
u et v s’il existe au moins un étudiant qui prends les cours u et v en
même temps.
11/12/2023 Dr. Nejib Zaguia 36
CSI 3505
La théorie de Complexité
 Exemple:
Deux couleurs
1 2
3
4
5
11/12/2023 Dr. Nejib Zaguia 37
CSI 3505
La théorie de Complexité
 Autres exemples:
5 couleurs
2 couleurs
3 couleurs
2 couleurs
11/12/2023 Dr. Nejib Zaguia 38
CSI 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
11/12/2023 Dr. Nejib Zaguia 39
CSI 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
11/12/2023 Dr. Nejib Zaguia 40
CSI 3505
La théorie de Complexité
Une question ouverte (personne n’a pu la
résoudre)
 Est ce que P = NP?
11/12/2023 Dr. Nejib Zaguia 41
CSI 3505
La théorie de Complexité
La classe des problèmes NP-complets est
l’ensemble 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.
11/12/2023 Dr. Nejib Zaguia 42
CSI 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?
11/12/2023 Dr. Nejib Zaguia 43
CSI 3505
La théorie de Complexité
Réduction des problèmes.
Problème P1
Input X
Problème P2,
Input T(X)
Transformation T (algorithme)
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 ".
11/12/2023 Dr. Nejib Zaguia 44
CSI 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 :s’il 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".
11/12/2023 Dr. Nejib Zaguia 45
CSI 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.
T
Algorithme
pour P2
T(x)
input
pour P2
x
(input
pour P1)
Réponse
OUI ou NON
11/12/2023 Dr. Nejib Zaguia 46
CSI 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
11/12/2023 Dr. Nejib Zaguia 47
CSI 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
l’algorithme polynomial de P1 nous donne un algorithme
polynomial pour P2.
Très improbable que ceci soit vrai
11/12/2023 Dr. Nejib Zaguia 48
CSI 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
11/12/2023 Dr. Nejib Zaguia 49
CSI 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
K-SAT: Problème de décider, étant donnée une expressions
booléenne avec  k littéraux, si elle est satisfaisable
SAT: Problème de décider, étant donnée une expressions
booléenne, si elle est satisfaisable
11/12/2023 Dr. Nejib Zaguia 50
CSI 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)
11/12/2023 Dr. Nejib Zaguia 51
CSI 3505
La théorie de Complexité
 Exemples:
(x1  x2  x3 )  (x1  x4 )  (x2  x3  x4 ) OUI
(x1  x2)  (x1)  (x2) NON
x1 = vrai x2 = vrai x3 = faux x4 = faux
11/12/2023 Dr. Nejib Zaguia 52
CSI 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
11/12/2023 Dr. Nejib Zaguia 53
CSI 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
11/12/2023 Dr. Nejib Zaguia 54
CSI 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
11/12/2023 Dr. Nejib Zaguia 55
CSI 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
l’expression booléenne est satisfaisable.
11/12/2023 Dr. Nejib Zaguia 56
CSI 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 s’ils proviennent de deux
clauses différentes et que leurs littéraux sont consistents
“l’un n’est pas la négation de l’autre”
 Exemple:
B = (x  y  z)  (x  y  z )  (x  y  z )
11/12/2023 Dr. Nejib Zaguia 57
CSI 3505
La théorie de Complexité
Exemple: E = (x  y  z)  (x  y  z )  (x  y  z )
x1 y1 z1
x2
y2
z2
x3
y3
z3
11/12/2023 Dr. Nejib Zaguia 58
CSI 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 d’avoir des
contradictions.
11/12/2023 Dr. Nejib Zaguia 59
CSI 3505
La théorie de Complexité
Exemple: E = (x  y  z)  (x  y  z )  (x  y  z)
x1 y1 z1
x2
y2
z2
x3
y3
z3
X = Vrai
Y= Vrai
Z= Faux
11/12/2023 Dr. Nejib Zaguia 60
CSI 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V’ou 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.)
11/12/2023 Dr. Nejib Zaguia 61
CSI 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 k=3)
Somme
Instance: Un ensemble d’entiers E et un entier T
Question: Existe-t-il un sous ensemble de E dont la somme
est T?
11/12/2023 Dr. Nejib Zaguia 62
CSI 3505
La théorie de Complexité
Arrêt
Problèmes NP-Complets
Problèmes P
TSP
TRI
Tous les problèmes
Problèmes NP
11/12/2023 Dr. Nejib Zaguia 63
CSI 3505
La théorie de Complexité
SAT
Exemples
Somme
VertexCover
Commis Voyageur
Clique
Hamiltonien
3-SAT-CNF
11/12/2023 Dr. Nejib Zaguia 64
CSI 3505
La théorie de Complexité
 Prouver qu’un 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 qu’on sait deja qu’il 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 l’instance I du problème R est “OUI” alors la
réponse a l’instance T(I) du problème Q est “OUI”
 Si la réponse a l’instance T(I) du problème Q est “OUI” alors la
réponse a l’instance I du problème R est “OUI”
11/12/2023 Dr. Nejib Zaguia 65
CSI 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 qu’on a déjà prouver que le Problème Hamiltonien
est NP-complet
11/12/2023 Dr. Nejib Zaguia 66
CSI 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|.
11/12/2023 Dr. Nejib Zaguia 67
CSI 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
HAM
Input G=(V,E)
PLC, ou k=|V|
Input T(G)=G=(V,E)
Transformation T
11/12/2023 Dr. Nejib Zaguia 68
CSI 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 qu’on a déjà prouver que le Problème Hamiltonien
est NP-complet
11/12/2023 Dr. Nejib Zaguia 69
CSI 3505
La théorie de Complexité
1) TSP est dans NP: une solution proposée peut clairement être vérifiée
en temps polynomial.
1) Vérifier que c’est un cycle.
2) 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.
11/12/2023 Dr. Nejib Zaguia 70
CSI 3505
La théorie de Complexité
 Transformation:
CH
Input G=(V,E)
TSP, ou n=|V|
Input T(G)=G’=(V,E)
Transformation T
1
2
3
5
20 5
50
50
10
10
30
4
1
2
3
5
1
1
1
1
1
1
1
1
4
2
2
2
11/12/2023 Dr. Nejib Zaguia 71
CSI 3505
La théorie de Complexité
1) On a besoin d’au plus (n2) pour effectuer la transformation (Créer la
matrice d’adjacence pour G’).
2) Supposons qu’il 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” à l’input
G’ pour le problème TSP.
3) Supposons qu’il 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”
à l’input G pour le problème Hamiltonien (HAM).
11/12/2023 Dr. Nejib Zaguia 72
CSI 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
l’algorithme 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.
11/12/2023 Dr. Nejib Zaguia 73
CSI 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
11/12/2023 Dr. Nejib Zaguia 74
CSI 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.
11/12/2023 Dr. Nejib Zaguia 75
CSI 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.
11/12/2023 Dr. Nejib Zaguia 76
CSI 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 …..
11/12/2023 Dr. Nejib Zaguia 77
CSI 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)
11/12/2023 Dr. Nejib Zaguia 78
CSI 3505
La théorie de Complexité
Le poids d’un arbre recouvrant minimal
représente une borne inférieure pour le
problème du commis voyageur
11/12/2023 Dr. Nejib Zaguia 79
CSI 3505
La théorie de Complexité
 2-approximation pour le problème du
commis voyageur (TSP)
 On suppose qu’on a l’iné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
a
b
c
5 4
7
11/12/2023 Dr. Nejib Zaguia 80
CSI 3505
La théorie de Complexité
Algorithme d’approximation
 Construire un arbre recouvrant minimale T avec
une racine quelconque r (en utilisant par exemple
l’algorithme de Prim)
 On explore l’arbre 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 l’ordre des
sommets dans L.
11/12/2023 Dr. Nejib Zaguia 81
CSI 3505
La théorie de Complexité
Exemple:
Tour correspondent T pour TSP
Tour d’Euler P a partir du MST
11/12/2023 Dr. Nejib Zaguia 82
CSI 3505
La théorie de Complexité
Un tour pour TSP (moins une arête) représente un arbre recouvrant
donc |M|<|OPT|.
Le tour d’Euler P visite chacune des arêtes de M deux fois, donc
|P|=2|M|
Les raccourcis qu’on fait dans P, n’augmente pas le poids total du tour
[à cause de l’inégalité triangulaire w(a,b) + w(b,c) > w(a,c) ] donc,
|T|<|P|.
Conclusion, |T|<|P|=2|M|<2|OPT|
Tour T obtenu de P Tour Optimal OPT
Tour d’Euler P
11/12/2023 Dr. Nejib Zaguia 83
CSI 3505
La théorie de Complexité
3/2-approximation TSP (Christofides 1976)
Meilleure approximation connue pour TSP

Contenu connexe

Similaire à NP-complet.ppt

Introduction à la théorie de graphes et application
Introduction à la théorie de graphes et applicationIntroduction à la théorie de graphes et application
Introduction à la théorie de graphes et application
MohamedSalimBelkorch
 
Planification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésiennePlanification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésienneJulien Bect
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabouAchraf Manaa
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications
Ibrahim Chegrane
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
Mouloudi1
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdf
Mouloudi1
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
MbarkiIsraa
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
Hajer Trabelsi
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
adeljaouadi
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximationMed Lassoued
 
Transfert de connaissances de I.A par principe de minimum de complexité
Transfert de connaissances de I.A par principe de minimum de complexitéTransfert de connaissances de I.A par principe de minimum de complexité
Transfert de connaissances de I.A par principe de minimum de complexité
I MT
 
Asd1
Asd1Asd1
analyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptxanalyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptx
Malek338029
 
analyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptxanalyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptx
Malek338029
 

Similaire à NP-complet.ppt (18)

Introduction à la théorie de graphes et application
Introduction à la théorie de graphes et applicationIntroduction à la théorie de graphes et application
Introduction à la théorie de graphes et application
 
Planification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésiennePlanification et analyse d'expériences numériques: approche bayésienne
Planification et analyse d'expériences numériques: approche bayésienne
 
Lmfi1
Lmfi1Lmfi1
Lmfi1
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Chapitre 3 la recherche tabou
Chapitre 3 la recherche tabouChapitre 3 la recherche tabou
Chapitre 3 la recherche tabou
 
La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications La recherche approchée de motifs : théorie et applications
La recherche approchée de motifs : théorie et applications
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Cours-optimisation.pdf
Cours-optimisation.pdfCours-optimisation.pdf
Cours-optimisation.pdf
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
La complexité des algorithmes récursives Géométrie algorithmique
La complexité des algorithmes récursivesGéométrie algorithmiqueLa complexité des algorithmes récursivesGéométrie algorithmique
La complexité des algorithmes récursives Géométrie algorithmique
 
Cours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdfCours - TC - Histoire Algorithmique.pdf
Cours - TC - Histoire Algorithmique.pdf
 
Algorithme d'approximation
Algorithme d'approximationAlgorithme d'approximation
Algorithme d'approximation
 
Transfert de connaissances de I.A par principe de minimum de complexité
Transfert de connaissances de I.A par principe de minimum de complexitéTransfert de connaissances de I.A par principe de minimum de complexité
Transfert de connaissances de I.A par principe de minimum de complexité
 
Asd1
Asd1Asd1
Asd1
 
analyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptxanalyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptx
 
analyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptxanalyse dimentionnelle et similitude.pptx
analyse dimentionnelle et similitude.pptx
 

Plus de MbarkiIsraa

Format.pptx
Format.pptxFormat.pptx
Format.pptx
MbarkiIsraa
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
MbarkiIsraa
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
MbarkiIsraa
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
MbarkiIsraa
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
MbarkiIsraa
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
MbarkiIsraa
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
MbarkiIsraa
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
MbarkiIsraa
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
MbarkiIsraa
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
MbarkiIsraa
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
MbarkiIsraa
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
MbarkiIsraa
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
MbarkiIsraa
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
MbarkiIsraa
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
MbarkiIsraa
 

Plus de MbarkiIsraa (15)

Format.pptx
Format.pptxFormat.pptx
Format.pptx
 
correctionTD2JAVA.pdf
correctionTD2JAVA.pdfcorrectionTD2JAVA.pdf
correctionTD2JAVA.pdf
 
correctionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptxcorrectionTD-1-vhdl2947.pptx
correctionTD-1-vhdl2947.pptx
 
PCD YasBas.pptx
PCD YasBas.pptxPCD YasBas.pptx
PCD YasBas.pptx
 
Chapitre3_Partie1.pdf
Chapitre3_Partie1.pdfChapitre3_Partie1.pdf
Chapitre3_Partie1.pdf
 
Chapitre2_Partie1.pdf
Chapitre2_Partie1.pdfChapitre2_Partie1.pdf
Chapitre2_Partie1.pdf
 
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
(GLII-Spécification, vérification et qualité-chapitres 1 et 2-2013-2014.pdf
 
support_cours.pdf
support_cours.pdfsupport_cours.pdf
support_cours.pdf
 
c h02EspaceProbTr.pdf
c h02EspaceProbTr.pdfc h02EspaceProbTr.pdf
c h02EspaceProbTr.pdf
 
Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
prog_reg.pptx
prog_reg.pptxprog_reg.pptx
prog_reg.pptx
 
correctionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptxcorrectionTD-2-vhdl2949.pptx
correctionTD-2-vhdl2949.pptx
 
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdfDiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
DiagrammeSequence&DiagrammaEtatTransition&DiagrammeActivité.pdf
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
 
UML.Objet.4pp.pdf
UML.Objet.4pp.pdfUML.Objet.4pp.pdf
UML.Objet.4pp.pdf
 

NP-complet.ppt

  • 1. 11/12/2023 Dr. Nejib Zaguia 1 CSI 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)
  • 2. 11/12/2023 Dr. Nejib Zaguia 2 CSI 3505 La théorie de Complexité Un algorithme A est optimal (dans le cas pire) pour P si on peut montrer qu’il est impossible de trouver un autre algorithme pour P et qui a une meilleure complexité (dans le cas pire) que A. Bornes inférieures pour la complexité d’un problème
  • 3. 11/12/2023 Dr. Nejib Zaguia 3 CSI 3505 La théorie de Complexité Comment montrer qu’un algorithme est optimal ? Trouver une borne inférieure (Lower Bound) sur le nombre d’opérations nécessaires pour résoudre P. C’est dire que pour tous les algorithmes A on doit prouver que: WA(n)  K
  • 4. 11/12/2023 Dr. Nejib Zaguia 4 CSI 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
  • 5. 11/12/2023 Dr. Nejib Zaguia 5 CSI 3505 La théorie de Complexité  Exemple 2: recherche d’un élément dans une liste de n nombres Il existe une borne inférieure pour ce problème: n Donc l’algorithme de recherche séquentielle est optimal
  • 6. 11/12/2023 Dr. Nejib Zaguia 6 CSI 3505 La théorie de Complexité Exemple: Tri (basé sur les comparaisons des clefs) On sait qu’il 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?
  • 7. 11/12/2023 Dr. Nejib Zaguia 7 CSI 3505 La théorie de Complexité Arbres de décision: arbre binaire où chaque nœud interne représente une comparaison de l’algorithme Exemple du tri par insertion: pour le cas n=3
  • 8. 11/12/2023 Dr. Nejib Zaguia 8 CSI 3505 La théorie de Complexité ca  b non non oui En général: Le nombre maximal de comparaisons est égal à la longueur du plus long chemin de la racine aux feuilles. Trier trois nombres avec l’algorithme du tri par insertion: comportement de l’algorithme pour (5,7,2) Chaque type d’entrée correspond à un chemin de la racine à une feuille dans l’arbre de décision. a < b b<c a<c
  • 9. 11/12/2023 Dr. Nejib Zaguia 9 CSI 3505 La théorie de Complexité  Arbres de décision a < b non oui b<c non oui a<c acb cab non oui a bc b<c non oui b ac bca cba a<c non oui
  • 10. 11/12/2023 Dr. Nejib Zaguia 10 CSI 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
  • 11. 11/12/2023 Dr. Nejib Zaguia 11 CSI 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 l’arbre de décision)
  • 12. 11/12/2023 Dr. Nejib Zaguia 12 CSI 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!
  • 13. 11/12/2023 Dr. Nejib Zaguia 13 CSI 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)
  • 14. 11/12/2023 Dr. Nejib Zaguia 14 CSI 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.
  • 15. 11/12/2023 Dr. Nejib Zaguia 15 CSI 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
  • 16. 11/12/2023 Dr. Nejib Zaguia 16 CSI 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 l’input du problème. efficace = polynomial
  • 17. 11/12/2023 Dr. Nejib Zaguia 17 CSI 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é.
  • 18. 11/12/2023 Dr. Nejib Zaguia 18 CSI 3505 La théorie de Complexité  Un problème est non tractable s’il n’y 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: f n c n n n ( ) , , log = etc.
  • 19. 11/12/2023 Dr. Nejib Zaguia 19 CSI 3505 La théorie de Complexité L’utilité de cette classification?  Si le problème est non tractable: ne sert a rien d’essayer 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
  • 20. 11/12/2023 Dr. Nejib Zaguia 20 CSI 3505 La théorie de Complexité  Non décidable  problème impossible à résoudre : il ne peut jamais exister un algorithme. Turing a montré qu’il existe des problèmes qu’on ne pourra jamais résoudre: non décidable Exemple: Problème d’arrêt
  • 21. 11/12/2023 Dr. Nejib Zaguia 21 CSI 3505 La théorie de Complexité Problème d’arrêt: Donnée X OUI P(X) NON (ne s’arrêtera jamais) P va-t-il s’ arrêter pour la donnée X Problème P
  • 22. 11/12/2023 Dr. Nejib Zaguia 22 CSI 3505 La théorie de Complexité Pour plusieurs problèmes pratiques, personne n’a 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.
  • 23. 11/12/2023 Dr. Nejib Zaguia 23 CSI 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 d’une façon efficace
  • 24. 11/12/2023 Dr. Nejib Zaguia 24 CSI 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
  • 25. 11/12/2023 Dr. Nejib Zaguia 25 CSI 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, l’unique output possible est de type “OUI” ou “NON”
  • 26. 11/12/2023 Dr. Nejib Zaguia 26 CSI 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)
  • 27. 11/12/2023 Dr. Nejib Zaguia 27 CSI 3505 La théorie de Complexité  La plupart des problèmes d’optimisation peuvent être convertis à des problèmes de décision.  Il suffit d’ajouter 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)
  • 28. 11/12/2023 Dr. Nejib Zaguia 28 CSI 3505 La théorie de Complexité Version du commis voyageur comme problème de décision Soient un ensemble de villes C={c1,...,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
  • 29. 11/12/2023 Dr. Nejib Zaguia 29 CSI 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)
  • 30. 11/12/2023 Dr. Nejib Zaguia 30 CSI 3505 La théorie de Complexité  Définition: La classe P  Un problème de décision est dans la classe P s’il 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 s’il a des algorithmes polynomiaux non déterministe qui le résoud.  NP “Non-deterministic Polynomially bounded.”
  • 31. 11/12/2023 Dr. Nejib Zaguia 31 CSI 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
  • 32. 11/12/2023 Dr. Nejib Zaguia 32 CSI 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 c’est 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
  • 33. 11/12/2023 Dr. Nejib Zaguia 33 CSI 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 c’est 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
  • 34. 11/12/2023 Dr. Nejib Zaguia 34 CSI 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 ? Coloration d'un graphe
  • 35. 11/12/2023 Dr. Nejib Zaguia 35 CSI 3505 La théorie de Complexité Ordonnancement des Examens: exemple d’un problème qui peut s'exprimer en termes de coloration d'un graphe: CSI 3505 Phy 1500 ENG 1000 ENG 3300 CSI 3503 Un graphe dont les sommets sont tous les cours, et on met une arête entre u et v s’il existe au moins un étudiant qui prends les cours u et v en même temps.
  • 36. 11/12/2023 Dr. Nejib Zaguia 36 CSI 3505 La théorie de Complexité  Exemple: Deux couleurs 1 2 3 4 5
  • 37. 11/12/2023 Dr. Nejib Zaguia 37 CSI 3505 La théorie de Complexité  Autres exemples: 5 couleurs 2 couleurs 3 couleurs 2 couleurs
  • 38. 11/12/2023 Dr. Nejib Zaguia 38 CSI 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
  • 39. 11/12/2023 Dr. Nejib Zaguia 39 CSI 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
  • 40. 11/12/2023 Dr. Nejib Zaguia 40 CSI 3505 La théorie de Complexité Une question ouverte (personne n’a pu la résoudre)  Est ce que P = NP?
  • 41. 11/12/2023 Dr. Nejib Zaguia 41 CSI 3505 La théorie de Complexité La classe des problèmes NP-complets est l’ensemble 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.
  • 42. 11/12/2023 Dr. Nejib Zaguia 42 CSI 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?
  • 43. 11/12/2023 Dr. Nejib Zaguia 43 CSI 3505 La théorie de Complexité Réduction des problèmes. Problème P1 Input X Problème P2, Input T(X) Transformation T (algorithme) 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 ".
  • 44. 11/12/2023 Dr. Nejib Zaguia 44 CSI 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 :s’il 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".
  • 45. 11/12/2023 Dr. Nejib Zaguia 45 CSI 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. T Algorithme pour P2 T(x) input pour P2 x (input pour P1) Réponse OUI ou NON
  • 46. 11/12/2023 Dr. Nejib Zaguia 46 CSI 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
  • 47. 11/12/2023 Dr. Nejib Zaguia 47 CSI 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 l’algorithme polynomial de P1 nous donne un algorithme polynomial pour P2. Très improbable que ceci soit vrai
  • 48. 11/12/2023 Dr. Nejib Zaguia 48 CSI 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
  • 49. 11/12/2023 Dr. Nejib Zaguia 49 CSI 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 K-SAT: Problème de décider, étant donnée une expressions booléenne avec  k littéraux, si elle est satisfaisable SAT: Problème de décider, étant donnée une expressions booléenne, si elle est satisfaisable
  • 50. 11/12/2023 Dr. Nejib Zaguia 50 CSI 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)
  • 51. 11/12/2023 Dr. Nejib Zaguia 51 CSI 3505 La théorie de Complexité  Exemples: (x1  x2  x3 )  (x1  x4 )  (x2  x3  x4 ) OUI (x1  x2)  (x1)  (x2) NON x1 = vrai x2 = vrai x3 = faux x4 = faux
  • 52. 11/12/2023 Dr. Nejib Zaguia 52 CSI 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
  • 53. 11/12/2023 Dr. Nejib Zaguia 53 CSI 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
  • 54. 11/12/2023 Dr. Nejib Zaguia 54 CSI 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
  • 55. 11/12/2023 Dr. Nejib Zaguia 55 CSI 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 l’expression booléenne est satisfaisable.
  • 56. 11/12/2023 Dr. Nejib Zaguia 56 CSI 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 s’ils proviennent de deux clauses différentes et que leurs littéraux sont consistents “l’un n’est pas la négation de l’autre”  Exemple: B = (x  y  z)  (x  y  z )  (x  y  z )
  • 57. 11/12/2023 Dr. Nejib Zaguia 57 CSI 3505 La théorie de Complexité Exemple: E = (x  y  z)  (x  y  z )  (x  y  z ) x1 y1 z1 x2 y2 z2 x3 y3 z3
  • 58. 11/12/2023 Dr. Nejib Zaguia 58 CSI 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 d’avoir des contradictions.
  • 59. 11/12/2023 Dr. Nejib Zaguia 59 CSI 3505 La théorie de Complexité Exemple: E = (x  y  z)  (x  y  z )  (x  y  z) x1 y1 z1 x2 y2 z2 x3 y3 z3 X = Vrai Y= Vrai Z= Faux
  • 60. 11/12/2023 Dr. Nejib Zaguia 60 CSI 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V’ou 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.)
  • 61. 11/12/2023 Dr. Nejib Zaguia 61 CSI 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 k=3) Somme Instance: Un ensemble d’entiers E et un entier T Question: Existe-t-il un sous ensemble de E dont la somme est T?
  • 62. 11/12/2023 Dr. Nejib Zaguia 62 CSI 3505 La théorie de Complexité Arrêt Problèmes NP-Complets Problèmes P TSP TRI Tous les problèmes Problèmes NP
  • 63. 11/12/2023 Dr. Nejib Zaguia 63 CSI 3505 La théorie de Complexité SAT Exemples Somme VertexCover Commis Voyageur Clique Hamiltonien 3-SAT-CNF
  • 64. 11/12/2023 Dr. Nejib Zaguia 64 CSI 3505 La théorie de Complexité  Prouver qu’un 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 qu’on sait deja qu’il 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 l’instance I du problème R est “OUI” alors la réponse a l’instance T(I) du problème Q est “OUI”  Si la réponse a l’instance T(I) du problème Q est “OUI” alors la réponse a l’instance I du problème R est “OUI”
  • 65. 11/12/2023 Dr. Nejib Zaguia 65 CSI 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 qu’on a déjà prouver que le Problème Hamiltonien est NP-complet
  • 66. 11/12/2023 Dr. Nejib Zaguia 66 CSI 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|.
  • 67. 11/12/2023 Dr. Nejib Zaguia 67 CSI 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 HAM Input G=(V,E) PLC, ou k=|V| Input T(G)=G=(V,E) Transformation T
  • 68. 11/12/2023 Dr. Nejib Zaguia 68 CSI 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 qu’on a déjà prouver que le Problème Hamiltonien est NP-complet
  • 69. 11/12/2023 Dr. Nejib Zaguia 69 CSI 3505 La théorie de Complexité 1) TSP est dans NP: une solution proposée peut clairement être vérifiée en temps polynomial. 1) Vérifier que c’est un cycle. 2) 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.
  • 70. 11/12/2023 Dr. Nejib Zaguia 70 CSI 3505 La théorie de Complexité  Transformation: CH Input G=(V,E) TSP, ou n=|V| Input T(G)=G’=(V,E) Transformation T 1 2 3 5 20 5 50 50 10 10 30 4 1 2 3 5 1 1 1 1 1 1 1 1 4 2 2 2
  • 71. 11/12/2023 Dr. Nejib Zaguia 71 CSI 3505 La théorie de Complexité 1) On a besoin d’au plus (n2) pour effectuer la transformation (Créer la matrice d’adjacence pour G’). 2) Supposons qu’il 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” à l’input G’ pour le problème TSP. 3) Supposons qu’il 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” à l’input G pour le problème Hamiltonien (HAM).
  • 72. 11/12/2023 Dr. Nejib Zaguia 72 CSI 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 l’algorithme 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.
  • 73. 11/12/2023 Dr. Nejib Zaguia 73 CSI 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
  • 74. 11/12/2023 Dr. Nejib Zaguia 74 CSI 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.
  • 75. 11/12/2023 Dr. Nejib Zaguia 75 CSI 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.
  • 76. 11/12/2023 Dr. Nejib Zaguia 76 CSI 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 …..
  • 77. 11/12/2023 Dr. Nejib Zaguia 77 CSI 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)
  • 78. 11/12/2023 Dr. Nejib Zaguia 78 CSI 3505 La théorie de Complexité Le poids d’un arbre recouvrant minimal représente une borne inférieure pour le problème du commis voyageur
  • 79. 11/12/2023 Dr. Nejib Zaguia 79 CSI 3505 La théorie de Complexité  2-approximation pour le problème du commis voyageur (TSP)  On suppose qu’on a l’iné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 a b c 5 4 7
  • 80. 11/12/2023 Dr. Nejib Zaguia 80 CSI 3505 La théorie de Complexité Algorithme d’approximation  Construire un arbre recouvrant minimale T avec une racine quelconque r (en utilisant par exemple l’algorithme de Prim)  On explore l’arbre 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 l’ordre des sommets dans L.
  • 81. 11/12/2023 Dr. Nejib Zaguia 81 CSI 3505 La théorie de Complexité Exemple: Tour correspondent T pour TSP Tour d’Euler P a partir du MST
  • 82. 11/12/2023 Dr. Nejib Zaguia 82 CSI 3505 La théorie de Complexité Un tour pour TSP (moins une arête) représente un arbre recouvrant donc |M|<|OPT|. Le tour d’Euler P visite chacune des arêtes de M deux fois, donc |P|=2|M| Les raccourcis qu’on fait dans P, n’augmente pas le poids total du tour [à cause de l’inégalité triangulaire w(a,b) + w(b,c) > w(a,c) ] donc, |T|<|P|. Conclusion, |T|<|P|=2|M|<2|OPT| Tour T obtenu de P Tour Optimal OPT Tour d’Euler P
  • 83. 11/12/2023 Dr. Nejib Zaguia 83 CSI 3505 La théorie de Complexité 3/2-approximation TSP (Christofides 1976) Meilleure approximation connue pour TSP