Algoritmos exatos para programação quadrática não convexa


13

Esta questão é sobre problemas de programação quadrática com restrições de caixa (box-QP), ou seja, problemas de otimização do formulário

  • minimizar sujeito a .f(x)=xTAx+cTxx[0,1]n

Se fosse semi-definido positivo, tudo seria agradável, convexo e fácil, e poderíamos resolver o problema em tempo polinomial.A

Por outro lado, se tivéssemos a restrição de integralidade , poderíamos resolver facilmente o problema no tempo por força bruta. Para os fins desta pergunta, isso é razoavelmente rápido.x{0,1}nO(2npoly(n))

Mas e o caso contínuo não convexo? Qual é o algoritmo mais rápido conhecido para QPs gerais em caixa?

Por exemplo, podemos resolvê-los em tempo moderadamente exponencial, por exemplo, , ou a pior complexidade dos algoritmos mais conhecidos é algo muito pior?O(3npoly(n))


Antecedentes: Eu tenho alguns QPs de caixa bastante pequenos que realmente gostaria de resolver e fiquei um pouco surpreso ao ver o desempenho de alguns pacotes de software comercial, mesmo para valores muito pequenos de . Comecei a me perguntar se existe uma explicação do TCS para essa observação.n


1
Você pode resolver exatamente mesmo para o PSD ? A solução pode ser irracional, não? Se você estiver disposto a perder aditivo, talvez seja possível obter um algoritmo de tempo exponencial fazendo uma pesquisa de força bruta em uma grade suficientemente fina. Apenas uma sugestão vaga. Aϵ
Chandra Chekuri

Desvantagem é que a "base" do expoente seria algo como , mas talvez engenharia grade inteligente pode ajudar para "pequeno"1/ϵn
Suresh Venkat

@ChandraChekuri: As aproximações são perfeitas se você conseguir, por exemplo, . No entanto, forçar brutalmente uma grade tão fina não é viável. ϵ=109
Jukka Suomela

Pela eliminação do quantificador em campos fechados reais, sempre é possível resolver exatamente esses sistemas.

2
Se for permitido, você poderá otimizar a função em cada uma das faces do cubo apenas anotando os critérios de otimização de primeira ordem. O(3n)
Yoshio Okamoto

Respostas:


12

Uma solução ideal está em algum rosto. Assim, podemos percorrer todas as faces do cubo e encontrar todos os pontos estacionários em cada uma das faces.

Aqui está um procedimento mais concreto. Uma face do cubo pode ser caracterizada por dois conjuntos de índices disjuntosI0I1iI0xi=0iI1xi=1x~x

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

A~c~d0<x~<1

Para esse fim, adotamos a diferenciação da função objetivo para obter

12A~x~+c~=0.

A solução desse sistema de equações lineares fornece os pontos estacionários, os candidatos a soluções ideais. Examinamos todos eles, verificamos a condição e escolhemos um com o valor objetivo mínimo.

O(3npoly(n))n3nn


1
f

@ cody: Isso porque todo politopo é a união disjunta de seus rostos.
Yoshio Okamoto

f

@ codigo: A propriedade ainda é válida, mas precisamos resolver uma equação algébrica de grau mais de um. Receio que isso não seja trivial para casos multivariados.
Yoshio Okamoto
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.