Bonjour à toutes et à tous,
Je voudrais coder un programme d'optimisation de chargement de camion, l'objectif étant de minimiser le mètre plancher linéaire.
En un mot pour ceux et celles à qui ça ne parle pas, c'est simplement la longueur occupée par le chargement dans un camion.
Il faut donc tout bien ranger en partant du fond et en avançant le moins possible.
J'ai lu de nombreux articles à ce sujet (thèses, pseudo codes, articles) : il est question ici du problème bien connu de bin-packing :
https://fr.wikipedia.org/wiki/Probl%...de_bin_packing
Pour éviter de réinventer la roue, j'ai cherché des codes existants sur lesquels me baser et j'ai trouvé celui en pièce jointe, "container.c", écrit il y a plus de 20 ans.
Voici le lien vers la page des codes de son créateur, David Pisinger :
http://hjemmesider.diku.dk/~pisinger/codes.html
(Merci beaucoup à lui de m'avoir permis de discuter de son programme sur les forums).
Je l'ai téléchargé et testé, ça fonctionne correctement. J'ai utilisé la pièce jointe "loading.c" (en ajoutant simplement la fonction main) sur le site https://www.onlinegdb.com/online_c_compiler
C'est maintenant que ça se complique... Je voudrais ajouter 3 contraintes :
- Une boîte ne peut pas être placée sur une boîte plus petite
- Les boîtes ne peuvent pas être positionnées sur le côté
- Certaines boîtes ne peuvent pas être empilées
Je suis persuadé que ce n'est pas grand chose mais je suis débutant complet en C alors je perd le fil en essayant de suivre les variables et fonctions... Donc toute aide serait la bienvenue !
J'espère que quelqu'un pourra m'aiguiller.
Merci par avance et bonne journée.
Partager