Optimiser l'enroulement de tuyaux
Bonjour,
Je cherche à faire un algorithme (en Matlab mais peu importe) pour modéliser l'enroulement de tuyaux sur une roue. Je ne suis pas sûr qu'il y ai un solution simple (voire même une solution tout court).
Concernant les tuyaux à enrouler:
- Il y en a plusieurs avec des diamètres extérieurs qui peuvent être différents
- Je veux pouvoir spécifier lequel je veux dérouler en premier (donc celui qui doit être sur l'extérieur de la roue).
- Ils ont une longueurs Lng qui leur est propre.
Concernant la roue:
- L'enroulement débute à un rayon r
- L'enroulement termine à un rayon R. R>r.
- Attention, la roue à une forme trapézoïdale! Donc au rayon r, la largeur pour enrouler est de l et est de L au rayon R, avec l<L.
J'ai fait un algorithme qui me permet d'enrouler les tuyaux en commençant par la bas (au rayon r). Mais dans mon cas, il faudrait que je commence à enrouler par le haut vu que que je veux spécifier le premier tuyau déroulable.
L'enroulement est forcément fait par couches à un même rayon. Quand le rayon est plein, on démarre une couche suivante.
Bien sûr, il y a des contraintes:
- Les tuyaux ne peuvent pas continuer à être enroulés sur une roue si cela signifie dépasser le rayon R.
- Les tuyaux ayants une masse linéique propre, il ne faut pas que le poids de la roue dépasse un poids Pmax.
Ce que je cherche à faire c'est un algorithme qui me permettrait d'optimiser l'ordre d'enroulement des tuyaux pour remplir le moins de roues possibles. Au point où j'en suis, à part tester tous les remplissages possible un par un et de les comparer je ne vois pas. Sauf que si j'ai un grand nombre de tuyaux, disons une dizaine, il y a beaucoup trop de combinaisons possibles. J'ai regardé l'algorithme du sac à dos, etc... Mais ça ne me semble pas applicable dans mon cas.
Merci de votre aide.
Cordialement