Optimisation d'un taux de chute

fred06200

XLDnaute Nouveau
Bonjour,
J’ai un problème qui au départ me paraissais simple et qui au final se trouve être corsé, je viens donc vous demander de l’aide.

Je ne suis pas sur d'être dans la bonne section, cependant je ne sais pas trop ou poser mon problème...donc si besoin, je le déplacerais:eek:

Voici mon problème :

Je voudrais, en n’utilisant qu’Excel et VBA, minimiser un taux de chute de toiles qui sont débitées dans un « rouleau ».

Le débit se fait de la manière suivante :
1 - on paramètre la longueur du débit sur la débiteuse
2 - on place jusqu'à 5 couteaux sur la largeur du rouleau (on ne peut donc débiter que 3 toiles maxi),
3 - on déroule le tissu (qui se découpe dans le sens de la longueur par le biais des couteaux placés précédemment)
4 - lorsque la longueur définie est atteinte on découpe TOUTE la toile dans le sens de la largeur.

Il faut aussi savoir que :
- la largeur d’un rouleau est variable (selon le type de toile), il faut que cette largeur soit paramétrable avant de lancer l’algo.
- il peut il y avoir « N » toiles de largeurs, hauteurs et quantités différentes
- les toiles ont un sens, je m’explique : si dans la commande, la hauteur d’une toile est supérieure à celle du rouleau alors, toutes les toiles doivent être débitées avec une « coupe en V » (nous appelons « coupe en V » les coupes dont la Hauteur de la toile se fait dans le sens de la longueur du rouleau, dans le cas contraire, nous appelons cela des « coupes en H »)

Comme je l’ai dit précédemment, je cherche à minimiser le taux de chute en faisant des combinaisons entre les « N » toiles. Les combinaisons peuvent contenir jusqu'à 3 toiles pour les raisons énoncées précédemment.

J’espère avoir été assez clair pour vous énoncer le problème, et que vous pourrez me donner des pistes de solutions car je sèche…
 

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

re-bonjour,
il me propose de couper B et D en une coupe

Il ni y a pas de problème
B largeur 1270
D largeur 500

largeur totale 1270 + 500 = 1770. Ca passe, juste, mais ça passe.

C'est même bien puisqu'il ni a pas de chute dans le sens de la largeur. Il ni en a qu'au bout. Bien sûr, la chute au bout est justement égale à D. Il est donc possible de faire mieux, mais comme dit dans mon précédent post, ce cas n'est pas pris en compte... pour le moment j'espère.

@ plus
 
Dernière édition:

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

J'ai trouvé ca sur une génération (pas la meilleure, donc pas enregistrée)

La coupe est impossible car comme on le voit sur le schéma précédent, il faudrait 2 coupes dans le sens de la largeur du rouleau dont une qui s'arreterais au bout de 500 mm, c'est impossible à réaliser technologiquement parlant

voici le classeur qui m'a donné ce "choix"
 

Pièces jointes

  • B et D.zip
    18.9 KB · Affichages: 56
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

J'ai trouvé ca sur une génération (pas la meilleure, donc pas enregistrée)

La coupe est impossible car comme on le voit sur le schéma précédent, il faudrait 2 coupes dans le sens de la largeur du rouleau dont une qui s'arreterais au bout de 500 mm, c'est impossible à réaliser technologiquement parlant

voici le classeur qui m'a donné ce "choix"

Rebonjour

Ahhhhhh. Ca, je ne savais pas. Je pensais que tu étais forcé de couper, toute la largeur, dans le sens de la largeur pour la pièce la plus longue, mais qu'ensuite tu pouvais aussi faire d'autres coupes dans le sens de la largeur, dans les bandeaux trop longs.

Si tu ne peux pas le faire, tu es forcé de mettre les pièces de même longueur ensemble. Ai-je bien compris ? C'est assez source de chute comme système, non. Si tu as une pièce de 300 x 2000, et aucune autre pièce restante en 1500, tu es obligé de couper un morceau de 1770 x 2000juste pour faire cette pièce !

Si c'est ça, autant traiter toutes les pièces ayant la même longueur avec le fichier précédent ne traitant que ce cas, tissu optimum par aléas 3 bandes.zip, puisqu'il faudra forcément commencer une nouvelle coupe pour la nouvelle longueur.

@ plus
 
Dernière édition:

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

oui, tu as compris, et effectivement c'est source de chute ... :(

surtout que ca peut aller plus loin:
imaginons que j'ai une commande avec 100 toiles à découper
99 toiles font 1770* 1000 et la dernière fait 1800*1000 sur un rouleau de 1770.
Alors, je suis OBLIGé de couper les 99 toiles (avec lesquelles j'aurais 0% de chute) dans les sens de la longueur, c'est à dire avoir 770*1000 de chute pour chaque toile.
 

MJ13

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour à tous

Pas sur d'avoir tout compris, mais un test d'optimisation dans les 2 fichiers joints avec un < et un <=.
 

Pièces jointes

  • Optimisation_Taux_De_Chute_MJ1.zip
    16.7 KB · Affichages: 58
  • Optimisation_Taux_De_Chute_MJ2.zip
    20.7 KB · Affichages: 59
  • Optimisation_Taux_De_Chute_MJ2.zip
    20.7 KB · Affichages: 60
  • Optimisation_Taux_De_Chute_MJ2.zip
    20.7 KB · Affichages: 66

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour à tous, bonjour fred06200, bonjour MJ13.

Ci-joint, une possibilité prenant en compte des pièces de différentes longueurs.

Le tirage au sort est fait par longueurs décroissantes : On tire d'abord toutes les pièces ayant la plus grande longueur, puis celles ayant la longueur directement inférieure, et ainsi de suite jusqu'à épuissement de la commande.
Les pièces sont regroupées par coupe en prenant en compte les trois critères suivants :
* la largeur cumulée ne doit pas dépasser 1770 mm
* Il ne doit pas y avoir plus de 3 pièces *
* toutes les pièces d'une coupe ont la même longueur.

Cf explications complémentaires sur le fichier.

Comme plusieurs calculs se retrouvent plusieurs fois dans la formule, je met aussi en pièce jointe une version avec des parties de la formule nommées pour l'occassion.

Reste à voir si cela correspond vraiment à ton besoin, à trouver une généralisation du fichier assez ergonomique, valable pas uniquement pour 47 pièces comme dans cet exemple, et à faire un fichier équivalent traitant le cas des pièces toutes positionnées "perpendiculairement" au rouleau.

@ plus

P.S : Il y a certainement des () ou des *1 en trop dans les formules. A simplifier donc, avec précautions.
* : Petite question au passage : Si la largeur cumulée des 3 pièces fait 1770 mm, je suppose que le 4ème couteau, placé à 1770 mm, sert à éliminer la bordure, de qualité différente, et non prise en compte dans les 1770 mm. Ai-je bien compris ?
 

Pièces jointes

  • tissu optimum par aléas 3 bandes classées par longueurs identiques.zip
    22 KB · Affichages: 34
  • tissu optimum par aléas 3 bandes classées par longueurs identiques noms.zip
    21 KB · Affichages: 32
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour Cisco, Fred, à tous

Bravo Cisco, belle démo de formules et de VBA (même si je suis incapable de comprendre comment ça marche car en formules je suis une bille :confused:). Cela nous change un peu des USFs :eek:.

Sinon mon système d'optimisation est issu d'un programme pour classer ses fichiers ou dossiers sur N DVD pour éviter de perdre de la place, et comme il avait l'air de correspondre un peu à la demande, surtout si on a que des mêmes hauteurs. Car si les hauteurs sont différentes, cela me paraît plus difficle à utiliser mon appli sans avoir trop des pertes. A moins de faire un classement par hauteur.

Le genre de petit programme que j'aime bien sur XLD ;).

Bon Week-end :).
 

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonsoir à tous, bonsoir Fred06200, bonsoir et merci MJ13

Bonjour Cisco, Fred, à tous

Bravo Cisco, belle démo de formules et de VBA

Malheureusement, il semble qu'il y ai un problème. Je viens de faire un test ayant une solution optimale évidente (0 % de chute, 5 A, 5 D et 5 F de 1500 de long, dont la largeur cumulée ADF fait 1770 (1200 + 300 + 270), 14 B et 14 E de 1000 de long, dont la largeur cumulée BE fait 1770 (=1270 + 500), et 4 C de 1000 de long aussi dont la largeur CC cumulée fait 1770 (= 2 x 885), soit au total 5 + 14 + 2 = 21 ccoupes) et le petit fichier proposé ne trouve pas cette solution, même avec 10000 tests. Grrrrrrrr. :mad:. Et pourtant il ni a pas qu'une solution optimale (ADF, ou AFD, peu importe l'ordre dans chaque triplet. Idem pour les doublets BE ou EB)

Cela veut dire, soit qu'il y a une erreur dans une des formules, soit que les combinaisons étant faites aléatoirement, on passe à coté de la bonne solution. Il faut dire qu'il y a un petit piège : Pour obtenir la proposition optimale, il ne faut pas mélanger les C avec les B et les E, même si ils ont tous la même longueur. Il ne faut faire que des triplets ADF, des doublets BE et des doublets CC.

Dommage.

@ plus
 

Pièces jointes

  • test 2 tissu.zip
    23.1 KB · Affichages: 38
Dernière édition:

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

bonjour à tous, bonjour Cisco, bonjour MJ13,
Excusez mon absence ce WE, je viens de prendre connaissance de vos posts, pour repondre a ta question cisco :
Petite question au passage : Si la largeur cumulée des 3 pièces fait 1770 mm, je suppose que le 4ème couteau, placé à 1770 mm, sert à éliminer la bordure, de qualité différente, et non prise en compte dans les 1770 mm. Ai-je bien compris ?

1770 c'est la distance entre les deux couteaux situés aux extrémités. Les chutes du bord de rouleau ne sont donc pas à prendre en compte

Je vais essayer ton programme et tester un peu tout ca :)
En tout cas, merci à tous les deux pour votre contribution :)
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

Il y avait une petite erreur en N14. Je modifie en conséquence mes trois derniers fichiers.

Malheureusement, cela ne change rien à la conclusion de mon précédent post. En faisant tourner le fichier "test 2 tissu" avec 100 000 tests, excel trouve une solution avec 22 coupes (et plus 23 ou 24), et seulement 4 % de chute, mais pas la solution optimale avec 21 coupes et 0 % de chute.

@ plus
 

mercant76

XLDnaute Impliqué
Re : Optimisation d'un taux de chute

bonjour,

dans ce cas de figure, la solution optimale est de 22 coupes :

2 en 1700 + 5 en 1270 + 15 en 1200.

on ne peut pas faire plus court.

c'est vrai qu'il y a 5 chutes en 500 mini, mais il n'y a pas la commande pour.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87