Calculer des itinéraires optimaux tout en touchant toutes les routes disponibles dans le réseau ArcGIS?


13

Pour la préparation de la saison d'hiver, nous voulons calculer les itinéraires les plus optimaux pour saupoudrer le sel sur les routes. L'analyse connaît les critères suivants:

  • les véhicules démarrent et s'arrêtent à un seul point de chargement
  • toutes les routes disponibles doivent être saupoudrées de sel
  • une route ne peut pas prendre plus d'un temps de certin (supposons 2 heures)
  • en raison de la charge limitée de sel par véhicule, la distance d'un itinéraire est limitée à la quantité de sel disponible. (supposons 10 km)

L'analyste réseau d'ArcGIS (10.0) suppose que vous disposez d'un point de départ et d'un point d'extrémité pour calculer l'itinéraire. Cependant, dans ce cas, il ne s'agit pas de calculer l'itinéraire le plus rapide de l'origine à la destination, mais des itinéraires les plus optimaux pour couvrir autant de distance routière que possible dans un laps de temps limité.

Nous pensons maintenant à calculer les points médians pour chaque section de route et à les utiliser comme destinations pour calculer l'itinéraire.


2
Cela ressemble beaucoup au routage des camions à ordures seulement là où les camions retournent au dépôt pour se vider tandis qu'ici le sel est rechargé. Les deux doivent visiter toutes les parties d'un réseau.
PolyGeo

Très vrai. Avez-vous des conseils pour résoudre ce type de questions de routage?
Mark Verschuur

Dans notre juridiction, nous avons une variable supplémentaire, qui est le sable. car les routes à plus faible volume obtiennent du sable, et celles à plus fort volume reçoivent du sel. Si vous voulez démarrer une salle de chat avec moi et nous pourrons discuter pleinement du problème. Je peux aussi vous donner un aperçu de ce que nous avons fait et si nos solutions peuvent se comparer
dassouki

Cela peut être réduit à plusieurs problèmes de ramassage et de livraison de véhicules et il y a beaucoup de papiers à ce sujet.
Jakub Kania

Réponses:


5

Je pense qu'une partie de la réponse dépend de la disposition du réseau routier, et cette question pourrait valoir la peine d'être publiée sur le Math Stack Exchange ( /math// ) car cela semble être un problème de théorie des graphes. Je ne pense pas que ce sera la solution optimale, mais cela pourrait vous aider à vous rapprocher.

Vous pouvez diviser le réseau routier en régions naturelles, où la somme de la longueur des segments sera à peu près égale au montant qu'un camion pourrait couvrir avec une charge donnée. Ensuite, pour chaque région, vous pouvez exécuter une visite eularienne pour obtenir l'itinéraire qui toucherait tous les segments. Exemple de code Python

def eulerian_tour(network_graph):
    graph = network_graph[:]
    route = []
    def find_route(start):
        for (i, j) in graph:
            if i == start:
                graph.remove((i, j))
                find_route(j)
            elif j == start:
                graph.remove((i, j))
                find_route(i)
        route.append(start)

    find_route(graph[0][0])
    route.reverse()
    return route

Vous pourriez alors envisager le routage entre les régions et le dépôt, et diviser la route d'accès en segments logiques pour les camions disponibles. J'espère que cela t'aides.


1

J'aborderais cette tâche de cette façon. ArcGIS Network Analyst dispose d'un solveur appelé VRP , qui peut vous aider à commander et à gérer vos itinéraires. Je convertirais chaque lien routier que vous avez dans votre jeu de données réseau en entités ponctuelles ( outil GP d' entité vers point (gestion des données) , par exemple, ou peut-être d'abord séparer les lignes en simples segments à deux sommets, puis obtenir un milieu pour devenir un point central ).

En termes de VRP, ceux-ci deviendront vos commandes. Ensuite, vous attribuez vos itinéraires en les limitant à un certain temps (2 heures), et votre lieu de dépôt sera à la fois un point de départ et un point d'arrêt. En supposant que vous avez plusieurs véhicules, vous pourrez obtenir plusieurs itinéraires pour un véhicule ou plusieurs itinéraires pour le même véhicule.

Je recommande fortement de suivre un didacticiel qui vous aidera à comprendre comment démarrer avec VRP dans Network Analyst. J'ai moi-même utilisé ce solveur pour plusieurs projets et je l'ai trouvé extrêmement puissant et personnalisable dans une large mesure pour répondre à mon flux de travail.

N'oubliez pas que Network Analyst fonctionnerait bien avec un nombre limité de commandes d'entrée (dans votre cas - centroïde des routes). J'ai réussi avec plusieurs milliers de commandes (jusqu'à 9 000). Donc, si vous souhaitez desservir une très grande ville, vous pouvez limiter vos itinéraires pour qu'ils ne fonctionnent que dans certaines parties de la ville (en termes de VRP - Zones de route).

Si vous recherchez une solution plus prête à l' emploi et plus puissante conçue spécifiquement pour le routage de points à haute densité, veuillez envisager d'utiliser RouteSmart . Il est construit au-dessus d'ArcGIS et a été conçu pour résoudre ce type de problèmes.


Merci pour les suggestions. Je vais certainement vérifier RouteSmart
Mark Verschuur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.