Санкт-Петербургский государственный университет
Опубликован: 08.06.2009 | Доступ: свободный | Студентов: 663 / 131 | Оценка: 4.65 / 4.35 | Длительность: 07:44:00
Специальности: Программист
Лекция 2:

Задача ГП без ограничений

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: В лекции формулируется задача геометрического программирования без ограничений. Приводятся примеры таких задач. Описываются методы понижения размерности задачи.

Постановка задачи

Задача геометрического программирования без ограничений заключается в нахождении положительного вектора x = 
(x_1, \ldots, x_m), при котором значение позинома g(x) будет наименьшим:

g(x)=\sum\limits_{i=1}^{n}u_{i}=\sum\limits_{i=1}^{n}c_{i}\prod\limits_{j=1}^{m}{x_{j}}^{a_{ij}}\rightarrow\min,
x_j>0,\ c_i>0, \ a_{ij}\in \mathbb{R},\ i=\overline{1,n},\ j=\overline{1,m}.

Введем специальные обозначения для индексных множеств задачи ГП:

I=[1, 2, \ldots, n],\ J=[1, 2, \ldots, m].

Эти обозначения удобно использовать, когда не важен порядок перечисления индексов, поэтому в таких случаях записи i=\overline{1,n} и i\in I, а также \ j=\overline{1,m}\mbox{
и } j\in J будут эквивалентны.

Примеры задач оптимизации с позиномами

В этой лекции в качестве примеров мы приведем постановки задач оптимизации с позиномами без ограничений.

Пример 13 Требуется перевезти V кубометров угля из шахты на завод. Для транспортировки угля необходимо изготовить открытый прямоугольный контейнер. Стоимость материала, идущего на изготовление боковых сторон и дна контейнера, составляет b (руб. за квадратный метр), на фронтальные стороны - d (руб. за квадратный метр). Стоимость доставки одного контейнера не зависит от его размера и составляет c (руб.).


Рис. 2.1.

Затраты на доставку угля складываются из транспортных расходов и стоимости материала, идущего на изготовление контейнера, в котором он будет перевозиться. Требуется выбрать размеры контейнера, при которых эти затраты будут минимальны.

Обозначим через L - длину, W - ширину и H - высоту контейнера. Тогда контейнер будет использоваться \frac{V}{LWH} раз. Тогда транспортные расходы равны \frac{c V}{LWH} (руб.). Стоимость материала, потраченного на изготовление фронтальных сторон, составит 2 d 
LH (руб.), боковых сторон - 2 b HW (руб.), дна - b LW (руб.).

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

g(L, W, H) = \frac{c V}{LWH}+2 d LH+2 b HW+ b LW \rightarrow \min. ( 18)

Пример 14 Корыто имеет форму полуцилиндра (рис. 2.2). При каких размерах его вес будет минимальным, если толщина стенок равна t, емкость равна v, а удельный вес материала равен - \gamma?


Рис. 2.2.

Обозначим через r - внутренний радиус корыта, l - внутреннюю длину. Тогда вес торцовых стенок равен

G_{1} = \gamma\pi (r + t)^{2}t,

вес остальной части корыта равен

G_{2} =\frac{1}{2} \gamma l  [ \pi (r + t)^{2} - \pi r^{2}]
=\frac{\gamma \pi  t}{2}  l  (2 r + t).

Так как v = \pi
r^{2}l/2, то l/2 = v/(\pi r^{2}) и

G_{2} = \gamma\pi t \frac{v}{\pi r^2} (2 r + t).

Следовательно, вес корыта равен

G = G_1 + G_2 = c (r+t)^2 + \frac{cv}{\pi r^2} (2 r+t),

где c = \gamma\pi t, или

G = c \left[ r^2 + 2 rt + t^2 + \frac{2 v}{\pi r} + \frac{vt}{\pi r^2} \right],

или

G = c \left[ r^2 + 2 rt + t^2 +\frac{2 b}{r} + \frac{bt}{r^2}\right],

где b = v/\pi.

Таким образом, задача свелась к минимизации позинома:

g(r) =r^2 + 2 rt + \frac{2 b}{r} + \frac{bt}{r^2}\rightarrow \min. ( 19)

Пример 15 Работа, затрачиваемая на сжатие 1 кг воздуха в поршневом компрессоре от давления \rho_0 до давления \rho ( \rho >
\rho_0); отношение \rho / \rho_{0} называется степенью сжатия), выражается формулой

A = RT_{0}\frac{\gamma}{\gamma - 1}\left[
  \left(\frac{\rho}{\rho_0}\right)^{(\gamma - 1)/\gamma} -
  1\right], ( 20)

где R - так называемая газовая постоянная, T_0 - абсолютная температура воздуха до сжатия, \gamma (\gamma >1) - некоторая постоянная, учитывающая конструктивные особенности компрессора. Для получения высоких давлений делают многоступенчатые компрессорные установки, состоящие из нескольких последовательно соединенных компрессоров (ступеней) с холодильными устройствами между ступенями. Пусть проектируется n -ступенчатая компрессорная установка и предполагается воздух, поступающий в любую из ступеней, охлаждать до температуры T_{0}. Требуется при заданных n, \ \rho_0, \ \rho, \ T_0 определить такие промежуточные значения давлений \rho_1,
\rho_2,\ldots,\rho_{n-1}, чтобы работа, затрачиваемая на весь процесс сжатия, была минимальна.

