Come posso verificare una soluzione al problema del commesso viaggiatore in tempo polinomiale?


31

Quindi, il problema decisionale TSP (Venditore ambulante) è NP completo .

Ma non capisco come posso verificare che una data soluzione a TSP sia effettivamente ottimale in tempo polinomiale, dato che non c'è modo di trovare la soluzione ottimale in tempo polinomiale (perché il problema non è in P)?

Qualcosa che potrebbe aiutarmi a vedere che la verifica può effettivamente essere fatta in tempo polinomiale?

Risposte:


20

Per essere più precisi, noi non sappiamo se TSP è in . È possibile che può essere risolto in tempo polinomiale, anche se forse la convinzione comune è che PN P . Ora, ricorda cosa significa che un problema è -hard e completo, vedi ad esempio la mia risposta qui . Credo che la tua fonte di confusione derivi dalle definizioni: un -hard non è necessariamente in .PPNPNPNPNPNP

Come tu e la pagina Wikipedia che colleghi, il problema decisionale è -completo: dati i costi e un intero , decidi se c'è un tour più economico di . Un modo di vedere il problema è in è vedere che data una soluzione, è facile verificare in tempo polinomiale se la soluzione è più economica di . Come puoi farlo? Segui semplicemente il tour indicato, registra il suo costo totale e infine confronta il costo totale con .NPxxNPxx


"Basta seguire il tour indicato, registrare il costo totale e infine confrontare il costo totale con x". -> Sì, ma ci sono un numero esponenziale di tour da controllare!
Lazer,

2
Ero solo un po 'troppo lento, a quanto pare. ;-)
Niel de Beaudrap il

3
@Lazer No, c'è esattamente un tour da controllare. Ti viene dato un tour e ne registri la lunghezza. Se è inferiore a , visualizza , altrimenti no . x
Juho,

"Decidi se c'è un tour" questo significa sicuramente che non ci viene dato un tour. Cosa mi sto perdendo?
Lazer,

3
@Lazer No, nel problema ti viene dato un grafico ponderato e un costo target. Il certificato è un tour. Per una spiegazione alternativa, vedi la risposta di Niel. Proprio come nell'esempio su Wiki nel caso di SUBSET-SUM, non ci viene dato zero, ma invece ci viene dato un particolare sottoinsieme come certificato.
Juho,

34

Il punto cruciale è che devi considerare il problema decisionale :

Problema del commesso viaggiatore (versione decisionale). Dato un grafico ponderato G e un costo target C , esiste un ciclo hamiltoniano in G il cui peso è al massimo C ?

Per un 'sì' esempio, il certificato è solo un po 'di ciclo hamiltoniano il cui peso è al massimo C . Se riuscissi a risolvere questo problema in modo efficiente, potresti trovare il costo di un tour minimo mediante la ricerca binaria, iniziando con il peso dell'intera rete come limite superiore.


3

Probabilmente stai pensando al problema di determinare se una determinata soluzione al TSP è la soluzione migliore . Tuttavia, non esiste una soluzione polinomiale nota per questo, il che significa che questo problema è in NP-difficile, ma non necessariamente NP-Complete.

Il Problema Decisionale TSP è in realtà quello di determinare se il peso di qualsiasi soluzione in un grafico Gsia al massimo costo C(come spiegato meglio nella risposta di Niel), che è certamente verificabile in tempo polinomiale.


5
Ci scusiamo per la pedanteria, ma TSP non è NP-difficile perché ci sono tour . Ad esempio, l'ordinamento è in P sebbene ci siano n ! possibili permutazioni pure. Gli spazi di ricerca enormi o in rapida crescita non implicano sempre la durezza. O(n!)n!
Juho,

n0<=n1<=...

4
No, puoi ottenere l'ottimale anche senza calcolare le lunghezze di tutti gli altri tour. E sì, è possibile dimostrare che questo è in realtà l'ottimale senza calcolare tutti gli altri tour. Per un esempio consideriamo branch & bound.
Juho,

7
O(n22n)

@Juho buon punto. Ho aggiornato la risposta per non indicare più la forza bruta come unica opzione (solo che non ci sono soluzioni polinomiali).
Casey Kuball,

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.