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

presentation player overlay
About This Presentation
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