Algorythme découpage

Résolu/Fermé
sfritz - 7 oct. 2008 à 14:06
sfritz Messages postés 41 Date d'inscription jeudi 9 octobre 2008 Statut Membre Dernière intervention 1 janvier 2014 - 31 oct. 2008 à 09:19
Bonjour,
j'utilise actuellement VBA excel et j'aimerai faciliter la découpe de barre dans mon entreprise.

Je m'explique:
nous avons actuellement des barres standard de 2500mm de longueurs qui seront découpé par mon entreprise selon la demande du client.
Comme le client commande plusieurs barres d'une traite, j'aimerai utiliser le moins de barres standard possible.

Exemple:
le client commande 10 barres longueurs 1000mm et 5 barres de 300mm.

Sans algorythme j'aurais 5 barres standard d'ou j'obtiens 2 x 1000mm + 500mm de perte.
Soit les 10 barres de 1000mm et encore 5 barres de 500mm qui sont perdues.
Ensuite avec une nouvelle barre standard j'obtiens 5 x 300mm et 1000mm de pertes.
Au final j'ai utilisé 6 barres et ai 3500mm de pertes.

Avec algorythme j'aimrerai 5 barres standard d'ou j'obtiens 2x1000mm + 300mm +200mm de pertes.
Ce qui me permettrait d'avoir utilisé 5 barres et avoir 1000mm de pertes.

Biensur cet exemple est simplifié, mais je n'ai jamais fait d'algorythme, et je pense pouvoir comprendre comment faire dans un cas plus compliqué si je comprend ce cas.

Pouvez vous m'aider à résoudre mon problème?
Que ce soit en apportant la démarche logique ou le code (en entier ou une partie).

Merci

Sfritz
A voir également:

3 réponses

Merci teebo.
Oui, la découpe doit se faire si possible sans perte, sinon avec le moins de perte possible, de façon à economiser sur les barres standard utilisé.
J'ai une idée sur comment développer ça sous vba excel, je vais me pencher plus en détail dessus demain.

Merci
0
sfritz Messages postés 41 Date d'inscription jeudi 9 octobre 2008 Statut Membre Dernière intervention 1 janvier 2014 6
31 oct. 2008 à 09:19
Bonjour, j'ai finalement trouvé la solution à mon problème.
Ce procédé est également appelé Bin Packing 1D.
Le Bin Packing consiste à mettre le plus d'objets (de taille différente) dans le minimum de boites de même taille.
Ce procédé peut être utilisé en 1D, 2D ou 3D.
Voir:
https://fr.wikipedia.org/wiki/Probl%C3%A8me_de_bin_packing

Bien sur il existe d'autres variantes (objets de même taille et boites de tailles différentes...).

Dans mon cas c'est le procédé 1D, soit le plus simple des 3.

J'ai trouvé une superbe source en anglais au format VB à cette adresse:
https://www.developerfusion.com/article/5540/bin-packing/

Il y a le code source ainsi que des explications sur différentes façons de résoudre le problème en 1D.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
7 oct. 2008 à 14:38
Salut

1-Algorithme (pas de y)

2-Je suppose que la découpe se fait sans perte (c'est à dire que tu fais 5 barres de 500mm dans une barre de 2500mm)

Le principe général:
Tu prends le plus grand nombre possible de ta barre commandée la plus longue sur ta barre, puis tu prends le plus grand nombre de barre de la deuxième taille commandée possible sur le reste, puis même chose avec la troisième,... jusqu'à avoir essayer toutes les longueurs, ou ne plus avoir de commande, ou avoir fini ta barre.
Quand ta barre est finie ou que toutes les longueurs ont été essayées, tu recommences ta boucle
Quand tu n'as plus de commandes, tu as fini

Ceci dit en VBA Excel, je ne sais pas faire ça...mais je pense que c'est faisable
-1