Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Геометрическая программа ( GP ) является оптимизация задача вида

где - многочлены и - одночлены. В контексте геометрического программирования (в отличие от стандартной математики) моном - это функция от до, определяемая как

где и . Посином - это любая сумма одночленов. [1] [2]

Геометрическое программирование тесно связано с выпуклой оптимизацией : любой ГП можно сделать выпуклым с помощью замены переменных. [2] GP имеют множество приложений, включая определение размеров компонентов при проектировании IC , [3] [4] проектирование самолетов, [5] оценку максимального правдоподобия для логистической регрессии в статистике и настройку параметров положительных линейных систем в теории управления . [6]

Выпуклая форма [ править ]

Геометрические программы, как правило, не являются задачами выпуклой оптимизации, но они могут быть преобразованы в выпуклые задачи заменой переменных и преобразованием целевой функции и функций ограничений. В частности, после выполнения замены переменных и записи в журнал целевых функций и ограничений, функции , т. Е. Полиномы, преобразуются в функции log-sum-exp , которые являются выпуклыми, а функции , т. Е. Одночлены , становятся аффинными . Следовательно, это преобразование превращает каждый GP в эквивалентную выпуклую программу. [2] Фактически, это преобразование журнала в журнал можно использовать для преобразования более широкого класса задач, известного как выпуклое программирование журнала в журнал.(LLCP) в эквивалентную выпуклую форму. [7]

Программное обеспечение [ править ]

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

  • MOSEK - это коммерческий решатель, способный решать геометрические программы, а также другие задачи нелинейной оптимизации.
  • CVXOPT - это решатель с открытым исходным кодом для задач выпуклой оптимизации.
  • GPkit - это пакет Python для точного определения моделей геометрического программирования и управления ими. Есть целый ряд примеров моделей GP , написанных с этим пакетом здесь .
  • GGPLAB - это набор инструментов MATLAB для определения и решения геометрических программ (GP) и обобщенных геометрических программ (GGP).
  • CVXPY - это встроенный в Python язык моделирования для определения и решения задач выпуклой оптимизации, включая GP, GGP и LLCP. [7]

См. Также [ править ]

Ссылки [ править ]

  1. ^ Ричард Дж. Даффин; Элмор Л. Петерсон; Кларенс Зенер (1967). Геометрическое программирование . Джон Вили и сыновья. п. 278. ISBN 0-471-22370-0.
  2. ^ a b c С. Бойд, С. Дж. Ким, Л. Ванденберге и А. Хассиби. Учебник по геометрическому программированию . Проверено 20 октября 2019 года.
  3. ^ М. Хершенсон, С. Бойд и Т. Ли. Оптимальная конструкция КМОП-усилителя с помощью геометрического программирования . Проверено 8 января 2019.
  4. ^ С. Бойд, SJ Ким, Д. Патил и М. Горовиц. Оптимизация цифровых схем с помощью геометрического программирования . Проверено 20 октября 2019 года.
  5. ^ В. Хобург и П. Аббель. Геометрическое программирование для оптимизации конструкции самолета . Журнал AIAA 52.11 (2014): 2414-2426.
  6. Огура, Масаки; Кишида, Масако; Лам, Джеймс (2020). «Геометрическое программирование для оптимальных положительных линейных систем» . IEEE Transactions по автоматическому контролю . 65 (11): 4648–4663. arXiv : 1904.12976 . DOI : 10.1109 / TAC.2019.2960697 . ISSN 0018-9286 . 
  7. ^ а б А. Агравал, С. Даймонд и С. Бойд. Дисциплинированное геометрическое программирование. Проверено 8 января 2019.