P. 1
sac a dos

sac a dos

|Views: 1,132|Likes:
Publié parYassine Sadqi

More info:

Published by: Yassine Sadqi on Apr 07, 2011
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/15/2013

pdf

text

original

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

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

de la logistique. Ces problèmes peuvent être décrit et représente sous forme d’un langage formel. Le problème du sac-`a-dos est parfois considère comme un sous Problème ou une relaxation de problèmes plus complexes. Le problème de sac a dos est tout programme linéaire entiers ne comprenant qu’une seule contrainte fonctionnelle (Knapsack Problem ) . 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. etc. militaire. de la fiabilité´e ainsi que de la production. il est de plus en plus utilise dans le domaine décisionnel.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. industrielle. 3 . la généralisation de ce problème est un problème de sac a dos a multi contraintes ou multidimensionnel (multidimensionnal Knapsack Problem). Le domaine d’application de ce problème (ainsi que ses variantes) inclut des cas du domaine de transport.

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

Les algorithmes gloutons varient mais ils reposent généralement sur le même principe. permettant de calculer une solution approchée. 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.Mini projet : problème de sac a dos à multi contraintes 2. 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. avec une solution réalisable pour le KP. 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 . Ainsi l’algorithme s’arrête. la solution en cours est utilisée pour construire une meilleure solution. on trouve la méthode gloutonne. A chaque étape de l’algorithme. Le principe de la méthode gloutonne. consiste à construire pas a pas une solution réalisable du problème sans revenir sur ses décisions. 5 . âpres un certain nombre de phases. Parmi les méthodes heuristiques les plus utilisées pour la recherche d’une solution pour le KP.

Problème de sac a dos multidimensionnel(MKP) 3.1}.Mini projet : problème de sac a dos à multi contraintes II.-à-d. avec i= {1.... m} xj£{0. Définition : Apparue dans le contexte de la budgétisation de l’investissement (par lori et Savage 1955).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. xj=1 si j est sélectionné et 0 sinon.. affectation de processeurs dans les systèmes repartis. 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. L’objectif du MKP est de trouver un sous ensemble d’objets qui maximise un profit total tout en satisfaisant certains contraintes de capacité . n} S/c Σrij xj ≤bi. 6 . ou rij est la quantité de ressources i consommée par l’objet j .

Un autre exemple est celui de la gestion de personnel. III. classe NP. Les classes de complexités NP_complet et NP_difficile : Dans ce paragraphe. on estime la productivité ou la compétence de chaque personne (son « poids » dans le problème). 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. et on lui attribue d'autres variables : son coût et sa disponibilité. je présenterai les quatre classes de complexité: Classe P. Chacun de ces paramètres représente une dimension du sac à dos. 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. si X est un problème dans P alors il appartient à P et pour tout problème Y dans P. Utilisation pratique En pratique. 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. Dans une version simplifiée. classe NP_complet et NP_difficile.Mini projet : problème de sac a dos à multi contraintes 4.   Classe P : P est la classe de tous les problèmes de décision qui peuvent être résolus par un algorithme polynomial. 7 . 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. En pratique. La résolution permet de déterminer quelles personnes doivent être retenues pour réaliser le projet.

par contre un problème NP_difficile n’est pas nécessairement dans 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. Autrement. Un problème NP_complet est un problème dans NP au moins aussi difficile que tout autre problème de NP. 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. il est possible de vérifier que cette solution est correcte en un temps polynomial par rapport à la taille de l’entrée.e. si l’on nous donne une solution certifiée. alors tous les problèmes de NP peuvent être résolus en un temps polynomial. On à NP_complet _ NP_difficile.  NP_difficile : Un problème est NP_difficile si tout problème 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. i.

Vasquez et Hao [14] ont présentes une approche hybride qui combine la recherche taboue avec la programmation linéaire. Cet algorithme utilise une recherche taboue qui emploie la méthode d’´elimination inverse pour la gestion de la liste taboue. Cette dernière méthode à été mise en œuvre pour la première fois sur le MKP par Damneyers et Voß[4]. ce qui justifie le recours aux méthodes heuristiques. Ces metaheuristiques ont permis d’avoir des résultats très compétitifs avec des instances larges. Ils trouvent des résultats meilleurs que ceux trouvés par Glover et Kochenberger sur un sous-ensemble des mêmes jeux de tests. Plusieurs algorithmes bases sur la recherche taboue ont été proposés.Mini projet : problème de sac a dos à multi contraintes IV. 5. ensuite les variables sont mises `à 0 relativement à des règles heuristiques. 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. généralement basées sur une approche par séparation et évaluation sont limitées à des instances de petites tailles. Les heuristiques duales commencent avec une solution dont les variables sont initialisées à 1. Les méthodes exactes. Récemment plusieurs metaheuristiques ont été développées pour le MKP. 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. Plusieurs travaux ont été développés pour résoudre le MKP. Hanafi et Freville [10] ont proposés un algorithme étroitement li´e au travail de Glover et Kochenberger [9]. 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. 9 .

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

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

Cette probabilité est définie proportionnellement a un facteur phéromonal tSk (oi) et un facteur heuristique ήSk (oi). On définit alors le facteur heuristique de la façon suivante : 13 . 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. Le facteur heuristique ήSk (oi) et de même pour toutes les composantes pheromonales. Le facteur pheromonal dépend de la stratégie pheromonale choisie. Facteur heuristique Soit La quantité restante de la ressource i lorsque la fourmi a construit la solution Sk . Soit le ratio suivant qui présente la dureté de l’objet j par rapport a toutes les contraintes i ε 1. de sorte que plus ce ratio est faible plus l’objet est intéressant..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).

et dans un deuxième temps. a chaque fois qu’un nouvel objet oi est ajoute a la solution courante Sk. Cette quantité de phéromone est déposée sur les composants phénoménaux 14 . elle est égale a 1/ (1 + profit(Sbest) −profit(Sk)). .. Tel que dans une première étape toutes les traces de phéromone sont diminuées. le facteur pheromonal tSk (oj) de chaque objet candidat oj est incrémente de t (oi. Dans Edge-AK (puisque elle la meilleur). les traces de phéromone sont mises a jour. Plus précisément. . la meilleure fourmi du cycle dépose de la phéromone. pour simuler l’évaporation. oj) pour chaque objet candidat o j . i. 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).Apres que toutes les fourmis aient fini la construction de leurs solutions. ensuite. en multipliant chaque composant pheromonal par un ratio de persistance (1−δ) tel que 0 ≤δ≤1. 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é.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. . soit S k ε {S1. . 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.e.

}. float solution(float ratio[10].Mini projet : problème de sac a dos à multi contraintes V. float p[10].float n_m.//poid max de sac a dos float n. float m. //fichier header #ifndef _KP_H #define _KP_H #include<iostream> using namespace std. void affiche(). 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. class KP{ private: float v[10].int s[10]). #endif 15 .float k[10].//nbre d'objets public: kp(float u[10].float n_n).

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

militaire …. 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.Mini projet : problème de sac a dos à multi contraintes VI. 17 . CONCLUSION Dans ce mini projet j’avais essai d’étudie le problème de sac a dos. industriel. qui est devenu de plus en plus utilisable dans les domaines économique.

org 18 .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.wikipedia. University Lyon 1 www. CNRS FRE 2672.

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->