Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1426 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Modelisation du probleme du sac a dos avec les AG

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modelisation du probleme du sac a dos avec les AG

n°1497635
maniako
Posté le 01-01-2007 à 10:40:59  profilanswer
 

Bonjour et merci pour cet excelent forum.
 
J'essaie de resoudre le probleme du sac a dos à l'aide d'un algorithme genetique.
 
J'ai eu quelques problemes à le modeliser et je vous demande d bien vouloir m'aider.
 
En fait j'ai modeliser le chromosome comme suite : une structure contenant le poids et la valeur.
 
Je n'arrive pas à trouver la fonction de fitness qui me permet de retrouver la meilleur population.
 
Je suis preneur de toute proposition.
 
Merci d'avance.

mood
Publicité
Posté le 01-01-2007 à 10:40:59  profilanswer
 

n°1497701
pfuitt
Posté le 01-01-2007 à 18:46:52  profilanswer
 

ben la fonction fitness reprends la definition de LA solution à savoir maximiser le poids en minimisant les ressources. donc à mon avis, il faut plutot voir la solution comme uen somme d'objet...donc sur un chromosome tu as les objets contenus dans ton sacs a dos... pour plus d'info, tu as fait une recherches sous google ou wiki ?

n°1497702
Giz
Posté le 01-01-2007 à 18:49:04  profilanswer
 

Ce problème se résoud très bien à l'optimal avec la programmation linéaire en nombres entiers ;). Des méthodes de coupes relativement efficaces génèrent des coupes profondes pour résoudre ce problème ; d'où l'existence de familles de coupes "Knapsack cuts" qui furent ajoutées dans les algorithmes de recherche. Le temps de résolution est pseudo polynomial. Donc si ton seul but est d'obtenir le meilleur résultat, abandonne les AG ;).
Pour la fonction de fitness, il suffit d'évaluer le coût (nombre de sac à dos utilisés) à partir de l'individu obtenu non :??: Sinon il existe aussi pas mal de résolution heuristique pour ce problème (comme tous les problèmes NP-Complet d'ailleurs  :sarcastic: )

n°1497793
rufo
Pas me confondre avec Lycos!
Posté le 02-01-2007 à 10:19:29  profilanswer
 

Le pb du sac à dos, ça se résoud avec l'algo LPT, non? Tri des objets dans l'ordre décroissant de leur poid.
Sinon, j'avais fait un topic sur l'optimisation de CD-R et j'avais développé un composant en Delphi :  
http://forum.hardware.fr/hfr/Progr [...] 4853_1.htm
http://forum.hardware.fr/hfr/Progr [...] 6299_1.htm
http://forum.hardware.fr/hfr/Progr [...] 8444_1.htm
 
http://chris-jav.servhome.org/data/opt_cd/opt_cd.zip
http://chris-jav.servhome.org/data [...] cd_cmp.zip


Message édité par rufo le 02-01-2007 à 10:22:42
n°1499806
boulgakov
Posté le 06-01-2007 à 19:41:55  profilanswer
 

Giz a écrit :

Ce problème se résoud très bien à l'optimal avec la programmation linéaire en nombres entiers ;). Des méthodes de coupes relativement efficaces génèrent des coupes profondes pour résoudre ce problème ; d'où l'existence de familles de coupes "Knapsack cuts" qui furent ajoutées dans les algorithmes de recherche. Le temps de résolution est pseudo polynomial. Donc si ton seul but est d'obtenir le meilleur résultat, abandonne les AG ;).


 
Coder un algo de Branch&Cut pour la programmation linéaire qui fonctionne à peu près correctement n'est pas donné à tout le monde. Rien que de coder le simplexe utilisé au milieu, je ne préfère pas y penser à cause de tous les problèmes de mauvais conditionnement, de stabilité numérique, etc... qui peuvent apparaître.
 
As-tu un lien vers une preuve que le temps de résolution serait pseudo-polynomial en utilisant un tel algo ? La solution pseudo-polynomiale que je connais utilise la programmation dynamique : http://en.wikipedia.org/wiki/Knaps [...] g_solution
 
Pour un algo génétique, je dirais que la solution est un tableau de bit b1...bn où bi = 1 si l'objet est dans le sac, 0 sinon. La fonction de fitness faut 0 si somme des pi*bi > P ou pi est le poids d'un objet et P la taille du sac, somme des vi*bi où vi est la valeur d'un objet sinon. Pour faire les crossovers et les mutations, euh... chsais pas mais ça doit pas être trop compliqué. "Ajouter un objet", "enlever un objet et en ajouter un autre", tout ça tout ça...  
 
Avis lapidaire et très subjectif : c'est pourri, les AG.

Message cité 1 fois
Message édité par boulgakov le 06-01-2007 à 19:48:36
n°1499974
rufo
Pas me confondre avec Lycos!
Posté le 07-01-2007 à 14:46:01  profilanswer
 

ben les AG sont très facilement programmables en qq lignes de codes et permettent de résoudre pleins de pbs... Le tout c'est de trouver la bonne modélisation et le critère de convergence pour qu'à chaque nouvelle population engendrée, celle-ci s'améliore afin de fournir la solution attendue.

n°1500035
Giz
Posté le 07-01-2007 à 17:45:42  profilanswer
 

boulgakov a écrit :

Coder un algo de Branch&Cut pour la programmation linéaire qui fonctionne à peu près correctement n'est pas donné à tout le monde. Rien que de coder le simplexe utilisé au milieu, je ne préfère pas y penser à cause de tous les problèmes de mauvais conditionnement, de stabilité numérique, etc... qui peuvent apparaître.
 
As-tu un lien vers une preuve que le temps de résolution serait pseudo-polynomial en utilisant un tel algo ? La solution pseudo-polynomiale que je connais utilise la programmation dynamique : http://en.wikipedia.org/wiki/Knaps [...] g_solution
 
Pour un algo génétique, je dirais que la solution est un tableau de bit b1...bn où bi = 1 si l'objet est dans le sac, 0 sinon. La fonction de fitness faut 0 si somme des pi*bi > P ou pi est le poids d'un objet et P la taille du sac, somme des vi*bi où vi est la valeur d'un objet sinon. Pour faire les crossovers et les mutations, euh... chsais pas mais ça doit pas être trop compliqué. "Ajouter un objet", "enlever un objet et en ajouter un autre", tout ça tout ça...  
 
Avis lapidaire et très subjectif : c'est pourri, les AG.


 
Je parle pas de réinventer l'eau chaude  :sarcastic: , il existe déjà des solveurs de PLNE gratos qui inclus des familles de coupes (notamment knapsack cuts) : glpk, symphony, cbc, et d'autres

n°1500961
boulgakov
Posté le 09-01-2007 à 21:19:36  profilanswer
 

Giz a écrit :

Je parle pas de réinventer l'eau chaude  :sarcastic: , il existe déjà des solveurs de PLNE gratos qui inclus des familles de coupes (notamment knapsack cuts) : glpk, symphony, cbc, et d'autres


 
N'empêche que je doute toujours que la "pseudo-polynomialité" se prouve, contrairement à la résolution par programmation dynamique. M'enfin, on est HS, on se doute bien que l'initiateur du topic n'essaye pas vraiment de coder le meilleur solveur de sac-à-dos possible...

n°1585549
philippe06
Posté le 12-07-2007 à 09:29:00  profilanswer
 

Bein j'avais fait mon mémoire de maitrise dessus (les algos génétiques sur un autre problème), la librairie C++ open beagle est livrée avec de nombreux exemples dont celui du sac à dos.

 

Pour mémoire pour la fonction de fitness était juste la valeur du sac à dos qu'il fallait maximiser (qui vallait 0 si le sac était trop plein). On peut aussi faire une fonction de fitness hierarchique qui à valeur égale dira que plus il reste de place, mieux c'est.

 

PS: je ne suis même pas sur qu'on ait prouvé qu'il y avait convergence (vers une solution optimale) d'une metaheuristique, même en temps infini, sur ce problème.


Message édité par philippe06 le 12-07-2007 à 09:31:33

---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
n°1662865
Eugene16
Posté le 24-12-2007 à 21:07:20  profilanswer
 

44

mood
Publicité
Posté le 24-12-2007 à 21:07:20  profilanswer
 

n°1662866
Eugene16
Posté le 24-12-2007 à 21:09:10  profilanswer
 

Salut je suis debutant en programmation genetique  
j'ai besoin de votre aide.
Si vous pouvez m'envoyez un algo genetique pour le pvc ou le pb de sac a dos


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Modelisation du probleme du sac a dos avec les AG

 

Sujets relatifs
Flux RSS problèmeProblème avec les accents...
[résolu et amélioré !!]Problème avec math.h[résolu]problème avec un ptit programme bootable.
Problème de clé étrangèreprobleme web service
variable dans du javascript, problème de " et de ' ...Problème d'include en php 5 (marche en php 4)
[résolu] Problème de mise à jour d'un champDetection Flash : Probléme sous IE
Plus de sujets relatifs à : Modelisation du probleme du sac a dos avec les AG


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR