Problemi di ottimizzazione "NP-complete"


24

Sono un po 'confuso dalla terminologia che ho riscontrato per quanto riguarda la complessità dei problemi di ottimizzazione. In una classe di algoritmi, ho avuto il grande problema di parsimonia descritto come NP-completo. Tuttavia, non sono esattamente sicuro di cosa significhi il termine NP-completo nel contesto di un problema di ottimizzazione. Significa solo che il problema decisionale corrispondente è NP-completo? Ciò significa che il problema dell'ottimizzazione potrebbe in effetti essere più difficile (forse al di fuori di NP)?

In particolare, sono preoccupato per il fatto che mentre un problema decisionale completo NP è verificabile nel tempo polinomiale, una soluzione a un corrispondente problema di ottimizzazione non sembra essere verificabile nel tempo polinomiale. Ciò significa che il problema non è realmente in NP, o la verificabilità del tempo polinomiale è solo una caratteristica dei problemi di decisione NP?


3
controlla questa domanda
Ran G.


1
@RanG., Non sono sicuro che si tratti di un duplicato esatto .
Kaveh,

@Kaveh hai ragione, ma l'ottima risposta di uli risponde pienamente a questa domanda.
Ran G.

@RanG., Ci possono essere più di una grande risposta. :)
Kaveh,

Risposte:


13

Un tentativo di risposta parziale:

I problemi di decisione erano già stati studiati per un po 'di tempo prima che i problemi di ottimizzazione apparissero , nel senso che sono trattati dalla prospettiva degli algoritmi di approssimazione.

Devi stare attento quando riporti i concetti da problemi di decisione. Può essere fatto e può essere data una nozione precisa di completezza NP per problemi di ottimizzazione. Guarda questa risposta . Ovviamente è diverso dalla completezza NP per i problemi di decisione, ma si basa sulle stesse idee (riduzioni).

Se ti trovi di fronte a un problema di ottimizzazione che non consente una verifica con una soluzione fattibile, non c'è molto che puoi fare. Ecco perché di solito si presume che:

  • Possiamo verificare in modo efficiente se l'input è effettivamente un'istanza valida del nostro problema di ottimizzazione.
  • La dimensione delle soluzioni possibili è limitata polinomialmente dalla dimensione degli input.
  • Siamo in grado di verificare in modo efficiente se una soluzione è una soluzione fattibile dell'input.
  • Il valore di una soluzione può essere determinato in modo efficiente.

Altrimenti, non c'è molto che possiamo sperare di ottenere.

NPNPNP

Se vuoi verificare che una soluzione non sia solo fattibile, ma anche ottimale, direi che è difficile come risolvere il problema di ottimizzazione originale perché, al fine di confutare una data soluzione fattibile e possibilmente ottimale come non ottimale, tu devi dare una soluzione migliore, che potrebbe richiedere di trovare la vera soluzione ottimale.

Ciò non significa che il problema dell'ottimizzazione sia più difficile. Vedi questa risposta , che dipende ovviamente dalle definizioni precise.


Potete per favore fornire un articolo o un riferimento a un libro, dove posso trovare ulteriori informazioni su una definizione, una riduzione, ecc. Precise per la durezza NP per problemi di ottimizzazione? Finora non sono riuscito a capirne uno. Sarebbe molto interessante per me. Grazie.
John Threepwood,


-1

La ragione per cui la maggior parte dei problemi di ottimizzazione può essere classificata come P, NP, NP-complete, ecc., Sono le condizioni di Kuhn-Tucker. Parlerò in termini di problemi di programmazione lineare, ma il KTC si applica in molti altri problemi di ottimizzazione. Per ogni problema di ottimizzazione esiste un doppio. Se l'obiettivo del problema originale è massimizzare alcune funzioni, allora il doppio (di solito) ha una funzione da minimizzare. * Le soluzioni possibili, ma non ottimali, al problema originale saranno impossibili / non valide per il doppio problema, e vice -versa. Se, e solo se, una soluzione è fattibile per primario e doppio, è una soluzione ottimale per entrambi. (Tecnicamente, può essere una delle tante soluzioni ottimali che danno lo stesso risultato.)

Quindi trovare una soluzione ottimale di un problema di ottimizzazione equivale a trovare una soluzione valida per il primario e il doppio. È possibile utilizzare algoritmi di ottimizzazione per trovare quella soluzione, ma l'intero processo è una prova dell'esistenza.

  • Se vuoi passare dalla minimizzazione alla massimizzazione, moltiplica la funzione obiettivo per -1.

3
Non vedo come le condizioni KKT si relazionano con la durezza NP, potresti approfondire questo?
Lucertola discreta

2
Non vedo davvero come questo risponda alla domanda. P , NP , ecc. Sono classi di problemi decisionali. I problemi di ottimizzazione non sono problemi di decisione, quindi per definizione non rientrano in nessuna di queste classi .
David Richerby,

2
Non vedo nemmeno come questo risponda alla domanda: questo è un commento interessante, ma sembra rispondere a una domanda diversa da quella che è stata posta. La domanda chiede cosa significhi dire che un problema di ottimizzazione è NP-completo e se si può dire che i problemi di ottimizzazione si trovano in NP, dato che non sono un problema decisionale. Questo descrive come, dato un problema di ottimizzazione (in cui le soluzioni non sono verificabili), spesso possiamo costruire un problema corrispondente in cui le soluzioni possono essere verificate. Roba molto interessante, ma non sono sicuro che risponda alla domanda che è stata posta.
DW

1
@DW Il motivo principale per cui penso che questo non risponda davvero alla domanda è che, oltre a quanto già menzionato, KKT limita l'impostazione all'ottimizzazione matematica delle funzioni "regolari" (ad esempio continue, differenziabili, convesse). Questa impostazione non è applicabile alla maggior parte dei problemi NP-difficili.
Lucertola discreta
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.