È una regola che i problemi discreti sono NP-difficili e i problemi continui non lo sono?


27

Nella mia educazione informatica, noto sempre più che i problemi più discreti sono NP-completi (almeno), mentre l'ottimizzazione dei problemi continui è quasi sempre facilmente realizzabile, di solito attraverso tecniche di gradiente. Ci sono eccezioni a questo?


14
Ce ne sono sicuramente, molti di loro. Corrispondenza bipartita e generale e tagli minimi sono tre problemi discreti risolvibili classici nel tempo polinomiale. Molti problemi di ottimizzazione continua non convessa sono NP-difficili: trovare il diametro di un set convesso o calcolare la norma iniettiva di un tensore 3-d.
Sasho Nikolov,

6
Ecco un semplice problema di ottimizzazione continua che NP è difficile da risolvere: cstheory.stackexchange.com/questions/14630/…
Jukka Suomela

8
Non sono sicuro di quali problemi hai in mente, ma molti problemi continui che vengono "risolti" con metodi a gradiente non sono realmente "risolti": il metodo trova semplicemente una sorta di ottimale locale.
Suresh Venkat,

1
Tutte le risposte finora sembrano controesempi, ma sarebbe bello vedere alcuni casi in cui questa regola sembra essere vera. Due che vengono in mente sono la programmazione lineare contro la programmazione a numeri interi e l'ottimizzazione convessa rispetto alla massimizzazione sottomodulare.
usul

13
Penso che l'intera cosa discreta vs continua sia un'aringa rossa. Un problema deve avere una struttura molto speciale per essere risolvibile in modo efficiente. Penso che la vera differenza qui sia che nel caso di facili problemi continui la struttura speciale tende ad essere convessità, mentre in caso di problemi discreti facili le cose sembrano più complicate: a volte la struttura è sottomodularità o intersezione matroid, ma spesso non lo è. Questo probabilmente ha più a che fare con il fatto che non capiamo ancora molto bene la matematica discreta.
Sasho Nikolov,

Risposte:


41

Un esempio che mi piace è il problema in cui, dato distinto , decidere se: π - π cos ( un 1 z ) cos ( un 2 z ) ... cos ( a n z )a1,a2,,anN

ππcos(a1z)cos(a2z)cos(anz)dz0

Questo all'inizio sembra un problema continuo per valutare questo integrale, tuttavia è facile dimostrare che questo integrale non è zero se esiste una partizione bilanciata dell'insieme , quindi questo problema integrale è in realtà NP-completo.{a1,,an}

Naturalmente, incoraggio a giocare con alcuni strumenti numerici per convincerti che la maggior parte (se non tutti) i trucchi numerici per valutare questo integrale sono destinati a fallire una volta che diventa abbastanza grande.n


4
Dato che siamo sull'argomento, il primo riferimento a questo problema che posso trovare è in "La natura del calcolo" di Moore e Mertens. Non forniscono alcun riferimento, quindi presumo che lo abbiano inventato o venga dal folklore. Gradirei se qualcuno conoscesse l'origine di questo problema.
Joe Bebel,

Presumibilmente non solo la maggior parte, ma tutte le tecniche numeriche si ridimensionano in modo catastrofico per abbastanza grande ? Poiché il problema è NP-completo, una tecnica numerica accurata per valutare quell'integrale scalato polinomialmente in n sarebbe sufficiente per mostrare P = NP. nn
EP

1
A destra, un algoritmo che valuta sempre correttamente l'integrale nel tempo polinomiale in sarebbe sufficiente per mostrare P = NP. D'altra parte, non posso escludere al 100% la possibilità di alcune tecniche numeriche che non sono a conoscenza del fatto che in qualche modo stiano andando bene su istanze specifiche di questo integrale, anche quando n è grande, proprio come i solutori SAT sono spesso in grado trovare assegnazioni soddisfacenti per alcune formule con migliaia di variabili, anche se le prestazioni nel caso peggiore sono cattive. Quindi, anche se dubito che esistano tali metodi, ho coperto un po 'la mia risposta. nn
Joe Bebel,

3
Apparentemente la fonte originale di questo problema è: David Plaisted, Alcuni problemi di divisibilità polinomiale e intero sono NP-difficili. SIAM Journal on Computing, 7 (4): 458–464, 1978. Il riferimento è nella parte posteriore di Moore e Mertens, ma non nel corpo del testo stesso.
Joe Bebel,

26

Ci sono molti problemi continui nella forma "verifica se questo input combinatorio può essere realizzato come una struttura geometrica" ​​che sono completi per la teoria esistenziale dei reali , un analogo continuo di NP. In particolare, ciò implica che questi problemi sono NP-difficili piuttosto che polinomialmente risolvibili. Gli esempi includono verificare se un dato grafico è un grafico di distanza unitaria, se un determinato grafico può essere tracciato nel piano con bordi di segmento di linea retta e al massimo un determinato numero di incroci, o se una data disposizione di pseudolina può essere allungata per formare una linea preparativi.

Ci sono altri problemi continui che sono ancora più difficili: ad esempio, trovare un percorso più breve tra gli ostacoli poliedrici in 3d è completo di PSPACE (Canny & Reif, FOCS'87).


1
"Il percorso più breve tra gli ostacoli poliedrici" è continuo solo nel nome, no? Possiamo pensare allo spazio di configurazione come l'unione di un numero di pezzi discreti corrispondenti a percorsi che "abbracciano" un determinato insieme di ostacoli; quindi l'ottimizzazione locale all'interno di ogni dato pezzo (cioè all'interno di una determinata serie di ostacoli) è semplice ma decidere quale dei percorsi ha la migliore distanza a livello globale è la parte difficile del problema.
Steven Stadnicki,

