Anche se per alcuni problemi popolari, è vero, penso che entrambi i presupposti, a seconda di ciò che si definisce un problema di ottimizzazione, non siano veri.
Innanzitutto alcune definizioni: la maggior parte dei problemi di ottimizzazione non fanno parte di NP . Ad esempio per il problema dello zaino : non si può sfruttare il non determinismo per costruire la borsa più preziosa, semplice perché i diversi rami non deterministici non hanno memoria condivisa. NP è anche definito come "polinomialmente verificabile" (verifica di un certificato) [1, p. 34]
. In questo caso, ad esempio, il certificato è un sacchetto : una stringa di bit in cui, se è impostato l' i -bit, implica che l' i -elemento è parte del sacchetto. Puoi davvero controllare in tempo polinomiale se tale borsa è più preziosa di una determinata soglia (questa è la variante di decisione), ma non è possibile - per quanto ne sappiamo - sulla base di una singola borsa (un numero polinomiale di borse), decidere se quella borsa è la più preziosa di tutte le borse possibili. Questa è una differenza vitale tra ad esempio NP ed EXP : in EXP , puoi elencare tutte le borse possibili e fare la contabilità su quale borsa è la migliore.
La variante decisionale dei problemi di ottimizzazione è in alcuni casi parte di NP , è necessario fare una chiara distinzione tra il sapore di massimizzazione e il sapore di decisione . Nell'aspetto decisionale, la domanda è: " Dato un problema di ottimizzazione e un limite di utilità, esiste una soluzione con un'utilità maggiore o uguale a quel limite " (o leggermente modificata per un problema di minimizzazione).
Suppongo inoltre che da NP si intende la (ipotetica) parte di NP che non fa parte della P . Se P = NP , ovviamente NP-complete esiste ancora, ma sarà uguale a P (coincide solo con P per alcune nozioni di riduzione, come le riduzioni polinomiali di molti volte di @ AndrásSalamon), che non è poi così impressionante ( e ridurrebbe il " gap " che stai affermando nella tua domanda).
Noto sempre più che i problemi più discreti sono NP-completi.
Ora che l'abbiamo risolto: ci sono molti problemi di ottimizzazione che si trovano in P : problema del cammino minimo , massimo problema di flusso (per capacità integrali), albero di copertura minimo e il massimo di corrispondenza . Sebbene questi problemi possano sembrare "banali da risolvere" per te, si tratta comunque di problemi di ottimizzazione e in molti casi la costruzione (e la dimostrazione di correttezza) non è così semplice. Quindi il reclamo non tiene tutti i problemi discreti sono NP-completi. Dato che P non è uguale a NP , questi problemi non possono quindi essere NP-completi .
ΣPio
Considerando che l'ottimizzazione dei problemi continui è quasi sempre facilmente raggiungibile.
Un popolare problema continuo che è NP-difficile è la programmazione quadratica .
X⃗ tale che:
X⃗ T⋅ Q ⋅ x⃗ 2+ c⃗ T⋅ x⃗
A ⋅ x⃗ ≤ b⃗
In realtà la programmazione lineare è stata a lungo considerata anche NP-difficile , ma con euristica molto performante (il metodo Simplex ). Algoritmo di karmarkar è comunque in P .
Dal momento in cui il problema dell'ottimizzazione si occupa di oggetti non convessi, in generale sarà difficile - se non impossibile - trovare un algoritmo efficiente.
Bibliografia
[1]
Complessità computazionale, un approccio moderno , Sanjeev Arora e Boaz Barak