6

Esiste un algoritmo o un insieme di algoritmi che consentono di trovare la distanza di cammino più breve da un nodo di avvio arbitrario in modo che ogni nodo venga visitato in un peso, un grafico non orientato? Non è un commesso viaggiatore, perché non mi interessa se un nodo viene visitato più di una volta. (Non importa nemmeno se si ritorna all'inizio - il walker può finire in un nodo lontano purché fosse l'ultimo necessario per visitare tutti i nodi.) Non è un albero spanning minimo, perché potrebbe essere che andare A -> B -> C -> A -> D è un percorso (non univoco) più breve per visitare A, B, C e D. La mia intuizione dice che questo non è È un bel problema di NP, perché non ha le restrizioni che rendono i problemi di NP così complicati. Potrei, naturalmente, essere completamente sbagliato.Percorso non ciclico a tutti i nodi

+1

Il grafico è ponderato o no? Come può A -> B -> C -> A essere il percorso più breve? A meno che non si possano avere costi negativi A -> B -> C sarà sempre più breve ... – IVlad

+0

Mi spiace - sì, il grafico è ponderato e non orientato. Il motivo per cui può essere più breve è perché potresti avere A, B, C e D in modo tale che ci siano bordi: A <-[3]-> B [3], B <-[5]-> C, A <-[3]-> C, B <-[15]-> D e A <-[5]-> D. In questo caso , un percorso ottimale (non unico) sarebbe A -> B -> C -> A -> D. – Jon

risposta

9

Dall'articolo di Wikipedia su Travelling Salesman Problem:

rimozione della condizione di visitare ogni città "solo una volta" non rimuovere la NP-difficile, dal momento che è facilmente visibile che nel caso planare c'è un tour ottimale che visita ogni città una sola volta (altrimenti, per la disuguaglianza del triangolo, una scorciatoia che salta una visita ripetuta non aumenterebbe la durata del tour).

+0

Wiki ha sbagliato almeno per metà questa volta. Considerare il grafico ponderato 1 -> 2 (1), 1 -> 3 (1), 1 -> 4 (1), 2 -> 3 (1000). Se possiamo visitare una città più di una volta, uno strumento ottimale eviterà il margine 2 -> 3 del costo 1000, quindi possiamo fare per esempio 2 -> 1 -> 3 -> 1 -> 4. O mi manca qualcosa? – IVlad

+0

Bene, questo risponde, allora. – Jon

+5

L'esempio non soddisfa la "disuguaglianza triangolare", che è implicita nella distinzione "caso planare". – Larry

3

Non so quale sia l'etichetta per aggiungere una risposta a una domanda con una risposta già accettata.

Aggiungo questa risposta solo per non dover saltare a un'altra pagina, per non avere a che fare con grafici planari e disuguaglianze triangolari e il fatto che sia semplice e probabilmente più facile da capire.

Hamiltoniana problema Path può essere ridotta a questo:

Supponiamo di avere un algoritmo di tempo polinomiale per risolvere il nostro problema di trovare un minimo di passeggiata di peso che visita tutti i vertici.

Dato un grafico di cui abbiamo bisogno di decidere se esiste o meno un percorso hamiltoniano, lo alimentiamo così com'è, all'algoritmo del problema, impostando i pesi del bordo = 1. Se l'algoritmo restituisce un valore> n- 1, quindi non vi è alcun percorso hamiltoniano nel grafico originale, altrimenti non esiste.

Quindi questo problema è NP-Hard.

+0

Grazie - questo aiuta a spiegare ulteriormente il problema. – Jon

Problemi correlati