Ci sono venditori in viaggio intelligenti?


12

Scherzi a parte, ho avuto un problema di routing che è quasi un problema del commesso viaggiatore (TSP):

  • il punto di partenza è definito
  • il punto finale coincide con il punto iniziale
  • ogni nodo deve essere visitato
  • il costo totale dovrebbe essere ridotto al minimo

Due anni fa pensavo che TSP sarebbe stato un abbinamento perfetto, quindi ho analizzato alcuni dati di esempio tsp_solvee Concorde. Fortunatamente, è stato subito evidente che il percorso più breve di TSP non è il percorso più breve , dal momento che il problema è reso più semplice richiedendo irrealisticamente di visitare i nodi esattamente una volta . Questa immagine è solo un tentativo manuale di un passo per l'ottimizzazione della soluzione calcolata e già risparmia circa la distanza del bordo utilizzato più lungo.

Il problema è riemerso, mentre sto cercando di trovare percorsi ottimali verso sottoinsiemi di siti di mappatura / monitoraggio. I dati sulla posizione e sulla rete stradale sono entrambi abbastanza precisi e precisi, quindi un esercizio come questo ha senso.

Ho esaminato le generalizzazioni del TSP, ma non ho trovato un algoritmo appropriato. Gli alberi di spanning minimi non tengono conto del ritorno dai rami (la prima soluzione qui costa 3 in più). Da quello che ho capito, il problema del percorso più breve alla fine si preoccupa solo di due nodi e quelli fuori dal percorso ottimale sarebbero lasciati fuori. Un caso speciale del problema di routing del veicolo sembra adattarsi meglio, anche se non so se considera percorsi non diretti.

La mia domanda: esiste un nome definito, una definizione per questo tipo di problema (famiglia)? Quale algoritmo e strumento useresti per risolverlo?

Sono sicuro che sarebbe pesante dal punto di vista computazionale, ma sono interessato sia alle risposte generali (risorse infinite) che a quelle pratiche.


Hai esaminato la teoria dei grafi?
nagytech,

Circa quanto i link di Wikipedia sopra e alcuni link più in profondità. Alla uni abbiamo fatto solo qualche banale LP e teoria delle decisioni.
lynxlynxlynx,

Risposte:


4

Questo è TSP . Non hai appena definito una metrica della distanza valida perché non soddisfa la disuguaglianza del triangolo: se esiste un percorso da A a C a B che è più breve della distanza dichiarata da A a C, allora la distanza dichiarata da A a C è, semplicemente, sbagliato. La soluzione è aggiornare la matrice della distanza impostando la lunghezza da A a C in modo che sia la lunghezza più breve di tutte le rotte da A a C.


Fantastico, questo lo rende abbastanza semplice. Per i piccoli grafici, probabilmente non vale nemmeno la pena di precalcolare la nuova matrice di distanza, ma invece di farlo al volo.
lynxlynxlynx,
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.