Approximation Algorithm
Approximation factor
Optimisation Problem
Decision Problem
NP-hard
Greedy
Local Search
Set Cover
Vertex Cover
k-center
Data Rounding
Optimal Solution Approximate Solution
Dynamic Programming
Linear Program
Eulerian cycle
Dual Primal
Linear Relaxation Integer Programming
Hamiltonian cycle
Max Clique Problem
Perfect Matching
Task Scheduling
Knapsack Problem
Travelling Saleman Problem
List Scheduling
Maximum Matching
Data Rounding
Linear Program
Greedy
Vertex Cover
Integer Programming
Optimal Solution
Max Clique Problem
Local Search
List Scheduling
Decision Problem Vertex Cover
Approximation Algorithm
NP-hard
Linear Relaxation
Greedy
k-center
Knapsack Problem
Linear Relaxation
Dual
Primal
Data Rounding
Linear Relaxation
Optimal Solution
NP-hard
Integer Programming
Local Search
Linear Relaxation
Decision Problem Integer Programming
Vertex Cover
Maximum Matching
Knapsack Problem
Task Scheduling
List Scheduling
Vertex Cover
Hamiltonian cycle
Eulerian cycle
Knapsack Problem
Optimisation Problem
Greedy
Linear
Relaxation
k-center
Algorithmes d’approximation
Cours
Xavier Dubuc
7 juin 2011
1
Table des mati`eres
1 Introduction 3
1.1 Introduction `a la mati`ere ..................................... 3
1.2 Objectifs du cours ......................................... 4
1.3 Probl`emes d’optimisation ..................................... 4
1.4 Rappels et complexit´e des probl`emes d’optimisation ....................... 6
1.5 Algorithmes d’approximation : qu’est-ce ? Pourquoi ? ...................... 7
1.5.1 D´efinitions ......................................... 8
2 Set Cover et survol des techniques 9
2.1 Programmation lin´eaire et Set Cover ............................... 9
2.2 Primal Dual .......................................... 12
2.2.1 Remarques et propri´et´es du dual ............................. 12
2.3 La m´ethode primale-duale ..................................... 14
2.4 Algorithme d’approximation glouton ............................... 15
2.5 Conclusion du chapitre ...................................... 17
3 Algorithmes gloutons et de recherche locale 18
3.1 Ordonnancement de tˆaches sur une seule machine ........................ 19
3.2 Le probl`eme “k-centre...................................... 22
3.3 Ordonnancement de tˆaches sur des machines identiques parall`eles ............... 26
3.3.1 Approche par la recherche locale ............................. 26
3.3.2 Approche gloutone .................................... 28
3.4 Traveling Saleman Problem (TSP) ................................ 31
4 Programmation dynamique et arrondissement (rounding) de donn´ees 41
4.1 Le probl`eme du sac `a dos (knapsack problem) .......................... 41
4.1.1 Programmation dynamique pour KP (1`ere version) ................... 43
4.1.2 Variation du programme dynamique ........................... 44
A Annexe A : Exercices chapitre 1 48
A.1 Vertex Cover attaqu´e par un algorithme glouton simple ..................... 48
B Annexe B : Exercices chapitre 2 50
B.1 Programmation Lin´eaire et Set Cover ............................... 50
C Annexe C : Exercices chapitre 3 62
D Annexe D : Exercices chapitre 4 63
2
1 Introduction
Introduction au cours
Examen oral tirer une question et pr´eparation de la question avec les notes, puis on pr´esente.
Travail personnel apr`es Pˆaques (pr´esentation).
R´ef´erences
Williamson &Shmoys
The Design of Approximation Algorithms
Cambridge University (version gratuite pdf : www.designofapproxalgs.com)
Vazirani
Approximation Algorithms
Springer, 2001 (difficile `a comprendre)
Ausiello,Cescenzi,Gambozi,Kann, et al.
Complexity and Approximation : Combinatorial Optimization Problems
and their approximability properties
Springer, 1999.
1.1 Introduction `a la mati`ere
On va voir les probl`emes d’optimisation, en particulier les probl`emes NP-difficiles (NP-complets, on verra
les diff´erences plus tard). A moins que P=NP , on ne peut r´esoudre ces probl`emes d’optimisation de mani`ere
optimale, c’est-`a-dire qu’il n’existe pas (encore ?) d’algorithme efficace (c`ad polynomial) pour trouver une
solution optimale `a ces probl`emes.
Que peut-on faire dans ces cas l`a ? (un des objectifs du cours)
La premi`ere r´eponse est “les heuristiques”. Elles sont rapides mais elles donnent une solution qui est une
“bonne” solution et pas la solution optimale (en temps polynomial).
Dans ce cours on va prouver que l’heuristique donne une solution qui est proche de la solution optimale.
On utilise une analogie `a la phrase bien connue :
Rapide. Bon march´e. Fiable. Choisissez-en deux
Il faut en effet sacrifier un des 3 crit`eres, c’est-`a-dire que si P 6=NP, on ne peut pas avoir simultan´ement
un algorithme qui :
1. trouve la solution optimale,
2. travaille en temps polynomial,
3. fonctionne pour tout instance du probl`eme (toute entr´ee possible).
On a donc 3 choix :
laisser tomber 3
ce n’est pas toujours applicable en pratique car ¸ca donne pas une solution g´en´erale.
Ex : la coloration d’un graphe o`u on s’int´eresse qu’aux graphes bipartis par exemple.
laisser tomber 2
ce n’est pas toujours une bonne id´ee.
Ex : Aen IA ou encore le Branch & Bound.
laisser tomber 1
en utilisant les m´etaheuristiques et les heuristiques.
Ex : la recherche Tabou.
Dans ce cours on va s’int´eresser aux heuristiques avec une garantie de performance.
3
1.2 Objectifs du cours
1. Savoir que faire pour r´esoudre un probl`eme NP-difficile.
2. D´ecouvrir et revoir des probl`emes ”paradigmatiques” (probl`emes classiques, exemplaires, simplifi´es,
comme le voyageur de commerce par exemple ; qui ont beaucoup d’applications).
3. Tous les probl`emes intraitables ne sont pas les mˆemes. NP-complet : idem d’un point de vue r´esolution
exacte mais peuvent apparaˆıtre tr`es diff´erents d’un point de vue approximabilit´e. (Des algorithmes l’ap-
proximent tr`es efficacement, d’autres moins et certains mˆeme pas) L’objectif consistera `a savoir les
diff´erencier.
4. Apprendre des techniques de conception et d’analyse d’algorithmes d’approximation. ( avoir une ”boite
`a outils”, o`u outils = algorithmes et heuristiques applicables `a un grand nombre de probl`emes)
1.3 Probl`emes d’optimisation
efinition 1.1 Probl`eme d’optimisation (discret)
C’est un type de probl`eme o`u il est demand´e de trouver la solution optimale parmi les solutions r´ealisables.
efinition 1.2 Probl`eme d’optimisation (formel)
Un probl`eme d’optimisation Pest sp´ecifi´e par (IP, SOLP, mP, goalP)tels que :
IPest un ensemble d’instances de P; (par exemple, pour la coloration : tous les couples (graphe,entier)).
SOLPest une fonction qui associe `a chaque instance xIPun ensemble de solutions r´ealisables de x
(SOLP(x)) (par exemple, pour la coloration : ensemble des colorations l´egales possibles).
mPest une fonction de mesure ou fonction objectif d´efinie pour les paires (x, y)tq xIpet y
SOLP(x). Pour toute paire (x, y),mP(x, y)donne une valeur non-n´egative.
goalPMIN, MAX sp´ecifiant si Pest une probl`eme de minimisation ou de maximisation.
Quand le contexte est clair, on peut laisser tomber le Pdans les notations.
SOL
P(x)est l’ensemble des solutions optimales de xIP.
Probl`eme 1.1 MIN VERTEX COVER (VC)
*Instance : graphe G= (V, E),
*Solution : un ensemble de sommets UVtel que (vi, vj)E,viUou vjU.
*Mesure :|U|
Exemple 1.1 Graphe ´etoile `a nsommets, Sn.
1
3
2
4 5
Figure 1 – Sn(n= 5), exemple pour VC
C={3}est une solution r´ealisable.
V C(Sn)=1n2
4
Exemple 1.2 Graphe complet `a nsommets, Kn.
1 2
3 4
Figure 2 – Kn(n= 4), exemple pour VC
C={1,2,3}est une solution r´ealisable.
V C(Sn) = n1n2
Pour justifier cela, il suffit de voir que si on enl`eve toutes les arˆetes concernant un sommet, on se
retrouve `a nouveau avec un graphe complet, on peut ainsi it´erer r´ecursivement jusqu’au cas de base K2
o`u on sait que V C(K2) = 1.
Exemple 1.3 Chemin `a nsommets, Pn.
12345
Figure 3 – Pn(n= 5), exemple pour VC
C={2,4}est une solution r´ealisable.
V C(Pn) = n
2n2
Exemple 1.4 Cycle `a nsommets, Cn.
1 2 53 4
Figure 4 – Cn(n= 5), exemple pour VC
C={1,3,5}est une solution r´ealisable.
V C(Cn) = n
2n2
5
1 / 73 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !