1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Luận văn thạc sĩ VNU algorithmes dembaquetage et de couverture fractionnaire

61 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Algorithmes de Dempaquetage et de Couverture Fractionnaire
Trường học VNU
Chuyên ngành Computer Science
Thể loại Thesis
Định dạng
Số trang 61
Dung lượng 1,08 MB

Cấu trúc

  • 1.1 Problématique (9)
  • 1.2 Contribution (11)
  • 1.3 Environnement de stage (11)
  • 1.4 Organisation (12)
  • 2.1 Théorie des graphes (13)
  • 2.2 Définitions de base (17)
  • 2.3 Problèmes d’empaquetage fractionnaire (18)
  • 2.4 Problèmes de couverture fractionnaire (18)
    • 2.4.1 Problème de coloration (18)
    • 2.4.2 Coloration fractionnaire (19)
  • nentielle 14 (0)
    • 3.1 Méthode de fonction potentielle exponentielle (21)
      • 3.1.1 Problématique (21)
      • 3.1.2 Algorithme de base (23)
    • 3.2 Algorithme de Plotkin et al (24)
      • 3.2.1 Procédure principale (24)
      • 3.2.2 Analyse (25)
      • 3.2.3 Problème généralisé (27)
    • 3.3 Comparaison avec d’autres approches (27)
      • 3.3.1 Fonctions potentielles alternatives (27)
      • 3.3.2 Arrondissement inconscient (27)
      • 3.3.3 Algorithmes de Garg-Kửnemann et de Fleischer (28)
    • 4.1 Introduction (29)
    • 4.2 Algorithme de Fleischer (30)
      • 4.2.1 Algorithme (30)
      • 4.2.2 Analyse (31)
    • 4.3 Algorithme de Plotkin et al (31)
      • 4.3.1 Algorithme (31)
      • 4.3.2 Analyse (32)
    • 4.4 Comparaison (33)
      • 4.4.1 Solution initiale (33)
      • 4.4.2 Flot de recheminement (33)
    • 4.5 Histoire (36)
    • 5.1 Améliorations heuristiques (38)
    • 5.2 Implémentation (40)
    • 5.3 Résultats expérimentaux (40)
    • A.1 Architecture (45)
    • A.2 Entreée et sortie des données (47)
    • A.3 Interface graphique d’utilisateur (49)
    • A.4 Quelques classes de base (50)
      • 2.1 Graphe G 1 , V = 1, 2, 3, 4, 5, 6 (0)
      • 2.2 Graphe orienté G 2 (0)
      • 2.3 Matrice adjacente associée au graphe G 1 (0)
      • 2.4 Flot sur un réseau (0)
      • 2.5 Exemple : un réseau N (0)
      • 2.6 Réseau résiduel N(f ) (0)
      • 2.7 Coupe dans un réseau (0)
      • 2.8 Coloration d’un graphe (0)
      • 4.1 Flot initiale de Plotkin et al (0)
      • 4.2 Flot initiale de Fleisccher (0)
      • 4.3 Flot recheminé de Plotkin et al (0)
      • 4.4 Flot recheminé de Fleischer (0)
      • 5.1 Graphe des câbles (0)
      • 5.2 Graphe des demandes (0)
      • 5.3 Relation entre le nombre d’itérations et la précision (0)
      • 5.4 La solution des flots (0)
    • A.1 Diagrame de classes de la bibliothèque Mascopt (0)
    • A.2 Réseau avec un chemin (0)
    • A.3 Graphe avec des étiquettes montrant des valeurs (0)
    • C.1 Algorithme primal-dual de base (0)

Nội dung

Problématique

Les problèmes d’empaquetage et de couverture fractionnaire sont généraux pour plusieurs applications en réalité, par exemple : le problème des flots maximum, sac à dos, coloration, Dans ce rapport, nous présentons et examinons quelques algo- rithmes pour ces problèmes En fait, il existe quelques méthodes pour les résoudre : la programmation dynamique et des méthodes heuristiques (recherche locale, re- cherche Taboue, branch-and-bound) La plupart de ces problèmes sont peut-être formulés comme une programmation linéaire, on peut trouver leur solution optimale en temps polynomial en utilisant la méthodes ellipsọde [13, 14] Karmarmar [12] a aussi proposé une fonction potentielle logarithmique comme une fonction barrière.

Cette méthode est élargie sous le nom "méthode intérieur point" Elle a prouvé le caractère polynomiale de la programmation linéaire.

Cependant, ces méthodes pour la programmation linéaire sont très générales, elles ne tiennent pas compte la structure combinatoire des instances de problèmes traités En réalité, la complexité est peut-être polynôme de la taille très grandes de données d’entrées L’objectif de ce rapport est alors d’introduire une algorithme d’ap- proximation efficace pour des problèmes d’empaquetage et de couverture fraction- naire Un algorithme d’approximation nous donne seulement une solution faisable pour une instance entrée d’un problème d’optimisation avec une précision spéciali- sée Cependant, dans plusieurs applications, il est suffisant de traiter les solutions qui sont près de l’optimum.

L’algorithme que nous introduirons est celui amélioré de Plotkin et al [20, 17, 5] dans le cas de la génération de chemins pour le problème des flots Ces améliorations heuristiques sont basées sur la technique de relaxation Lagrangienne.

En particulier, on va développer des algorithmes pour des problèmes d’empaque- tage et de couverture fractionnaire Un problème d’empaquetage peut être formulé comme des problèmes de la programmation linéaire : max c T x t.q Ax ≤ b (1.1) x ≥ 0

Où,Aest une matricem×n,betcsont des vecteursmetndimensionnels Le but

1.1.Problématique 3 dans un problème d’empaquetage est de trouver un choix maximum de bénéfice des colonnes tels que chaque rangéeiest empaquetée par des unités deb i Intuitivement, on peut présenter ce problème comme suivant : comment peut-on placer des objets dans des boợtes tel que ils satisfont des contraintes de capacitộs de boợtes ? Par exemple, pour le problème de sac à dos, on doit mettre des objets dans le sac tel que le total de values d’objets est maximum, le problème des flots est similaire, on doit maximiser le flot transféré dans un réseau sous des contraintes de capacité des arêtes.

Un problème de couverture peut être décrit par une instance de programmation linéaire suivante : min y T b t.q A T y ≥ c (1.2) y ≥ 0

Où, A, c, b sont définis comme dans le cas ci-dessus Le but de ce problème est contraire au problème d’empaquetage On doit trouver un choix minimum de cỏt des colonnes tels que chaque rangée i est couverte par des unités de b i On trouve que : le dernier problème est le dual de programmation linéaire (1.1).

Lorsque l’on s’autorise à découper les objets en sous parties le problème est polynomial, il s’exprime en effet sous la forme d’un problème de programmation linéaire entière La complexité de la résolution par programmation linéaire standard n’est cependant pas toujours satisfaisante L’algorithme de Rao et al [20] a pour objet de fournir une méthode plus rapide Il peut être considéré à la fois comme une méthode primale - duale et une relaxation Lagrangienne du problème Son principe est simple, partant du problème initial P, certaines contraintes sont relâchées et remplacées par une pénalité exponentielle selon le degré de leur violation (relaxation Lagrangienne) A chaque étape, l’algorithme effectue une descente de type gradient, celle-ci nécessite l’optimisation d’un problème plus simpleP 0 pour lequel on utilise une méthode aussi efficace que possible.

Ici, leur objectif est de chercher un point x ∈ P tel que Ax ≥ (1−²)b pour le problème de couverture (ou bien chercher un point x ∈ P tel que Ax ≤ (1 + ²)b pour le problème d’empaquetage) Le nombre d’itérations (le nombre d’appels la sous-tâche) est O(² −2 ρlog(m² −1 )) pour le problème d’empaquetage et O(m + ρlog 2 m+² −2 ρlog(m² −1 )) pour le problème de couverture Où, ρ la largeur de P, ρ=max i max x∈P a b i x i Dans une autre approche, en utilisant une fonction potentielle logarithmique modifiée de Karmarkar, J Villavicencio et M.D Grigoriadis [24], K.

Jansen et H Zhang [11] ont présenté un algorithme d’approximation pour des pro- blèmes d’empaquetage Cet algorithme peut trouver une solution d’approximation pour n’importe quelle erreur²∈(0,1)dans O(M(² −2 ln² −1 + lnM))itérations.

Un problème important traité dans le cadre d’empaquetage est le problème des flots à plusieurs commodités Ici, on donne un réseau de flots G = (V, E), une fonction de capacité sur des arêtes cet k commodités Chacune de ces commodités correspond à soit une couple de sommets (source et puits) dans le cas simple à soit quelques couples de source-puits dans le cas général (dans le cadre de ce travail, on va traiter seulement le premier) On a un ensemble de couples des sommets T (s 1 , t 1 ), ,(s k , t k )et chacune associe avec chaque commodité Ce qu’on veux chercher une solution tels que la somme des flots de tous les commodités est maximum, max P k i=1 f i cependant, ces flots respectent des contraintes de capacité, c’est-à- dire, P k i=1 f(e)≤c(e) ∀e∈E.

Raghavan [22] a proposé un algorithme aléatoire appelé des flots à plusieurs com- modités fractionnaire Un résultat approximatif est aussi donné dans [20, 17], leur algorithme a utilisé une relaxation Lagrangienne avec des pénalités exponentielles selon degré de leur violation, à chaque étape, il applique une descente de type gra- dient La complexité de leur algorithme est O(kmnlog 4 n) Ils ont aussi prouvé que ce problème peut être résolu par O(klog 2 n) par rapport à la résolution approxi- mative de celui singe commodité Cet algorithme est semblable aux ceux de [23] et [15] qui commencent par un flot satisfaisant les demandes mais non satisfaisant les contraintes de capacité Et alors ces algorithmes re-cheminent itérativement des parties de flot pour produire un nouveau flot qui est plus près d’optimal.

Grag et Kửnemann [7] ont prộsentộ un cadre de travail pour ce problốme et des autres problèmes d’empaquetage Ils réalisent à augmenter des flots suivie le chemin le plus court au lieu de flots minimum cỏt singe commodité La complexité de²−approximation est O(² −2 km 2 ) et ils supposent que le temps de calculs pour le plus chemin est O(km) Dans [5] Fleischer a basé sur ce cadre et proposé un algorithme dont sa complexité est indépendante avec le nombre de commodités.

Son idée est simple, au lieu de calculs le chemin le plus court parmi toutes les commodités, il ne calcule que les plus courts chemins qui sont au plus (1 +²)-fois l min , ó l min est longueur du chemin le plus court Récent, D Coudert et al [3, 2] ont amélioré cet algorithme en utilisant l’algorithme de recherche dynamique pour le problème de chemin le plus court, en outre à partir d’ une idée : la précision ne demande que à la fin du processus de calcul, leur algorithme pussent rapidement une grande quantité de flots Au lieu de graduer des flots selon les capacités d’arcs,leur algorithme gradue selon la fonction de longueur.

Contribution

– Introduire généralement des problèmes d’empaquetage et de couverture frac- tionnaire et des algorithmes développés récemment pour ces problèmes.

– Introduire et analyser la méthode de fonction potentielle exponentielle.

– Faire un état de l’art du problème des flots à plusieurs commodités.

– Modifier et implémenter l’algorithme de Rao et al [20,17,5] pour le problème des flots à plusieurs commodités.

Environnement de stage

Mascotte est un projet commun avec le CNRS et l’Université de Nice-Sophia Antipolis (UNSA) dans le cadre du laboratoire I3S.

Mascotte est équipe associée RESEAUXCOM avec le "Network Modeling Group" de l’Université Simon Fraser (Vancouver, Canada).

Mascotte a un Contrat de Recherche Collaborative CORSO avec France TelecomR&D.

Organisation

Mascotte fait partie du pôle ResCom du GdR ASR du CNRS (anciennement axe TAROT du GdR ARP).

L’objectif du projet Mascotte est de développer des méthodes et outils algorith- miques qui s’appliquent en particulier à la conception de réseaux de télécommuni- cations La réalisation de cet objectif implique la poursuite de recherches de haut niveau dans les domaines de l’algorithmique, de la simulation et des mathématiques discrètes.

Dans le chapitre 2, nous rappelons un peu de la théorie de graphe Et puis, nous discutons des algorithmes d’approximation basés sur la méthode de la fonction potentielle exponentielle pour le problème d’empaquetage et de couverture fraction- naire dans le chapitre 3 Nous examinerons également l’algorithme de Plotkin et al. dans [20, 17].

Le chapitre 4 aborde le problème des flots à plusieurs commodités Dans ce chapitre, nous présentons l’algorithme de Fleischer [5] et celui de Plotkin et al.

[20,17] Le premier a utilisé le problème le chemin le plus court comme le problème dual Le deuxième a résolu ce problème en se basant sur le problème de flot cỏte- minimum.

Dans le chapitre 5, nous décrirons notre implémentations pour le problème des flots à plusieurs commodités Notre implémentation est basé sur l’algorithme de Rao et al [20, 17, 5] Leur algorithme est très efficace en théorie, cependant une implé- mentation directe est très lent Nous avons modifié leur algorithme et donné l’im- plémentation rapide en pratique Notre implémentation est basé sur la bibliothèque Mascot[21], une bibliothèque d’optimisation construite par l’équipe Mascotte.

Dans des annexes, nous vous rappelons quelques mots sur la programmation li- néaire, la relaxation Lagrangienne, la série de Taylor, ce qui sont des connaissances de base pour mon rapport En outre, nous vous présentons quelques mots la biblio- thèque Mascot.

Théorie des graphes et définitions de base

Théorie des graphes

Un graphe est constitué d’un ensemble de sommets et d’une famille de liens (orientés ou non), appelés arêtes ou arcs, entre certains couples de sommets.

Définition 1 (Graphe non orienté) Un graphe G= (V, E)contient un ensemble fini V de sommets et un ensemble fini E d’arêtes (sans orienté) Le nombre de sommets |V| est n et le nombre d’arêtes |A| est m.

Définition 2 (Graphe orienté) Un graphe orienté est un graphe dont les arêtes sont orientées : on parle alors de l’origine et de l’extrémité d’une arête Une boucle est une arête orientée dont l’origine et l’extrémité sont les mêmes.

Pour chaque arc a = (x, y), des sommets x et y sont appelés des sommets inci- dents à a.

Un graphe non-orienté peut-être utilisé pour modéliser des relations de conflits entre individus ou objets Un graphe orienté représente typiquement un réseau de communication, ou encore des relations de domination non-réciproque entre per- sonnes, etc.

Le dégrée du sommet v, deg(v), est le nombre d’arêtes (arcs) incidentes à v.

On considốre gộnộralement que le problốme des ponts de Kửnigsberg (chercher un parcours eulérien qui passe exactement une fois par chaque arête), résolu par Euler, est le premier résultat formel de la théorie des graphes Et puis, cette théorie s’est surtout développée depuis la deuxième moitié du 19ème siècle par Hamilton, Hea- wood, Kempe, Kirchhoff, Petersen, Tait, et depuis les années 30 du 20ème siècle par Kửnig, Hall, Kuratowski, Whitney, Erdửs, Tutte, Edmonds, Berge, Lovỏsz, Seymour.

Elle présente des liens évidents avec l’algèbre, la topologie, et d’autres domaines de combinatoire On trouve des applications de la théorie des graphes en informatique : recherche opérationnelle, théorie des jeux et théorie de la décision.

Le nombre de notions que l’on peut définir sur un graphe est très grand, et plu- sieurs d’entre elles sont à l’origine de problèmes célèbres (le problème des quatre couleurs par exemple) En fait, un certain nombre de ces notions et des questions

"théoriques" sont issues non pas des mathématiques pures mais de problèmes pra- tiques De plus, les théoriciens des graphes s’attachent souvent à trouver des algo- rithmes efficaces pour résoudre un problème donné.

Les grands problèmes classiques de la théorie des graphes sont suivants : flots, connectivité, coupe, parcours eulérien, parcours hamiltonien, coloration et ensemble stable etc, Certains de ces problèmes (flot maximum, coupe maximum, parcours eulérien) peuvent être résolus "efficacement", mais la plupart sont très difficiles ("NP-complets").

Chaque graphe peut être associé à une matrice appelée la matrice adjacente Une matrice adjacenteA= (a ij )du graphe G est définie comme suivante : a ij ={1 si i et j adjacents, 0sinon}

Un sous-graphe d’un graphe G est un graphe G 0 composé de certains sommets deG et toutes les arêtes qui relient ces sommets.

On considère un réseauN = (V, E), chaque arête a une capacité c:E →R +

Fig.2.3 – Matrice adjacente associée au graphe G 1

Un flot f de s à t sur un réseau N est une valeur positive des arcs, c’est à dire qu’une application de E dans R + vérifie les deux propriétés suivantes :

– Pour tout arc (u, v) ∈ E, alors 0 ≤ f(u, v) ≤ c(u, v), c’est-à-dire que le total de flots dans chaque arête n’excède pas leur capacité.

– Pour tous les sommets intermédiairesv ∈V\{s, t}, alorsP u f(u, v) =P u f(v, u).

Fig 2.4 – Flot sur un réseau

La somme f − (v) = P u f(u, v) est le flot entrant au sommetv.

La somme f +(v) = P u f(v, u) est le flot sortant du sommet v.

La valeur |f| d’un flot f est définie comme la différence entre le flot sortant et le flot entrant env : |f|=f + (v)−f − (v).

Définition 3 (Flot Maximum (MaxFlow)) Le problème du Flot Maximum consiste à trouver un flot f max de valeur maximale sur le réseau N.

Définition 4 (Réseau résiduel) Le réseau résiduel N(f) associé à un flot f sur un réseauN est un réseau comprenant les mêmes sommets que N Chaque arc(u, v) de N est associé dans N(f) selon deux principes suivants :

1 Si f(uv)< c(uv), alors l’arc (u, v) est placé dans E(N(f)) (arc normal)

2 Si f(vu)>0, alors l’arc (u, v) est placé dans E(N(f)) (arc inverse)

Définition 5 (Capacité résiduelle) La capacité résiduelle d’un arc sur le réseau résiduel est définie comme suivant :

1 Si f(uv)< c(uv), u 0 (uv) =c(uv)−f(uv)

Où, u 0 (uv) est la capacité du arc (u, v)sur le réseau résiduel.

Propriété 1 De ces définitions, on peut additionner tout flot admissible de G(f) au flot f et obtenir un flot admissible.

Définition 6 (Coupe) Si s et t sont 2 sommets d’un réseau N = (V, E),

– Une(s, t)-coupe est un ensemble A d’arcs déconnectant s de t : dans le graphe partiel (V, E\A) il n’existe pas de chemin orienté de s à t.

– Une(s, t)-coupe se définit également par une partition C =S∪T des sommets telle que s ∈ S et t ∈ T Les arcs de la coupe sont alors les arcs (u, v) ayant leur origine u dans S et leur destination v dans T.

– La capacité d’une coupe est la somme des capacités ses arcs.

Définition 7 (Coupe Minimum (MinCut)) Le problème de la Coupe Minimum consiste à trouver une coupe C min entre s et t de capacité minimale.

Propriété 2 (MaxFlow MinCut (forme faible)) Si f est un flot sur un réseau entre s et t, et C est une (s, t)-coupe, alors : |f| ≤ |C| Cela est équivalent à :

Fig 2.7 – Coupe dans un réseau

Définitions de base

Définition 8 (L’Optimisation combinatoire) consiste à trouver le meilleur entre un nombre fini de choix Autrement dit, à minimiser une fonction avec contraintes sur un ensemble fini.

Définition 9 (NP-Complet) Un problème est NP-Complet si il est dans NP, et si n’importe quel problème NP-Complet peut se récrire à l’aide d’un algorithme polynomial comme un sous ensemble d’instance de ce problème.

Le problèmeNP-Complet le plus célèbre est leproblème satisfaisant L’ensemble des problèmes NP-complets ont la propriétés suivante :

– Si on trouve un algorithme efficace pour un problème NP-Complet alors il existe des algorithmes efficaces pour tous,

Et jusqu’à maintenant : – Personne n’a jamais trouvé un algorithme efficace pour un problème NP- complet,

– Personne n’a jamais prouvé qu’il ne peut pas exister d’algorithme efficace pour un problème NP-complet particulier.

Pour attaquer aux problèmes NP-Complet, on utilise des algorithme d’approxima- tion.

Définition 10 (Algorithme d’approximation) Un algorithme qui donne des so- lutions presque optimales et s’exécute un temps polynomial au pire des cas est appelé algorithme d’approximation.

On demande un algorithme d’approximation efficace et ayant la capacité de résoudre le problème pour toutes les entrées, mais on laisse tomber la demande d’une solution optimale.

Définition 11 (Facteur d’approximation) Soit OP T(I) est la valeur d’une so- lution optimale pour l’entréeI, et soit ALG(I) est la valeur de la solution retournée par l’algorithme A pour l’entrée I On dit que le facteur d’approximation de l’algorithme A est % A (n) pour tout l’entrée I de taille n si : max àALG(I)

Problèmes d’empaquetage fractionnaire

Définition 12 (Problème d’empaquetage fractionnaire) ∃?x∈P tel queAx≤ b, ó A est une matrice m×n, b >0 et P est un ensemble convexe dans R n tel que

Pour ce problème, son but est de trouver un choix de bénéfice maximum des colonnes tels que chaque rangéeiest empaquetée par des unités deb i Intuitivement, on peut présenter ce problème comme suivant : comment peut-on placer des objets dans des boợtes tel que ils satisfont aux contraintes de capacitộs de boợtes ?

Quelques problèmes exemplaires : – Problème de sac à dos.

– Problème des fichiers sur des CD-Rom (Bin packing).

– Problème des sommets dans des ensembles indépendants (coloration, applica- tion à des problèmes d’allocation de fréquences).

Problèmes de couverture fractionnaire

Problème de coloration

On appelle ensemble indépendant d’ un grapheG= (V, E)un sous ensemble de sommets ayant un sous ensemble d’ arêtes induits vide Une coloration du graphe est une partition des sommets en ensembles indépendants, on associe généralement une couleur à chaque partie à fin de visualiser ou d’aider l´intuition Le nombre chromatique du graphe est alors le nombre minimum de parties d´une coloration.

Définition 14 (Coloration) On peut décrire le problème de coloration comme sui- vant :

Solution : Une coloration de G, c-à-d, une division de V dans disjoignent des ensembles V 1 , V 2 , , V k tels que chacun V i est un ensemble indépendant pour G.

Mesure : La cardinale de la coloration.

Formulation mathématique : On s’appelleSun ensemble de tous les ensembles indépendants maximum deG, on doit choisir des ensembles indépendants maximum dans S pour satisfaire aux contraintes suivantes : minimiser X s x s soumettre`a X s:i∈S x s ≥1 ∀i∈V x s ∈0,1 ∀s∈S

Où, x s = 1 si l’ensemble s est choisit, au contraire x s = 0 On dit que ce nombre minimal est le nombre chromatiqueχ deG.

Coloration fractionnaire

Pour ce problème, on colorie non seulement une couleur mais plusieurs couleurs pour chaque sommet Une coloration fractionnaire est une pondération des ensembles indépendantsI telle que pour tous les sommetsx, la somme des poids des ensembles indépendants contenant x soit au moins 1 On appelle aussi une telle pondération une couverture car chaque sommet est couvert par des ensembles pesant au moins 1.

Supposons queχ f est le nombre chromatique fractionnaire deG, on a une lemme suivante : Lemme 1 log χ(G) |V | ≤χ f (G)≤χ(G).

Formulation mathématique : T Matsui dans [19] a proposé un algorithme

2−approximation pour ce problème sur le graphe d´intersection d´arc circulaires en résolvant le problème d’ensemble indépendant maximum. minimiser X e∈∂+(s) x e soumettre `a X e∈∂+(v) x e + X f ∈∂−(v) x f = 0 ∀v ∈A(P) X v∈B(P,p) x≥0

Où, A(P) un graphe auxiliaire est utilisé dans son algorithme d’ensemble indé- pendant maximum Il existe en fait une correspondante un-a-un entre l’ensemble de toutes les ensembles indépendants maximum dans G(P) et tous les chemins s−t dans A(P) Donc, le problème de coloration fractionnaire devient un problème de flots sur A(P) Le vecteur x est indexé par des arcs sur A(P) La solution de ce problème nous donne la borne inférieure du problème de coloration.

Quelques d’autres problèmes de couverture Couverture minimum de Clique,Couverture minimum des sommets, Coloration minimum d’arête, Minimum CliquePartition.

Méthode de fonction potentielle exponentielle

On considère des problèmes qui peuvent être formulés comme la programmation linéaire suivante : max c T x t.q Ax ≤ b (3.1) x ∈ P

Où, A est une matrice m×n et b et c sont les vecteurs de m et n dimensions

3.1.Méthode de fonction potentielle exponentielle 15 respectivement Ce problème est appelé le problème d’empaquetage fractionnaire.

Le problème de couverture est également considéré similairement.

En donnant une paramètre d’erreur² >0, notre objectif est à chercher un vecteur x∈P tel que Ax ≤(1 +²)b On appelle que c’est une solution ²−approximation.

Au contraire, une solution exacte est un vecteur x∈P tel que Ax≤b.

Il est un facteur bien connu parmi les praticiens de la relaxation Lagrangienne qu’une formulation de programmation linéaire devrait autant que possible utiliser des bornes supérieures "petites" ou "serrées" sur des variables Sinon on a des ré- sultats faibles de convergence.

Définition 15 La largeur de polyèdrex∈R n , Ax≤b est : ρ=max i max x∈P a i x−b i b i (3.2)

Dans le cas de problème des flots à plusieurs commodités, la largeur est égale la congestion maximum contractée par n’importe quel flot.

Ce paramètre de largeur est formellement introduit par Plotkin et al [20] Leur algorithme prouve que ou bien (3.1) est infaisable, ou bien on trouve une solution ²−approximation x∈P Dans le cas pire, le nombre d’itérations de leur algorithme de base dépend polynomialement de m et de n, et est également proportionnel au ρ² −3 Nous allons examiner cet algorithme plus détailléement dans la partie suivante.

Version d’optimisation et solution d’approximation

Dans cette partie, nous représentons la version d’optimisation du problème d’em- paquetage fractionnaire Celle du problème de couverture fractionnaire est pareille.

Soit un paramètre d’erreur² >0, on appelle que une solution²−approximation du problème d’empaquetage fractionnaire, est un vecteurx∈P tel queAx≤(1+²)b.

Au contraire, une solution exacte est un vecteurx∈P tel queAx≤b.Uneprocédure ²−relachee va nous donner une solution ²−approximation ou bien nous dire que aucune solution exacte existe La version suivante d’optimisation de ce problème est utilisée pour trouver un tel point : min λ (3.3) t.q Ax ≤ λb x ∈ P

Supposons que λ ∗ est la valeur optimale Pour chaque x ∈ P il y a une valeur maximum correspondante λ tel que Ax ≤ λb On va utiliser une notation (x, λ) pour dénoter que λ est la valeur maximum correspondant à x Une solution (x, λ) est²−optimale si x ∈ P et λ≤ (1 +²)λ ∗ Si λ > (1 +σ), on a λ ∗ >1 et alors, il n’existe pas de solution optimale.

Dans [1], Bienstock a généralement introduit une méthode de la fonction poten- tielle exponentielle.

Dans cette partie, nous représentons un algorithme ²−approximation pour des problèmes ci-dessus.

Paramètres La matrice A a m rangées, n colonnes et un maximum des Q non- zéros par rangée.

L’algorithme peut être vu comme un fonctionnant dans deux étapes Dans la première étape, on cherche une borne inférieure λ L sur λ ∗ , ici on suppose que λ ∗ est la solution optimale, et un point x ∈ P tel que λ U = λ(x) satisfait λ U ≤ O(min{m, Q})λ L Ainsi, on est garanti une erreur multiplicative polynomial dans l’évaluation initiale de λ ∗ Dans la deuxième étape, on diminue progressivement l’espace entre les bornes inférieure et supérieure surλ ∗ jusqu’à la précision désirée² soit réalisée.

Afin de motiver la stratégie utilisée par l’algorithme dans la première étape, supposons qu’on a eu une borne supérieure connuelambda U sur lambda ∗ (dans l’al- gorithme de Plotkin et al [20], cette borne supérieure est égale à λ U =max i a i x/b i ).

(3.4) est non-vide, pour1≤i≤n v j A =min i a −1 ij (3.5)

Réciproquement, si nous avions une valeur γ > 0 tels que P(Γv) est non vide, alors nous saurions que λ ∗ ≤ QΓ En conclusion, supposez queγ > 0 était tels que

P(2ΓvA) est non vide, mais P(Γv)est vide Puis γ ≤λ ∗ ≤2Qγ.

Ces observations suggèrent un algorithme simple On commence par un point ¯ x ∈ P , et met initialement γ = λ(¯x) Alors, P(γv A ) est non vide ; suppose que on doive réduire à plusieurs γ par un facteur de 2 jusque la première fois qu’à cela

P(γvA) devient vide Le nombre d’itérations requises pour atteindre ce point est :

En particulier, suppose que le point de départ x¯ est la solution optimale du pro- gramme linéairemin x∈P e T Ax Puis, clairementλ(¯x)≤ mλ ∗ , et nous concluent que la première étape demande desO(logm)itérations.

Dans [20], la borne inférieure λ L est trouvé en cherchant un point x˜∈P tel que c˜x=min x∈P cx, óc=y t A pour la borne inférieure λ L =C P (y)/y t b, ici, on dénote

La deuxième étapeAfin de calculer une ²-approximation de λ ∗ , la deuxième étape réalise une pro- cédure de la recherche binaire Cette procédure améliore à chaque itération l’espace

Algorithme de Plotkin et al

entre la borne supérieure et la borne inférieure surλ ∗ par un facteur 2/3, jusqu’à ce que l’espace soit réduit au plus la précision désirée ².

Pas 0 : Supposons que λ U , λ L sont des bornes supérieure et inférieure sur λ ∗ produit par la première étape, et supposons que xˆ 0 ∈P atteint λ(ˆx 0 ) = λ U Mettre k= 0.

Pas 2 : Si λ(y)> λ L + 2(λ U −λ L )/3 alors mettre à jour λ L =λ L + (λ U −λ L )/3

Pas 3 : Au contraire, λ(y) ≤ λ L + 2(λ U −λ L )/3 alors on met à jour la borne supérieureλ U =λ(y).

Pas 4 : Siλ U ≤(1 +²)λ L , arrêter Autrement, mettre à jour k =k+ 1, xˆ k =y et aller au pas 1.

Dans la partie suivante, nous allons examiner l’algorithme de Plotkin et al [20].

3.2 Algorithme de Plotkin et al.

Dans cette partie, on va introduire des algorithmes dans [20] Ils ont présenté un algorithme plus rapide qui peut nous fournir des solutions approximatives pour la classe générale de problèmes d’empaquetage et de couverture fractionnaire Leurs problèmes généralisés sont formulés comme des optimisations convexes.

Leur algorithme peut être considéré à la fois comme une méthode primale & duale et une relaxation Lagrangienne du problème Son principe est simple, partant du problème initial P, certaines contraintes sont relâchées et remplacées par une pénalité exponentielle selon le degré de leur violation (relaxation Lagrangienne) À chaque étape, l’algorithme effectue une descente de type gradient, celle-ci nécessite l’optimisation d’un problème plus simpleP 0 pour lequel on utilise une méthode aussi efficace que possible De plus, ils ont analysé théoriquement le temps de calculs de l’algorithme basé une relaxation Lagrangienne.

Après, nous représentons l’algorithme pour le problème d’empaquetage fraction- naire, celui pour le problème de couverture fractionnaire est pareil.

Entrée : x et ², x peut initialiser selon une telle critique Par exemple, pour le problème des flots cỏt-minimum on pousse d’abord des flots autant que possible selon des demandes malgré la violation des capacités sur des arêtes.

Pas 1 Initialiser Mettre λ 0 ←max i a i x/b i ; α ← 4λ −1 0 ² −1 ln(4m² −1 ); σ ← ²

Pas 2 Mettre à jour la solution duale : Pour chaque i = 1, , m : mettre y i ← b 1 i e −αa i x/b i

Pas 3 Chercher un point du cỏt-minimum x∈P pour des cỏts c=y t A.

Pas 4 Pour une valeur appropriée σ, mettre à joursx←(1−σ)x+σx.

Pas 5 Si xdes conditions d’arrête, alors s’arrêter.

Pas 6 Au contraire, aller au pas 2.

Les conditions d’arrête dans le pas 5 doit être faites précisément.

Dans le pas 3, on suppose qu’in a l’ oracle de génération des colonnes suivant : Donner y∈R m + >0, l’oracle trouve une colonne x˜∈P, tel que : c˜x=min(cx:x∈P), ou c=y t A (3.6)

Note que sic j = 0pour quelquesj ∈1 n, alors sans perte de généralité, on peut mettre x j = 0, tandis que si b i = 0 pour quelques i ∈ 1 m, alors n’importe quelle solution faisable a x j = 0 pour tout j ∈1 n pour quel A ij >0.

Théoriquement, la sous-tâche ci-dessus est le problème dual de celui origine.

Dans le chapitre prochaine, nous abordons au problème des flots dans lequel cette sous-tâche là est le problème minimum cỏte dans [17] ou le chemin le plus court dans [5].

On va analyser la convergence de la fonction potentielle exponentielle présentée par Plotkin et al [20] pour le problème d’empaquetage fractionnaire.

La dualité de la programmation linéaire nous donne une caractéristique de la solution optimale Suppose y ≥ 0, y ∈ R m dénote une solution duale, et suppose

C P (y) dénote la valeur minimum de c T x pour tout x ∈ P, ó c = y T A Suppose

(x, λ) dộnote une solution faisable Nous considộrons la chaợne des inộgalitộs : λy t b≥y t Ax≥C P (y) (3.7)

On trouve que toutes les deux y t b et C P (y) sont indépendantes de x et λ De plus, pour n’importe quelle solution duale y, la valeur C P (y)/y t b est toujours une borne inférieure de λ ∗ C’est-à-dire que λ ∗ ≥C P (y)/y t b.

Considérer une paramètre d’erreur ² > 0, un point x ∈ P satisfaisant Ax ≤ λb et une solution dualey On a :

Lemme 2 (Plotkin et al [20]) Si (x, λ) et y sont des solutions primale et duale faisables qui satisfont des conditions relaxées d’optimalitéP ST1etP ST2et si²≤ 1 6 , alors (x, λ) est 6²−optimal.

