Pour des problèmes d'optimisations comme ceux là, tu as toujours la solution d'appliquer une métaheuristique (de type recuit simulé ou algorithmes évolutionnaires) où ta fonction optimum correspond au nombre d'intersections de ton graphique, et les paramètres les coordoonées de tes sommets, mais c'est très lourd...!
En effet, tu devra calculer l'existence d'une intersection entre chaque couple d'arêtes (ce qui implique de calculer plusieurs produits vectoriels; puis l'intersection) et chercher à minimiser ce nombre d'intersections par ton algo. Tout dépend du nombre d'arêtes, mais rien que pour 10 arêtes tu aura quelquechose comme 45 intersections à calculer à chaque itération, pas très élégant pour un algorithme censé résoudre les problèmes combinatoires...
A oublier si tu as beaucoup d'arêtes donc... je ne vois rien d'autre, mais je suppose que de tels algorithmes doivent exister...
Bon courage..!
|