I- Introduction to Combinatorial Optimization Problems

62
2 ème partie : Optimisation Combinatoire MS2I / MR Semestre M1 Année 2010/2011

Transcript of I- Introduction to Combinatorial Optimization Problems

Page 1: I- Introduction to Combinatorial Optimization Problems

2ème partie :

Optimisation Combinatoire

MS2I / MRSemestre M1

Année 2010/2011

Page 2: I- Introduction to Combinatorial Optimization Problems

Chapitre 1

Introduction aux problèmes d’optimisation combinatoire

Page 3: I- Introduction to Combinatorial Optimization Problems

Qu’est-ce qu’un POC ?

Un problème d’optimisation combinatoire (POC) consiste àrechercher une solution optimale (optimisation) à un problème comportant un grand nombre de solutions possibles (combinatoire).

Page 4: I- Introduction to Combinatorial Optimization Problems

Qu’est-ce qu’un POC ?

Formellement, un POC est caractérisépar :

Un espace de solutions (ΩΩΩΩ).

Une fonction de coût (f : ΩΩΩΩ IR).

Une question : trouver un élémentωωωω ∈∈∈∈ ΩΩΩΩ, tel que f(ωωωω) soit optimaledans l’ensemble f(ΩΩΩΩ).

Page 5: I- Introduction to Combinatorial Optimization Problems

Qu’est-ce qu’un POC ?

Un POC peut être :

Sans contraintes : on cherche une solution ωωωω ∈∈∈∈ ΩΩΩΩ qui optimise f sur ΩΩΩΩ.

Avec contraintes : on cherche une solution ωωωω ∈∈∈∈ ΩΩΩΩ qui optimise f sur ΩΩΩΩ, mais qui vérifie les contraintes du problème (solution réalisable optimale).

Page 6: I- Introduction to Combinatorial Optimization Problems

Qu’est-ce qu’un POC ?

L’optimisation est :

soit une minimisation (chercher une solution ωωωω ∈∈∈∈ ΩΩΩΩ telle que f(ωωωω) ≤≤≤≤f(x), ∀∀∀∀x∈Ω∈Ω∈Ω∈Ω).

soit une maximisation (chercher une solution ωωωω ∈∈∈∈ ΩΩΩΩ telle que f(ωωωω) ≥≥≥≥f(x), ∀∀∀∀x∈Ω∈Ω∈Ω∈Ω).

Page 7: I- Introduction to Combinatorial Optimization Problems

Exemples de POC

Trouver le chemin le plus court entre deux points.

Ordonnancer les tâches dans un système multiprocesseurs.

Affecter des travaux à des personnes dans un projet.

Gérer un emploi de temps.

Page 8: I- Introduction to Combinatorial Optimization Problems

Exemples de POC

Routage optimale dans un réseau (ferroviaire, aérienne, informatique, économique, …).

Distribution optimale des rayons dans un supermarché.

Placement optimale d’installations de télécommunication.

Page 9: I- Introduction to Combinatorial Optimization Problems

Domaines de l’OC

Économie.

Industrie : optimisation des chaînes de production.

Logistique.

Transport.

Militaire.

Administration, ….etc

Page 10: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Le problème du sac à dos (KnapsackProblem).

Instance :

Un sac de capacité maximale C.N objets 1, 2, …, N.

Chaque objet i a un poids pi et une valeur d’utilité ui.

Page 11: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Question :

Déterminer quels objets mettre dans le sac pour :

Maximiser la valeur de l’utilitédes objets.

Mais, sans dépasser la capacitémaximale du sac.

Page 12: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Une modélisation sous un programme linéaire du knapsack :

On introduit une variable de décision : xi ∈∈∈∈ 0, 1 pour chaque objet i.

xi = 0 (resp. 1) signifie que l’objet in’est pas retenu (resp. retenu).

Page 13: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Modélisation par un PL du knapsack :

N contraintes de type : xi ∈∈∈∈ 0, 1 pour tout i tel que 1 ≤≤≤≤ i ≤≤≤≤N.

Contrainte de capacité : ∑∑∑∑ixipi ≤≤≤≤ C.

Fonction à optimiser : maximiser∑∑∑∑ixiui.

Page 14: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

PL pour le knapsack :

Maximiser z = ∑∑∑∑ixiui.

s.c.t :

∑∑∑∑ixipi ≤≤≤≤ C.

xi ∈∈∈∈ 0, 1, 1 ≤≤≤≤ i ≤≤≤≤N.

Page 15: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Une instance du knapsack avec 3 objets :

O1 : (3, 2) (utilité/pois).

O2 : (2, 2) (utilité/pois).

O3 : (2, 3) (utilité/pois).

Capacité du sac : C = 6.

Page 16: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Résolution du problème pour cette instance :

Impossible de prendre les 3 objets.

On prends 2 objets parmi les 3 : 3 possibilités (O1, O2, z=4), (O1, O3, z=5) et (O2, O3, z=5).

Deux solutions optimales.

Page 17: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Remarques sur le Knapsack :

Une solution du problème de sac àdos est une partie X (non vide) de 1, 2, ..., N.

Dans ce cas, l’espace des solutions ΩΩΩΩ est l'ensemble des parties non vides de l'ensemble 1, 2, ..., N.

|ΩΩΩΩ| = O(2N).

Page 18: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Des conclusions sur les POC :

Une caractéristique importante des POC est que la taille de l’ensemble des solutions réalisables est le plus souvent exponentielle.

Les POC sont les plus difficiles àrésoudre (en théorie et en pratique).

Page 19: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Le problème du voyageur de commerce (Traveling SalesmanProblem).

Instance :

Un représentant et N clients, chacun dans une ville (N villes).

D(i, j) : matrice des distances séparant deux villes.

Page 20: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Question :

Trouver un ordre de visite de toutes les villes, afin que le représentant parcoure une distance totale minimale, tout en passant au moins une fois par chacune des villes.

Page 21: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Modélisation du TSP :

En termes de graphes, le TSP se représente par un graphe G=(V, E) dont les sommets (V) sont les villeset dont les arêtes (E) représentent les routes reliant les villes.

Page 22: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Modélisation du TSP :

À chaque arête e = (i, j) dans E, est associé un poids dij représentant la distance de la route entre les deux villes i et j.

Page 23: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Modélisation du TSP :

Le problème consiste à déterminer l'itinéraire optimal qui revient alors à trouver, dans le graphe G=(V, E) un cycle de longueur minimale passant au moins une fois par chaque sommet (cycle hamiltonienminimal).

Page 24: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Résolution exacte du TSP :

Problème apparemment simple.

Mais très difficile à résoudre puisque le nombre de possibilités est de l’ordre O(N!).

On parle d'explosion combinatoire.

Page 25: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Résolution exacte du TSP :

Si l'on compte 10-6 secondes pour l'étude d’une seule possibilité, il faut :

12 µµµµ-secondes pour N = 5.

une dizaine d’heures pour N = 15.

des milliards d’années pour N = 25.

Page 26: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Le problème de remplissage de boîtes(Bin Packing Problem).

Instance :

N objets : 1, 2, …, N.

Un nombre illimité de boîtes de même capacité maximale C.

Chaque objet i requiert ci ≤≤≤≤ C unités de la capacité d’une boîte.

Page 27: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Question :

Déterminer le nombre minimum de boîtes nécessaires pour charger tous les N objets.

Formulation en PL :

On utilisera deux variables de décision : xij et yj.

Page 28: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Formulation en PL :

xij = 1, si l'objet i est rangé dans la boîte j, 0 sinon.

yj = 1, si la boîte j est utilisée, 0 sinon.

On doit minimiser la fonction z = ∑∑∑∑jyj (nombre de boîtes utilisées).

Page 29: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

Formulation en PL :

Contrainte de capacité : ∑∑∑∑jcixij ≤≤≤≤ Cyjpour 1 ≤≤≤≤ j ≤≤≤≤N.

Contrainte logique (chaque objet est mis exactement dans une seule boîte) : ∑∑∑∑jxij = 1 pour 1 ≤≤≤≤ i ≤≤≤≤N.

Contraintes de variables binaires : xij ∈∈∈∈ 0, 1 et yj ∈∈∈∈ 0, 1, 1 ≤≤≤≤ i,j ≤≤≤≤N.

Page 30: I- Introduction to Combinatorial Optimization Problems

Quelques problèmes classiques

PL pour le Bin Packing Problem :

Minimiser z = ∑∑∑∑jyjs.c.t :

∑∑∑∑jcixij ≤≤≤≤ Cyjpour 1 ≤≤≤≤ j ≤≤≤≤N

∑∑∑∑jxij = 1 pour 1 ≤≤≤≤ i ≤≤≤≤N

xij ∈∈∈∈ 0, 1, 1 ≤≤≤≤ i, j ≤≤≤≤N.

yj ∈∈∈∈ 0, 1, 1 ≤≤≤≤ j ≤≤≤≤N.

Page 31: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Il y a trois approches pour résoudre un POC :

Méthodes exactes.

Méthodes d’approximation avec garantie.

Métaheuristiques.

Page 32: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Méthodes exactes :

Recherche exhaustive.

Méthode Branch-and-Bound.

Backtracking.

Programmation linéaire.

Programmation en nombre entiers.

Programmation dynamique.

Page 33: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Recherche exhaustive :

Méthode exacte complète (la plus simple).

Consiste à énumérer toutes les solutions réalisables possibles, jusqu'à trouver une solution optimale du problème considéré.

Page 34: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Recherche exhaustive :

Utilisable pour traiter des POC de petites tailles.

Inefficace dans le cas où la taille de l'espace des solutions réalisables est exponentielle (ce qui est le cas pour tous les POC).

Page 35: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Branch-and-Bound :

La procédure par séparation et évaluation progressive est une méthode exacte incomplète.

Elle recherche une solution optimale en effectuant une énumération implicite d'une manière intelligente.

Page 36: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Branch-and-Bound :

En effet, en utilisant certaines propriétés du problème en question, cette technique arrive àéliminer des solutions partielles qui ne mènent pas à une solution optimale.

Page 37: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Branch-and-Bound :

De cette façon, on arrive souvent àobtenir une solution optimale en un temps raisonnable.

Pour ne pas effectuer une recherche totalement explicite, B&B utilise une fonction qui permet de calculer une borne

Page 38: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Branch-and-Bound :

(inférieure ou supérieure) sur certaines solutions pour, soit les exclure, soit les maintenir comme des solutions potentielles.

B&B utilise un arbre pour effectuer sa recherche de la solution optimale.

Page 39: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Backtracking :

La procédure de retour sur trace est un raffinement de la méthode de recherche exhaustive.

Elle explore l'arbre des solutions réalisables. Si elle trouve une mauvaise solution, elle effectue un retour en arrière.

Page 40: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Programmation Linéaire :

La programmation linéaire suppose que les solutions à trouver doivent être représentées en variables réelles.

Bon nombre de problèmes d'optimisation se modélisent en programmes linéaires.

Page 41: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Programmation Linéaire :

Un PL comprend :

Une fonction de coût (fonction objective) à minimiser (ou maximiser). Cette fonction doit être linéaire en ses variables.

Un certain nombre de variables de décision.

Page 42: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Programmation Linéaire :

Un certain nombre de contraintes qui doivent être des équations et des inéquations linéaires.

Page 43: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Résolution d’un PL :

Une fois le problème modélisécomme un PL, on peut le résoudre en utilisant l’une des méthodes de la PL.

La plus connue de ces méthodes, est certainement l'algorithme de simplexe.

Page 44: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

La programmation dynamique :

Pour un POC, un algorithme de programmation dynamiquese déduit généralement en améliorant un algorithme de type Diviser pour régner déjàdéveloppé pour ce problème.

