Fichier de calcul pour l'optimisation de la découpe d'une barre [Fermé]

Signaler
Messages postés
4
Date d'inscription
vendredi 26 février 2016
Statut
Membre
Dernière intervention
1 mars 2016
-
Messages postés
47
Date d'inscription
mardi 16 juin 2015
Statut
Membre
Dernière intervention
13 octobre 2016
-
Bonjour,

J'aimerais faire appel à vos talent d'informaticien programmeur car si je compte sur ma propre connaissance, je suis mal barré... :-)

Alors ma demande concerne la réalisation d'un fichier Excel me permettant de calculer la meilleure disposition de découpes pour optimiser les chutes dans une barre qui peut être de valeurs différentes suivantes les cas.

De manière concrète, j'ai plusieurs "longueurs à découper", ces valeurs peuvent varier selon les cas. Je pars sur un exemple avec les valeurs suivantes :

- 714 (en quantité 1)
- 688 mm (en quantité 14)
- 637 mm (en quantité 12)
- 237 mm (en quantité 8)
- 234 (en quantité 6)
- 512 (en quantité 2)


Les barres où je viendrais faire les découpes décrient ci-dessus feront dans mon cas : 3000 mm (mais elles peuvent varier selon les cas)

Il faut que je trouve la meilleur disposition pour mettre les "longueurs à découper" dans une barre de 3000 mm en sachant que les "longueurs à découper" que j'aurais intégrer dans ma 1ère barre devront être déduite des quantités totales à découper.

Exemple :

714 + 688 + 688 + 637 = 2727 mm ==> chute de : 3000 -2727 = 273 mm

il reste à découper :

- 714 (0 quantité restante)
- 688 mm (14-2 = 12 quantités restantes)
- 637 (12-1 = 11 quantités restantes)
- 237 mm (8 quantités restantes)
- 234 (6 quantités restantes)
- 512 (2 quantités restantes)

Répéter ces opérations, jusqu'à ne plus avoir de "longueurs à découper" en optimisant toutes les barres.

J'aimerais également mettre une sécurité de -10 ou -15 mm (donnée variable) sur la longueur de la barre de 3000 mm.

Je vous remercie grandement de votre aide.

A très bientôt pour vos réponses, je l'espère :-)
A voir également:

10 réponses

Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324
Bonjour à tous les deux
Je reviens à la charge, dans mon premier essai j'avais mal interprété le sujet (je pensais qu'il fallait trouver le meilleur rendement dans une seule barre)
je l'ai donc modifié, et si je ne me suis pas trompé dans mon raisonnement je trouve comme Eric, un total de 8 barres et une chute minimum de 1686mm avec un résultat obtenu en 16 secondes.
https://www.cjoint.com/c/FBCp4tsJ5bw
A tester
Cdlt
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
24137
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2021
6 837
C'est mieux ;-)
Messages postés
4
Date d'inscription
vendredi 26 février 2016
Statut
Membre
Dernière intervention
1 mars 2016

Bonjour Frenchie83,

Merci pour ton aide mais ton lien m'amène à une adresse où le fichier n'est plus présent
C'est normal ?

