Геометрическое программирование

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

минимизировать ф 0 ( х ) при условии ф я ( х ) 1 , я = 1 , , м г я ( х ) = 1 , я = 1 , , п , {\displaystyle {\begin{array}{ll}{\mbox{minimize}}&f_{0}(x)\\{\mbox{subject to}}&f_{i}(x)\leq 1,\quad i=1,\ldots ,m\\&g_{i}(x)=1,\quad i=1,\ldots ,p,\end{array}}}

где — посиномы , а — одночлены. В контексте геометрического программирования (в отличие от стандартной математики) одночлен — это функция от до, определяемая как ф 0 , , ф м {\displaystyle f_{0},\точки ,f_{м}} г 1 , , г п {\displaystyle g_{1},\точки ,g_{p}} Р + + н {\displaystyle \mathbb {R} _{++}^{n}} Р {\displaystyle \mathbb {R} }

х с х 1 а 1 х 2 а 2 х н а н {\displaystyle x\mapsto cx_{1}^{a_{1}}x_{2}^{a_{2}}\cdots x_{n}^{a_{n}}}

где и . Полином — это любая сумма одночленов. [1] [2] с > 0   {\displaystyle c>0\ } а я Р {\displaystyle a_{i}\in \mathbb {R} }

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

Выпуклая форма

Геометрические программы в общем случае не являются выпуклыми задачами оптимизации, но их можно преобразовать в выпуклые задачи путем замены переменных и преобразования целевых и ограничительных функций. В частности, после выполнения замены переменных и взятия логарифма целевых и ограничительных функций функции , т. е. посиномы, преобразуются в функции log-sum-exp , которые являются выпуклыми, а функции , т. е. мономы, становятся аффинными . Следовательно, это преобразование преобразует каждую GP в эквивалентную выпуклую программу. [2] Фактически, это преобразование log-log может быть использовано для преобразования большего класса задач, известных как log-log выпуклое программирование (LLCP), в эквивалентную выпуклую форму. [7] у я = бревно ( х я ) {\displaystyle y_{i}=\log(x_{i})} ф я {\displaystyle f_{i}} г я {\displaystyle g_{i}}

Программное обеспечение

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

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

Смотрите также

Ссылки

  1. ^ Ричард Дж. Даффин; Элмор Л. Петерсон; Кларенс Зенер (1967). Геометрическое программирование . John Wiley and Sons. стр. 278. ISBN 0-471-22370-0.
  2. ^ abc S. Boyd, SJ Kim, L. Vandenberghe и A. Hassibi. Учебник по геометрическому программированию. Получено 20 октября 2019 г.
  3. ^ М. Хершенсон, С. Бойд и Т. Ли. Оптимальное проектирование КМОП-операционного усилителя с помощью геометрического программирования. Получено 8 января 2019 г.
  4. ^ S. Boyd, SJ Kim, D. Patil и M. Horowitz. Оптимизация цифровых схем с помощью геометрического программирования. Получено 20 октября 2019 г.
  5. ^ В. Хобург и П. Аббель. Геометрическое программирование для оптимизации конструкции самолета. Журнал AIAA 52.11 (2014): 2414-2426.
  6. ^ Огура, Масаки; Кисида, Масако; Лам, Джеймс (2020). «Геометрическое программирование для оптимальных положительных линейных систем». IEEE Transactions on Automatic Control . 65 (11): 4648– 4663. arXiv : 1904.12976 . doi : 10.1109/TAC.2019.2960697. ISSN  0018-9286. S2CID  140222942.
  7. ^ ab A. Agrawal, S. Diamond и S. Boyd. Дисциплинированное геометрическое программирование. Получено 8 января 2019 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Геометрическое_программирование&oldid=1117681618"