faire des regroupement selon la distance entre des lieux.

Flicky

XLDnaute Nouveau
Bonjour,
D'abord merci à l'avance a quiconque contribuera à ce que j'en arrive à règler mon problème.

J'ai passé beaucoup de temps à fouiller les forums et par extension, me retrouver à lire et tenter de comprendre un tant soit peu, un paquet de choses sur des problèmes NP-complet, divers algorithmes (Dijkstra, Lin-Kernigan, le cycle hamiltonien, le problème du voyageur de commerce, le problème du postier chinois, etc. ). Au final, je n'ai pas de solution à mon "problème", probablement du fait qu'il est toujours diffèrents en quelques sortes par rapport à la lecture que je fait.
Par exemple, le cas du voyageur de commerce m'apparait un fort bonne piste, mais dans mon cas il y a notamment la différence que je n'ai pas a organiser mon ittinéraire en considérant devoir revenir au point d'origine (ce qui devrait devrait avoir l'avantage d'être moins complexe...).

Voilà un fichier exposant où j'en suis :

Le but :
Créer des regroupements de lieux.

Les"consignes" que je dois respecter :
Je dois arriver a ralier tous les lieux identifiés (désigné par la lattitude (colonne H) et la longitude(colonne I)).
Je dois débuter par le lieux situé le plus au nord-est (désigné par la valeur la plus faible sur l'axe des X (colonne H) et la plus élevé sur l'axe des Y (colonne I)).
Je dois progresser en passant chaque fois par le lieux le plus près (distance à vol d'oiseau).

Je connais la population de chaque lieu (colonne L).
Chaque fois que le cumul de la population des lieux raliers dépasse 15 000 habitants, je dois créer un code (ex. : Regroup1; Regroup2, etc.) qui désigne les lieux inclut dans le regroupement et l'indiquer dans la colonne M.
Je débute ensuite un nouveau regroupement avec le lieux le plus près du dernier lieux inclut dans le regroupement précédent.
Autre petites contrainte : les regroupements ne doivent pas compter plus de 16 000 habitants, donc même si je n'ai pas atteint 15000 habitants dans un regroupement, je ferme ce regroupement plutot que de lui ajouter un lieu qui ferait passé sa population a plus de 16 000 habitants.
 

Pièces jointes

  • Regroupements selon distance.xls
    140 KB · Affichages: 115

aldus_85

XLDnaute Nouveau
Re : faire des regroupement selon la distance entre des lieux.

Bonjour flicky !

J'aime bien ton approche sous forme de "consignes" qui clarifient le problème à traiter.

Le problème me paraît simple : il me semble en effet qu'il suffit de classer les villes selon l'ordre de passage successif. Cela fait, tu cumules les populations jusqu'à dépasser 15 000 ou 16 000 ; là tu repars à zéro pour un nouveau cumul. Il ensuite facile de créer un nouveau regroupement chaque fois que le cumul décroit.

Par contre, je n'ai pas compris les règles de cheminement d'une ville à l'autre. "aller à ville la plus proche" risque de faire un bien curieux trajet. Le départ le plus au Nord-Est me paraît aussi pas clair car il n'y a pas de point qui soit à la fois au minimum de latitude et au maximum de longitude ; dès lors, il faut commencer où ? au min de latitude+longitude ? Le graphe où la latitude est sur les abscisses et la longitude sur les ordonnées est aussi un peu contre-intuitif, la latitude étant traditionnellement représentée plutôt verticalement et la longitude horizontalement !

En synthèse, le "nouveau" problème devient "classer les villes" selon l'ordre de passage que tu souhaites après avoir clarifié, en tout cas pour moi, les consignes de parcours.

Bonne journée !
 

Flicky

XLDnaute Nouveau
Re : faire des regroupement selon la distance entre des lieux.

Bonjour Aldus_85,
merci de t'intéressé à mon problème.

Mon problème est également exposé sur un autre forum, et jusqu,ici j'ai une piste de solution très intéressante que je partage ici afin d'en faire profiter d'autres personnes.

On travaille présentement à chercher la solution ultime a partir de cette proposition de Mercatog (gloire à lui :)

Voir le doc joint.
 

Pièces jointes

  • solution 1.doc
    44 KB · Affichages: 84

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 115
Membres
103 477
dernier inscrit
emerica