Minimiser une fonction de coût non continue

Bonjour à tous,

Je travaille sur un problème d'optimisation dans le domaine de la robotique, pour des applications médicales.
L'objectif est de trouver un espace de travail optimal pour le robot (un UR5, robot sériel collaboratif classique : https://www.universal-robots.com/fr/produits/robot-ur5/), afin de le contraindre dans l'espace.
Pour l'instant il n'y a qu'un seul degré de liberté à ce calcul d'optimisation : la pose de l'espace de travail dans l'environnement du robot, à savoir une translation et une orientation par rapport à la base du robot.
Les contraintes que j'applique au calcul sont les suivantes :
- minimiser les collisions (avec l'outil mis au bout du robot, ou avec le robot lui-même)
- minimiser les singularités robotiques
- maximiser le nombre de cibles accessible dans l'espace de travail
- maximiser la manipulabilité (calculé avec la Jacobienne)
J'ai donc un algo qui, pour une pose d'espace de travail donné, vérifie les contraintes ci-dessus, et renvoie un coût (la fameuse "fonction coût").
Ainsi : une collision vaut 100 points, une singularité 50 points, une cible inaccessible 30 points et une faible manipulabilité 10 points.

Jusque là si je ne vous ai perdus c'est génial !

Maintenant avec cette fonction de coût je souhaite chercher la pose d'espace de travail qui me donnera le coût le plus faible, et ce sera donc ma solution optimale.
J'ai donc implémenté un algorithme d'optimisation classiquement utilisé dans ce cas, l'algorithme de Nelder-Mead, qui déplace un point sur un simplex qui peut se contracter, se réfléchir, etc (https://fr.wikipedia.org/wiki/Méthode_de_Nelder-Mead).

Après beaucoup d'essais, en lançant plusieurs agents en parallèle, aucun ne converge de la même façon. J'ai ajouté trois exemple en images, où l'on voit le chemin de l'espace de travail au fur et à mesure que l'algorithme se déroule et cherche à minimiser la fonction de coût (les agents partent tous du même cube mais ne vont pas dans la même direction). J'en suis donc à me dire que je n'ai pas la bonne méthode de minimisation de ma fonction coût.

C'est pourquoi je poste ici mon problème, si jamais par hasard un expert en optimisation non linéaire pourrait me guider vers d'autres implémentations. J'ai entendu parler de la recherche opérationnelle combinatoire, et me suis un peu renseignée, mais le passage au concret me laisse perplexe.
Toutes vos idées sont bien sûr les bienvenues.

Merci de m'avoir lue !

A bientôt.65248
65250
65252
Connectez-vous ou Inscrivez-vous pour répondre.