Distribution équitable d'objets

ben01n Messages postés 65 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 4 août 2010 - 4 août 2010 à 09:54
ben01n Messages postés 65 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 4 août 2010 - 4 août 2010 à 21:43
Bonjour à tous,

Je fais appel à vous car dans le cadre du développement d'une appli, je bloque sur un bout d'algo.
J'aurais besoin que mon soft puisse me calculer la répartition équitable dans un nombre défini de camions.
Par exemple :
j'ai 3 types de colis.
Le type de colis A pèse 50Kg.
Le type de colis B pèse 100Kg.
Le type de colis C pèse 150Kg.

Je dois transporter 5 colis A, 25 colis B et 10 colis C.
J'ai 3 camions à disposition.

L'objectif est de répartir au mieux le poids sur les 3 camions.

J'ai beau retourner le truc dans tout les sens, j'arrive pas à trouver le "truc".
Je suis sûr que c'est tout bête mais bon...

Quelqu'un a-t-il une idée ?

2 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
4 août 2010 à 21:00
Bonjour,

Pourquoi ne pas tout simplement calculer le poids total à transporter et le diviser par le nombre de camion afin d'obtenir le poids de répartition idéal. Ensuite on rempli les deux premier camions avec nimporte quel colis tant qu'on ne dépasse pas le poids idéal et enfin on met le reste dans le dernier camion.

5 * 50 + 25 * 100 + 10 * 150 = 4250
4250 \ 3 = 1416

Camion 1 : 5*A + 11*B = 1350
Camion 2 : 14*B = 1400
Camion 3 : 10*C = 1500

C'est déjà pas trop mal. Il y a possibilité de faire plus précis, mais la c'est algorithme génétique .
0
ben01n Messages postés 65 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 4 août 2010
4 août 2010 à 21:43
J'avais vaguement pensé à cette idée mais lorsqu'on ajoute des types de colis et des camions (sachant que ces 2 données peuvent être changées à tout moment par l'utilisateur) ça devient beaucoup moins précis.
En tout cas, ça peut être un bon point de départ.

Merci à toi
0
Rejoignez-nous