Точные алгоритмы для невыпуклого квадратичного программирования

13

Этот вопрос о задачах квадратичного программирования с коробочными ограничениями (box-QP), т. Е. Задачах оптимизации вида

  • минимизировать учетом x[ 0 , 1 ] n .f(x)=xTAx+cTxx[0,1]n

Если бы был положительно полудетерминированным, то все было бы хорошо, выпукло и легко, и мы могли бы решить проблему за полиномиальное время.A

С другой стороны, если бы мы имели ограничение целостности , мы могли бы легко решить задачу за время O ( 2 np o l y ( n ) ) грубой силой. Для целей этого вопроса это достаточно быстро.x{0,1}nO(2npoly(n))

Но как насчет невыпуклого непрерывного случая? Какой самый быстрый известный алгоритм для общих QP?

Например, можем ли мы решить их за умеренно экспоненциальное время, например, , или сложность наихудшего случая наиболее известных алгоритмов чем-то намного хуже?O(3npoly(n))


Предыстория: у меня есть несколько довольно небольших коробочных QP, которые я действительно хотел бы решить, и я был немного удивлен, увидев, как плохо работают некоторые коммерческие программные пакеты, даже при очень малых значениях . Я начал задаваться вопросом, есть ли объяснение TCS для этого наблюдения.n

Юкка Суомела
источник
1
Можете ли вы решить именно для PSD ? Решение может быть иррациональным, нет? Если вы готовы потерять аддитив, возможно, можно получить экспоненциальный алгоритм времени, выполнив поиск методом грубой силы по достаточно точной сетке. Просто смутное предложение. Aϵ
Чандра Чекури
Недостатком является то, что «основание» показателя будет примерно равно , но, возможно, умное построение сетки может помочь «маленькому» n1/ϵn
Суреш Венкат
@ChandraChekuri: Аппроксимации отлично подходят, если вы можете достичь, например, . Однако перебор по такой тонкой сетке невозможен. ϵ=109
Юкка Суомела
Исключением кванторов на реальных замкнутых полях всегда можно точно решить эти системы.
2
Если разрешено, вы можете оптимизировать функцию на каждой из граней куба, просто записав критерии оптимальности первого порядка. O(3n)
Ёсио Окамото

Ответы:

12

Оптимальное решение лежит на некотором лице. Итак, мы можем пройти все грани куба и найти все стационарные точки на каждой грани.

I0I1iI0xi=0iI1xi=1x~x

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

A~c~d0<x~<1.

To this end, we take the differentiation of the objective function to obtain

12A~x~+c~=0.

Solving this system of linear equations gives you the stationary points, the candidates for optimal solutions. We go through all of them, check the condition, and choose one with the minimum objective value.

The overall time complexity is something like O(3npoly(n)) since the number of faces of the n-cube is 3n and a system of linear equations can be solved in polynomial time. The space complexity is polynomial in n.

Yoshio Okamoto
источник
1
Why does an optimal solution lie on some face with a non-convex f?
cody
@cody: That's because every polytope is the disjoint union of its faces.
Yoshio Okamoto
What if f is cubic, or quartic? Does this property still hold?
cody
@cody: The property still holds, but we need to solve an algebraic equation of degree more than one. I'm afraid this is not trivial for multivariate cases.
Yoshio Okamoto