АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. TRACE MODE 6 SOFTLOGIC: программирование контроллеров (часть 1).
  2. Алгоритмизация и программирование
  3. Визуальное программирование
  4. Выпуклое программирование.
  5. Выпуклое программирование. Задача выпуклого программирования
  6. Геометрическое изображение функции двух переменных
  7. Геометрическое КЕО
  8. Геометрическое, оптическое восприятие формы
  9. Глава 11. Программа прошлого и перепрограммирование.
  10. Глава 12. Программирование целей.
  11. Глава 2. Динамическое программирование.

Определение. Функция вида

f(t) = ∑1≤i≤mui(t), t=(t1,...,tm), где ui(t) = ci tja(i,j), ci>0, i=1,...,n (4.5.1)

называется позиномом, матрица A={aij} называется матрицей экспонент данного позинома.

Простейшим случаем позинома является полином (многочлен) от нескольких переменных. Если в матрице экспонент есть отрицательные элементы, позином не является полиномом.

Геометрическим программированием называется раздел математики, в котором исследуются задачи минимизации позиномов на множествах, заданных при помощи позиномных неравенств:

f0(t1,...,tm) → min
fk(t1,...,tm) ≤ 1, k=1,..., p;
tj > 0, j=1,...,m. (4.5.2)

где fk(t) = ∑i∈ I(k) ci tja(i,j), I(k) = Ik = [mk, mk+1,..., nk], k=0,..., p;

m0=1, m1=n0+1, mk=nk-1+1, np= n.

Матрица A={aij} при этом состоит из матриц экспонент всех позиномов, входящих в задачу, и называется матрицей экспонент задачи (4.5.2).

Введем в задачу переменные ui = ci tjaij, i = 1,…,n. Получаем (4.5.3)

Введем новые переменные: xj = ln tj, j=1,…,m; xm+i= ln ui, bi = - ln ci, i=1,...,n. (4.5.4)

В этих переменных задачу (4.5.3) можно записать в виде следующей задачи выпуклого программирования: (4.5.5)

Применим теорию двойственности, для чего построим функцию Лагранжа (с учетом того, что λ0=1):

L(x,λ, μ) = ∑ i∈I(0) ex(m+i)+ ∑1≤k≤p λk (∑ i∈I(k) ex(m+i) - 1)+∑1≤i≤n μi (∑1≤j≤maijxj - xm+i - bi).

После перегруппировки слагаемых получаем:

L(x,λ, μ) = ∑1≤i≤nk(i) ex(m+i) - μi (xm+i + bi)} + ∑1≤i≤n μi1≤j≤maijxj - ∑1≤k≤p λk,

где k=k(i) <=> i∈Ik.

Запишем задачу, двойственную к задаче (4.5.5):

ψ(λ, μ) = inf {L(x,λ, μ) | x∈Rn+m} → max. (4.5.6)

Поскольку все слагаемые функции L зависят от разных переменных x, для нахождения inf найдем наименьшее значение каждого слагаемого отдельно.

А) По переменным xj, j=1,…,m функция L линейна, поэтому по этим переменным inf L > -∞ тогда и только тогда, когда все коэффициенты перед xj равны нулю:

для всех j=1,…,m выполняется равенство ∑1≤i≤n μi aij =0, или ATμ=0. (4.5.7)

При выполнении этого условия

L(x,λ, μ) = ∑1≤i≤nk(i) ex(m+i) - μi (xm+i + bi)} - ∑1≤k≤p λk.

Б) По переменным xm+i, i=1,…,n: Lx(m+i) = λk(i) e x(m+i) - μi = 0, откуда следует, что для всех i переменные μi неотрицательны, причем λk(i)=0 <=> μi=0.

При λk(i)>0 наименьшее значение функции L по переменной xm+i достигается при xm+i = ln(μik(i)).

Таким образом, двойственная задача (4.5.6) имеет вид

ψ(λ, μ) = ∑1≤i≤nμi {1 - ln(μik(i)) - bi} - ∑1≤k≤p λk → max, ATμ=0, λ, μ ≥ 0. (4.5.8)

Пусть μi=vδi , v > 0, причем ∑1≤i≤nδi = 1. Тогда (с учетом того, что bi = - ln ci)

ψ = v ∑1≤i≤ni + δiln{ciλk(i) /(v μi)} - ∑1≤k≤p λk = v + v ∑1≤i≤nδiln{ciλk(i) / δi} - v ln v - ∑1≤k≤p λk. (4.5.9)

Обозначим D=∑1≤i≤nδiln{ciλk(i) / δi}. Тогда (4.5.8) запишется в виде

ψ = v(1+D) – v ln v - ∑1≤k≤p λk → max, ATδ=0, λ, δ ≥ 0, ∑1≤i≤nδi = 1. (4.5.10)

На переменную v ограничений нет, поэтому найдем максимум по этой переменной:

ψv = 1+D – ln v – 1 = D – ln v = 0, откуда v* = e D.

ψ(v*) = v*(1+D) – v*D - ∑1≤k≤p λk= v* - ∑1≤k≤p λk = e D - ∑1≤k≤p λk = ∏1≤i≤n(ciλk(i) / δi)δ(i) - ∑1≤k≤p λk

Обозначим σk = ∑i∈I(k) δi, тогда ψ(v*) = ∏1≤i≤n(ci / δi)δ(i)1≤k≤pλkσ(k)- ∑1≤k≤p λk.

В итоге двойственная задача переходит в задачу:

ψ = ∏1≤i≤n(ci / δi)δ(i)1≤k≤pλkσ(k)- ∑1≤k≤p λk → max;

ATδ=0, λ, δ ≥ 0, = 1, σk = ∑i∈I(k) δi. (4.5.11)

Перейдем к вычислению max по переменным λr, r >1.

ψλ(r) = ∏1≤i≤n(ci / δi)δ(i)1≤k≤pλkσ(k) σr / λr – 1 = 0. (4.5.12)

Обозначим С = ∏1≤i≤n(ci / δi)δ(i)1≤k≤pλ*kσ(k). Тогда из (4.5.12) получаем

λ*r = С σr . (4.5.13)

Подставляя эти значения в определение С, находим:

С = ∏1≤i≤n(ci / δi)δ(i)1≤k≤p(С σk )σ(k) = С ∑ σ(k)1≤i≤n(ci / δi)δ(i)1≤k≤pk )σ(k) = С 1 - σ(0) F, или

Сσ(0) = F = ∏1≤i≤n(ci / δi)δ(i)1≤k≤pk )σ(k), и в результате, C = F 1/σ(0).

В итоге, получаем:

ψ(λ*) = С - ∑1≤k≤p λ*k = С - ∑1≤k≤pС σ*k= С σ*0. (4.5.14)

После подстановки найденного значения для С и тождественных преобразований получаем, что

ψ(λ*) = ∏1≤i≤n(ciσ0 / δi)δ(i) / σ(0)1≤k≤pk / σ0 )σ(k) / σ(0). (4.5.15)

Обозначим αi = δi0; βk = ∑i∈I(k)αi = σk0.

Окончательный вид двойственной задачи (4.5.6) в этих переменных будет следующим:

ψ =∏1≤i≤n(ci / αi)α(i)1≤k≤pβkβ(k) → max;

ATα = 0, α ≥ 0, βk = ∑i∈I(k)αi, β0=1. (4.5.16)

По теореме двойственности оптимальные значения задач (4.5.2) и (4.5.16) совпадают: f*0 = ψ*.

Часто оказывается так, что задачу (4.5.16) можно решить достаточно просто.

Определение. Степенью трудности задачи геометрического программирования называется число линейно независимых решений системы

ATα = 0, ∑i∈I(0)αi = 1.

Для большинства задач степень трудности вычисляется по формуле d = n – m – 1, где (как и в предыдущих рассуждениях) n – количество слагаемых в позиномах задачи, m – количество переменных.

Для задач с нулевой степенью трудности характерно, что допустимая область двойственной задачи (4.5.16) состоит из единственного варианта, который и является решением.

Предположим, мы нашли решение α* задачи (4.5.16), вычислили соответствующие β*, ψ* = ψ(α*, β*).

По формуле (4.5.13) λ*r = Сσr = Сσ0 β*r = ψ* β*r при r >0 (λ*0 =1).

δ*i = σ0α*i; где σ0 можно найти из равенства σ01≤i≤nα*i = 1.

μ*i = v* δ*i; причем v* находится из формулы ψ* = v* - ∑1≤k≤p λ*k.

v* = ψ* + ∑1≤k≤p λ*k = ψ* + ∑1≤k≤p ψ*β*k = ψ*(1+ ∑1≤k≤p σk / σ0) = ψ* / σ0.

Таким образом, μ*i = v* δ*I =ψ* / σ0 σ0α*I = ψ*α*I .

Зная оптимальные значения λ* и μ*, находим оптимальные значения всех слагаемых задачи:

ex*(m+i) = u*I = μ*i / λ*k(i),

т.е. при k(i)=0 u*i =ψ*α*I ; при k(i)≠0 u*I =α*I /β*k(i).

В итоге, значения переменных t* находим, решая систему уравнений

ui(t) = u*i, i=1,…,n.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)