Algorithmes d ’approximation

Slides:



Advertisements
Présentations similaires
Introduction à la Théorie des graphes
Advertisements

La recherche de chemin optimal
Théorie des graphes.
Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancées Cours 7
Algorithmes et structures de données avancés
COURS DE MATHEMATIQUES DISCRETES SM
Voyager à l’aide de l’optimisation combinatoire Simon de Givry
Introduction à la Théorie des graphes
UMLV 1 Problème G = (S, A) graphe (orienté) Calculer H = (S, B) où B est la clôture réflexive et transitive de A. Note : (s,t) B ssi il existe un chemin.
Cours d’Algorithmique
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
CHAPITRE 6 Fonctions numériques.
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Ordre et inégalités Objectifs: - Comparer des nombres.
Génération de colonnes
Nombre de chaînes de longueur r
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Preuves interactives: IP, AM, MA et isomorphisme de graphe
Algorithmes Branch & Bound
Heuristiques A. Introduction B. Recherche d ’une branche
Optimisation linéaire
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Chapitre 2 Réductions: exemples et méthodes
Structures de données IFT-2000
Inéquations du 1er degré
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Courbes de Bézier.

PROBLEMES DE DEGRE-DIAMETRE DE GRAPHES DANS LE CAS GENERAL
Optimisation dans les réseaux
Recherche Opérationnelle
Conception et analyse des algorithmes Les algorithmes probabilistes
21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.
Introduction aux problèmes d'ordonnancement sans temps-morts.
DONG Xiaoguang HONG Liang OULDBABA Fadel WANG Min
Programmation dynamique
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Programmation linéaire en nombres entiers : les méthodes de troncature

Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Coupes efficaces pour la relaxation lagrangienne
Graphes 1. Introduction 2. Définition 3. Représentation mémoire
Arbres et graphes.
D.E ZEGOUR Ecole Supérieure d’Informatique
La firme Les techniques à deux facteurs La demande de facteurs
D.E ZEGOUR Ecole Supérieure d’Informatique
Chapitre I Modélisation optimisation I- Optimisation de fonctions d’une seule variable 1 Introduction En gestion, on est souvent confronté à des situations.
Programmation linéaire en nombres entiers
Présentation du marché obligataire
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Algorithmes Branch & Bound
Arbres binaires et tables de hachage
LE FLOT MAXIMAL et LA COUPE MINIMALE
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°6.
Foued Mnasri Weal Rekik
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Problème de double digestion
Fonction carré.
Programmation dynamique

Dr. MOKEDDEM République Algérienne Démocratique et Populaire
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cycle, Cocycle, Arbre et Arborescence
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Transcription de la présentation:

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é

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}

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.

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

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)) ≤  .

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

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)

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

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.

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

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

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)

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.

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 2 arcs (u,v) et (v,u) valués par D(u,v).

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

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

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

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.

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.

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)

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.