Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Algo] Bin-packing et contraintes

Bin packing et contraintes...

    7 avril 2015 à 22:43:00

    Bonjour à tous, après grande réflexions, je me trouve dans une impasse.
    Dans le cadre d'un petit projet personnel, je souhaite réaliser un programme d'optimisation d'espace mais ayant tout de même une contrainte (sinon cela serais trop simple :P)
    On admet une carte 2D (une matrice) constituer de case, ayant une longueur et largeur infini pour commencé puis fini par la suite (là n'est pas le problème). Sur cette carte viendra s'y mettre des rectange ou carre de différente longueur et largeur. Le but et de toute les placer sur la carte de la manière la plus optimiser possible MAIS, elle doivent toute être relier(c'est a dire qu'une de ces case adjacentes forme un chemin) à un rectangle appeler ALIM de longueur et largeur a définir ultérieurement. Et c'est là que je coince...
    J'ai vue vite fait sur internet le bin packing sans trop m'y pencher même si je pense que cela peux être la solitons, mais je n'ai pas trouver avec de tel contrainte.
    Pouvez vous m'aider à me mettre sur la bonne voie ?

    -
    Edité par Heziode 8 avril 2015 à 7:48:49

    • Partager sur Facebook
    • Partager sur Twitter
    Ensemble créons l'avenir !
      8 avril 2015 à 9:46:03

      Ça veut dire quoi "la manière la plus optimisée possible" ?

      Avant de regarder si ton problème ressemble à des trucs connus, as-tu essayé de programmer ta propre solution ? Il est probable que cela suffira, ou que ça t'aidera à y voir plus clair.

      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2015 à 19:30:08

        LeLoup22 a écrit:

        Ça veut dire quoi "la manière la plus optimisée possible" ?

        Avant de regarder si ton problème ressemble à des trucs connus, as-tu essayé de programmer ta propre solution ? Il est probable que cela suffira, ou que ça t'aidera à y voir plus clair.


        Ce que j'entend par "la manière la plus optimisée possible", c'est le plus "économique" possible, c'est à dire, que cela prennent le moins de place possible d'où l'idée du bin-packing).

        Avant de regardé si mon problème exister déjà, j'ai essayez par moi même de le dev MAIS avant de pouvoir codé il faut déjà avoir un algo :p et comme je coince sur l'élaboration de l'algo je suis coincé...

        • Partager sur Facebook
        • Partager sur Twitter
        Ensemble créons l'avenir !
          8 avril 2015 à 20:03:37

          Fais au plus simple : as-tu essayé de faire un algorithme qui teste toutes les possibilités et garde la plus économe ?

          • Partager sur Facebook
          • Partager sur Twitter
            8 avril 2015 à 21:03:54

            Nan car je ne sais pas comment faire un algo d'optimisation...
            • Partager sur Facebook
            • Partager sur Twitter
            Ensemble créons l'avenir !
              9 avril 2015 à 0:36:40

              Pourquoi penses-tu avoir besoin de « faire un algo d'optimisation » pour mettre en place la solution que LeLoup22 vient de te proposer ?

              • Partager sur Facebook
              • Partager sur Twitter
              OCaml, un langage expressif et performant qui vous ferait du bien.
                9 avril 2015 à 5:44:05

                Tout simplement que comme il peux y avoir jusqu'a 2500 rectangle, calculer toutes les possibilité prendrais énormément de temps,  du coup il faudrais coupler l'algo avec un "Alpha-Beta". Et c'est aussi car je n'ai aucune idée de comment réaliser un tel Algo.

                Je ne peux pas codé un truc que je ne connais ou comprend pas aussi :p

                • Partager sur Facebook
                • Partager sur Twitter
                Ensemble créons l'avenir !
                  9 avril 2015 à 8:19:29

                  Ok ok tu as très bien compris le problème : 2500 rectangles c'est beaucoup, tester toutes les possibilités ça va te prendre énormément de temps. Si je te conseille de quand même implémenter une solution naïve, c'est parce que ça te permettra d'y voir plus clair, et de voir si, en améliorant ta solution naïve (par exemple en identifiant que certaines branches de calcul ne donneront rien de bon) tu ne peux pas obtenir un algorithme satisfaisant "en moyenne".

                  Ne va pas croire que comprendre le bin packing va miraculeusement résoudre tous tes problèmes : c'est un problème NP-complet, l'algorithme a une complexité exponentielle. Si en plus tu te plantes en réduisant ton problème vers le bin packing, ça ne t'apportera rien du tout. Autant partir sur la solution naïve et l'étudier.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 avril 2015 à 11:44:11

                    Ok je vais essayer cela même si je ne sais absolument pas comment m'y prendre niveau structure de l'algo. Je n'ai jamais fait d'algo aussi complexe (même un naif avec recherche en arbre binaire comme un algo min-max, jamais fait). Donc cela risque de me prendre un peux de temps...

                    Mais pas grave :)

                    Je posterais l'avancé de l'algo pour aider tout le monde.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Ensemble créons l'avenir !
                      9 avril 2015 à 13:23:27

                      Tu peux schématiser ton algorithme comme ça :

                      a) Générer une solution b) Tester la solution (est-ce qu'elle respecte les contraintes ?) c) Calculer le coût de la solution

                      Et tu itères pour parcourir toutes les solutions.

                      On est d'accord, toutes les solutions ça fait beaucoup, surtout si tu génères et testes aussi des solutions invalides. Commence par tester des petits exemples artificiels. Après, on pourra se demander si on peut directement générer des solutions correctes (et donc économiser la génération de toutes les solutions incorrectes), puis comment aiguiller pour directement générer les moins chères.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      [Algo] Bin-packing et contraintes

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown