begin process at 2012 05 29 21:56:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Probleme du sac a dos Avec répétition ou "Knapsack with repetition"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

vendredi 20 juin 2008 à 09:15:44 | Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

Fabien08

Bonjour et merci de vous intéressez à ce sujet. Je dois réaliser une application d'optimisation me permettant d'obtenir la meilleure combinaison de choix par rapport à deux critères.

Après différentes recherche, l'algorithme du "Knapsack with repetition" s'impose comme "la" solution.

Malheureusement impossible de trouver cet algorithme sous forme de pseudo code ou avec une description suffisamment compréhensive pour que je puisse l'implémenter

D'où ma question ; quelqu'un pourrait il me donner une description succincte et suffisamment clair ?
un simple oui serait déjà un bon début.

La seule référence trouvé à ce jour correspond à un article de Timothy J Rofle, An alternative Dynamic Programming Solution for 0/1 Knapsack.

Il aborde vaguement le sujet, ou du moins la présentation qu'il en fait reste très vague pour mon modeste anglais.

Merci bien.
vendredi 20 juin 2008 à 10:53:21 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

jfrancois

Bonjour,

Je viens de trouver ça via Google : [ Lien ]
C'est pas du pseudo-code mais ça peut servir.

Jean-François

vendredi 20 juin 2008 à 11:50:22 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

Fabien08

Merci beaucoup pour cette réponse mais malheureusement cette algorithme correspond au "Knapsack without repetition", en bref il ne permet pas d'utiliser plusieurs fois le même objet lors de l'optimisation.

Cette optimisation semble relativement simple dans l'immédiat mais elle se complique lorsque l'on ajoute des critères de préférences.

Ce qu'il me faut c'est un algorithme de maximisation, tel le simplex avec la possibilité de n'avoir que des variables entières comme critère de choix.

Voici un cours provenant de l'école polytechnique de Lausanne sur l'optimisation et le simplex.
Cf : [ Lien ]

Ou l'algorithme qui tu m'as envoyé avec possibilité d'utiliser plusieurs fois le même objet soit "Knapsack with repetition" appellé aussi "Integer Knapsack", en tout cas merci pour ton lien, ce fut rapide et surtout très gentil de partager ton temps libre.
vendredi 20 juin 2008 à 13:30:07 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

mulevia

je souhaiterais avoir des liens parlant des différentes variantes de l'algo sac à dos sachant q'un objet peut être choisi une fois, plusieurs fois ou aucune fois
vendredi 20 juin 2008 à 13:42:08 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

Fabien08

Mon problème est résolu, j'ai travaillé mon anglais et miracle la solution était dans l'article : Sinon pour le lien :

penguin.ewu.edu/~trolfe/Knapsack01/Knapsack01.doc

Wikipédia fournit aussi quelques infos. Malheureusement, on se borne uniquement à une seule contrainte et ça limite un peu les choix.

Le problème vient non linéarité du problème.

Accessoirement :
une seule fois : Knapsack without repetition ou 0/1 Knapsack
plusieurs fois :
Knapsack with repetition ou Integer Knapsack
Aucune fois : Ne simplement pas inclure ta valeur 
vendredi 20 juin 2008 à 14:45:35 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

mulevia

g essayé de cliquer sur ton lien il ne marche pas malheureusement peux tu le verifier stp
vendredi 20 juin 2008 à 14:51:41 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

Fabien08

Clic droit, enregistrer sous
vendredi 20 juin 2008 à 14:51:46 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

mulevia

c bon g trouvé le document en tapant sur google merci
samedi 21 juin 2008 à 08:38:18 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

mulevia

o fait j'ai bien cerné l'algo de knapsack sans repetition mais celui avec repetition, j n'arive pa trop bien à le comprendre.je vous renvoie l'algo

K(0) = 0

for w = 1 to W:

K(w) = max{K(w-wi) + vi : wi<=w}

return K(W)

je n'arrive pas tro bien à comprendre ce qu'on compare après le max

mardi 24 juin 2008 à 08:15:27 | Re : Probleme du sac a dos Avec répétition ou "Knapsack with repetition"

Fabien08

Alors ce que tu m'as envoyé ne correspond pas à l'algo entier, c'est juste une partie de la présentation. Si tu lis les lignes suivantes tu verras qu'il se sert de cette partie pour formuler le résultat qu'il présente sous forme de code en Java.

Sinon :
le w sans indice correspond à l'indice de la boucle for.

le wi correspond au vecteur contenant la largeur de l'objet à placer dans le sac

le vi correspond au cout

Finalement tu dois avoir une première boucle qui te permet d'avoir l'indice i, elle n'est pas présenté dans le pseudo code, et une condition après la seconde boucle : if wi <= w then ... K(w) = ... end_if

Mais lorsque tu lis l'article tu comprends que ce n'est pas la solution présenté, elle se trouve dans le code en java.

Si tu t'interresses aux Knapsacks, j'aimerais ,si tu en as avoir, des infos sur le Bound Knapsack, c'est la version avec répétition mais bornée, elle limite le nombre de valeur a mettre dans le sac.

1 2

Cette discussion est classée dans : probleme, repetition, with, sac, knapsack


Répondre à ce message

Sujets en rapport avec ce message

Probleme du sac a dos en C [ par maryzouzou ] MarySalut tout le mondevoila , je dois programmer le probleme du sac a dos en Cmais javoue que je bloque un peu !on nous donne :<br Probleme Connexion bdd mysql [ par biglulu77420 ] J'ai un souci pour me connecter à ma bdd. J'utilise Devcpp, et je code en C.j'ai des msg d'erreur du type :C:\mysql\lib\opt\mysqlclient.lib(./release/ executer un fichier vbs [ par sephiro ] Voici mon probleme:mon programme a besoin de créé un fichier de type vbs, il est créé dynamiquement suivant plusieurs parametres, si je l'execute à la Probleme Mysql_store_result [ par biglulu77420 ] Je tavail sous devcpp.J'arrive a me connecter à une base de données.Le probleme est : quand je fait un select, et qu'il ne me retourne pas de resultat probleme de declaration [ par boulach ] comment dois je declarer une variable pour des nombres de l'ordre de 10^-12 c-a-d 0.0000000000001c'est pour un projet probleme d affichage [ par boulach ] je voudrais savoir coment allumer des pixels a partir d'un tableau de coordonnées x et y?queelle librairie?mercije suis novice alors essayer d'etre pa constructeur iostream ? [ par mezaya ] Bonjour tout le monde,voila j'ai un probleme, j'ai construit une classe :class Image{private : ... std::iostream info;...};la variable info probleme boutton [ par youpiyoyo ] j'aimerai virer un button et le remettre plus tard....j'ai faisSendMessage(GethWndTool()/*HWND de la toolbar*/,(UINT) TB_HIDEBUTTON,(WPARAM) ItemToHid Probleme pour un convertisseur hexadecimal [ par jekburn ] Bonsoir,#includeint main(){char *ch;int i,n,reste; printf("Rentrer un nombre:"); scanf("%d",&n); while(n>0) { reste=n%16; probleme au link avec VC++ [ par marc hash ] salut a tous,j'ai un probleme a la compilation d'un de mes programmes sur Visual C++ 6.mon programme est lié a une base de donnée réalisée a l'aide de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales