Максимизация выпуклой функции (минимизация вогнутой функции) с линейным ограничением

10

Проблема в том, что

maxf(x) subject to Ax=b

где f(x)=i=1N1+xi4(i=1Nxi2)2 ,
x=[x1,x2,...,xN]TRN×1 и
ARM×N

Мы можем видеть, что f (.) Имеетf(.) вид 1+y2 и является выпуклой функцией.
Также можно показать, что f (.) Ограничена в [2,2] .

Это выпуклая задача минимизации с линейным ограничением.

Какие стандартные алгоритмы используются для решения подобных проблем?

Используя специфику проблемы, возможно ли ее решить с помощью какого-либо стандартного программного обеспечения / пакета оптимизации?

Sooraj
источник
Вы пытались использовать множители Лагранжа, чтобы увидеть, превращает ли это их в нечто более податливое?
Натаниэль

Ответы:

7

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

По сути, вам нужно минимизировать вогнутую функцию над выпуклым многогранником (или выпуклым многогранником). Быстрый поиск выявил несколько релевантных источников (я смутно помню, как один из них упоминался, когда я посещал урок по нелинейному программированию более четырех лет назад):

Фальк Дж. Э. и Хоффман К.Л. Минимизация вогнутой формы с помощью коллапсирующих многогранников , Operations Research, 1986, Vol. 34, № 6, с. 919-929.

Хоффман К.Л. Метод минимизации глобально выпуклых функций над выпуклыми множествами. Математическое программирование, 1981, том. 20, с. 22-31.

Бенсон, HP . Конечный алгоритм вогнутой минимизации над многогранником , Naval Research Logistics, 1985, Vol. 32, № 1, с. 165-177.

Куча ссылок на веб-сайте Кристофа Мейера .

Есть и другие источники, если вы Google «минимизируете вогнутую функцию над многогранником» (или заменяете «многогранник» на «многогранник»).

Джефф Оксберри
источник
2

Несколько лет назад я посетил лекцию по оптимизации. Тогда мы использовали Matlab в сочетании с YALMIP.

YALMIP Wiki

Дон Джо
источник
1

Эта проблема может рассматриваться как разность задачи программирования выпуклых функций (DC). Существует обширная литература по программированию DC, вы можете найти соответствующие исследования там. Одним из наиболее известных методов является метод DCA, см., Например: http://lma.univ-pau.fr/meet/mamern09/en/Lethi-MAMERN09.pdf.

Другой недавний документ, который в некоторой степени рассматривает литературу по РС и может быть полезен: https://arxiv.org/pdf/1511.01796.pdf

Вы также можете использовать более общий метод для негладких задач, например, метод на основе прокс, указанный в: http://num.math.uni-goettingen.de/~ssabach/BST2013.pdf

nvhk
источник
0

Я бы предложил вашему вниманию алгоритм Фрэнка Вольфа и связанные с ним методы. По сути, вы линеаризуете целевую функцию и решаете получившийся LP на каждой итерации. Тем не менее, я думаю, что вам нужно добавить границы для чтобы сделать этот подход эффективным.Икс

Майкл Грант
источник