Геометричне програмування

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

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

Формулювання задачі геометричного програмування

Знайти найменше значення функції g0(t) за обмежень:

t1>0,t2>0,...,tm>0

і

g1(t)1,g2(t)1,...,gp(t)1,.

Тут

gk(t)=iJ[k]cit1ai1t2ai2...tmaim,k=0,1,...,p,

де

J[k]=(mk,mk+1,mk+2,...,nk)k=0,1,...,p

і

m0=1,m1=n0+1,m2=n1+1,...,mp=np1+1,np=p.

Функції gk(t) — позіноми.

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

Приклад 1

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

Приклад 2

i=1nxiβimax

за обмежень

i=1nαixi=S, xi>0, xi,

де βi>0, αi>0,βi,αi, i=1,n,

Розв'язком задачі є вектор x* з компонентами xi*=βiSαiβ, де  β=i=1nβi.

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

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

  • MOSEK Шаблон:Webarchive — це комерційний розв'язувач, здатний розв'язувати задачі геометричного програмування, а також інші задачі нелінійної оптимізації.
  • CVXOPT Шаблон:Webarchive — це розв'язувач із відкритим кодом для опуклих задач оптимізації.
  • GPkit Шаблон:Webarchive — це пакунок Python для чіткого визначення та маніпулювання моделями геометричними програмування. Містить низку прикладів моделей геометричного програмування, написаних разом із цим пакетом.
  • GGPLAB Шаблон:Webarchive — це набір інструментів MATLAB для постановки та вирішення задач геометричного програмування (ГП) та узагальнених задач геометричного програмування (УГП).
  • CVXPY Шаблон:Webarchive — це вбудована в Python мова моделювання для визначення та розв'язування опуклих задач оптимізації, включано з ГП, УГП та LLCP[1].

Див. також

Примітки

Шаблон:Примітки

Література

  1. A. Agrawal, S. Diamond, and S. Boyd. Disciplined Geometric Programming. Шаблон:Webarchive Retrieved 8 January 2019.