CSI%203505%20/%20Automne%202005:%20Conception%20et%20Analyse%20des%20Algorithmes%20I. - PowerPoint PPT Presentation

About This Presentation
Title:

CSI%203505%20/%20Automne%202005:%20Conception%20et%20Analyse%20des%20Algorithmes%20I.

Description:

Bornes inf rieures pour la complexit d'un probl me. 12/30/09. Dr. Nejib Zaguia. 3. CSI 3505 ... Exemples de fonctions non born s par un polyn me: f. n. c. n. n. n. log. etc. ... – PowerPoint PPT presentation

Number of Views:83
Avg rating:3.0/5.0
Slides: 84
Provided by: Universi57
Category:

less

Transcript and Presenter's Notes

Title: CSI%203505%20/%20Automne%202005:%20Conception%20et%20Analyse%20des%20Algorithmes%20I.


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
CSI 3505 La théorie de Complexité
  • Bornes infĂ©rieures pour la complexitĂ© dun
    problème

Un algorithme A est optimal (dans le cas pire)
pour P si on peut montrer quil est impossible de
trouver un autre algorithme pour P et qui a une
meilleure complexité (dans le cas pire) que A.
3
CSI 3505 La théorie de Complexité
  • Comment montrer quun algorithme est optimal ?
  • Trouver une borne infĂ©rieure (Lower Bound) sur le
    nombre dopérations nécessaires pour résoudre P.
    Cest dire que pour tous les algorithmes A on
    doit prouver que

WA(n) ? K
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
CSI 3505 La théorie de Complexité
  • Exemple 2 recherche dun Ă©lĂ©ment dans une liste
    de n nombres
  • Il existe une borne infĂ©rieure pour ce problème
    n
  • Donc lalgorithme de recherche sĂ©quentielle est
    optimal

6
CSI 3505 La théorie de Complexité
  • Exemple Tri (basĂ© sur les comparaisons des
    clefs)
  • On sait quil y a des algorithmes de tri dont la
    complexité est (n log n).
  • Peut on faire mieux?
  • Quelle est la borne infĂ©rieure pour ce problème?

7
CSI 3505 La théorie de Complexité
  • Arbres de dĂ©cision
  • arbre binaire oĂą chaque nĹ“ud interne reprĂ©sente
    une comparaison de lalgorithme
  • Exemple du tri par insertion pour le cas n3

8
CSI 3505 La théorie de Complexité
  • Trier trois nombres avec lalgorithme du tri par
    insertion
  • comportement de lalgorithme pour (5,7,2)

Chaque type dentrée correspond à un chemin de la
racine à une feuille dans larbre de décision.
En général Le nombre maximal de comparaisons est
Ă©gal Ă  la longueur du plus long chemin de la
racine aux feuilles.
9
CSI 3505 La théorie de Complexité
  • Arbres de dĂ©cision

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
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 larbre de décision)
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
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
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
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
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 linput du problème.
  • efficace polynomial

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
CSI 3505 La théorie de Complexité
  • Un problème est non tractable
  • sil ny a aucun algorithme polynomial qui le
    résout.
  • (Tous les algorithmes ont une complexitĂ© dans le
    pire cas qui ne peut être borné par un polynôme
    p(n) où n est la taille du problème.)
  • Exemples de fonctions non bornĂ©s par un polynĂ´me

19
CSI 3505 La théorie de Complexité
  • LutilitĂ© de cette classification?
  • Si le problème est non tractable ne sert a rien
    dessayer de chercher un algorithme efficace.
  • Tous les algorithmes seront trop lents pour des
    données assez grandes.
  • Changer la stratĂ©gie en utilisant des
    approximations, heuristiques, etc.
  • Quelque fois on a besoin de rĂ©soudre des versions
    restreintes du problème. La version restreinte
    pourrait ĂŞtre tractable

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Ă© quil existe des problèmes quon
    ne pourra jamais résoudre non décidable
  • Exemple Problème darrĂŞt

21
CSI 3505 La théorie de Complexité
  • Problème darrĂŞt

22
CSI 3505 La théorie de Complexité
  • Pour plusieurs problèmes pratiques, personne na
    jamais trouvé un algorithme efficace pour les
    résoudre
  • Exemples
  • Commis voyageur, coloration des graphes, etc.
  • La plupart des problèmes en "testing et routing".
  • Plusieurs problèmes de rĂ©seaux, bases de donnĂ©es,
    problèmes sur les graphes, etc.

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 dune façon efficace

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
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, lunique output possible est de type
  • OUI ou NON

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
CSI 3505 La théorie de Complexité
  • La plupart des problèmes doptimisation peuvent
    être convertis à des problèmes de décision.
  • Il suffit dajouter une borne K sur la valeur Ă 
    optimiser et changer la question
  • Existe-t-il une solution dont la valeur est au
    plus K (Pour les problèmes de minimisation)
  • Existe-t-il une solution dont la valeur est au
    moins K (Pour les problèmes de maximisation)

