Этот вопрос о задачах квадратичного программирования с коробочными ограничениями (box-QP), т. Е. Задачах оптимизации вида
- минимизировать учетом x ∈ [ 0 , 1 ] n .
Если бы был положительно полудетерминированным, то все было бы хорошо, выпукло и легко, и мы могли бы решить проблему за полиномиальное время.
С другой стороны, если бы мы имели ограничение целостности , мы могли бы легко решить задачу за время O ( 2 n ⋅ p o l y ( n ) ) грубой силой. Для целей этого вопроса это достаточно быстро.
Но как насчет невыпуклого непрерывного случая? Какой самый быстрый известный алгоритм для общих QP?
Например, можем ли мы решить их за умеренно экспоненциальное время, например, , или сложность наихудшего случая наиболее известных алгоритмов чем-то намного хуже?
Предыстория: у меня есть несколько довольно небольших коробочных QP, которые я действительно хотел бы решить, и я был немного удивлен, увидев, как плохо работают некоторые коммерческие программные пакеты, даже при очень малых значениях . Я начал задаваться вопросом, есть ли объяснение TCS для этого наблюдения.
источник
Ответы:
Оптимальное решение лежит на некотором лице. Итак, мы можем пройти все грани куба и найти все стационарные точки на каждой грани.
To this end, we take the differentiation of the objective function to obtain
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 likeO(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 .
источник