Merci
Bonne soirée
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324
Bonjour
Une première ébauche
https://www.cjoint.com/c/FBBoBxOyypw
En G2: saisissez la valeur max recherchée
en G3 saisissez la valeur mini recherchée (dans votre cas :3000 - 15 =2985
dans le tableau "F19:Gxx" saisissez les longueurs et les quantités
Cliquez sur "Calculer".
Principe: le programme recherche toutes les combinaisons dont la somme est comprise entre la valeur min et valeur max (toutes les solutions en doubles sont éliminés au fur et à mesure quelles sont trouvées).
Avec vos valeurs, il y a 3 solutions qui répondent aux critères sélectionnés. il faut 1h30mn, tout de même, pour tout contrôler avec un bon PC. Le temps est fonction des quantités à traiter.
Peut-être qu'il y a moyen plus rapide en utilisant le solveur d'excel, mais je ne connais pas suffisament.
Cdlt
Messages postés
24137
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 juillet 2021
6 837
Bonjour,

Une solution avec vba+Solveur.
Avec le solveur tu n'es pas sûr d'obtenir LA solution, mais une solution optimisée assez correcte avec un temps raisonnable.
Avec ton exemple on obtient assez rapidement (~1 min) une solution avec 9 barres, et si tu patientes 3-5 min assez souvent une avec 8 barres (avec un total des chutes à 1686 pas sûr qu'il y ait mieux).
Les solutions explorées ne sont pas les même à chaque lancement, tu peux retenter ta chance si tu penses qu'il pourrait y avoir mieux.

Saisir les données en A:B, D2, D4 et clic sur 'Go' pour préparer la feuille.
Lancer le solveur ruban 'Données / Analyse'.
Note les paramètres si jamais tu veux les tester, j'ai eu un peu de mal à trouver ceux qui vont bien. Le mieux est même que tu gardes une copie originale dans un coin au cas ou.
Tu peux l'arrêter avec Ctrl+Pause, il t'affiche la meilleure solution trouvée et te propose d'arrêter ou de continuer (je l'avais lancé dans la macro mais ça ne permettait pas la relance. Tu peux réactiver cette ligne de code si tu veux)
Quand la solution te va clic sur 'Mettre en forme'.
https://www.cjoint.com/c/FBBwWFGrIAK
eric

Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
528
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
843
Bonjour à tous,

skk201 avait réalisé une macro plutôt rapide : https://forums.commentcamarche.net/forum/affich-30155937-sommer-les-valeurs-d-une-liste-pour-atteindre-une-valeur-cible
Il y avait 357 barres à découper.

Perso, j'utilise plutôt decoulisimple.xls de Jean Duprat. C'est rapide (3 secondes pour l'exemple fourni et une quinzaine environ pour les 357 morceaux) et ça donne, dans ce cas, l'optimum 8 en nombre de barres (du fait qu'en continu il faut 7 barres et demi).

Il est possible d'optimiser la qualité des chutes (en terme de ré-utilisabilité) en jouant sur la chute acceptable.

@Frenchie83 :
J'ai essayé tes 2 propositions. J'ai laissé tourner la première plus de 10h pour la stopper et me rendre compte qu'elle ne répondait pas à la question.
J'ai fait de même pour la deuxième, mais moins longtemps cette fois (1 mn) et la macro s'amuse toujours avec des 0 et des 1 dans la colonne E:E.
J'ai simplement appuyé sur le bouton CALCULER à chaque fois.

cordialement
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324
Bonjour JvDo
J'ai laissé tourner la première plus de 10h pour la stopper et me rendre compte qu'elle ne répondait pas à la question. , oui j'avais mal interprété la question. je cherchais toutes les combinaisons possibles.

la macro s'amuse toujours avec des 0 et des 1 dans la colonne E:E. c'est normal, c'est ma façon de procéder, sûrement que ce n'est pas très performant mais sur mon PC j'ai le résultat en 16s.

Le lien de skk201 n'est plus accessible.

Quant au résultat, quel que soit la technique employée, on trouve 8 barres de 3000mm minimum.

Comme vous avez pu le constater, je ne suis pas programmeur, ni informaticien, mais j'essaie quand même de trouver une solution, ne serait-ce que pour le plaisir de faire travailler les méninges.
Bien cordialement à tous
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
843
Bonsoir,

Pour le développement de skk201 : https://www.cjoint.com/c/FBDaiGqYmxI

Pour tes développements, je ne comprends pas pourquoi ça fonctionne aussi lentement chez moi. J'ai essayé sur un 4 cœurs qui tournaient à 80% pour excel et sur un bi-Xéon qui certes ne voulait pas affecter les 12 cœurs pour excel mais qui, jusqu'à présent, tournait beaucoup plus vite que mon vieux quadri cœurs.
C'est une énigme....

Cordialement
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324 >
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020

Bonjour
Merci pour le fichier de skk201, effectivement, question rapidité, il n'y a pas photo, par contre, il trouve 9 barres avec une chute de 4986mm contre 8 barres et seulement 1868mm de chute.
Quant à la vitesse d'exécution de mon fichier, c'est une énigme, car moi aussi, j'ai un 4 cœurs e je n'ai pas ce problème.
Bonne journée
Messages postés
4
Date d'inscription
vendredi 26 février 2016
Statut
Membre
Dernière intervention
1 mars 2016

Bonjour à tous,

Je vous remercie de l'intérêt que vous portez à mon problème. Je n'arrive pas à ouvrir correctement vos fichiers sous mon PC de maison qui est sous Excel 2003.
J'ouvrirai vos fichiers demain sur mon pc de boulot qui est sous Excel 2010.

Pouvez-vous laisser vos raccourcis actives pour télécharger vos fichiers.

Pour info, Frenchie83 dans ton seconde message, ton fichier n'est plus présent.

Merci d'avance, c'est super sympa de votre part.

Je vous tiens au courant.

Bonne soirée
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021
324
Bonjour
"ton seconde message, ton fichier n'est plus présent." Bizarre, pourtant je le vois toujours, le revoici:
https://www.cjoint.com/c/FBDcOuysdOw
Bonne journée
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
843 >
Messages postés
2215
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
17 juillet 2021

Bonsoir,

c'est tout simplement parce que le point de ponctuation s'est intégré dans le lien hypertexte.
il suffit de le supprimer dans l'url et le fichier est accessible

cdlt
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
843
Curieux ça...

Il me donne 8 barres et 1 566 de chutes pour des barres de 2985.
J'ai eu 9 barres en résultat lorsque la macro ne triait pas en descendant le tableau des pièces à couper. Mais j'ai dé-commenté la ligne en cause et ça ne pose plus de problème.


cordialement
Messages postés
4
Date d'inscription
vendredi 26 février 2016
Statut
Membre
Dernière intervention
1 mars 2016

Bonjour

je reviens vers vous pour vous tenir informer de mes diverses essais.
Alors le fichier de Frenchie83 est parfait. Le seul bémol est qu'il est très long (j'ai stoppé au bout de 15 minutes) lorsque je lui amène la problématique suivante :

longueur 688 ==> quantité 39
longueur 633 ==> quantité 15
longueur 329 ==> quantité 6
longueur 714 ==> quantité 4
longueur 246 ==> quantité 2

après ce vient peut être de mon PC. c'est un 8 coeurs.

enfin merci à tous quand même car c'est du super boulot.

Jérémie

--
Messages postés
1978
Date d'inscription
mercredi 27 juillet 2005
Statut
Membre
Dernière intervention
28 septembre 2020
843
bonsoir

tu ne dis rien de la proposition de Gyrus qui te donne une solution en 3 ou 4 secondes ni de cellle de skk201 qui donne la même solution en 0,20s.

cordialement
Messages postés
5
Date d'inscription
vendredi 3 juin 2016
Statut
Membre
Dernière intervention
9 juin 2016

Bonjour,
Serais t'il possible de faire appel a vos talent de programmeur pour augmenter le nom de barre en taille référence sur ce model ?
https://www.cjoint.com/c/FBCqvDuxNx5
j'aurais besoin du même programme avec 4 longueur de barre prise en compte, pour avoir des chute moindre sur différente taille de barre.
Messages postés
47
Date d'inscription
mardi 16 juin 2015
Statut
Membre
Dernière intervention
13 octobre 2016

Oui pour moi aussi,
J'aimerais optimiser en fonction de 2 longueurs, soit 6096 et 12192 en même temps !