I- Introduction to Combinatorial Optimization Problems

Post on 24-Oct-2021

1 views 0 download

Transcript of I- Introduction to Combinatorial Optimization Problems

2ème partie :

Optimisation Combinatoire

MS2I / MRSemestre M1

Année 2010/2011

Chapitre 1

Introduction aux problèmes d’optimisation combinatoire

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

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(ΩΩΩΩ).

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

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∈Ω∈Ω∈Ω∈Ω).

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.

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.

Domaines de l’OC

Économie.

Industrie : optimisation des chaînes de production.

Logistique.

Transport.

Militaire.

Administration, ….etc

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.

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.

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

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.

Quelques problèmes classiques

PL pour le knapsack :

Maximiser z = ∑∑∑∑ixiui.

s.c.t :

∑∑∑∑ixipi ≤≤≤≤ C.

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

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.

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.

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

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

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.

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.

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.

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.

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

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.

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.

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.

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.

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

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.

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.

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.

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.

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

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

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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 :

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.

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

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.

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.

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.

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

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.

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

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.

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.

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.

Approches de résolution des POC

Métaheuristiques :

Recherche locale.

Recherche taboue.

Recuit simulé.

Algorithme génétique.

Algorithme de colonies de fourmis.