La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I.

Présentations similaires


Présentation au sujet: "CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I."— Transcription de la présentation:

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/2018 Dr. Nejib Zaguia

2 CSI 3505 La théorie de Complexité
Bornes inférieures pour la complexité d’un problème 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. 11/12/2018 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/2018 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/2018 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/2018 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/2018 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/2018 Dr. Nejib Zaguia

8 CSI 3505 La théorie de Complexité
Trier trois nombres avec l’algorithme du tri par insertion: comportement de l’algorithme pour (5,7,2) a < b oui Chaque type d’entrée correspond à un chemin de la racine à une feuille dans l’arbre de décision. b<c non En général: Le nombre maximal de comparaisons est égal à la longueur du plus long chemin de la racine aux feuilles. a<c non ca  b 11/12/2018 Dr. Nejib Zaguia

9 CSI 3505 La théorie de Complexité
Arbres de décision a < b non oui b<c non oui b<c non oui a bc a<c acb cab non oui a<c non oui cba b ac bca 11/12/2018 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 log k  log 2d log k  d 11/12/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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 ( ) , log = etc. 11/12/2018 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/2018 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/2018 Dr. Nejib Zaguia

21 CSI 3505 La théorie de Complexité
Problème d’arrêt: Problème P Donnée X P va-t-il s’ arrêter pour la donnée X OUI P(X) NON (ne s’arrêtera jamais) 11/12/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 Dr. Nejib Zaguia

34 CSI 3505 La théorie de Complexité
Coloration d'un graphe 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 ? 11/12/2018 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: 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. CSI 3505 Phy 1500 ENG 1000 ENG 3300 CSI 3503 11/12/2018 Dr. Nejib Zaguia

36 CSI 3505 La théorie de Complexité
Exemple: 3 1 2 5 4 Deux couleurs 11/12/2018 Dr. Nejib Zaguia

37 CSI 3505 La théorie de Complexité
Autres exemples: 2 couleurs 5 couleurs 2 couleurs 3 couleurs 11/12/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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 x (input pour P1) Réponse OUI ou NON 11/12/2018 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/2018 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/2018 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/2018 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 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 11/12/2018 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/2018 Dr. Nejib Zaguia

51 CSI 3505 La théorie de Complexité
Exemples: (x1  x2  x3 )  (x1  x4 )  (x2  x3  x4 ) OUI x1 = vrai x2 = vrai x3 = faux x4 = faux (x1  x2)  (x1)  (x2) NON 11/12/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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 x3 y3 z3 x2 y2 z2 11/12/2018 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/2018 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/2018 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/2018 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) 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/2018 Dr. Nejib Zaguia

62 CSI 3505 La théorie de Complexité
Tous les problèmes Problèmes NP Problèmes NP-Complets TSP Arrêt Problèmes P TRI 11/12/2018 Dr. Nejib Zaguia

63 CSI 3505 La théorie de Complexité
Exemples SAT 3-SAT-CNF Clique Somme VertexCover Hamiltonien Commis Voyageur 11/12/2018 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/2018 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/2018 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/2018 Dr. Nejib Zaguia

67 CSI 3505 La théorie de Complexité
HAM Input G=(V,E) 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 PLC, ou k=|V| Input T(G)=G=(V,E) Transformation T 11/12/2018 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/2018 Dr. Nejib Zaguia

69 CSI 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 c’est 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. 11/12/2018 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 50 10 30 4 1 2 3 5 4 11/12/2018 Dr. Nejib Zaguia

71 CSI 3505 La théorie de Complexité
On a besoin d’au plus (n2) pour effectuer la transformation (Créer la matrice d’adjacence pour G’). 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. 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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/2018 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 d’Euler P Tour Optimal OPT Tour T obtenu de P 11/12/2018 Dr. Nejib Zaguia

83 CSI 3505 La théorie de Complexité
3/2-approximation TSP (Christofides 1976) Meilleure approximation connue pour TSP 11/12/2018 Dr. Nejib Zaguia


Télécharger ppt "CSI 3505 / Automne 2005: Conception et Analyse des Algorithmes I."

Présentations similaires


Annonces Google