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…
 

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

Bonjour,
J'ai été absent du forum ce WE mais je vois que mon sujet a continué d'avancer, ca me fait plaisir ce soutient :)

Fred06200, juste pour info, en pratique, tu as à peu près combien de pièces au max à découper par commande ou par rouleau ?
-> ce nombre n'est pas défini, ca dépend des commandes

tes rouleaux ont-ils une largeur minimum ? une largeur maximum ? une longueur minimum ? une longueur maximum ?
Si oui, quelles sont-elles ?
Pour faire "simple", on ne va considérer que la largeur du rouleau ^^ et comme je l'ai déjà dit précédent la largeur dépend du type de toile

quand par hasard, il reste de quoi faire une toile d'une largeur "courante", tu stockes ou tu jetes ?

c'est prévu de faire du stock "d'avance" au lieu de jeter ?

c'est une question simple, car, si tu jetes, donc c'est un déchet.

si tu le coupes, c'est toujours un déchet, mais quand tu l'utilises plus tard, c'est une production sans déchet, donc çà fait baisser le déchet global.

On ne considère que la commande, le taux de chute global est "pesé" en fin de mois. on ne s'en préoccupe pas ici, tout ce qu'on veux, c'est optimiser le taux de chute a l'échelle d'une commande.

Faire une recherche sur Google avec "opticoupe gratuit"
je connaissais ce logiciel, cependant, dans sa version "gratuite" il est impossible d'importer des valeurs. Même en renseignant les données a la main, le paramétrage du logiciel n'est pas aisé.
Je préfèrerais, de loin (quitte à avoir un rendement moins bon) utiliser un logiciel auquel je comprendrais tous les rouages et ainsi paramétrer manuellement celui ci.

@Cisco : Merci beaucoup pour ton tableau, je vais me pencher dessus dans la journée (ou demain) pour voir ce que je peux faire avec :) à première vu il a l'air intéressant ;)
 

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

bonjour Cisco,
Je viens de regarder en détail ton tableau,
j'ai bien cerné son fonctionnement...mais il reste un zone d'ombre :
je ne comprend pas comment fonctionne la formule qui permet de générer la liste des toiles dans le tableau de coupe sans doublon
est ce que tu pourrais m'expliquer la logique utilisée?

pour info la formule est la suivante :

=INDEX(liste;PETITE.VALEUR((ESTNA(EQUIV(liste;$M14:BF14;0)))*LIGNE(liste);ENT(ALEA()*NBVAL(liste)-COLONNES($G3:AZ3))+COLONNES($G3:AZ3))))

c'est surtout la fin : ENT(ALEA()*NBVAL(liste)-COLONNES($G3:AZ3))+COLONNES($G3:AZ3))))

que je ne comprends pas...
 

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

En commençant à t'expliquer la fin de la formule, je viens de me rendre compte d'un défaut dans mon précédent fichier : F10 ne sortait que dans la dernière colonne du tableau.

Ci-joint donc, un premier fichier (tissu six) où ce défaut est corrigé, et un second fichier (tissu sept) faisant le même travail avec la fonction ALEA.ENTRE.BORNES (mais je ne sais pas si ça passe sur excel 2003).

@ plus
 

Pièces jointes

  • tissu six.zip
    23.3 KB · Affichages: 65
  • tissu sept.zip
    22.3 KB · Affichages: 75

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

Sinon pour en revenir a la logique du tableau,
je pense qu'il serait plus "optimisé" de faire des trios puis des duos, je m'explique :
on sait que je ne peux pas couper plus de 3 toiles, ca ne sert donc a rien de faire une coupe plus de 3 toiles par coupe.
Il faudrait, avant de faire la randomisation (qui est une excellente idée selon moi) dire "je veux que tu me créé des groupes de 3 toiles dont la largeur est inférieure a celle du rouleau^sans forcement prendre en compte la quantité de toile" si pas de "trio" possible, alors on teste les duos. si ces trio ou duo ont un taux de chute < 5% par exemple (idéalement =0% évidement)alors on "fige" cette combinaison de toile.

je ne sais pas si cela est possible mais je pense que ca améliorerais grandement la qualité des résultats obtenus.

j'espère avoir été clair dans mes propos, l'idée n'est pas facile a expliquer ^^
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour,

cette fonction est issue d'une macro complémentaire.

Outils - Macros complémentaires - Activer Utilitaire d'analyse

(plus très sûr du chemin du menu car sous xl2007 ici)

@+
 

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

Si c'est ça, j'explique un peu la fin de la formule ENT(....)

En N14, en pratique, je veux tirer au hasard un nombre entre 1 et 47 (=NBVAL(liste)), ce que fait la formule
Code:
ENT(ALEA()*(NBVAL(liste)-COLONNES($G1:G1)+1)+COLONNES($G1:G1))

En O14, je veux tirer au hasard un nombre entre 2 et 47, ce que fait la formule
Code:
ENT(ALEA()*(NBVAL(liste)-COLONNES($G1:H1)+1)+COLONNES($G1:H1))

et ainsi de suite.

@ plus
 
Dernière édition:

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

Re-bonjour,
j'ai légèrement modifié le classeur de Cisco, j'y ai ajouté une petite macro VBA qui permettra de générer des possibilités et enregistrer la solution optimale.

Cependant j'ai toujours le problème du nombre de toile par coupe qui peut potentiellement être supérieur à 3.
 

Pièces jointes

  • optimum par aléas.zip
    18.7 KB · Affichages: 73

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour à tous

Fred06200, en écrivant ta petite macro, tu as rendu mon petit fichier beaucoup plus pratique... C'était le but.

il serait plus "optimisé" de faire des trios puis des duos, je m'explique :
on sait que je ne peux pas couper plus de 3 toiles, ca ne sert donc a rien de faire une coupe plus de 3 toiles par coupe.

Il est vrai que je n'ai pas du tout tenu compte de ce paramètre, 4 couteaux, donc 3 toiles au max dans une largeur. Et pourtant, pour être plus pratique, il faut bien en tenir compte... ce que je vais essayer de faire dans ma prochaine proposition.

@ plus

P.S. : Il est facile de limiter le nombre de bandes à 3 dans les formules de la ligne 13 de ton fichier, mais je ne pense pas que cela nous amène rapidement vers un optimum. Je pense plutot qu'il faut organisé autrement le travail dès le début, avant la randomisation... Un peu de réflexion, et on y arrivera.
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

Il est facile de limiter le nombre de bandes à 3

Voila, c'est fait, et c'est peut être suffisant... 23 coupes (3 toiles au max) au lieu de 22 (autant de toiles que possible dans le sens de la largeur). C'est pas si mal.

On doit encore pouvoir améliorer ce fichier. A toi de nous préciser le cahier des charges. Veux tu prendre en compte les situations suivantes :
* longueur différentes
* plusieurs longueurs mise bout à bout entre deux coupes (ex : 1000 + 400 pour une coupe à 1500)
*coupes similaires mises les une après les autres pour faciliter le travail (positionnemnt des couteaux)


@ plus

P.S : Cf un sujet similaire en 1D (découpe dans des barres) sur
https://www.excel-downloads.com/threads/optimalisation-de-chutes.143718/
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour à tous

On y arrive aussi avec 22 coupes seulement, soit 8 % de chute.

@ plus
 

Pièces jointes

  • tissu optimum par aléas 3 bandes.zip
    19.1 KB · Affichages: 47
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Bonjour

Attention, en N13, et uniquement en N13, il faut écrire "0"& devant la formule pour que le test/couteaux fonctionne correctement dès le début de la ligne, pour O13, P13, Q13, et enlever le +1 en K14 et L14.

C'est fait sur le fichier du post précédent.

@ plus
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Optimisation d'un taux de chute

Rebonjour à tous

Et une version avec des longueurs différentes, mais ne mettant pas les pièces bout à bout.

@ plus
 

Pièces jointes

  • tissu optimum par aléas 3 bandes longueurs différentes.zip
    19.5 KB · Affichages: 54

fred06200

XLDnaute Nouveau
Re : Optimisation d'un taux de chute

re-bonjour,
Cisco, je viens de regarder ton programme et il me semble qu'il y a un probleme :
il me propose de couper B et D en une coupe

pour mémoire :
B = 1270 * 1600
D = 500 * 800

Or, cette coupe est impossible
voici ce que ca donnerait :
Code:
             1770
      __________________
      |     |          |
      |     |          |
      |     |          |
  800 |  D  |          |
      |     |          |
      |     |          |
      |     |    B     | 1600
      |-----|          |
      |/////|          |
      |/////|          |
      |/////|          |
      |/////|          |
      |/////|          |
      |/////|          |
      ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
        500 |    1270

il ne faut pas non plus oublier que si une toile est débitée dans un sens (coupe en V ou en H) car il n'y a pas d'autre possibilité, alors TOUTE la commande doit être débitée dans le même sens.

Il se peut aussi que toutes les toiles soient "débitables" dans les deux sens de coupe, ce qui permettrait d'optimiser en coupe en V et en coupe en H pour améliorer encore le taux de chute. le tout étant de rester uniforme dans la commande.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83