...contrainte guillotine...
Moi, c'était une de mes contraintes non négociables mais ça tombait bien, car, intuitivement, j'ai trouvé beaucoup plus simple la coupe guillotine
et le SHF m'a bien aidé/conforté sur la manière de faire.
J'ai du mal à voir comment je peux examiner toutes les solutions...
C'est bien pour ça que cela n'est valable que pour quelques pièces à placer 
Mais tu peut réduire quand même pas mal en te donnant quelques contraintes supplémentaires pas difficile à respecter et relativement <utiles> : le placement doit toujours commencer par mettre une pièce dans un coin (par exemple le coin en bas à gauche pour rester dans les habitudes) et toutes les pièces doivent être adjacentes à une autre pièce par une de ces arrêtes (et pis la découpe telle que effectué dans le SHF te permet de les respecter automatiquement
).
Comme cela, tu réduit l'espace de recherche et donc, si ton problème est suffisamment petit, tu peut examiner toutes les solutions.
Pour commencer peux tu me préciser la différence entre heuristique et méta-heuristique...
j'ai les mêmes définitions mais je me suis mal exprimé et j'ai fait un gros raccourci avec mon utilisation propre.
Mes implémentations de méta avaient pour tache de générer des solutions potentielles qui était ensuite envoyées à une heuristique de placement (une version modifiée de SHF) pour découpe puis évaluation de la solution. Par exemple, SHF, normalement commence par trier les pièces sur la hauteur en décroissant.
Dans mon utilisation, utilisée en sous-main par une méta, elle utilise les pièces dans l'ordre ou elles sont proposées par la couche supérieure, cad la solution proposée par la méta, a charge pour la méta, d'évaluer ensuite la découpe retournée par l'heuristique.
D'où mon raccourci inexact : heuristique > une solution, méta > n solutions.
Je l'ai lue aussi et j'ai essayé d'implémenter l'IMA mais pas plus car j'avais des bugs et pas le temps de les corriger (cylce de rédaction/correction du mémoire/réorganisation, etc).
je ne suis pas matheux, mais si j'ai bien tout compris, grosso modo c'est pour limiter tes recherches : après avoir calculé tes bornes inférieures et supérieures, cela te permet de savoir pour ton jeu de pièces et ta planche, dans quel intervalle va se situer ta <gâche> et donc de ne pas chercher des solutions invalides.
Intéressant et décrit en pseudo langage donc plus facile à implémenter pour moi.
tout pareil 
Moi, c'était le BP dans l'imprimerie (BP 2D, coupe guillotine, coûts de mise en route et production à intégrer) mais il y a un certains nombre de contraintes/aspects que je n'ai pas traité par manque de bagage/expérience mathématique et de temps (pour me replonger dans mes cours).
En autres,
- format de planche variable : du fait de la prise en compte des coûts de mise en route/production, une solution (pour un jeu de pièce donné) peut être meilleure par ex. en utilisant une planche de grand format et une petite (sur deux machines A & B) que une seule d'un format un peu plus grand sur la machine C, etc...
- nombre de poses d'un modèle variable :
Dans mon cas, par ex., 1000 pièces A, 400 pièces B et 800 pièces C ne doivent pas donner lieu à placement de 2200 pièces mais à celui de 3 modèles, chaque modèle pouvant être dupliqué un certain nombre de fois (les poses). La difficulté est que ce nombre de pose n'est pas connu à l'avance et qu'un même modèle peut avoir des poses sur plusieurs <planches> (de même format ou non), tout ceci dépendant entre autre du/des formats et la/les machine(s) les acceptant. Au final, bien sûr, l'impression en x exemplaires des planches doit donner au minimum le nombre d'exemplaire de chaque pièce, la surproduction étant autorisée mais dans des limites.
J'ai l'impression que pour traiter cela, je dois me lancer dans la programmation linéaire mais mes cours sont très lointains et je ne vois pas comment démarrer
Et là, je lance un appel à témoin : si quelqu'un a des pistes (même des mots clefs de recherche).. car parmi les papiers en accès libre que j'ai pu obtenir, je n'ai rien trouvé qui parle de cette <variante> du BP (ou alors, j'en ai trouvé mais rien compris et donc oublié
)
<validés>
- Heuristiques : SHF et des versions modifiées de SHF : Elle travaille en couche sans rotation de pièces, je l'ai donc modifiée pour travailler sur la forme en totalité et ou en prenant en compte la rotation.
- Méta : Algo. génétiques, Recuit simulé, Hill climbing with restart
<non validés/utilisés pour cause de bugs>
- Heuristiques : IMA
- Méta : Fourmis
mon mémoire est ici : [ame="http://www.megaupload.com/?d=CWWSAWNP"]MEGAUPLOAD - The leading online storage and file delivery service@@AMEPARAM@@Filename:</font> <font style="font-family:arial; color:#FF6700; font-size:22px; font-weight:bold;">memoire.rar@@AMEPARAM@@memoire.rar[/ame]
L'implémentation est en python (en pj).
il se lance (si python est installé) en ligne de commande via "python bprunone.py <probleme.xml>. par exemple :
python bprunone.py p0.bp.xml
Avec cet exemple, précisément, pour un jeu de pièces, il va faire tourner différents algos (les critères sont dans le xml) sur différents formats de "planche" sans prise en compte des coûts et génerer des fichiers pour chaque couple algo/format de "planche" : jpg & description des découpes,etc...
ps : désolé pour le lien de la dont l'affichage est "bizarre", mais quoi que soit la description, c'est remplacé par megaupload...
Partager