По формуле (20) работа, затрачиваемая на сжатие воздуха в i -й ступени, равна

A_{i} = RT_{0}\frac{\gamma}{\gamma -
  1}\left[\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/ \gamma}
  - 1\right], \ i = \overline{1,n}, \ \rho_n= \rho.

Следовательно, при выбранных \rho_1, \rho_2,\ldots,\rho_{n-1} работа, затрачиваемая на весь процесс сжатия, выразится формулой

A = \sum\limits_{i = 1}^{n}A_{i} = RT_{0}\frac{\gamma}{\gamma -
  1} \left[ \sum\limits_{i=1}^{n}\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/ \gamma}
  - n\right].

Таким образом, задача свелась к нахождению наименьшего значения позинома:

g(\rho_1, \rho_2,\ldots,\rho_{n-1}) =\sum\limits_{i=1}^{n}\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/
  \gamma}\rightarrow \min. ( 21)

Теперь можно сказать, что задачи из примеров 13, 14, 15 - это задачи ГП.

В некоторых случаях оптимальное решение задачи ГП можно получить при помощи теоремы 2 из лекции 1. Приведем примеры.

Пример 16 Решим задачу геометрического программирования

g(x_1,\ldots,x_m) = \sum\limits_{i =1}^{m} \alpha_{i} x_{i}+ \frac{b}{\prod\limits_{i=1}^{m}x_{i}^{\alpha_i}}\rightarrow \min,
x_{i} > 0,\ i=\overline{1,m}.

Предполагается, что \ b > 0,\ \alpha_i > 0,\ i=\overline{1,m}. Обозначим через \alpha_{m+1} = b, x_{m+1} =
\prod\limits_{i=1}^{m}x_{i}^{-\alpha_i}. Тогда x_{m+1}\prod\limits_{i=1}^{m}x_{i}^{\alpha_i} = 1. Во введенных обозначениях задача с позиномом g(x_1,\ldots,x_m) принимает вид:

f(x_1,\ldots,x_{m+1}) =\sum\limits_{i
=1}^{m+1} \alpha_{i} x_{i}\rightarrow
  \min,
x_{i} > 0,\ \ i=\overline{1,m+1}

при ограничении

x_{m+1}\prod\limits_{i=1}^{m}x_{i}^{\alpha_i} = 1.

Воспользуемся теоремой 2 при n = m + 1, \beta_i = \alpha_i, (i = \overline{1,n}), \beta_{m+1} = 1, \beta =\sum\limits_{i=1}^{n}\beta_i, P = 1:

\min f(x_1,\ldots,x_{m+1}) =\min g(x_1,\ldots,x_m) = \beta b^{1/\beta},

причем минимум достигается в единственной точке

(b^{1/\beta},\ldots, b^{1/\beta}).

{Пример 15 (продолжение). Найдем теперь решение получившейся задачи ГП:

g(\rho_1, \rho_2,\ldots,\rho_{n-1}) =\sum\limits_{i=1}^{n}\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/
  \gamma}\rightarrow\min.

Обозначим через

x_i =
\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/
  \gamma}, \ i = \overline{1,n}.

Тогда сумма x_i равна константе, так как выполнено следующее равенство:

\prod\limits_{i=1}^{n}x_i =
   \left[\prod\limits_{i=1}^{n}\left(\frac{\rho_i}{\rho_{i-1}}\right)\right]^{(\gamma-1)/\gamma}
   = \left(\frac{\rho}{\rho_0}\right)^{(\gamma-1)/\gamma}.

Воспользуемся теоремой 2 при P =
\left(\frac{\rho}{\rho_0}\right)^{(\gamma-1)/\gamma}, \alpha_i=1, \beta_i =1, (i = \overline{1,n}):

\min\limits_{x_1\ldots x_n = c,\atop x_i
  >0}\sum\limits_{i=1}^{n}x_{i} = n P^{1/n} =
  n\left(\frac{\rho}{\rho_0}\right)^{(\gamma-1)/(n\gamma)},

и достигается он только при x_{1} = x_{2} = \ldots =x_{n} =
\left(\frac{\rho}{\rho_0}\right)^{(\gamma-1)/(n\gamma)}.

Система уравнений

x_{i} = \left(\frac{\rho_i}{\rho_{i-1}}\right)^{(\gamma-1)/\gamma}
  = \left(\frac{\rho}{\rho_0}\right)^{(\gamma-1)/(n\gamma)}, \
  i=\overline{1,n},

имеет положительное решение

\rho_{1} =\rho_{0}q,\ \rho_{2} =\rho_{1}q = \rho_{0}q^2,\ldots,
  \ \rho_{n-1} =\rho_{n-2}q = \rho_{0}q^{n-1}, \mbox{ где }q = (\rho/\rho_0)^{1/n}.

Таким образом, работа, затрачиваемая на n -ступенчатый процесс сжатия газа, минимальна, когда на всех ступенях степени сжатия одинаковы и равны \rho_i/\rho_{i-1}, то есть числа \rho_0,\
\rho_1,\ldots,\ \rho_n = \rho образуют геометрическую прогрессию со знаменателем q = (\rho/\rho_0)^{1/n}.

В следующих лекциях мы вернемся к задачам из примеров 14, 15 и решим их.

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Васильевич Иван
Васильевич Иван

Так это же динамическое программирование на основе математической индукции.