Геометрическое программирование
Геометрическая программа ( ГП ) — это оптимизационная задача вида
где являются полиномами и являются мономами. В контексте геометрического программирования (в отличие от стандартной математики) моном — это функция от к определяется как
где и . Полином – это любая сумма одночленов. [1] [2]
Геометрическое программирование – это тесно связано с выпуклой оптимизацией : любую ГП можно сделать выпуклой посредством замены переменных. [2] GP имеют множество применений, включая определение размеров компонентов при ИС , проектировании [3] [4] дизайн самолета, [5] оценка максимального правдоподобия для логистической регрессии в статистике и настройка параметров положительных линейных систем в теории управления . [6]
Выпуклая форма
[ редактировать ]Геометрические программы, в общем, не являются задачами выпуклой оптимизации, но их можно преобразовать в выпуклые задачи путем замены переменных и преобразования целевых функций и функций ограничений. В частности, после выполнения замены переменных и взяв журнал целевой и ограничительной функций, функции , т. е. полиномы, преобразуются в функции log-sum-exp , которые являются выпуклыми, а функции , т. е. мономы, становятся аффинными . Следовательно, это преобразование превращает каждую ГП в эквивалентную выпуклую программу. [2] Фактически, это логарифмическое преобразование можно использовать для преобразования более широкого класса задач, известного как логарифмическое выпуклое программирование (LLCP), в эквивалентную выпуклую форму. [7]
Программное обеспечение
[ редактировать ]Существует несколько пакетов программного обеспечения, помогающих формулировать и решать геометрические программы.
- MOSEK — это коммерческий решатель, способный решать геометрические программы, а также другие задачи нелинейной оптимизации.
- CVXOPT — это программа с открытым исходным кодом для решения задач выпуклой оптимизации.
- GPkit — это пакет Python для четкого определения моделей геометрического программирования и управления ими. есть несколько примеров моделей GP, написанных с помощью этого пакета Здесь .
- GGPLAB — это набор инструментов MATLAB для задания и решения геометрических программ (GP) и обобщенных геометрических программ (GGP).
- CVXPY — это встроенный в Python язык моделирования для задания и решения задач выпуклой оптимизации, включая GP, GGP и LLCP. [7]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Ричард Дж. Даффин; Элмор Л. Петерсон; Кларенс Зинер (1967). Геометрическое программирование . Джон Уайли и сыновья. п. 278. ИСБН 0-471-22370-0 .
- ^ Перейти обратно: а б с С. Бойд, С. Дж. Ким, Л. Ванденберге и А. Хассиби. Учебник по геометрическому программированию . Проверено 20 октября 2019 г.
- ^ М. Хершенсон, С. Бойд и Т. Ли. Оптимальное проектирование КМОП-операционного усилителя с помощью геометрического программирования . Проверено 8 января 2019 г.
- ^ С. Бойд, С. Дж. Ким, Д. Патил и М. Горовиц. Оптимизация цифровых схем посредством геометрического программирования . Проверено 20 октября 2019 г.
- ^ В. Хобург и П. Аббель. Геометрическое программирование для оптимизации конструкции летательных аппаратов . Журнал AIAA 52.11 (2014): 2414-2426.
- ^ Огура, Масаки; Кисида, Масако; Лам, Джеймс (2020). «Геометрическое программирование для оптимальных положительных линейных систем» . Транзакции IEEE при автоматическом управлении . 65 (11): 4648–4663. arXiv : 1904.12976 . дои : 10.1109/TAC.2019.2960697 . ISSN 0018-9286 . S2CID 140222942 .
- ^ Перейти обратно: а б А. Агравал, С. Даймонд и С. Бойд. Дисциплинированное геометрическое программирование. Проверено 8 января 2019 г.