Чем геометрическое программирование отличается от выпуклого программирования?

10

Чем (обобщенное) геометрическое программирование отличается от общего выпуклого программирования?

Геометрическая программа может быть преобразована в выпуклую программу и обычно решается методом внутренней точки. Но в чем преимущество прямой формулировки задачи как выпуклой программы и ее решения методом внутренних точек?

Является ли класс геометрических программ только подмножеством класса выпуклых программ, которые могут быть решены особенно эффективно методами внутренних точек? Или просто преимущество в том, что общая геометрическая программа может быть легко указана в машиночитаемой форме.

С другой стороны, существуют ли выпуклые программы, которые не могут быть достаточно хорошо аппроксимированы геометрическими программами?

Томас Климпел
источник

Ответы:

5

Я на самом деле никогда не слышал о геометрическом программировании до этого вопроса. Вот обзорный документ Стивена Бойда и др. (Ванденберг также является соавтором), который является учебником по геометрическому программированию.

Геометрические программы в оригинальном выражении не являются выпуклыми. Например, является позином, и это не является выпуклым, поэтому геометрические программы не являются строгим подмножеством выпуклого программирования.Икс1/2

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

Более того, если вы используете алгоритм из невыпуклой НЛП, вам нужно будет указать ваш выполнимый набор как компактный набор в ; в геометрических программах x > 0 является допустимым ограничением.рNИкс>0

Непонятно, отображается ли набор геометрических программ (посредством лог-экспоненциального преобразования) на набор выпуклых программ, который решает особенно эффективно. Я не вижу никаких преимуществ для геометрического программирования, кроме преобразования в выпуклые программы.

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

Джефф Оксберри
источник
Похоже, глава 8 вашей связанной обзорной статьи пытается ответить на мой вопрос. Однако после первого беглого просмотра у меня складывается впечатление, что фактически любую выпуклую программу можно аппроксимировать геометрической программой (логарифмически преобразованной, конечно ...). Однако, поскольку любая линейная программа «очевидно» также является геометрической программой, это также может быть просто вариантом утверждения, что любая выпуклая программа может быть аппроксимирована линейной программой, но это не то, что я подразумеваю под «разумным приближением» хорошо".
Томас Климпел
Когда возник термин геометрическое программирование, было непросто решать общие выпуклые программы, и можно было использовать специальную структуру. Теперь, конечно, как только кто-то признает, что программа является геометрической, он превращает ее в выпуклую программу и решает последнюю методами внутренних точек.
Арнольд Ноймайер
3

е(Икс)1е(Икс)-Икс-Y1-Икс-Y-Икс2-Y21

выбирать
источник
Геометрическое программирование не является строгим подмножеством выпуклого программирования; однако при лог-экспоненциальном преобразовании преобразованные геометрические программы являются выпуклыми программами.
Джефф Оксберри
Да, это то, что я хотел сказать. Отредактированный ответ для наглядности.
Opt