IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Sac à dos


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Par défaut Sac à dos
    Salut,

    Je recherche un algo proche de celui du problème du sac à dos.
    Avec plusieurs objets de tailles différentes (rectangulaires pour simplifier), je dois en faire des colis.
    Je ne trouve rien de bien concluant.

    Merci de votre aide ;-)

    A+, Jean

  2. #2
    Membre expérimenté
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Par défaut
    Peux-tu décrire un peux mieux le pb, stp
    JHelp

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Par défaut
    je ne sais pas si c'est ce que tu recherches mais renseignes toi sur la construction de carrés magiques "approximatifs".

  4. #4
    mio
    mio est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 65
    Par défaut
    Si je comprends ton probleme est celui qui consiste a optimiser le remplissage d'un sac a dos avec des objets caracterises par un volume d'encombrement. C'est un probleme complexe si je me rappelle bien.

    Voici quelques liens qui devraient t'aider.
    http://eleves.ensmp.fr/P00/00rouaul/...cados_swp.html
    http://www.enseignement.polytechniqu...in8/node8.html

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Par défaut
    Merci de vos réponse.

    Oui, c'est bien un algorithme de colisage. Je dois remplir des colis avec des pièces rectangulaires de différentes tailles.

    Je regarde vos liens.

    Merci et A+,

    Jean

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Par défaut
    Salut,

    En plus de ces algo, je dois y rajouter un soupçcon de 3D pour tenir compte du volume :-((((

    Cela va être dur. Si vous avez d'autres idées, je suis preneur ;-)

    A+ et merci
    Jean

  7. #7
    Membre expérimenté
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Par défaut
    Je vais peut etre te paraitre idiot, mias ton probleme est-ce :
    Soit un batiment ayant un longuer,hauteur,profondeur,
    Soit des boites, ayant égalament 3D,
    Combien de boites peut on metre ?
    ou
    Comment s'aranger pour mettre le plus de boites possible ?
    ou
    ...?

    Sans les donées d'un pb, on à du mal à le résoudre.
    JHelp

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 4
    Par défaut
    Salut JHelp,

    Excuse-moi de ne pas avoir été plus clair.
    Tu as vu juste, je cherche à remplir une grosse boîte avec le plus possible de petites boîtes.
    Je me base sur des objets 3D rectangulaires pour simplifier (!).

    Si tu as des conseils, je suis preneur ;-)

    A+ et merci
    Jean

  9. #9
    Membre expérimenté
    Avatar de JHelp
    Inscrit en
    Octobre 2002
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 185
    Par défaut
    Je vois, malheureusement, je n'ai pad le temps de réfléchir plus en avant.
    Une piste : construit un arbre de décision. Je supose que tes boites ont des tailles diferérentes. Un arbre de décision, c'est la construction d'un arbre et d'une fonction d'évalutaion. La fonction d'évaluation te donne à chaque branche une estimation plus grande du nombre de boites que tu peu mettre, et tu développes d'abord celle qui donne la meilleur évaluation. Une fois que tu arrives à une feuille, tu as une valeure du nombre de boites réelles si tu met les boites en suivant l'arbre, tu "ébranches", c'est à dire, que tu supprimes de l'arbre toutes les branches commencées qui ont une estimation inférieure à la valeure trouvée, ainsi, tu n'a qu'a développer les branches qui restes (s'il en reste). L'"ébranchage" se justifie, si ta fonction d'évaluation, donnee bien un nombre supérieur aux nombres de boites possibles. Forcement, puisque ce nombre est supérieur, toutes les feuilles, de cette branche, auront une valeur plus petite, donc si cette évaluation est trop petite, inutile de la développer.
    Pour la fonction d'évalutaion je te sugéres (il y a surement mieux), soit v le voulme de la plus petite boite parmis celles non mises, soit V le volume restant, évalution = V/v.
    J'espère avoir été clair, et que ça peut t'aider.
    JHelp

  10. #10
    Membre éclairé
    Inscrit en
    Août 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 44
    Par défaut
    Oui l'arbre est la bonne solution, et avec de bonnes heuristiques il ne sera pas trop gros.

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    La méthode à utiliser est la technique du backtraking que l'on trouve en recherche oprationelle.

    Cherche knapsack dans un moteur US

    Voici une implémentation :
    http://www.nist.gov/dads/HTML/knapsackProblem.html
    http://www.cs.sunysb.edu/~algorith/files/knapsack.shtml

    A +

    Frédéric BROUARD, expert SQL / bases de données
    Livre 'SQL' la référence - Campus Press éditeur
    * http://sqlpro.developpez.com/bookSQL.html *
    site web 'SQLpro' http://sqlpro.developpez.com/
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Cryptographie : Algorithme du sac à dos
    Par ouissaou dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 21/04/2008, 12h03
  2. instance particulière du sac à dos
    Par CedricMocquillon dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 12/02/2008, 10h43
  3. Compréhension d'un algorithme sur le problème du sac à dos
    Par Treuze dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/12/2006, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo