Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

23
Algorithmes d ’approximation Module IAD/M2/RO/RP Philippe Chrétienne

Transcript of Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Page 1: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Algorithmes d ’approximation

Module IAD/M2/RO/RP

Philippe Chrétienne

Page 2: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Plan du chapitre

• Problème de recherche

• Algorithme d ’approximation

• Garanties

• Exemples (bin-packing, TSP)

• Approximation et complexité

Page 3: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Problème de recherche

Un problème est dit « de recherche » si:à tout énoncé I de est associé un ensemble S*(I) de solutions.

Un algorithme qui résout doit: pour tout énoncé I écrire une solution de S*(I) si S*(I)≠, sinon écrire « pas de solution pour cet énoncé ».

Un problème d ’optimisation (minimisation ou maximisation)est un problème de recherche pour lequel S*(I) est défini à partir: - d ’un ensemble de solutions candidates S(I), - d ’une fonction objectif fI: S(I) .

S*(I) = {s S(I)fI(s) est optimal}

Page 4: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Exemples de problèmes d ’optimisation :

TSP (voyageur de commerce)I défini à partir d ’une matrice D des distances entre n villes.Une solution candidate est un tour.Une solution est un tour de longueur totale minimale.

SAC à DOSI défini à partir - d ’un ensemble d ’articles A, - d ’une fonction poids p: A , - d ’une fonction valeur v : A , - d ’un poids maximum P.Une solution candidate est un sous-ensemble d ’articles de poids ≤ PUne solution est une solution candidate de valeur maximale.

Page 5: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Algorithme d ’approximationSoit un problème d ’optimisation.On suppose que la fonction objectif fI est à minimiser.

On suppose que pour tout énoncé I: S(I) est non vide et fini.

On note alors fI * = Min{fI(s)s S(I) } la valeur (optimale) d ’une solution.

On a alors S*(I)= {s S(I) fI(s) = fI*}

Un algorithme d ’approximation  pour doit fournir, pour tout énoncé I de et en temps polynomial en la longueur l(I) de l ’énoncé I : une solution candidate (notée Â(I)) de valeur fI(Â(I)) « assez proche » de fI*.

Page 6: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Un algorithme d ’approximation  pour le problème de minimisation (,fI) offre la garantie relative 1+ sipour tout énoncé I de : fI(Â(I)) ≤ (1 + ) fI*. Un algorithme d ’approximation  pour le problème de maximisation (,fI) offre la garantie relative 1- sipour tout énoncé I de : fI(Â(I)) ≥ (1 - ) fI*.

Un algorithme d ’approximation  pour le problème de minimisation (,fI) offre la garantie absolue sipour tout énoncé I de : fI(Â(I)) - fI* ≤ .

Un algorithme d ’approximation  pour le problème de maximisation (,fI) offre la garantie absolue sipour tout énoncé I de : fI*- fI(Â(I)) ≤ .

Garanties relatives

Garanties absolues

On suppose que pour tout énoncé I: fI*>0

Page 7: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Taux de performance de  (problème de minimisation)

Si on détermine un énoncé J de tel que: fJ(Â(J)) = (1 + ) fJ* alors on a : (Â) = (1 + ).L ’ énoncé J représente alors un plus mauvais cas pour Â.

Le taux de performance (Â) de  est défini par : (Â) = Sup {fI(Â(I))/fI* I D }

Si 1+ est une garantie relative offerte par Â, alors 1+ est un majorant de (Â).

Souvent, on ne sait pas calculer (Â) .

Page 8: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Exemples

BIN PACKINGDonnée: n articles A1, A2, …. , An; pour chaque Ai, sa hauteur h i (0 < h i < 1).

Une solution candidate est une partition B1, B2, … , BK des n articles telle que pour toute « boîte » Bk: Ai Bk h i ≤ 1.

Une solution est une solution candidate pour laquelle lenombre K de boîtes est minimum.

Remarque: BIN PACKING est un problème difficile (NP-complet au sens fort)

Page 9: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

L ’algorithme d ’approximation FIRST FIT (FF)

Soit P = (A1, A2, …. , A p-1) la liste des articles déjà placés;Soit B = (B1, B2, …. , Bk-1) la liste des boîtes déjà utilisées;

Si, pour toute boîte Bi de B: r(Bi) < hp, alors B := B. (Bk) ; %créer une nouvelle boîte% r(Bk):= 1- hp; K:=K+1

sinon %placer l ’article dans la première boîte possible% soit Bj la première boîte de B telle que r(Bj)≥ hp; r(Bj):= r(Bj)-hp

Finsi

Etape courante (r(Bi) est la hauteur résiduelle de la boîte Bi):

Page 10: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Notons NFF(I) le nombre de boîtes de FF(I).Propriété : FF est un algorithme d ’approximation de BIN PACKING fournissant la garantie relative 2 : pour tout I : NFF(I) ≤ 2 fI*.

Lemme 1: fI* ≥ H

Preuve: Si l ’on pouvait « couper » les articles, le nombre minimumde boîtes serait égal à H.

Lemme 2: Soit B = (B1, B2, …. , BK) la liste des boîtes de FF(I). Au plus une boîte Bj satisfait r(Bj)≥1/2.

Preuve (récurrence sur le nombre d ’articles placés):La propriété est vraie pour le 1er article. Supposons qu ’elle reste vraie après le placement des p-1premiers articles.

Notation : H = i=1..n h i

Page 11: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Si pour toute boîte Bj,on a r(Bj) < 1/2, alors la propriétéreste vraie, que l ’on crée une boîte ou pas pour placerl ’article Ap. S’il existe une boîte Bj telle que r(Bj)≥ 1/2, alors si hp ≤ 1/2, la propriété reste vraie car on peut placer Ap dans Bj ; si hp > 1/2, la propriété reste encore vraie, car si FF crée une nouvelle boîte Bk pour Ap, on a: r(Bk) < 1/2.Preuve de la propriété:Soit B = (B1, B2, …. , BK) la liste des boîtes de FF(I).On a j=1..K (1-r(Bj)) = H. D ’après le lemme 2, on a 1- r(Bj) > 1/2 pour au moinsK-1 indices, on a donc j=1..K (1-r(Bj)) > (K-1)/2.Il en résulte que K-1 < 2H.On a donc (lemme 1) : K = NFF(I) ≤ 2H ≤ 2 H ≤ 2 fI*.

Page 12: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Remarques:

1) L ’algorithme FF fournit une meilleure garantie que 2.On a pu montrer que: pour tout I: NFF(I) ≤ (17/10) fI* + 2De plus, il existe des énoncés pour lesquels on a l ’égalité.

2) L ’ intuition dit que l ’on a intérêt  à placer en priorité les articles les plus hauts.

L ’algorithme associé FFD (FIRST FIT DECREASING)est identique à FF sauf qu ’il commence par trier articles par hauteur décroissante au sens large.

On a pu montrer (preuve très longue et difficile) que:pour tout I: NFFD(I) ≤ (11/9) fI* + 4 De plus, il existe des énoncés pour lesquels on a l ’égalité.

Page 13: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

TSP euclidien

Donnée: une matrice D des distances (euclidiennes) entre n villes.Pour tout triplet de villes {i,j,k}: D(i,j)≤ D(i,k)+D(k,j) .

Une solution candidate est un tour, c ’est-à-dire une permutation (i1, i2, …. , in) des n villes.

Une solution est un tour (i1, i2, …. , in) dont la longueur D(i1,i2)+ D(i2,i3)+ ….+ D(in-1 ,in) + D(in,i1) est minimum.

Remarque: TSP euclidien est un problème difficile (NP-complet au sens fort)

Page 14: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Un algorithme d ’approximation  pour TSP euclidien.

1. Déterminer un arbre couvrant H= (V,E) de coût minimum sur le graphe complet des n villes valué par les distances D(i,j).

2. Construire le graphe K= (V, F) obtenu à partir de H en remplaçant chaque arête {u,v} de E par un arc (u,v) et un arc (v,u) valués chacun par D(u,v).

3. Déterminer un circuit eulérien C de K à partir d ’un parcours en profondeur de K. 4. Déterminer le tour obtenu à partir de C en utilisant les arêtes du co-arbre de H pour ne pas repasser 2 fois par le même sommet intermédiaire.

Page 15: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

1. Déterminer un arbre couvrant H= (V,E) de coût minimum sur le graphe complet des n villes valué par les distances D(i,j).

Page 16: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

2. Construire le graphe K= (V, F) obtenu à partir de H en remplaçant chaque arête {u,v} de E par 2 arcs (u,v) et (v,u) valués par D(u,v).

Page 17: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

1

2

34

5

6

7

8

910

3. Déterminer un circuit eulérien C de K à partir d ’un parcours en profondeur de K.

Page 18: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

1

2

3

4

5

6

78

910

4. Déterminer le tour obtenu à partir de C en utilisant les arêtes du co-arbre de H pour ne pas repasser 2 fois par un même sommet.

Page 19: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Notons l(H) la longueur de l ’arbre H.

Soit T*(I) un tour optimal.

En supprimant une arête de T*(I), on obtient un arbre couvrantH ’(I) du graphe complet des n villes.

Comme H est de longueur minimum, on a :l(H) ≤ l(H ’(I)) ≤ fI*

Par définition d ’un circuit eulérien, on a: l(C)= 2 l(H).

Par construction du tour Â(I) et en utilisant l ’inégalité triangulaire, on a: l(Â(I)) ≤ l(C).

Il en résulte que: l(Â(I)) ≤ 2 fI*.

Page 20: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Complexité et ApproximationQuestion:Etant donné: un problème d ’optimisation difficile , une garantie relative 1+ , peut-on toujours trouver un algorithme d ’approximation pour fournissant cette garantie?

Propriété:Si (B) est NP-complet, l ’existence d ’un algorithme d ’approximation fournissant une garantie inférieure à (1+1/B) implique P=NP.

Soit B un entier naturel strictement positif.On note (B) le problème de décision associé à :Existe t ’il une solution candidate s telle que f(s) ≤ B?

Page 21: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Preuve de la propriété.

Supposons que l ’algorithme  fournisse la garantie relative (1+ ) strictement inférieure à (1+1/B) pour .

Soit I un énoncé de (B).

Si I est un énoncé à réponse « oui », on a:1) fI* ≤ B,2) fI(Â(I)) ≤ (1+ ) fI* ≤ B.

Si I est un énoncé à réponse « non », on a:1) fI* > B,2) fI(Â(I)) > B.

Il en résulte que la valeur fI(Â(I)) permet de décider siI est à réponse « oui » ou « non ».Comme f(Â(I)) est calculable en temps polynomial, on a P=NP.

Page 22: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Les garanties absolues sont plutôt rares.

Pour certains problèmes NP-complets, l ’existence d ’une garantie absolue numérique implique P=NP.

Exemple: SAC à DOS.

Propriété:Si un algorithme d ’approximation  fournit une garantie absoluenumérique pour le problème SAC à DOS, alors P=NP

Preuve:

Supposons que  fournisse la garantie absolue pour SAC à DOS.(on peut supposer entier strictement positif)

Page 23: Algorithmes d approximation Module IAD/M2/RO/RP Philippe Chrétienne.

Soit I= (A, p, P, v) un énoncé de SAC à DOS.

En appliquant  à I ’, on a: f I ’* - f I ’(Â(I ’)) ≤ .Soit encore: (1+ ) (f I * - f I (Â(I ’)) ≤ .Il en résulte que: f I * = f I (Â(I ’))et donc que Â(I ’) est une solution optimale de I.

Considérons maintenant l ’énoncé I ’= (A, p, P, (1+ )v)

Par définition de I ’, I et I ’ ont les mêmes solutions candidates. Si s est une solution candidate, on a: fI ’(s)=(1+ ) fI(s).I et I ’ ont donc la même solution optimale.On a donc : fI ’* = (1+ ) fI*.

On a donc P=NP.