Геометричне програмування — розділ математичного програмування, що вивчає підхід до розв'язування нелінійних задач оптимізації спеціальної структури. Термін вперше ввели 1967 року , Е. Пітерсон і К. Зенер. Назва дисципліни пов'язана з тим, що однією з основних у викладаній теорії є нерівність між середнім геометричним і середнім арифметичним і її узагальнення. Передумовою до розвитку геометричного програмування стали деякі геометричні задачі і методи їх розв'язування. Базовим поняттям геометричного програмування є позіном.

Формулювання задачі геометричного програмування Знайти найменше значення функції за обмежень:

і

.

Тут

,

де

і

.

Функції  — позіноми.

Приклади задач геометричного програмування

Приклад 1 Знайти довжини сторін прямокутника заданого периметра, що має найбільшу площу. Те саме для трикутника.

Приклад 2

за обмежень

де

Розв'язком задачі є вектор з компонентами де

Програмні засоби

Існує декілька пакунків програм, які допомагають формулювати та розв'язувати задачі геометричного програмування.

MOSEK  — це комерційний розв'язувач, здатний розв'язувати задачі геометричного програмування, а також інші задачі нелінійної оптимізації. CVXOPT  — це розв'язувач із відкритим кодом для опуклих задач оптимізації. GPkit  — це пакунок Python для чіткого визначення та маніпулювання моделями геометричними програмування. Містить низку прикладів моделей геометричного програмування, написаних разом із цим пакетом. GGPLAB  — це набір інструментів MATLAB для постановки та вирішення задач геометричного програмування (ГП) та узагальнених задач геометричного програмування (УГП). CVXPY  — це вбудована в Python мова моделювання для визначення та розв'язування опуклих задач оптимізації, включано з ГП, УГП та LLCPA. Agrawal, S. Diamond, and S. Boyd. Disciplined Geometric Programming. Retrieved 8 January 2019..

Див. також Моном Позіном

Примітки

Література