Page 45: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

La programmation dynamique :

Résoudre le POC P par un algorithme A de type D&R.

Pour une instance I de taille n de P, montrer que le nombre de sous-instances générées par A à partir de I est borné (par un polynôme).

Page 46: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

La programmation dynamique :

L'exécution de A sur I résout donc souvent les mêmes sous-instances.

Ces solutions intermédiaires sont stockées dans un tableau pour être réutilisées.

Page 47: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

La programmation dynamique :

Trouver un ordre d'évaluation des sous-instances pour que les solutions intermédiaires soient disponibles à temps.

Page 48: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes gloutons :

Un algorithme glouton vise àobtenir une solution optimale de façon incrémentale, sans jamais revenir sur ses décisions précédentes et en prenant àchaque étape, la solution qui semble la meilleure localement.

Page 49: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Remarques sur les algorithmes gloutons :

Tous les POC n'admettent pas une solution gloutonne.

Un algorithme glouton ne donne pas toujours une solution optimale.

Page 50: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes gloutons :

Pour être sûr qu'un algorithme glouton fournit une solution optimale pour un problème précis, il faut montrer que ce problème vérifie les deux propriétés suivantes :

Page 51: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes gloutons :

Propriété du choix glouton : il existe toujours une solution optimale débutant par un choix glouton, c'est-à-dire qu'un choix optimal local peut mener à une solution optimale globale.

Page 52: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes gloutons :

Propriété de sous-structure optimale : trouver une solution optimale contenant le premier choix glouton se réduit à trouver une solution optimale pour un sous-problème de même nature (identique).

Page 53: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes gloutons :

Pour montrer qu'un algorithme ne renvoie pas toujours une solution optimale, il suffit de trouver un contre-exemple.

Page 54: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les algorithmes d’approximation grantie :

Une méthode d'approximation avec garantie fournit une solution approchée d'un POC avec une garantie de performance en un temps polynomial.

Page 55: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les deux types d’approximation :

Approximation absolue : la valeur de la solution solA fournie par l'algorithme approché A vérifie : |f(solA) - f(solopt)| ≤≤≤≤ K où K est une constante positive et où soloptdésigne une solution optimale.

Page 56: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Les deux types d’approximation :

Approximation relative : la valeur de la solution solA fournie par l'algorithme approché A vérifie : f(solA)/f(solopt) ≤≤≤≤ ρρρρ (ρρρρ > 1 pour un POC de minimisation) et f(solA)/f(solopt) ≥≥≥≥ ρρρρ (ρρρρ < 1 dans le cas d'un POC de maximisation).

Page 57: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Heuristiques :

Heuristique : méthode qui construisent des solutions approchées sans aucune garantiede performance.

Les heuristiques ne produisent pas des solutions optimales.

Page 58: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Exemple d’heuristique : Heuristique du plus proche voisinpour le PVC : On choisit un sommet arbitraire. On part au sommet voisin le plus proche, puis de celui-là àson plus proche voisin non visité, etc...;

Page 59: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Quelques heuristiques pour le PVC :

Jusqu’à ce que tous les sommets aient été parcourus, où l’on revient au départ.

Algorithme en O(n2),

On démontre que les solutions qu’il fournit peuvent être arbitrairement mauvaises.

Page 60: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Quelques heuristiques pour le PVC :

En effet, PPV commence par faire de très bons choix en choisissant des arêtes de poids faible, mais, vers la fin, la chaîne doit aller visiter des sommets "oubliés", et des distances importantes sont alors rajoutées à la chaîne.

Page 61: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Métaheuristiques : Certaines heuristiques suivent un cadre général.

On parle de métaheuristiques. Les heuristiques dépendent du problème étudié, alors que les métaheurstiques sont des heuristiques standards.

Page 62: I- Introduction to Combinatorial Optimization Problems

Approches de résolution des POC

Métaheuristiques :

Recherche locale.

Recherche taboue.

Recuit simulé.

Algorithme génétique.

Algorithme de colonies de fourmis.