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(2n⋅poly(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(3n⋅poly(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. ϵ=10−9
— 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 1I0I1i∈I0xi=0i∈I1xi=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.