Геометрическая программа ( ГП ) — это задача оптимизации вида
где — посиномы , а — одночлены. В контексте геометрического программирования (в отличие от стандартной математики) одночлен — это функция от до, определяемая как
где и . Полином — это любая сумма одночленов. [1] [2]
Геометрические программы в общем случае не являются выпуклыми задачами оптимизации, но их можно преобразовать в выпуклые задачи путем замены переменных и преобразования целевых и ограничительных функций. В частности, после выполнения замены переменных и взятия логарифма целевых и ограничительных функций функции , т. е. посиномы, преобразуются в функции log-sum-exp , которые являются выпуклыми, а функции , т. е. мономы, становятся аффинными . Следовательно, это преобразование преобразует каждую GP в эквивалентную выпуклую программу. [2] Фактически, это преобразование log-log может быть использовано для преобразования большего класса задач, известных как log-log выпуклое программирование (LLCP), в эквивалентную выпуклую форму. [7]
Программное обеспечение
Существует несколько пакетов программного обеспечения, помогающих в формулировании и решении геометрических программ.
MOSEK — это коммерческий решатель, способный решать геометрические программы, а также другие задачи нелинейной оптимизации.
CVXOPT — это решатель с открытым исходным кодом для задач выпуклой оптимизации.
GPkit — это пакет Python для чистого определения и манипулирования моделями геометрического программирования. Здесь есть несколько примеров моделей GP, написанных с помощью этого пакета.
GGPLAB — это набор инструментов MATLAB для задания и решения геометрических программ (GP) и обобщенных геометрических программ (GGP).
CVXPY — это встроенный в Python язык моделирования для определения и решения задач выпуклой оптимизации, включая GP, GGP и LLCP. [7]
^ Ричард Дж. Даффин; Элмор Л. Петерсон; Кларенс Зенер (1967). Геометрическое программирование . John Wiley and Sons. стр. 278. ISBN0-471-22370-0.
^ abc S. Boyd, SJ Kim, L. Vandenberghe и A. Hassibi. Учебник по геометрическому программированию. Получено 20 октября 2019 г.
^ М. Хершенсон, С. Бойд и Т. Ли. Оптимальное проектирование КМОП-операционного усилителя с помощью геометрического программирования. Получено 8 января 2019 г.
^ S. Boyd, SJ Kim, D. Patil и M. Horowitz. Оптимизация цифровых схем с помощью геометрического программирования. Получено 20 октября 2019 г.
^ В. Хобург и П. Аббель. Геометрическое программирование для оптимизации конструкции самолета. Журнал AIAA 52.11 (2014): 2414-2426.
^ Огура, Масаки; Кисида, Масако; Лам, Джеймс (2020). «Геометрическое программирование для оптимальных положительных линейных систем». IEEE Transactions on Automatic Control . 65 (11): 4648– 4663. arXiv : 1904.12976 . doi : 10.1109/TAC.2019.2960697. ISSN 0018-9286. S2CID 140222942.
^ ab A. Agrawal, S. Diamond и S. Boyd. Дисциплинированное геометрическое программирование. Получено 8 января 2019 г.