13

Anche se questo non risponde esattamente alla tua domanda originale, è un esempio (congetturale) di una sorta di contrappunto filosofico: un problema in cui la presentazione è discreta ma tutta la durezza deriva dall'aspetto "continuo" del problema.

UN={un'1,un'2,...,un'm}B={B1,B2,...,Bn}Σio=1mun'ioΣj=1nBj siadifficile, si sospetta ampiamente che possa essere NP-difficile e in realtà potrebbe essere al di fuori di NP (ci sono, come notato nei commenti, ottime ragioni per ritenere che non sia NP-completo); l'unico contenimento conosciuto fino ad oggi è diversi livelli più in alto nella gerarchia polinomiale. Ovviamente la presentazione di questo problema è la più discreta possibile - una serie di numeri interi e una domanda sì / no su di essi - ma la sfida si pone perché mentre calcolare le radici quadrate con una precisione specificata è un problema facile, potrebbe essere necessario calcolarle ad alta precisione (potenzialmente superpolinomiale) per risolvere la disuguaglianza in un modo o nell'altro. Questo è un problema "discreto" che si manifesta in un numero sorprendente di contesti di ottimizzazione e contribuisce alla propria complessità.


4
Anche questo esempio mi piace molto, anche se vale la pena sottolineare che ci sono forti ragioni per credere che non sia NP-completo; vedi ( cstheory.stackexchange.com/a/4010/8985 )
Joe Bebel

@JoeBebel Ottimo punto - ho leggermente rivisto il mio linguaggio per riflettere quello. Grazie!
Steven Stadnicki,

6

I problemi discreti in genere tendono ad essere più difficili (ad esempio LP vs. ILP), ma non è la discrezione in sé che è il problema ... è come i vincoli influenzano il modo in cui puoi cercare nel tuo dominio. Ad esempio, potresti pensare che l'ottimizzazione di un polinomio sia qualcosa che puoi fare in modo efficiente, ma decidere la convessità dei quartici (polinomi di grado 4) è NP-difficile .

Ciò significa che anche se in qualche modo hai già l'ottimale, semplicemente dimostrare che sei all'ottimo è già NP-difficile.


Penso che anche la discrezione sia parte del problema. Supponiamo ad esempio che avresti una variante ILP di LP. Ad esempio, puoi mirare a trovare la soluzione per la variante LP, ma poi ci sono ancora 2^n" vicini interessanti " che devi cercare.
Willem Van Onsem,

@CommuSoft: Non proprio ... la discrezione non è il problema. Scopri il problema del percorso più breve , che è un problema discreto ma che tuttavia si riduce a un caso speciale di programmazione lineare integrale , che è risolvibile nel tempo P (da non confondere con la programmazione lineare intera , che è ovviamente NP-difficile).
Mehrdad,

non è davvero una sorpresa: poiché la programmazione lineare intera è NP-completa, ogni problema in P (che può essere risolto in poli-tempo), può essere trasformato in poli-tempo in un problema ILP.
Willem Van Onsem,

@CommuSoft: hai letto completamente il commento? Non sto parlando di ILP.
Mehrdad,

scusa, leggi in fretta. Ma ciò è dovuto al fatto che i vincoli sono totalmente unimodulari , quindi solo per la "grazia" di vincoli ben strutturati, tali problemi sono facilmente risolvibili. In generale, la discretizzazione è un aspetto problematico nei problemi.
Willem Van Onsem,

5

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 .

ΣioP

Considerando che l'ottimizzazione dei problemi continui è quasi sempre facilmente raggiungibile.

Un popolare problema continuo che è NP-difficile è la programmazione quadratica .

X tale che:

XTQX2+cTX

UNXB

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


2
Il paragrafo delle definizioni è in effetti un po 'confuso. Lo zaino è un problema di ottimizzazione NP. Non è vero che "non è noto" se la versione di ottimizzazione è in NP: non lo è, semplicemente per definizione. Inoltre, non credo che conosciamo alcun problema che è NP-completo subordinato a NP non uguale a PIe 3-SAT sarà NP-completo anche se P = NP (in realtà se P = NP ogni problema in P è NP completo).
Sasho Nikolov,

@ AndrásSalamon: punto preso. Ho rimosso quella parte. Era davvero un po 'sciatto.
Willem Van Onsem,

@ AndrásSalamon: evidentemente è vero. Quindi dice: " Dato che P non è uguale a NP, questi problemi non possono quindi essere NP-completi. "
Willem Van Onsem

@ AndrásSalamon: Beh P=NP, se ogni problema in NP-complete è per definizione parte di NP e quindi per estensione P , ora P significa che esiste un algoritmo polinomiale. Il punto è, penso che la trasformazione non abbia importanza, perché per ogni linguaggio in P deve esistere un algoritmo polinomiale. Non importa se si prende la trasformazione (al massimo polinomiale). Resta polinomiale, quindi in P . In altre parole, poiché l'elemento originale è in P , è possibile prendere gratuitamente ogni trasformazione poli-tempo (senza comportare una classe di complessità maggiore).
Willem Van Onsem,

2
Lo zaino come problema di ottimizzazione non è certamente completo per NP, perché non è un problema decisionale, quindi non in NP. In ogni caso, capisco quello che stai dicendo, ma questo è il tipo di dettagli di livello universitario che penso dovrebbero essere dati per scontati su un forum di livello di ricerca come CStheory @ SE, proprio come non mi aspetto di vedere una spiegazione su come la convergenza in probabilità non è la stessa della convergenza quasi certa su Mathoverflow.
Sasho Nikolov,
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.