28
CSI 3505 La théorie de Complexité
  • Version du commis voyageur comme problème de
    décision
  • Soient un ensemble de villes Cc1,...,cm, une
    fonction distance d(ci, cj) entre les villes dans
    C. Soit un nombre K. Existe-t-il un tour de
    toutes les villes dont la longueur est au plus K?

La problème du commis voyageur est tractable si
est seulement si le problème de décision
correspondant est tractable
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
CSI 3505 La théorie de Complexité
  • DĂ©finition La classe P
  • Un problème de dĂ©cision est dans la classe P sil
    a des algorithmes polynomiaux déterministe qui le
    résout.
  • DĂ©finition La classe NP
  • Un problème de dĂ©cision est dans la classe NP
    sil a des algorithmes polynomiaux non
    déterministe qui le résoud.
  • NP Non-deterministic Polynomially bounded.

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
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 cest un cycle.
  • VĂ©rifier que sa longueur est au plus K.
  • Il y a un algorithme polynomial qui fait cette
    vérification
  • Le problème du commis voyageur est dans NP

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 cest un chemin de s a t.
  • VĂ©rifier que sa longueur est au plus K.
  • Il y a un algorithme polynomial qui fait cette
    vérification. Le problème CHEMIN est dans NP

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 ?
35
CSI 3505 La théorie de Complexité
  • Ordonnancement des Examens exemple dun
    problème qui peut s'exprimer en termes de
    coloration d'un graphe

Un graphe dont les sommets sont tous les cours,
et on met une arĂŞte entre u et v sil existe au
moins un Ă©tudiant qui prends les cours u et v en
mĂŞme temps.
36
CSI 3505 La théorie de Complexité
  • Exemple

3
1
2
5
4
Deux couleurs
37
CSI 3505 La théorie de Complexité
  • Autres exemples

2 couleurs
5 couleurs
2 couleurs
3 couleurs
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
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
CSI 3505 La théorie de Complexité
  • Une question ouverte (personne na pu la
    résoudre)
  • Est ce que P NP?

41
CSI 3505 La théorie de Complexité
  • La classe des problèmes NP-complets est
    lensemble de tous les problèmes P vérifiant
    les propriétés suivantes
  • 1- P est dans NP.
  • 2- Il existe une algorithme polynomial pour
    résoudre P si est seulement si pour tout problème
    Q dans la classe NP il existe un algorithme
    polynomial pour résoudre Q.

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
CSI 3505 La théorie de Complexité
  • RĂ©duction des problèmes.

1. La transformation doit se faire en temps
polynomial
2. La réponse correcte de P1 pour x est
 OUI" si et seulement si la réponse correcte
de P2 pour T(x) est aussi " OUI ".
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 sil existe une fonction T qui
    transforme tout input x de P1 en T(x), un
    input de P2, de telle sorte que la réponse
    correcte de P1 pour x soit "oui" si et
    seulement si la réponse correcte de P2 pour
    T(x) est aussi "oui".

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.

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
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
lalgorithme polynomial de P1 nous donne un
algorithme polynomial pour P2.
Très improbable que ceci soit vrai
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
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
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
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
NON
(x1 ? x2) ? (?x1) ? (?x2)
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
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
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
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
  • lexpression boolĂ©enne est satisfaisable.

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 sils proviennent de deux
    clauses différentes et que leurs littéraux sont
    consistents lun nest pas la négation de
    lautre
  • Exemple B (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x
    ? y ? z )

57
CSI 3505 La théorie de Complexité
  • Exemple E (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x ?
    y ? z )

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 davoir des contradictions.

59
CSI 3505 La théorie de Complexité
  • Exemple E (x ? ?y ? ?z) ? (?x ? y ? z ) ? (x ?
    y ? z)

X Vrai Y Vrai Z Faux
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?Vou v?V).
  • Ensemble IndĂ©pendant (IND)
  • Instance Graphe G(V,E) et un entier k
  • Question Existe-t-il un ensemble indĂ©pendant
    dans G de taille au moins k?
  • (V? V est indĂ©pendant si pour tous u,v?V,
    (u,v)?E.)

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 k3)
  • Somme
  • Instance Un ensemble dentiers E et un entier T
  • Question Existe-t-il un sous ensemble de E dont
    la somme est T?

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
63
CSI 3505 La théorie de Complexité
SAT
  • Exemples

