| |
| Publicado el 06,junio 2008 - 18:25 |
Est-ce quelqu'un connait des liens sur la methode du simplexe.
Je recherche depuis plusieurs jours sur le net mais je n'ai rien trouvé de satisfaisant.
Je recherche surtout de l'info sur comment modéliser un probleme pour appliquer la méthode du simplexe.
Exemple simple.
Je dois couper les morceaux suivant dans des barres de 500mm.
2 X 45mm 3 X 56mm 3 X 123mm 5 X 176mm 7 X 212mm.
Je veux modéliser ce problème pour appliquer la mothode du simplexe afin de minimiser les chutes.
Merci de vos réponses |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,junio 2008 - 19:21 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,junio 2008 - 19:49 |
Peut être en mettant "programmation linéaire" Mais la construction d'un soft la dessus peut être sympa. Bon courage |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,junio 2008 - 19:57 |
Merci pour le lien.
Ce que je cherche c'est comment modéliser mon problème, genre
Maximiser z = 7x1 + 9x2 + 18x3 + 17x4 s. c. 2x1 + 4x2 + 5x3 + 7x4 <= 42 x1 + x2 + 2x3 + 2x4 <= 17 x1 + 2x2 + 3x3 + 3x4 <= 24 x1 ; x2 ; x3 ; x4 <= 0
Merci. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,junio 2008 - 02:24 |
Jean Hamelin a écrit dans le message de news <15a6be75b0a75110070fe6219dec3a71@news.pcsoft> :
Est-ce quelqu'un connait des liens sur la methode du simplexe.
Je t'ai mis au moins 1 liens dans ton précédent post sur ce forum aujourd'hui. Mais c'est vrai que sur le net, les trucs que j'ai trouvés sont pas super bien expliqués, surtout que dans ton cas, tu as affaire a un calcule de minimisation plutot que de maximisation. Il faut donc créer les fonctions du simplexe et le convertir en "DUAL" pour pouvoir le solutionner.
Vas voir ici, c'est un bon cours complet sur la programmation linéaire, methode des sommets, methode du simplexe et j'en passe : http://wims.u-psud.fr/wims/wims.cgi…
ou en pdf a télécharger ici : http://wims.u-psud.fr/wims/modules/U3/opresearch/doclinearoptim.fr/doc/1/files/docquadratic.pdf
bonne chance, parce que a programmer, c'est pas le pied, je suis en plein dessus car introuvable en source Windev sur le net (ou alors j'ai pas eu de chances), et cela peut résoudre plein de problemes
Bonne continuation |
| |
| |
| | | |
|
| | |
| |
| Publicado el 08,junio 2008 - 01:35 |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,junio 2008 - 01:32 |
Merci beaucoup Nicolas pour cette ressource WinDev précieuse. Il faudra juste que je pense a mettre a jour mon PC perso qui est encore en version 11. Je testerai cette class au travail.
Interessant ton site.
Bonne continuation |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,junio 2008 - 16:12 |
Merci a Nicolas et Raphael pour les infos.
Je regarde ça et je vous avise si je trouve ma solution.
Bon dev. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 11,junio 2008 - 23:45 |
Pas encore trouvé de solution.
Si quelqu'un a d'autres idées je suis preneur. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,junio 2008 - 11:52 |
Juste une idée comme ca : tu peux peut-être (en attendant de trouver une solution plus élégante) utiliser le solver d'excel qui est très complet et que tu peux piloter depuis ton apli WD...
A++ Thierry |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,junio 2008 - 16:05 |
Je connais pas le solver d'excel.
Peux-tu me donner un peu d'info SVP.
Merci. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,junio 2008 - 18:06 |
J'utilise Excel en anglais mais tu trouveras sans pb : Menu Tools/solver. Assure-toi qu'il est installé, sinon tu fais Tools/Add-ins et tu installes le solver. Je crois que tout ce que tu cherches est dedans, tu n'auras plus qu'à trouver les méthodes pour le piloter par WD. Bon courage, Thierry |
| |
| |
| | | |
|
| | |
| |
| Publicado el 12,junio 2008 - 18:34 |
Merci pour les info.
Je vous tiens au courant du déroulement de ma démarche. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 14,junio 2008 - 15:56 |
bonjour, J'ai un peu le même problème dans ma branche. Il y a encore d'autres paramètres à prendre en compte: La chute minimale résiduelle acceptable Les barres incomplettes en stock Vaut-il mieux garder en stock un reste qui pourrait éventuellement mieux être utilisé dans une commande future que de l'utiliser tout de suite avec une chute plus importante etc, etc Ce que vous essayez d'implémenter ne tient pas compte du passé ni du future. J'ai écris un petit exemple en WD12 (que je viens d'installer): si ça vous intéresse? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2008 - 15:30 |
Bonjour à tous je suis preneur pour ton soft ci-joint mon mail: nfrancky@hotmail.fr |
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2008 - 15:58 |
Ca m'intéresse au plus haut point.
Planisoft@videotron.ca |
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2008 - 16:20 |
Mon courriel
Lettre manquante de mon courriel: aniso |
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2008 - 16:22 |
Bonjour Ca m'intéresse aussi
Merci d'avance JCP
puccettijc@free.fr
"König" <admin@konig-tapis.ch> a écrit dans le message de news:80f19e8b7a1261c92162a423fdb8a73c@news.pcsoft...
bonjour, J'ai un peu le même problème dans ma branche. Il y a encore d'autres paramètres à prendre en compte: La chute minimale résiduelle acceptable Les barres incomplettes en stock Vaut-il mieux garder en stock un reste qui pourrait éventuellement mieux être utilisé dans une commande future que de l'utiliser tout de suite avec une chute plus importante etc, etc Ce que vous essayez d'implémenter ne tient pas compte du passé ni du future. J'ai écris un petit exemple en WD12 (que je viens d'installer): si ça vous intéresse?
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2008 - 16:47 |
Bonjour,
Je suis intéressé par ce problème ! Serait-il possible de voir l'exemple ? Merci infiniment
GH
König a écrit dans le message de news <80f19e8b7a1261c92162a423fdb8a73c@news.pcsoft> :
bonjour, J'ai un peu le même problème dans ma branche. Il y a encore d'autres paramètres à prendre en compte: La chute minimale résiduelle acceptable Les barres incomplettes en stock Vaut-il mieux garder en stock un reste qui pourrait éventuellement mieux être utilisé dans une commande future que de l'utiliser tout de suite avec une chute plus importante etc, etc Ce que vous essayez d'implémenter ne tient pas compte du passé ni du future. J'ai écris un petit exemple en WD12 (que je viens d'installer): si ça vous intéresse? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,junio 2008 - 10:55 |
Bonjour, A ceux qui l'ont demandé j'ai envoyé le projet WD12. Le jeux est de trouver un optimum en ajustant le paramètre "gnChute_minimum". Si on est trop avare, le stock de chutes va se gonfler, si on jette de trop grands morceaux on va perdre de la marge. J'utilise deux fichiers, un pour le stock des barres et un autre pour les coupes à réaliser. Voici la partie du code qui fait le travail. Je l'ai écris pour illustrer le problème mais je ne l'ai pas testé à fond ni essayé de l'optimiser.
LOCAL T_coupe est un tableau dynamique de 0 par 3 entiers C_tot est un entier i,j sont des entiers Plus_petit est un entier
HExécuteRequête(REQ_coupe_croissante,hModifieFichier) HLitPremier(REQ_coupe_croissante) Plus_petit=REQ_coupe_croissante.longueur POUR TOUT REQ_coupe_croissante TableauAjouteLigne(T_coupe,REQ_coupe_croissante.IDCoupe,REQ_coupe_croissante.longueur,REQ_coupe_croissante.IDStock) C_tot++ FIN i=1 j=C_tot
HExécuteRequête(REQ_stock,hModifieFichier,Plus_petit) HLitPremier(REQ_stock)
TANTQUE PAS HEnDehors(REQ_stock)
SI REQ_stock.longueur-T_coupe[j,2]>=0 ALORS
SI (REQ_stock.longueur-T_coupe[j,2]<=gnChute_minimum) OU (j=1) ALORS
T_coupe[j,3]=REQ_stock.IDStock
REQ_stock.longueur=REQ_stock.longueur-T_coupe[j,2] HModifie(REQ_stock)
j
HLitPremier(REQ_stock) SINON
SI REQ_stock.longueur-T_coupe[j,2]-T_coupe[1,2]>=0 ALORS
T_coupe[j,3]=REQ_stock.IDStock
REQ_stock.longueur=REQ_stock.longueur-T_coupe[j,2] HModifie(REQ_stock)
j
HLitPremier(REQ_stock) SINON
HLitSuivant(REQ_stock) SI HEnDehors(REQ_stock) ALORS Info("il n'y a pas assez de stock pour honorer la commande") SORTIR FIN
FIN FIN SINON
HLitSuivant(REQ_stock) SI HEnDehors(REQ_stock) ALORS Info("il n'y a pas assez de stock pour honorer la commande") SORTIR FIN FIN SI j=0 ALORS Info("Tout a été débité") SORTIR FIN FIN Info("on met à jour le fichier des coupes") POUR i=1 A C_tot SI T_coupe[i,3]<>0 ALORS HLitRecherchePremier(REQ_coupe_croissante,IDCoupe,T_coupe[i,1]) REQ_coupe_croissante.IDStock=T_coupe[i,3] HModifie(REQ_coupe_croissante)
FIN
FIN Il faudrait encore ajouter le traitement des livraisons de matière première: peut-on utiliser pour une même commande des barres provenant de livraisons différentes ? Maintenant beaucoup plus compliqué: faire la même chose avec des surfaces. Par exemple faire des découpes dans de la tôle, des panneaux de bois, des rouleaux de moquette ... amusez-vous bien |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,junio 2008 - 16:42 |
Merci à Konig pour le code.
Par contre ce que je cherche c'est plutot à optimiser comme les logiciels existants sur le marché.
Voir à l'adresse suivante et télécharger Pipe cutting suite .
http://www.optimizecutter.com/index.html |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,junio 2008 - 20:21 |
bonjour, Merci pour le programe, je l'ai chargé et fait un ou deux tests comparatifs. Je l'ai fait sur des petites quantités de coupes. Pipe cutting suite privilégie l'utilisation de barre neuve et il travaille comme moi: de la plus grande coupe vers la plus petite. Moi je privilégie l'utilisation des restes. Il faudrait faire des tests comparatifs avec des series qui se rapprochent de votre réalité sur le terrain et voir si l'investissement de l'achat du logiciel et du bidouillage pour l'insérer dans la ligne de production automatisée se justifie (une double saisie des données coûte et augmente les risques d'erreures). Vérifier aussi si le stock des barres entamées ne gonfle pas trop. bons tests |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,junio 2008 - 01:25 |
Il existe aussi une DLL pour optimiser.
http://www.optimalprograms.com/cut_1d_x.htm.
Je l'ai essayé mais impossible d'y accéder par WinDev comme un objet automation.
J'ai réussi en créant une DLL a partir de VB.Cette DLL est accessible en WinDev par la suite. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,junio 2008 - 10:39 |
merci très intéressant, malheureusement ces jours je ne vais pas avoir le temps d'essayer, j'ai plusieurs container de marchandises qui arrivent d'Orient. Je reviens sur la question des tests: peux-tu créer un serie de données qui se rapproche de ta réalité -un stock de barre y compris un passé de restants -plusieurs commandes type. Je me répette peutêtre, mais il n'est pas forcément rentable d'utiliser un code récursif qui cherche la meilleure solution si le gain est dérisoire. a plus |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,junio 2008 - 12:38 |
suite en regardant de plus près, ils n'utilisent certainement pas une méthode comme le simplex mais une approche commme un programe d'échec. Ils essaient les différentes possibilités en leur donnant un score. A la fin ils gardent la solution avec le meilleur score. La preuve c'est le curseur qui règle la profondeur ou la durée de la recherche. Le risque de cette approche, c'est que selon le temps de calcul qu'on lui accorde, la réponse pourrait ne pas être trés bonne (faire une analogie avec les programes d'échec une fois qu'ils ont quitté leur bibliothèque de coups connus). |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,junio 2008 - 16:32 |
Une commande type ( en mm )
16 X 1661 16 X 1477 12 X 1274 2 X 1186 4 X 1183 2 X 1173 8 X 1109 10 X 1020 8 X 848 8 X 577 16 X 564 8 X 499 12 X 409 12 X 399
Stock
999 X 4875 1 X 3210 1 X 1285 1 X 612
Dimension minimum réutilisable = 400
Je l'ai testé avec Pipe Cutting Suite.
Temps de traitement : entre 20 et 25 secondes Perte de matériel 1,29% |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,junio 2008 - 16:56 |
J'ai refait le meme test avec une ancienne version ( v3.11 ) et j'ai un meilleur résultat dans un temps plus court.
Perte 0,22% Temps d'exécution : environ 7 secondes. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,junio 2008 - 01:13 |
je viens d'essayer ta série sur mon logiciel si je ne me trompe pas il y a 134 coupes à faire pour 128'130 mm j'utilise 26 barres de 4875 soit 126750 mm plus les trois chutes soit 131857 mm il reste à la sortie 3 chutes réutilisables de 706, 795 et 885 mm donc chutes totales 131857 - 128130 - 706 - 795 - 885 = 1341 mm soit environ 1% vérifie mais si c'est exact cela montre que les solutions les plus compliquées ne donnent pas toujours des résultats notablement supérieur pour un temps de calcul bien inférieur à la seconde |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,junio 2008 - 16:14 |
Je vais faire des test plus poussé en fin de semaine et je reviens avec des résultats.
A+ |
| |
| |
| | | |
|
| | |
| |
| Publicado el 19,junio 2008 - 18:07 |
fais les tests en faisant varier la chute minimum, moi j'avais fait le test en laissant les 200mm par défaut je t'envoie par email les fichiers de données avec ta série, ça te fera gagner du temps. à + |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,agosto 2008 - 12:21 |
Salut,
J’ai des problèmes avec les solver de l’excel aussi. En effet, je dois calculer les bonnes droites de 4 variables que sont initialisé pour :
Alpha = racine(3) Beta = 0 Gamma = 0 m = 2
Ensuite je prends les sommes carrées de les 4 variables. Les solver vas chercher la minimum valeur de la somme carrées en changent les variables au dessus et en imposant :
Alpha >= 0 m <= 7 m >= 1
Alors, c’est ça que je dois calculer en utilisant le WinDev !!!
Merci d’avance et pardon pour les de la langue Française (je suis brésilien moi) !!! |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,noviembre 2013 - 03:01 |
C'est un outil en ligne pour résoudre des problèmes d'optimisation linéaire moyennant la méthode Simplexe et graphique:
http://www.phpsimplex.com/fr/ |
| |
| |
| | | |
|
| | |
| |
| Publicado el 26,noviembre 2013 - 09:02 |
Bonjour,
Je suis intéressé par ce problème ! Serait-il possible de voir l'exemple ? Par avance merci
xms54@wanadoo.fr |
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,noviembre 2018 - 11:42 |
| Le projet Windev m'intéresse également s'il est toujours disponible. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,noviembre 2018 - 16:27 |
Bonjour Jean-Luc, La question initiale était de résoudre un problème d'optimisation dans la découpe et l'utilisation du stock en tenant compte des chutes. Il y avait la proposition d'utiliser la méthode du simplexe et moi j'avais proposé d'utiliser une méthode simple, directe et rapide. Après des tests, il s'avérait que la méthode que j'utilisais donnait de très bons résultats et cela très rapidement.
Je ne sais pas dans tous les cas, mais cela fonctionnait très bien sur les séries de test qui m'avait été fournies. Dans le fil il y a mon code exemple
C'était suite à la réponse que j'avais faite en 2008:
bonjour, J'ai un peu le même problème dans ma branche. Il y a encore d'autres paramètres à prendre en compte: La chute minimale résiduelle acceptable Les barres incomplètes en stock Vaut-il mieux garder en stock un reste qui pourrait éventuellement mieux être utilisé dans une commande future que de l'utiliser tout de suite avec une chute plus importante etc, etc Ce que vous essayez d'implémenter ne tient pas compte du passé ni du future. J'ai écris un petit exemple en WD12 (que je viens d'installer): si ça vous intéresse?
Le code qui fait le travail est visible sur le fil, pour le projet complet je dois faire des fouilles car cela date de 2008
Si vous m'exposez ce que vous voulez faire, je pourrai vous dire si mon approche peut s'appliquer
bonne soirée Alain |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1 mensaje |
|
| Publicado el 07,noviembre 2018 - 23:28 |
Bonjour Alain, merci pour ta réponse.
Dans mon entreprise nous allons devoir couper des longueurs. Il s'agit d'appuis de fenêtres livrés en longueur de 6 mètres. Il faudra donc essayer d'optimiser la découpe et si possible réutiliser les chutes.
Etant donné que j'utilise quotidiennement Windev, je me suis dit qu'avant de partir de 0, j'allais voir si quelqu'un n'avait pas déjà développé quelque chose de ce genre 
Bonne journée.
Jean-Luc |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,noviembre 2018 - 12:32 |
Bonjour, Oui c'est typiquement le problème que mon programme résout. J'ai retrouvé le projet, il fait un peu moins de 70 Mo, 1054 fichiers et 50 dossiers. Ce projet est un exemple pour tester mon raisonnement face à d'autres. Il est possible de créer une base de donnée de barre en stock, de rentrer une demande de débitage et de fournir les instructions de débitage en essayant d'optimiser le stock.
Je peux vous l'envoyer, mais comment? bon week-end alain |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 141 mensajes |
|
| Publicado el 11,noviembre 2018 - 23:09 |
Bonsoir Jean Luc, regardez du cote de la LST 74, il y a une implémentation de l’algorithme du simplex qui fonctionne très bien. Nous avons développé en utilisant l'exemple de la LST 74, une optimisation via simplex pour l’optimisation des chutes dans le domaine de l'imprimerie, notamment dans le calcul du nombre de poses optimales en fonction des différentes commandes clients en production pour satisfaire les qtes commandés et avoir le minimum de chute papier (Optimisation en amalgame pour les connaisseurs, problème récurent en imprimerie). |
| |
| |
| | | |
|
| | |
| |
| Publicado el 14,noviembre 2018 - 15:08 |
Ah, ça serait parfait, le plus simple serait sans doute de me l'envoyer par https://wetransfer.com à l'adresse jld@batifer.fr Merci d'avance |
| |
| |
| | | |
|
| | |
| |
| Publicado el 14,noviembre 2018 - 18:09 |
J'ai zipé le répertoire et je l'ai envoyé avec We Transfer. J'espère que j'ai fait juste  Juste me confirmer si c'est ok C'est écrit dans une ancienne version de WinDev. Il faudra la migré. Pour l'essayer le programme est compilé dans le répertoire exe avec les données de test. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,abril 2019 - 00:25 |
Bonsoir Alain,
je serais intéressé, également par ton application, serait-il possible de la transmettre par wetransfer à l'adresse dolphy_access arobase yahoo.fr
je t'en remercie par avance
bonne soirée |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,abril 2019 - 10:01 |
Bonjour, je viens de le transférer Amitiés Alain |
| |
| |
| | | |
|
| | |
| |
| Publicado el 10,abril 2019 - 00:41 |
Bien reçu
Merci pour le partage
Bonne soirée. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 18,julio 2020 - 08:01 |
Bonjour Alain,
Je serais intéressé, également par ton application, serait-il possible de me la transmettre à l'adresse enamsas@gmail.com
je t'en remercie par avance
bonne soirée |
| |
| |
| | | |
|
| | |