Bonjour et meilleurs voeux pour cette année 2012 à tous,
J'aurais besoin de votre aide pour le problème suivant:
- J'ai besoin de calculer des itinéraires routiers avec environ 15 à 20 étapes par itinéraires
- j'ai automatisé le calcul de la distance entre chaque étape à partir de Google Maps avec des morceaux de programmes que j'ai trouvés sur différents forums (voir fichier ci-joint)
Je recherche, donc, à optimiser l'itinéraire en réduisant au maximum les km parcourus. La contrainte est un départ et une arrivée imposée.
J'ai fait des recherches sur différents forums et j'ai compris que mon problème s'apparentait à des permutations et que le nombre de permutations se calcule de la manière suivante : 15 étapes ---> nbre de permutations ou de possibilités de trajets = 1X2X3X4....X15 soit 15! ou factorielle 15.
A partir de là on comprend bien que plus on a d'étapes plus le nbre de possibilités de trajets augmente d'une manière phénoménale.
J'ai même trouvé des codes qui permettaient de traiter mon problème, mais malheureusement au dessus de 11 étapes le nbre de possibilités fait que la macro plante. D'après ce que j'ai compris la macro plante parce que toutes les possibilités d'itinéraires sont stockés dans une matrice VBA et que la capacité de stockage d'une matrice dans VBA est atteinte.
N'étant pas très matheux j'ai besoin de votre aide, car je ne comprends pas que l'on ait besoin de stocker toutes les possibilités dans une matrice.
En effet, mon raisonnement est qu'il faut définir un algorithme dans VBA :
- pour calculer pas à pas chaque possibilité
- calculer le nombre de km total
- comparer le nbre de km avec le résultat retenu précédemment
- retenir le résultat avec le moins de km
- et ainsi de suite jusqu'à la dernière possibilité
Bien évidemment le temps de traitement risque d'être long mais finalement faible par rapport au gain de l'optimisation.
Pourriez vous m'aider sur ce sujet ?
Cordialement
Partager