3-SAT-CNF
Clique
Somme
VertexCover
Hamiltonien
Commis Voyageur
64
CSI 3505 La théorie de Complexité
  • Prouver quun problème Q est NP-complet?
  • Prouver que Q est dans NP (VĂ©rification si un
    ensemble représente une solution en un temps
    polynomial)
  • Trouver un problème R quon sait deja quil est
    NP-complet et trouver une fonction T qui
    transforme chaque instance du probléme R en une
    instance du probléme Q avec les propriétés
    suivantes
  • La transformation T se fait en un temps
    polynomial
  • Si la rĂ©ponse a linstance I du problème R est
    OUI alors la réponse a linstance T(I) du
    problème Q est OUI
  • Si la rĂ©ponse a linstance T(I) du problème Q est
    OUI alors la réponse a linstance I du problème
    R est OUI

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 quon a dĂ©jĂ  prouver que le Problème
    Hamiltonien est NP-complet

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
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

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 quon a dĂ©jĂ  prouver que le Problème
    Hamiltonien est NP-complet

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 cest un cycle.
  • VĂ©rifier que sa longueur est au plus k
  • 2) Montrons que le problème du cycle hamiltonien
    (CH) est polynomialement réductible en TSP, HAM ?
    TSP.
  • Supposons que le graphe G(V,E) soit l'input de
    HAM, et que nous désirions donc savoir s'il
    existe un cycle hamiltonien pour G. Nous
    transformons cet input en un input G pour TSP
    ou n V
  • Ajoute a G toutes les arĂŞtes qui manquent dans
    G pour obtenir un graphe complet
  • Les arĂŞtes qui existaient dans G auront un
    poids de 1, et les nouvelles arĂŞtes auront un
    poids de 2.

70
CSI 3505 La théorie de Complexité
  • Transformation

71
CSI 3505 La théorie de Complexité
  1. On a besoin dau plus (n2) pour effectuer la
    transformation (Créer la matrice dadjacence pour
    G).
  2. Supposons quil existe un cycle Hamiltonien v1,
    v2, , vn pour G. Ce cycle est un tour dans G et
    son poids est n puisque toutes les arĂŞtes de G
    ont un poids de 1. Donc la réponse est OUI à
    linput G pour le problème TSP.
  3. Supposons quil existe un tour dans G de poids
    n. Puisque ce tours contient tous les sommets de
    G et donc n arĂŞtes et puisque chaque arĂŞte a un
    poids 1, alors le poids du tour est n et toutes
    ses arĂŞtes ont un poids de 1. Donc les arĂŞte du
    tours sont toutes dans G. Ce qui représente un
    cycle Hamiltonien dans G. Donc la réponse est
    OUI à linput G pour le problème Hamiltonien
    (HAM).

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 lalgorithme aura
    une complexité exponentiel)
  • Approche 2
  • Tenter de trouver une "bonne" solution (pas
    nécessairement optimale) en un temps acceptable.
  • Ces algorithmes sont appelĂ©s algorithmes
    approximatifs ou heuristiques ils sont souvent
    basés sur quelques règles empiriques
    intelligemment choisies.

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
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
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
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
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
CSI 3505 La théorie de Complexité
  • Le poids dun arbre recouvrant minimal reprĂ©sente
    une borne inférieure pour le problème du commis
    voyageur

79
CSI 3505 La théorie de Complexité
  • 2-approximation pour le problème du commis
    voyageur (TSP)
  • On suppose quon a linĂ©galitĂ© triangulaire
  • w(a,b) w(b,c) w(a,c) pour tout les sommets
    a, b et c.
  • MĂŞme dans ce cas, le problème est NP-complet

80
CSI 3505 La théorie de Complexité
  • Algorithme dapproximation
  • Construire un arbre recouvrant minimale T avec
    une racine quelconque r (en utilisant par exemple
    lalgorithme de Prim)
  • On explore larbre en utilisant un pre-ordre
    (visiter sommet avant les fils). Soit L la liste
    des sommets par ordre de visite
  • Retourner le tour qui correspond a lordre des
    sommets dans L.

81
CSI 3505 La théorie de Complexité
  • Exemple

82
CSI 3505 La théorie de Complexité
  • Un tour pour TSP (moins une arĂŞte) reprĂ©sente un
    arbre recouvrant donc MltOPT.
  • Le tour dEuler P visite chacune des arĂŞtes de M
    deux fois, donc P2M
  • Les raccourcis quon fait dans P, naugmente pas
    le poids total du tour à cause de linégalité
    triangulaire w(a,b) w(b,c) gt w(a,c) donc,
    TltP.
  • Conclusion, TltP2Mlt2OPT

83
CSI 3505 La théorie de Complexité
  • 3/2-approximation TSP (Christofides 1976)
  • Meilleure approximation connue pour TSP
Write a Comment
User Comments (0)
About PowerShow.com