Algoritmi esatti per la programmazione quadratica non convessa


13

Questa domanda riguarda problemi di programmazione quadratica con vincoli di riquadro (box-QP), ovvero problemi di ottimizzazione del modulo

  • minimizza f(x)=xTAx+cTx soggetto a x[0,1]n .

Se fosse semi-definito positivo, allora tutto sarebbe bello, convesso e facile, e potremmo risolvere il problema in tempo polinomiale.A

D'altra parte, se avessimo il vincolo di integralità , potremmo facilmente risolvere il problema nel tempo per forza bruta. Ai fini di questa domanda, questo è ragionevolmente veloce.x{0,1}nO(2npoly(n))

Ma che dire del caso continuo non convesso? Qual è l'algoritmo più veloce conosciuto per i QP box generali?

Ad esempio, possiamo risolverli in un tempo moderatamente esponenziale, ad esempio o la complessità peggiore degli algoritmi più noti è qualcosa di molto peggio?O(3npoly(n))


Contesto: ho alcuni QP box abbastanza piccoli che vorrei davvero risolvere, e sono rimasto un po 'sorpreso di vedere come scarseggiano alcuni pacchetti software commerciali, anche per valori molto piccoli di . Ho iniziato a chiedermi se esiste una spiegazione TCS per questa osservazione.n


1
Riesci a risolvere esattamente anche per PSD ? La soluzione può essere irrazionale, no? Se sei disposto a perdere l'additivo forse puoi ottenere un algoritmo di tempo esponenziale facendo una ricerca della forza bruta su una griglia sufficientemente fine. Solo un vago suggerimento. ϵAϵ
Chandra Chekuri,

Il rovescio della medaglia è che la "base" dell'esponente sarebbe qualcosa come , ma forse l'ingegnerizzazione della griglia intelligente può aiutare per "piccolo"n1/ϵn
Suresh Venkat il

@ChandraChekuri: le approssimazioni sono perfettamente valide se si può ottenere, ad esempio, . Tuttavia, non è possibile forzare brutalmente su una griglia così fine. ϵ=109
Jukka Suomela,

Eliminando i quantificatori su campi chiusi reali, è sempre possibile risolvere esattamente questi sistemi.

2
Se è consentito, è possibile ottimizzare la funzione su ciascuna delle facce del cubo semplicemente scrivendo i criteri di ottimalità del primo ordine. O(3n)
Yoshio Okamoto,

Risposte:


12

Una soluzione ottimale sta in qualche modo. Quindi, possiamo attraversare tutte le facce del cubo e trovare tutti i punti fissi su ciascuna delle facce.

Ecco una procedura più concreta. Una faccia del cubo può essere caratterizzata da due insiemi di indici disgiunti e I 1I0I1iI0xi=0iI1xi=1x~x

x~A~x~+c~x~+d,

A~c~d0<x~<1

A tal fine, prendiamo la differenziazione della funzione obiettivo da ottenere

12A~x~+c~=0.

Risolvere questo sistema di equazioni lineari ti dà i punti fermi, i candidati per soluzioni ottimali. Li esaminiamo tutti, controlliamo la condizione e scegliamo uno con il valore obiettivo minimo.

O(3npoly(n))n3nn


1
f

@cody: Questo perché ogni politopo è l'unione disgiunta delle sue facce.
Yoshio Okamoto,

f

@cody: la proprietà è ancora valida, ma dobbiamo risolvere un'equazione algebrica di grado più di una. Temo che questo non sia banale per i casi multivariati.
Yoshio Okamoto,
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.