Preuve : A partir de P ST1et P ST2 On a

3.2.Algorithme de Plotkin et al 19

Lemme 3 (Plotkin et al [20]) Si α ≥ 2λ −1 ² −1 ln(2m² −1 ) et 0 < ² < 1, alors n’importe quelle solution faisable (x, λ) et sa solution duale correspondante y satis- font P ST1.

Lemme 4 (Plotkin et al [20]) Considère un point x∈P et une paramètre d’er- reur 0 < ² < 1 tel que x et sa solution dual correspondante y ont la valeur de la fonction potentielle Φ et ne pas satisfaire P2 Suppose que x˜ ∈ P atteint à C P (y) et σ ≤ 4αρ ² On définit une nouvelle solution : xˆ = (1 − σ)x +σx, et˜ Φˆ est la fonction potentielle pour la valeur xˆ et sa solution dual correspondante y Alorsˆ Φ−Φˆ ≥ασ²λΦ.

Preuve : À partir de la définition de ρ, on a Ax ≤ ρb et A˜x ≤ ρb Alors, ασ|a i x−a i x|/b˜ i ≤²/4≤1/4.

En utilisant la théorème de Taylor avec la fonction e x et un incrément |δ| ≤ ²/4≤1/4, on a e x+δ ≤e x +δe x + ² 2 |δ|e x En mettant δ =ασ(a i x−a i x)/b˜ i , on voit que : ˆ y i ≤ y i + 1 b i ασ(a i x−a i x)˜ b i e αa i x/b i + 1 b i ²ασ|a i x−a i x|˜ b i e αa i x/b i

Si P ST2 n’est pas satisfait, c’est à dire que y t Ax−C P (y) ≥ ²(C P (y) +y t b), alors, on a : la diminution deΦ est au moinsασ²λΦ.

Lemme 5 La procédure ci-dessus va se terminer aprèsO(² −3 λ 0 −1ρlog (m² −1 ))ité- rations Si λ 0 est O(²) − optimal, alors cette procédure-là va se terminer après O(² −2 ρλ −1 0 ρlog(m² −1 ))

Preuve : Il est assez simple pour démontrer Rappelez que, pendant cette procé- dure,σ = 4αρ ² , qui implique que la diminution de la fonction potentielle après chaque itération est Ω ³ ² 2 λ ρ Φ ´ De plus, observez que e αλ 0 /2 ≤ Φ ≤ me αλ 0 Si la solution d’entré est O(²)−optimal, on a la borne stricte e α(1+O(²)) −1 λ 0 ≤ Φ ≤ me αλ 0 En utilisant la lemme ci-dessus, simplement on obtient le résultat.

On considère une classe de problèmes en forme suivante : GENERAL : ∃?x ∈P tel que Ax ≤b, là ó A est une matrice m×n, b est un vecteur arbitraire etP est un ensemble convexe dans R n

Supposons qu’on est donné une sous-tâche rapide pour résoudre le problème d’optimisation suivant pour A etP :

On donne un vecteur y∈R m + >0, l’oracle trouve une colonne x˜∈P, tel que : c˜x=min(cx:x∈P), ou c=y t A (3.8)

Pour ce problème, b n’est pas nécessaire positive.

On donne une paramètre² >0et un vecteur de tolérance positived On appelle qu’un point x∈P est une solution ²−approximation si Ax≤b+²d, une solution exacteest un pointx∈P tel queAx≤b Plotkin et al dans [20] a expliqué comment réduire ce problème à un problème d’empaquetage fractionnaire.

Un ensemble convexeP˜ = (x, s) :x∈P ets = 1dansR n+1 Et des inégalités sont définies comme :Ax+ (ρd−b)s ≤˜b =ρd.

Théorème 1 Pour n’importe quel ²,0< ² < 1, si le problème GÉNÉRAL a une so- lution exacte, alors une solution²−approximationpeut être trouvé dansO(ρ 2 ² −2 log (mρ² −1 )) appels à la sous-tâche(3.8)plus le temps de calculs Ax entre des appels consécutive.

Comparaison avec d’autres approches

Les preuves que nous nous avons représentées ci-dessus sont fortement comptées sur utiliser une fonction potentielle exponentielle Mais il devrait être clair que (avec un certain effort) autre des fonctions potentielles "rapidement croissantes" devrait suffire pour prouver au moins la convergence de polynôme-temps Par exemple, [10] analyse une fonction logarithmique de barrière de Karmarkar, et prouve que dans certaines conditions cette fonction nous donne des meilleures bornes que la fonction exponentielle Dans d’autre travaux concernant la méthode de la fonction potentielle logarithmique modifiée de Karmarkar, J Villavicencio et M.D Grigoriadis dans [24],

K Jansen et H Zhang dans [11] a aussi présenté un algorithme d’approximation pour des problèmes généraux d’empaquetage.

La fonction potentielle de Karmarkar est suivante : Φ(x) = nlnc T x−P n i=1 lnx i Nous aborderons en détail cette fonction dans la partie d’annexes.

Ici, nous décrirons les résultats dans [25] sur des algorithmes dé-randomisé Ce travail a eu l’impact significatif sur des développements récents sur des algorithmes d’approximation pour des classes des programmes linéaires.

L’idée centrale est d’imaginer que nous avons accès à un ordinateur très puissant qui, en fait, a déjà résolu le problèmeNP-CompletP Afin que nous puissions obtenir la solution optimale, nous doivent questionner un oracle pour obtenir un élément de la solution à la fois - et malheureusement, cet oracle souffre de l’aspect aléatoire En fait, l’oracle peut répéter ses réponses, aléatoirement Chaque appel à l’oracle est très cher, et nous voudrions réduire le nombre d’appels autant que possible Dans le fait, nous voudrions dé-construire l’aspect aléatoire de l’oracle afin d’obtenir la solution optimale nous-mêmes, sans recourir à l’oracle du tout (ou l’ordinateur puissant).

Cela est très difficile, mais à la place nous obtiendrons un algorithme déterministe qui peut calculer une couverture près-optimale [25]

3.3.3 Algorithmes de Garg-Kửnemann et de Fleischer

Les développements algorithmiques reliés à la technique d’arrondissement in- conscient ont fourni le point de départ pour une nouvelle ligne de la recherche qui continue toujours, et qui a produit les algorithmes les plus efficaces pour le divers problèmes type-flots, incluant le problème des flots concurrents maximums Les idées décrites dans la partie ci-dessus ont mené à de nouveaux algorithmes dans [7], et après améliorées dans [5]

L’algorithme pour le problème des flots concurrents maximums donné dans [7],

[5] évite la dépendance de la paramètre de largeur, là-bas, au lieu d’acheminer tout la demande des commodités le long d’un chemin le plus court, des flots sont acheminés beaucoup plus soigneusement Ils ont seulement calculé le chemin le plus court entre s k et t k correspondant à la commodité k Puis on achemine autant une demande comme possible le long de ce chemin, sans excéder toute capacité le long de ce chemin.

Problème des flots maximum à plusieurs commodités

Introduction

Définition 16 Un problème des flots à plusieurs commodités est définit sur un graphe direct G = (V, E) avec des capacités c : E → R + et k commodités C {(s i , t i ), s i , t i ∈V, i= 1 k} Un flot f i de s i à t i est une pondération des arêtes de

E respectant des contraintes de conservation de flot.

Formulation mathématique : Supposons que P j dénote l’ensemble de chemins des j àt j , et supposons que P :=S j P j , la variable x(P) dénote la quantité de flot envoyé suivie le cheminP. max X p∈P x(p)

Le problème des flots est un cas spécial du problème d’empaquetage D’abord, pour le problème du flot maximumf desàt, si on le considère comme une solution d’optimisation de la polytope P ⊆R m , ó P est une combinaison convexe des che- mins(s, t)soumettre aux contraintes de capacitộ En mờme faỗon, on peut formuler le problème des flots maximums en mettant P = P 1 x xP k , ó P i est le polytope qui représente l’espace de la solution de la commodité i, et Ax ≤ b présente des contraintes de capacité.

Le problème des flots à plusieurs commodités est utile dans un grand nombre d’applications, notamment lorsqu’il est question de calculer des routes pour des en- tités qui sont en concurrence pour certaines ressources modélisées par des capacités sur les arcs du graphe support des routages possibles.

Si ce problème est contraint à être entier alors il est NP-difficile Cependant, on peut trouver une solution approximative d’une version fractionnaire en temps

Algorithme de Fleischer

polynomial Dans la partie ci-dessous, nous présentons l’algorithme de Fleischer et celui de Plotkin et al qui sont actuellement meilleurs pour ce problème.

L’algorithme dans [5] a considéré le problème de chemin le plus court comme la dualité de ce problème Il calcule à la fois des solutions primale et duales de sorte que le chemin le plus court de s j à t j est au moins1 pour toutes les commodités j. min X e c(e)/l(e)

Cet algorithme est une amélioration par rapport au cadre de travaux de Grag et Kửnemann [7], en fait au lieu de chercher le chemin le plus court dans toutes les commodités, il le calcule seulement pour chaque commodité selon la fonction de la longueur actuelle On suppose que

((1+²)n) 1 ² ,∀e∈E, l(e) =σ, f ≡0, j = 0, λ=σ Où,f est la valeur de flot,l(e)la longueur d’arête e, la valeur duale,λ est la borne inférieure de chemin le plus court.

Pas 1 : Pour toutes les commodités j ∈ 1 k Chercher le chemin le plus court dans P j en utilisant l Où, P j l’ensemble de chemins de commodité j, des chemins des j àt j Pas 2 : Si l(P)< min{1, λ} aller à Pas 3,

Pas 3 : Mettre à jour des solutions : – c:=min e∈P u(e)

Pas 4 : Au contraire, augmenter j Si j ≤k Alors aller à Pas 1.

Pas 5 : Mettre à jour la borne inférieure de chemin le plus court λ ←λ(1 +²).

Pas 6 : Si la borne inférieure λ≤(1 +²)alors aller à Pas 1 Au contraire, arrêter.

Lemme 6 Après O(mlog ( 1 +²) 1+² σ ) augmentations, l’algorithme ci-dessus se ter- minera.

Preuve : Au début, l(e) = σ pour toutes les arêtes e La dernière fois ó la longueur d’arête est mise à jour, il est sur un chemin de la longueur moins de1, et il est augmenté au plus par un facteur de 1 +² La longueur final de n’importe quelle arête est donc au plus de1 +² Puisque chaque augmentation augmente la longueur d’un certain arête par un facteur au moins de 1 +², le nombre d’augmentations possibles est à la plupart de O(mlog ( 1 +²) 1+² σ ).

Lemme 7 Le flot obtenu en mesurant le flot final obtenu en algorithme ci-dessus par log ( 1 +²) 1+² σ ) est faisable.

Preuve : Chaque fois, le flot sur un arête augmente par une fraction0< a i ≤1de sa capacité, sa longueur est multipliée par1 +a i ² Puisque1 +a²≥(1 +²) a , ∀ 0≤ a ≤ 1, nous avons Q i (1 +a i ²) ≥ (1 +²) P i a i lors 0 ≤ a i ≤ 1, ∀i C’est pourquoi, chaque fois le flot augmente par sa capacité, alors la longueur d’arête augmente par un facteur au moins de1 +² Au début,l(e) =σ et au fin l(e)

node0

A.2.Entreée et sortie des données 41

6.8

110

Lire et écrire une valeur

Mascopt permet de lire et d’écrire la valeur d’objet d’un graphe avec un contexte ou avec sans contexte.

Avec sans contexte Pour sauvegarder un "String" sur des sommets, arcs, : getValue(String name) setValue(String name, String value)

Et c’est pareil avec d’autres types de données (Interger, int, double, ).

Avec contexte Pour sauvegarder un "String" sur des sommets, arcs, : getValue(String name, Object context) setValue(String name, String value, Object context)

Et c’est pareil avec d’autres types de données (Interger, int, double, ).

Interface graphique d’utilisateur

Il existe dans mascopt une classe permettant l’affichage des graphes, Mascopt- Viewer Pour afficher un graphe, il faut donc créer un objet de type MascoptViewer.

Cette objet va alors contenir une liste de vues (qui correspondent à différentes fe- nêtres qui seront créées) et chaque vue contient une liste de “layers” contenant chacun un ou plusieurs graphes Cette organisation permet en particulier de superposer dif- férents graphes en ajoutant leur layers respectives dans les vues Il est aussi possible d’ajouter la même layer à différentes vues Les vues sont implémentées par la classe GView et les layers par la classe GLayer.

En pratique on peut procéder de la manière suivante :

On instancie un objet de type MascoptViewer

On instancie un objet de type GView

GView gv = mv.newView(G.getName()) ;

On instancie un objet de type GLayer

GLayer gl = mv.newLayer(G.getName()) ;

On associe le graphe et le layer mv.addGraphInLayer(G,gl,true) ;

On ajoute la layer dans la vue

Quelques classes de base

Et tout devrait s’afficher de la manière souhaitée.

Fig A.2 – Réseau avec un chemin

MascoptAbstractVertex Décrire un sommet d’un graphe.

MascoptAbstractVertexSet Décrire un ensemble de sommets.

MascoptAbstractEdge Décrire une arête d’un graphe.

MascoptAbstractEdgeSet Décrire un ensemble d’arêtes.

MascoptAbstractPath Décrire un chemin sur un graphe.

Fig A.3 – Graphe avec des étiquettes montrant des valeurs

MascoptAbstractPathSet Décrire en emsemble de chemins.

MascoptAbstractGraph Décrire un graphe qui contient un ensemble de som- mets et un ensemble d’arêtes.

MascoptAbstractGraphSet Décrire un ensemble de graphes.

La programmation linéaire forme un cas spécial important des problèmes de pro- grammation mathématiques En fait, des algorithmes abordés dans ce rapport sont basés sur la relaxation Lagrangien, une technique de relaxation pour la programma- tion linéaire et convexe.

D’un point de vue géométrique, les contraintes linéaires forment un polytope convexe Si la fonction objective est aussi linéaire, tous les optimums locaux sont ộgalement des optimums globaux ; cela reste vrai si cette fonction augmente de faỗon monotone sur chaque variable considérée, le cas linéaire ne représentant qu’un cas particulier dont la propriété n’est d’ailleurs pas utilisée.

Il y a deux cas ó il n’existe pas de solution optimale Le premier si les contraintes se contredisent mutuellement (x ≥ 2 et x ≤ 1 par exemple) Dans un tel cas, le polytope est vide et il n’y a pas de solution optimale puisqu’il n’y a pas du tout de solution La programmation linéaire est alorsinfaisable.

Le polytope peut également être non-borné dans la direction définie par la fonc- tion objective (par exemple x 1+ 3x 2 tel que x 1 ≥ 0, x 2 ≥0, x 1+x 2 ≥10) Dans ce cas, il n’y a pas de solution optimale puisqu’il est possible de construire des solutions satisfaisant aux contraintes avec des valeurs arbitrairement élevées (ou basses) de la fonction objectif.

En dehors de ces deux cas (qui sont finalement rares dans les problèmes pra- tiques), l’optimum atteint toujours à un sommet du polytope Cependant, l’optimum n’est pas nécessairement unique : il est possible d’avoir un ensemble de solutions op- timales correspondant à une arête ou à une face du polytope, voire au polytope en entier La programmation linéaire fournit une technique forte pour décrire une classe large des problèmes d’optimisation, en même temps il fournit également des techniques générales pour leur solution.

Mathématiquement, on a une matrice m x n, suppose M est un ensemble de lignes correspondantes avec des contraintes d’égalité, et suppose M est celles cor- respondent avec des contraintes d’inégalité Supposons x∈R n Alors, une instance de la programmation linéaire générale est définie par : maximiser c T x soumettre a a` i x ≤ b i (B.1) x ∈ P

Où, b est un vecteur m−dimensionnel, c est un vecteur n−dimensionnel Une programmation linéaire sur n variables réels x = x 1 , , x n demande de minimiser (ou maximiser) la valeur de la fonction d’objective qui est définie comme une com- binatoire linéaire des variables dans x soumettre au ensemble de m d’égalités ou d’inégalités.

Quelques algorithmes sont proposés pour résoudre des programmations linéaires.

Le plus utilisé est la méthode simplexe développé par Dantzig dans les dernières années 40du 20ème siècle.

L’algorithme simplexe permet de résoudre les problèmes de la programmation linéaire en construisant tout d’abord une solution faisable qui est un sommet du po- lytope puis en se dộplaỗant selon les arờtes du polytope pour atteindre des sommets pour lesquels la valeur de l’objectif est de plus en plus grande, jusqu’à atteindre l’optimum Bien que cet algorithme soit efficace en pratique et qu’il soit assuré de trouver l’optimum, son comportement dans le pire cas peut être mauvais Il est ainsi possible de construire un PL pour lequel la méthode du simplexe requiert un nombre d’étapes exponentiel en la taille du problème Ainsi, pendant plusieurs années, savoir si la programmation linéaire était un problèmeNP-complet ou polynomial reste une question ouverte.

Le premier algorithme polynomial pour la programmation linéaire a été proposé par Leonid Khachiyan en 1979 Il est basé sur laméthode ellipsọde enoptimisation non linéaire précédemment proposée par Naum Shor Cette méthode est elle-même une généralisation de la méthode de l’ellipsọde optimisation convexe due à Arkadi Nemirovski, et à D Yudin.

Cependant, l’efficacité pratique de l’algorithme de Khachiyan est décevante : l’algorithme simplex est pratiquement toujours plus performant En revanche, ce résultat a encouragé la recherche dans les méthodes de point intérieur Par opposition à l’algorithme simplex qui considère uniquement la frontière du polytope définie par les contraintes, les méthodes de point intérieur évoluent à l’intérieur du polytope.

En 1984, N Karmarkar propose la méthode projective C’est le premier algo- rithme efficace à la fois en théorie et en pratique Sa complexité dans le pire cas est polynomiale et les expérimentations sur les problèmes pratiques montrent que la méthode peut être raisonnablement comparée à l’algorithme simplex Et après, plusieurs méthodes de point intérieur ont été proposées et étudiées Une des mé- thodes les plus célèbres est laméthode prédictive/corrective qui fonctionne très bien en pratique même si son étude théorique est encore imparfaite.

Pour la résolution pratique de problèmes de la programmation linéaire ordinaires, on utilise actuellement deux méthodes : la méthode simplexe dérivée et celle du point intérieur.

La théorie de la dualité est aussi un résultat très important de la programmation linéaire Les algorithmes d’approximation basés sur la méthode primale - duale nous permettent de efficacement résoudre une classe large des problèmes NP-Complets.

Les algorithmes abordés dans des parties au-dessus sont également considérés en même temps comme la méthode primale - duale et la technique de la relaxation Lagrangienne.

La programmation linéaire duale de PL (7.1) est formulée comme suivante : minimiser b T y soumettre `a a i y ≥ c i (B.2) y ∈ D

Proposition 1 La dualité du programme dual est la programmation linéaire duale.

Proposition 2 (Dualité faible) Sixest une solution primale faisable etyest une solution duale faisable, alorsc T x≤z p ∗ ≤z d ∗ ≤b T y.

Où, z p ∗ etz d ∗ sont des solutions optimales de PL de (7.1) et de celle de (7.2).

Proposition 3 (Dualité forte) Si (7.1) et (7.2) sont faisables, alors z p ∗ =z d ∗

Méthode primale - duale pour des algorithmes d’approximation

La méthode primale-duale pour des algorithmes d’approximation considère en même temps toutes les deux une formulation de programmation entière du problème primale et la dualité d’une relaxation de programmation linéaire de la programma- tion entière.

L’idée fondamentale était d’abord utilisée par Kuhn pour donner l’ algorithme hongrois pour résoudre le problème de tâche Elle a été alors prolongée par Dantzig, Ford, et Fulkerson à un algorithme général pour la programmation linéaire L’idée fondamentale est qu’on donne une solution duale faisabley, nous essayons à chercher une solution primale faisable x qui obéit les conditions complémentaires d’écartes.

Si on peut trouver un tel x, on a des solutions optimales Si il n’existe pas aucun, ceci donne une manière de modifier la solution duale pour augmenter la dualité de la valeur objective.

Si l’un des deux problèmes suivants :

(P)max c T x|Ax≤b(D)min b T y|y≥0, yA=c admet une solution finie alors il en est de même pour l’autre on a : min by|y ≥0, yA =c = max cx|Ax≥b

L’algorithme primal-dual de base y←0 x←0 Tans dis x n’est pas faisable (satisfaire les conditions complémentaires d’écartes)

Fig C.1 – Algorithme primal-dual de base

Ngày đăng: 06/12/2022, 15:48