Algoritmi di tempo esponenziale esatto per programmi 0-1 con dati non negativi


9

Esistono algoritmi noti per il seguente problema che battono l'algoritmo ingenuo?

Input: matrice e vettori , dove tutte le voci di sono numeri interi non negativi.b , c A , b , cAb,cA,b,c

Output: una soluzione ottimale da a .xmax{cTx:Axb,x{0,1}n}

Questa domanda è una versione raffinata della mia precedente domanda Algoritmi di tempo esponenziale esatto per la programmazione 0-1 .

Risposte:


5

se il numero di coefficienti diversi da zero in A è lineare in n , esiste un algoritmo che risolve questo problema in meno di 2n volta.

Ecco come funziona. Usiamo la connessione standard tra un problema di ottimizzazione e il relativo problema decisionale. Per verificare se esiste una soluzione cui e , formeremo un problema decisionale: aggiungeremo il vincolo alla matrice e testeremo se esiste una tale che e . In particolare, formeremo una nuova matrice prendendo e aggiungendo una riga aggiuntiva contenente , e formeremo prendendoA x b c T x α c T x α A x A x b - c T x - α A A - c T b b - α x { 0 , 1 } n A x b xAxbcTxαcTxαAxAxbcTxαAAcTbbe adiacente ad una riga aggiuntiva con . Otteniamo un problema decisionale: esiste tale che ? La risposta a questo problema decisionale ci dice se esiste una soluzione al problema di ottimizzazione originale di valore o superiore. Inoltre, come spiegato nella risposta alla domanda precedente , questo problema decisionale può essere risolto in meno di volta, se il numero di coefficienti diversi da zero in è lineare in (e quindi se il numero di non- i coefficienti zero in è lineare in ). Ora possiamo usare la ricerca binaria suαx{0,1}nAxb2 n A n A nα2nAnAn2 nαper risolvere il problema di ottimizzazione in meno di volta.2n

I miei ringraziamenti ad Austin Buchanan e Stefan Schneider per l'aiuto nel debug di una versione precedente di questa risposta.


Puoi dare una risposta più forte: come "c'è un algoritmo " o "un algoritmo più veloce di confuterebbe ..."? O ( 2 n )O(2n/2)O(2n)
Austin Buchanan,

@AustinBuchanan, se il numero di dimensioni di è abbastanza piccolo, esiste un algoritmo , come documentato nella mia risposta all'altra domanda . Questo è il meglio che io sappia fare; Non so fare di meglio. Forse altri saranno in grado di fornire una risposta più forte! O ( 2 n / 2 )BO*(2n/2)
DW

O ( 1 )O*(2n/2) tempo ogni volta che il numero di vincoli è ? O(1)
Austin Buchanan,

4

Se consideriamo il problema di minimizzazione , la seguente riduzione mostra che un algoritmo in esecuzione nel tempo per confuterebbe SETH. Una riformulazione dimostra lo stesso risultato per il problema previsto (la versione di massimizzazione).O ( 2 δ n / 2 ) δ < 1miny{cTy:Ayb,y{0,1}n}O(2δn/2)δ<1

Data un'istanza di CNF-SAT con variabili , formula un IP 0-1 con due variabili per ogni variabile nell'istanza SAT. Come al solito, la clausola sarebbe rappresentata come . Quindi per ogni variabile nell'istanza SAT, aggiungi un vincolo . L'obiettivo è ridurre al minimo . L'obiettivo dell'IP sarà se l'istanza SAT è soddisfacente. { x j } n j = 1 y j , ¯ y j x j ( x 1¯ x 2x 3 ) y 1 + ¯ y 2 + y 31 x j y j + ¯ y j1 n j =Φ=io=1mCio{Xj}j=1nyj,y¯jXj(X1X¯2X3)y1+y¯2+y31Xjyj+y¯j1nΣj=1n(yj+y¯j)n

Grazie a Stefan Schneider per la correzione.

Aggiornamento: in On Problems Hard as CNF-Sat gli autori ipotizzano che SET COVER non possa essere risolto nel tempo , , dove riferisce al numero di set. Se vero, questo mostrerebbe che il mio problema non può essere risolto anche nel tempo .δ < 1 n O ( 2 δ n )O(2δn)δ<1nO(2δn)

Aggiornamento 2. Per quanto ne so, supponendo SETH, il mio problema non può essere risolto nel tempo , poiché è stato dimostrato che non è possibile colpire Set colpire (con un set di terra di dimensione ) risolto nel tempo .n O ( 2 δ n )O(2δn)nO(2δn)


3
Dato che raddoppi il numero di variabili, penso che ciò mostri solo che un algoritmo per questo problema con il runtime contraddirebbe SETH. O(2δn/2)
Stefan Schneider,

Aspetta ... gli autori di On Problems Hard as CNF-SAT affermano che "per ogni , un algoritmo per colpire Set violerebbe SETH". Non funziona? O ( 2 ϵ n ) ε<1O(2εn)...
Austin Buchanan,
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.