Calcolo di percorsi ottimali mentre si toccano tutte le strade disponibili nella rete ArcGIS?


13

Per la preparazione della stagione invernale vogliamo calcolare i percorsi più ottimali per l'aspersione del sale sulle strade. L'analisi conosce i seguenti criteri:

  • i veicoli si avviano e si fermano in un unico punto di carico
  • tutte le strade disponibili devono essere cosparse di sale
  • un percorso non può richiedere più di un tempo di certina (ipotizziamo 2 ore)
  • a causa del carico limitato di sale per veicolo, la distanza di un percorso è limitata alla quantità di sale disponibile. (ipotizziamo 10 km)

L'analista di rete di ArcGIS (10.0) presume che tu abbia un punto iniziale e uno finale per calcolare il percorso. Tuttavia, in questo caso non si tratta di calcolare il percorso più veloce dall'origine alla destinazione, ma dei percorsi più ottimali per coprire quanta più strada possibile in un arco di tempo limitato.

Ora stiamo pensando di calcolare i punti medi per ogni tratto di strada e utilizzarli come destinazioni per calcolare il percorso.


2
Sembra un po 'come il routing dei camion della spazzatura solo lì i camion tornano al deposito per svuotarsi mentre qui il sale viene ricaricato. Entrambi devono visitare tutte le parti di una rete.
PolyGeo

Verissimo. Hai suggerimenti per risolvere questo tipo di domande di routing?
Mark Verschuur,

Nella nostra giurisdizione abbiamo una variabile aggiuntiva, che è Sand. poiché le strade a volume più basso ottengono la sabbia e quelle a volume più alto ottengono il sale. Se vuoi avviare una chat room con me e possiamo discutere a fondo il problema. Posso anche darti un'idea di ciò che abbiamo fatto e se le nostre soluzioni possono essere paragonate
dassouki,

Può essere ridotto a diversi problemi di ritiro e consegna di veicoli e ci sono molti documenti a riguardo.
Jakub Kania,

Risposte:


5

Penso che parte della risposta dipenda dal layout della rete stradale, e questa domanda potrebbe valere la pena di essere pubblicata nello scambio di stack matematici ( /math// ) in quanto sembra un problema di teoria dei grafi. Non penso che questa sarà la soluzione ottimale, ma potrebbe aiutarti ad avvicinarti.

Puoi dividere la rete stradale in regioni naturali, dove la somma della lunghezza dei segmenti sarà approssimativamente uguale alla quantità che un camion potrebbe coprire con un determinato carico. Quindi per ogni regione potresti eseguire un tour eularian per ottenere il percorso che toccherebbe tutti i segmenti. Codice pitone di esempio

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

È quindi possibile considerare il routing tra le regioni e il deposito e suddividere il percorso di accesso in segmenti logici per i camion disponibili. Spero che sia di aiuto.


1

Mi avvicinerei a questo compito in questo modo. ArcGIS Network Analyst ha un solutore chiamato VRP , che può aiutarti a ordinare e gestire i tuoi percorsi. Vorrei convertire ogni collegamento stradale che hai nel tuo set di dati di rete in funzioni punto ( ad esempio lo strumento GP Feature To Point (Gestione dati) , o forse prima dividere le linee in semplici segmenti a due vertici e quindi ottenere un punto medio per diventare un punto centrale ).

Parlando in termini di VRP, questi diventeranno i tuoi ordini. Quindi assegni i tuoi percorsi limitandoli a un certo tempo (2 ore) e il tuo deposito sarà sia il punto di partenza che di fermata. Supponendo di avere più veicoli, sarai in grado di ottenere più percorsi per un veicolo o più percorsi per lo stesso veicolo.

Consiglio vivamente di seguire il tutorial che ti aiuterà a capire come iniziare con VRP in Network Analyst. Ho usato questo solutore per più progetti e l'ho trovato estremamente potente e personalizzabile in larga misura per soddisfare il mio flusso di lavoro aziendale.

Ricorda che Network Analyst funzionerebbe bene con un numero limitato di ordini di input (nel tuo caso - centroide delle strade). Ho avuto successo con diverse migliaia di ordini (fino a 9.000). Quindi, se vuoi servire una città davvero grande, potresti limitare i tuoi percorsi per operare solo all'interno di determinate parti della città (in termini di VRP - Zone di percorso).

Se stai cercando una soluzione pronta all'uso e potente progettata appositamente per l'instradamento dei punti ad alta densità, ti consigliamo di utilizzare RouteSmart . È costruito su ArcGIS ed è stato progettato per risolvere questo tipo di problemi.


Grazie per i suggerimenti Darò sicuramente un'occhiata a RouteSmart
Mark Verschuur il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.