Mini projet : recherche opérationnel

Sous thème : Problème de sac a dos à multi contraintes

Réalisé par : HACHIMI Fayza 13/12/2010

Encadré par : PR.ASIMI Ahmed

........................................................................................... 7 Introduction ............................. CONCLUSION .........................Mini projet : problème de sac a dos à multi contraintes I......................................................................................................... 3 III............... Les classes de complexités .. 2....... 5 Problème de sac a dos multidimensionnel(MKP)..................... 15 VI............ 6 Définition :............... Résolution du problème de sac a dos multidimensionnel : .. 4 Algorithme glouton..................... 10 Simulation du problème de sac a dos ................................................................................................................................................ 9 Algorithme de résolution : Optimisation par colonies de fourmis ........... 3.... I....... 7 IV........ V............ 4 Définition et Formulation.......................................................................... Exemples de méthodes de résolution : .. 4............................................................................................ 6........................................................................................................................ Sommaire Problème de sac a dos ............................ II.. 17 2 ....... 6 Utilisation pratique ............................... 1............................................................................................................................................................................................................................ 9 5.............

etc. industrielle. il est de plus en plus utilise dans le domaine décisionnel. Ces problèmes peuvent être décrit et représente sous forme d’un langage formel.Mini projet : problème de sac a dos à multi contraintes Introduction Dans la vie quotidienne on est souvent confronté a toutes sortes de problèmes d’ordre économiques. la généralisation de ce problème est un problème de sac a dos a multi contraintes ou multidimensionnel (multidimensionnal Knapsack Problem). 3 . Le problème du sac-`a-dos est parfois considère comme un sous Problème ou une relaxation de problèmes plus complexes. par exemple plusieurs problèmes peuvent être formulé sous forme d’un problème d’optimisation combinatoire c'est-à-dire maximiser ou minimiser la fonction objectif sous certain contraintes. Le domaine d’application de ce problème (ainsi que ses variantes) inclut des cas du domaine de transport. militaire. Le problème de sac a dos est tout programme linéaire entiers ne comprenant qu’une seule contrainte fonctionnelle (Knapsack Problem ) . de la fiabilité´e ainsi que de la production. de la logistique.

Définition et Formulation Le problème du sac à dos. Le problème kp peut être formule comme le programme linéaire suivant : Figure1: KP.l’objectif de ce problème est de maximiser le profit génère par le sous ensemble d’éléments choisis sans dépasser la capacité c donne. avec tout ou partie d'un ensemble donné d'objets ayant chacun un poids et une valeur. n . ne pouvant supporter plus d'un certain poids. …. On utilisant xj comme variable de décision a valeur binaire xj= {1 : si le j-eme éléments est sélectionne et 0 : sinon}. 4 . et d’un poids w pour j=1.Mini projet : problème de sac a dos à multi contraintes I. sans dépasser le poids maximum. noté également KP (Knapsack Problem) est un problème d'optimisation combinatoire. Les objets mis dans le sac à dos doivent maximiser la valeur totale. chaque élément dispose d’un profit v. Ce problème consiste donc à choisir un sous ensemble d’élément parmi n éléments donnes à mettre dans un sac de capacité c. Il modélise une situation analogue au remplissage d'un sac à dos. Problème de sac a dos 1.

solution := solution + w[i] sinon x[i] := 0 fin si fin pour La généralisation de ce problème donne un problème plus complexe : c’est le problème de sac a dos multidimensionnel ou multi contraintes qui sera développé dans la suit. Parmi les méthodes heuristiques les plus utilisées pour la recherche d’une solution pour le KP. Ainsi l’algorithme s’arrête. Les algorithmes gloutons varient mais ils reposent généralement sur le même principe. 5 . Algorithme glouton Le problème KP est un problème d’optimisation combinatoire NP_complet il est donc intéressant d’avoir des algorithmes polynomiaux faciles à mettre en œuvre . la solution en cours est utilisée pour construire une meilleure solution. Le principe de la méthode gloutonne. âpres un certain nombre de phases. trier les objets i par ordre décroissant d'efficacité solution:= 0 pour i de 1 à n si w[i] + solution <= W alors x[i] := 1//objet i sélectionner. on trouve la méthode gloutonne. avec une solution réalisable pour le KP.Mini projet : problème de sac a dos à multi contraintes 2. consiste à construire pas a pas une solution réalisable du problème sans revenir sur ses décisions. permettant de calculer une solution approchée. A chaque étape de l’algorithme.

avec i= {1.. 6 . Définition : Apparue dans le contexte de la budgétisation de l’investissement (par lori et Savage 1955). n} S/c Σrij xj ≤bi.. Problème de sac a dos multidimensionnel(MKP) 3.-à-d. ou rij est la quantité de ressources i consommée par l’objet j . L’objectif du MKP est de trouver un sous ensemble d’objets qui maximise un profit total tout en satisfaisant certains contraintes de capacité ..plus formellement Un MKP est modélise comme suit : Maximiser Σpj xj avec j= {1. et bi est la quantité totale disponible de la ressource i pj est le profit associe a l’objet j Xj variable de décision associée a l’objet j c. m} xj£{0. Le problème de sac à dos multidimensionnel (MKP) est un problème NP_difficile qui possède de nombreuses applications pratiques comme l’allocation des processeurs. xj=1 si j est sélectionné et 0 sinon.Mini projet : problème de sac a dos à multi contraintes II....1}. affectation de processeurs dans les systèmes repartis.

Les classes de complexités NP_complet et NP_difficile : Dans ce paragraphe.   Classe P : P est la classe de tous les problèmes de décision qui peuvent être résolus par un algorithme polynomial. La résolution permet de déterminer quelles personnes doivent être retenues pour réaliser le projet. P-complet : Un problème décisionnel appartient à ce classement s’il fait partie de la classe P et si tout problème P dans P peut s’y réduire en temps poly-logarithmique en utilisant un ordinateur avec un nombre polynomial de processeurs. III. En pratique. si X est un problème dans P alors il appartient à P et pour tout problème Y dans P. on estime la productivité ou la compétence de chaque personne (son « poids » dans le problème). Utilisation pratique En pratique. classe NP_complet et NP_difficile. et on lui attribue d'autres variables : son coût et sa disponibilité. classe NP. Un autre exemple est celui de la gestion de personnel. Chacun de ces paramètres représente une dimension du sac à dos.Mini projet : problème de sac a dos à multi contraintes 4. On définit finalement les contraintes liées à son projet eu égard les paramètres précédents : le budget disponible et le temps imparti pour réaliser le travail. Dans une version simplifiée. 7 . je présenterai les quatre classes de complexité: Classe P. il existe les constantes c et k telles que Y puisse être réduit en X en O ((log(n)) c) avec un ordinateur qui possède O (nk) processeurs en parallèle. la version multidimensionnelle peut servir à modéliser et résoudre le problème du remplissage d'un container dont le volume et la charge maximale sont limitées.

Autrement. il est possible de vérifier que cette solution est correcte en un temps polynomial par rapport à la taille de l’entrée. i. Exemple : – Systèmes d’équations linéaires – Problèmes des nombres premiers  NP_complet : Un problème est NP_complet si tout problème NP s’y réduit en temps polynomial. les problèmes NP les plus difficiles sont NP-Complets Propriété : Si un seul problème NP_complet peut être résolu en un temps polynomial. On à NP_complet _ NP_difficile. par contre un problème NP_difficile n’est pas nécessairement dans NP. Un problème NP_complet est un problème dans NP au moins aussi difficile que tout autre problème de NP. 8 .Mini projet : problème de sac a dos à multi contraintes  NP (Non-déterministic Polynomial time) est la classe de tous les problèmes de décision dont la solution peut être vérifiée en temps polynomial. si l’on nous donne une solution certifiée.  NP_difficile : Un problème est NP_difficile si tout problème s’y réduit en temps polynomial. alors tous les problèmes de NP peuvent être résolus en un temps polynomial.e.

Exemples de méthodes de résolution : Magazine et Oguz [11] ont présente un algorithme qui combine une heuristique duale avec l’approche du multiplicateur lagrangien généralise en utilisant les multiplicateurs génères comme borne supérieure. 9 . Ces metaheuristiques ont permis d’avoir des résultats très compétitifs avec des instances larges. Résolution du problème de sac a dos multidimensionnel : La résolution de ce problème consiste à choisir un sous ensemble qui maximise la fonction objectif en respectant certaines contraintes. Cet algorithme utilise une recherche taboue qui emploie la méthode d’´elimination inverse pour la gestion de la liste taboue. Hanafi et Freville [10] ont proposés un algorithme étroitement li´e au travail de Glover et Kochenberger [9]. Vasquez et Hao [14] ont présentes une approche hybride qui combine la recherche taboue avec la programmation linéaire. Plusieurs algorithmes bases sur la recherche taboue ont été proposés.Mini projet : problème de sac a dos à multi contraintes IV. Ils trouvent des résultats meilleurs que ceux trouvés par Glover et Kochenberger sur un sous-ensemble des mêmes jeux de tests. Cette dernière méthode à été mise en œuvre pour la première fois sur le MKP par Damneyers et Voß[4]. Glover et Kochenberger [9] ont présente un algorithme bas´e sur la recherche taboue qui utilise une mémoire flexible intégrant des informations de fréquence. généralement basées sur une approche par séparation et évaluation sont limitées à des instances de petites tailles. Les méthodes exactes. ensuite les variables sont mises `à 0 relativement à des règles heuristiques. Récemment plusieurs metaheuristiques ont été développées pour le MKP. ce qui justifie le recours aux méthodes heuristiques. Plusieurs travaux ont été développés pour résoudre le MKP. 5. Les heuristiques duales commencent avec une solution dont les variables sont initialisées à 1.

[6]. cette communication indirecte fournit une information sur la qualité des chemins empruntes afin d’attirer les fourmis. comme trouver le plus court chemin entre deux points dans un environnement accidente. Le comportement des fourmis artificielles est inspire des fourmis réelles : elles déposent des traces de phéromone sur les composants du graphe et elles choisissent leurs chemins relativement aux traces de phéromone précédemment déposées .Mini projet : problème de sac a dos à multi contraintes L’algorithme proposé améliore les meilleurs résultats connus jusqu’à présent sur des instances jugées difficiles. Algorithme de résolution : Optimisation par colonies de fourmis Les fourmis sont capables de résoudre collectivement des problèmes complexes. selon une probabilité dépendant de la quantité de phéromone précédemment déposée. Plusieurs algorithmes génétiques ont été développes pour le MKP. en plus des operateurs classiques d’un algorithme génétique. elles choisissent ensuite leur chemin de façon aléatoire. 10 . 6. appelée phéromone : au Cours de leur progression. Ces algorithmes ont été initialement proposes dans [5]. comme une approche multiagents pour résoudre des problèmes d’optimisation combinatoire. dans les itérations futures. Intuitivement. elles communiquent entre elles de façon locale et indirecte. L’idée est de représenter le problème à résoudre sous la forme de la recherche d’un meilleur chemin dans un graphe. ces traces sont évaporées au cours du temps. est `a l’origine des algorithmes a base de fourmis artificielles. Pour cela. les fourmis déposent une trace de phéromone . nous citons l’algorithme de Chu et Beasley [3] qui trouve parmi les meilleurs résultats sur des instances larges de MKP. qui permet aux fourmis de résoudre collectivement des problèmes complexes. puis d’utiliser des fourmis artificielles pour rechercher de bons chemins dans ce graphe. vers les zones correspondantes de l’espace de recherche. Cet algorithme incorpore. grâce a une hormone volatile. un operateur heuristique qui utilise des connaissances spécifiques au problème. Ce mécanisme.

les fourmis déposent de la phéromone sur les couples de sommets sélectionnés consécutivement. Cette quantité représente la “désirabilité” de choisir l’objet oi juste âpres avoir choisi l’objet oj lors de la construction d’une solution. .Mini projet : problème de sac a dos à multi contraintes Pour la résolution de MKP avec la metaheuristiques ACO. oi).. La quantité de phéromone sur une arête (oi. oj) = t (oj. Dans Edge-AK. . i. 11 . sur les arêtes E du graphe. dans ce cas le graphe est non oriente. ou lorsqu’un nombre maximal de cycles a été atteint. les fourmis déposent la phéromone sur les paires de sommets sélectionnés dans une même solution. La quantité de phéromone sur un objet oi ε V est notée t (oi). un point clé est de décider sur quels composants des solutions construites les traces de phéromone vont être déposées et comment exploiter ces traces lors de la construction de nouvelles solutions. Lorsque toutes les fourmis ont construit une solution. Cette quantité représente la désirabilité de choisir un objet oie lors de la construction d’une solution qui contient déjà l’objet oj.e. les fourmis choisissent aléatoirement un objet initial. les fourmis déposent la phéromone sur les sommets V du graphe. ok} (on considérera qu’un objet oi est sélectionne si la variable de décision correspondante xoi a été mise a 1). L’algorithme s’arrête lorsqu’une fourmi a trouve une solution optimale (si la valeur optimale est connue). les traces de phéromone sont mises à jour. L’algorithme générique Ant-Knapsack est décrit dans la Figure 1 chaque cycle de cet algorithme. chaque fourmi construit une solution. puis ajoutent itérativement des objets qui sont choisis à partir d’un ensemble Candidats qui contient tous les objets qui peuvent être sélectionnés. oj). . Il est à noter que dans ce cas le graphe est oriente. Etant donnée une telle solution S. oj) est notée t (oi. Dans Path-AK.. oj).e. et donc t (oi. Une solution d’un MKP est un ensemble d’objets sélectionnes S = {o1. Cette quantité représente la “désirabilité” de choisir l’objet oi lors de la construction d’une solution. trois différentes manières de déposer la phéromone peuvent être considérées : Dans Vertex-AK. i. Pour construire une solution. . Il est à noter que. sur les arcs du graphe. La quantité de phéromone sur un arc (oi. oj) ε E est notée t (oi.

Mini projet : problème de sac a dos à multi contraintes Algorithme Ant-Knapsack: Initialiser les traces de phéromone a t_max Répéter Pour chaque fourmi k dans 1. SnbAnts} Si une trace de phéromone est inferieure à t_min alors la mettre a t_min Si une trace de phéromone est supérieure à t_max alors la mettre a t_max Jusqu’a nombre maximal de cycles atteint ou solution optimale trouvée 12 . construire une solution Sk comme suit: Choisir aléatoirement un premier objet o1 ε{ 1. .... faire enlever de Candidats chaque objet qui viole des contraintes de ressources Fin tant que Fin pour Mettre a jour les traces de phéromone en fonction de {S1.n/ oi peut être sélectionné sans violer des contraintes de ressources} Tant que Candidats ≠ {} ..n} Sk = {o1} Candidats {oi ε1. .nbAnts. .

Le facteur heuristique ήSk (oi) et de même pour toutes les composantes pheromonales. Cette probabilité est définie proportionnellement a un facteur phéromonal tSk (oi) et un facteur heuristique ήSk (oi). de sorte que plus ce ratio est faible plus l’objet est intéressant. Facteur heuristique Soit La quantité restante de la ressource i lorsque la fourmi a construit la solution Sk .m et relativement a la solution construite Sk.. l’objet oi à ajouter à la solution en cours de construction Sk est choisi parmi l’ensemble de sommets Candidats relativement à une probabilité pSk (oi). Soit le ratio suivant qui présente la dureté de l’objet j par rapport a toutes les contraintes i ε 1. ces deux facteurs étant pondérés par deux paramètres α et β qui déterminent leur importance relative.Mini projet : problème de sac a dos à multi contraintes A chaque étape. On définit alors le facteur heuristique de la façon suivante : 13 . Le facteur pheromonal dépend de la stratégie pheromonale choisie.

. SnbAnts} la meilleure solution (celle ayant un profit maximal) construite durant le cycle courant et Sbest la meilleure solution construite depuis le début de l’exécution (y compris le cycle courant). oj). La quantité de phéromone déposée par la fourmi k est inversement proportionnelle `a la différence de profit entre Sk et Sbest.. le facteur pheromonal tSk (oj) est initialise a t (oi. soit S k ε {S1.e.et dans un deuxième temps. les traces de phéromone sont mises a jour. pour simuler l’évaporation. ensuite. Tel que dans une première étape toutes les traces de phéromone sont diminuées. .Apres que toutes les fourmis aient fini la construction de leurs solutions. . Cette quantité de phéromone est déposée sur les composants phénoménaux 14 . Plus précisément.Mini projet : problème de sac a dos à multi contraintes Facteur pheromonal : Le facteur pheromonal tSk (oi) traduit l’expérience passée de la colonie et est utilise dans la probabilité de transition des fourmis pour les guider vers des zones de l’espace de recherche prometteuses. a chaque fois qu’un nouvel objet oi est ajoute a la solution courante Sk. . oj) pour chaque objet candidat o j . le facteur pheromonal tSk (oj) de chaque objet candidat oj est incrémente de t (oi. le facteur pheromonal dépend de la quantité déposée sur les arêtes connectant l’objet candidat oi avec les différents objets présents dans la solution partie Notons que ce facteur pheromonal peut être calculer de façon incrémentale : lorsque le premier objet o1 a été sélectionné. en multipliant chaque composant pheromonal par un ratio de persistance (1−δ) tel que 0 ≤δ≤1. elle est égale a 1/ (1 + profit(Sbest) −profit(Sk)). i. Dans Edge-AK (puisque elle la meilleur). la meilleure fourmi du cycle dépose de la phéromone.

float n_m.int s[10]). }. float solution(float ratio[10]. float m. class KP{ private: float v[10].Mini projet : problème de sac a dos à multi contraintes V.float k[10]. //fichier header #ifndef _KP_H #define _KP_H #include<iostream> using namespace std.//poid max de sac a dos float n. #endif 15 .float n_n). Simulation du problème de sac a dos Pour la simulation de ce problème j’utilise un algorithme implémenté en langage c++ en se serviras de Microsoft Visual c++ comme éditeur pour un sac à dos à une seule contrainte. void affiche(). float p[10].//nbre d'objets public: kp(float u[10].

float n_n){ n=n_n.i++) {v[i]=u[i].float n_m. 16 . for(i=0.x[10]. //variable int i. //method KP::kp(float u[10].j.Mini projet : problème de sac a dos à multi contraintes //fichier cpp et programme principale. float sk[10]. } } Illustration d’une partie de l’algorithme. m=n_m.h" #include<iostream> using namespace std. #include "KP.i<n.float k[10]. p[i]=k[i]. float c.

CONCLUSION Dans ce mini projet j’avais essai d’étudie le problème de sac a dos.Mini projet : problème de sac a dos à multi contraintes VI. militaire …. industriel. 17 . D’abord j’avais présenté une définition et la formulation de problème pour arriver enfin aux méthodes de résolution de problème qui connaitre un développement au niveau des derniers années ou il existe plusieurs méthodes qui sont soient exactes ou approchées. qui est devenu de plus en plus utilisable dans les domaines économique.

org 18 .wikipedia. University Lyon 1 www. CNRS FRE 2672.Mini projet : problème de sac a dos à multi contraintes References :   Algorithme fourmi avec différentes stratégies pheromonales pour le saca-dos multidimensionnel LIRIS.

Sign up to vote on this title
UsefulNot useful