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

Algorithmes d ’approximation

Présentations similaires


Présentation au sujet: "Algorithmes d ’approximation"— Transcription de la présentation:

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

2 Plan du chapitre Problème de recherche Algorithme d ’approximation
Garanties Exemples (bin-packing, TSP) Approximation et complexité

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

4 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 à DOS I 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 ≤ P Une solution est une solution candidate de valeur maximale.

5 Algorithme d ’approximation
Soit  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*.

6 Garanties relatives Garanties absolues
On suppose que pour tout énoncé I: fI*>0 Un algorithme d ’approximation  pour le problème de minimisation (,fI) offre la garantie relative 1+  si pour tout énoncé I de : fI(Â(I)) ≤ (1 + ) fI*. Un algorithme d ’approximation  pour le problème de maximisation (,fI) offre la garantie relative 1-  si pour tout énoncé I de : fI(Â(I)) ≥ (1 - ) fI*. Garanties absolues Un algorithme d ’approximation  pour le problème de minimisation (,fI) offre la garantie absolue  si pour tout énoncé I de : fI(Â(I)) - fI* ≤  . Un algorithme d ’approximation  pour le problème de maximisation (,fI) offre la garantie absolue  si pour tout énoncé I de : fI*- fI(Â(I)) ≤  .

7 Taux de performance de  (problème de minimisation)
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 (Â) . 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 Â.

8 Exemples BIN PACKING Donné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 le nombre K de boîtes est minimum. Remarque: BIN PACKING est un problème difficile (NP-complet au sens fort)

9 L ’algorithme d ’approximation FIRST FIT (FF)
Etape courante (r(Bi) est la hauteur résiduelle de la boîte Bi): 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

10 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*. Notation : H = i=1..n h i Lemme 1: fI* ≥ H Preuve: Si l ’on pouvait « couper » les articles, le nombre minimum de 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-1 premiers articles.

11 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 placer l ’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 moins K-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*.

12 Remarques: 1) L ’algorithme FF fournit une meilleure garantie que 2. On a pu montrer que: pour tout I: NFF(I) ≤ (17/10) fI* + 2 De 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é.

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

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

15 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).

16 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).

17 3. Déterminer un circuit eulérien C de K à partir d ’un
parcours en profondeur de K. 1 10 9 6 2 5 8 4 3 7

18 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. 1 2 3 4 5 6 7 8 9 10

19 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 couvrant H ’(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*.

20 Complexité et Approximation
Question: Etant donné: un problème d ’optimisation difficile , une garantie relative 1+ , peut-on toujours trouver un algorithme d ’approximation pour  fournissant cette garantie? 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? 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.

21 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 si I est à réponse « oui » ou « non ». Comme f(Â(I)) est calculable en temps polynomial, on a P=NP.

22 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 absolue numé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)

23 Soit I= (A, p, P, v) un énoncé de SAC à DOS.
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*. 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. On a donc P=NP.


Télécharger ppt "Algorithmes d ’approximation"

Présentations similaires


Annonces Google