Spazio euclideo Grafico non connesso completamente connesso: percorso più breve verso tutti i nodi

1

Quindi questa potrebbe essere una domanda nata dalla mia incapacità di esprimere correttamente le mie intenzioni su Google.

In un grafo non direzionale completamente connesso tale che qualsiasi tre punti possa essere correttamente rappresentato in un triangolo nella geometria euclidea, sembrerebbe che un primo algoritmo avido che sceglie il bordo più corto troverà il percorso più breve da un punto di partenza per visitare tutti gli altri punti.

Non riesco a trovare una condizione in cui ciò sia falso, ma uno dei miei vicini (un altro programmatore) insiste che ho torto, anche se non riesco ancora a trovare una condizione in cui io abbia torto.

Modifica:

Non sono sicuro che questa domanda sia un'istanza del TSP generale, che so essere difficile da NP, o se penso che tutti i vincoli sui grafici consentiti avrebbero influito sulla difficoltà.

Da wiki: TSP è the shortest possible route that visits each city exactly once and returns to the origin city . In questo problema non è necessario tornare alla città di origine. Inoltre, non ci interessa selezionare la città di origine ottimale poiché la città di origine è impostata nel nostro esempio specifico di cui stavamo discutendo.

Inoltre, il grafico di questo problema deve essere conforme ai vincoli delle distanze euclidee in 2 o 3 dimensioni, quindi tre nodi grafici come sotto (la chiave è il nodo, val sono le distanze tra altri nodi) non potrebbero esistere poiché il bordo da A a B renderebbe i bordi da C a A e B non fattibili.

A:{B:80, C:10}, B:{A:80, C:5}, C:{A:10, B:5}

Anche per connessione completa intendevo che tutti i nodi hanno dei bordi tra loro e ogni altro nodo.

Ci scusiamo se la descrizione è confusa, ma mi chiedo se, data la totalità di questi vincoli, diventi risolvibile in un modo più semplicistico.

    
posta BSpiros 23.03.2014 - 09:20
fonte

2 risposte

3

(Modifica: Mi dispiace, mi mancava il fatto che volevi visitare tutti i nodi del grafico, ignorare la mia prima risposta, poiché pensavo che volessi trovare un percorso dal punto A al punto B, piuttosto che un percorso attraverso ogni punto. )

Il nome del problema che stai cercando di risolvere è Problemi di venditore ambulante .

Se intendi con "completamente connesso" un grafico che non è disconnesso, allora è la versione del piano TSP di Euclidean, ed è NP-difficile (sebbene l'algoritmo che suggerisci sia in realtà un buon euristico).

Se prendi un grafico che è un mucchio di quadrati, come la carta millimetrata, scegliere il margine più piccolo darebbe molte cravatte, e ottenere un percorso ottimale dall'algoritmo che daresti comporterebbe un sacco di congetture fortunate. Questo sarebbe vero anche se stai parlando di un grafico completo (ogni nodo connesso ad ogni altro nodo).

Modifica: poiché è stato specificato un punto di partenza fisso, ho un controesempio. Prendi un triangolo con i nodi A, B e C. Edge AC > bordo BC > bordo AB. Inizia da A e otteniamo AB, BC. Inizia da B e otteniamo BA, AC. Si tratta di percorsi diversi con lunghezze diverse, quindi l'algoritmo fornito non sempre darà un percorso ottimale.

Il nome per ciò che intendevi per "completamente connesso" è "completo". Da wikipedia: "L'esigenza di tornare alla città di partenza non modifica la complessità computazionale del problema, vedi il problema del percorso hamiltoniano."

    
risposta data 23.03.2014 - 09:43
fonte
0

Esempio di contatore semplice. Mettiamo tutti i punti sull'asse X. I punti sono a -1, 0.1, 1 e 2. Il collegamento più corto in questo grafico è da 0.1 a 1. L'algoritmo greedy prende questo percorso, quindi procede avidamente a 1, quindi a 2, quindi è costretto a prendere il più lungo possibile collegamento per raggiungere -1. La lunghezza totale è 4.9.

Il percorso più breve è o per iniziare a una delle estremità (lunghezza 3), o se iniziamo ancora a 0.1 allora dovremmo andare a -1 prima, poi 1 poi 2, per una lunghezza di 4.1.

Se vuoi che tre punti formino triangoli appropriati, puoi assegnare a ciascun punto un valore Y casuale nel ballpark di 1/1000 °. Ciò non cambierà significativamente la lunghezza o il percorso.

    
risposta data 01.06.2016 - 03:15
fonte

Leggi altre domande sui tag