Так это же динамическое программирование на основе математической индукции. |
Задача ГП без ограничений
Постановка задачи
Задача геометрического программирования без ограничений
заключается в нахождении положительного вектора , при котором значение позинома
будет
наименьшим:
![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,](/sites/default/files/tex_cache/a60e50fd4cd831e39fa59b089eb64e7a.png)
![x_j>0,\ c_i>0, \ a_{ij}\in \mathbb{R},\ i=\overline{1,n},\ j=\overline{1,m}.](/sites/default/files/tex_cache/f8ec51dce2eb3f1053f2381d935bd2ae.png)
Введем специальные обозначения для индексных множеств задачи ГП:
![I=[1, 2, \ldots, n],\ J=[1, 2, \ldots, m].](/sites/default/files/tex_cache/362b8cb59c194686206c1a06f94470c4.png)
Эти обозначения удобно использовать, когда не важен порядок
перечисления индексов, поэтому в таких случаях записи и
, а также
будут эквивалентны.
Примеры задач оптимизации с позиномами
В этой лекции в качестве примеров мы приведем постановки задач оптимизации с позиномами без ограничений.
Пример 13 Требуется перевезти кубометров угля из шахты на
завод. Для транспортировки угля необходимо
изготовить открытый прямоугольный контейнер. Стоимость материала,
идущего на изготовление боковых сторон
и дна контейнера, составляет
(руб. за квадратный
метр), на фронтальные стороны
-
(руб. за квадратный метр). Стоимость доставки одного контейнера не зависит
от его размера и составляет
(руб.).
Затраты на доставку угля складываются из транспортных расходов и стоимости материала, идущего на изготовление контейнера, в котором он будет перевозиться. Требуется выбрать размеры контейнера, при которых эти затраты будут минимальны.
Обозначим через - длину,
- ширину и
- высоту
контейнера. Тогда контейнер будет использоваться
раз. Тогда транспортные расходы
равны
(руб.). Стоимость материала,
потраченного на изготовление фронтальных сторон, составит
(руб.), боковых сторон -
(руб.), дна
-
(руб.).
Таким образом, задача свелась к минимизации позинома, выражающего суммарные затраты:
![]() |
( 18) |
Пример 14
Корыто имеет форму полуцилиндра (рис. 2.2). При каких размерах его вес
будет минимальным, если толщина стенок равна , емкость равна
, а удельный вес материала равен -
?
Обозначим через - внутренний радиус корыта,
-
внутреннюю длину. Тогда вес торцовых стенок равен
![G_{1} = \gamma\pi (r + t)^{2}t,](/sites/default/files/tex_cache/c5bb1722c88d0fd9ff4eadf441a211d5.png)
вес остальной части корыта равен
![G_{2} =\frac{1}{2} \gamma l [ \pi (r + t)^{2} - \pi r^{2}]
=\frac{\gamma \pi t}{2} l (2 r + t).](/sites/default/files/tex_cache/39ee1c5f4c65e010d6a3d0d41f498a08.png)
Так как , то
и
![G_{2} = \gamma\pi t \frac{v}{\pi r^2} (2 r + t).](/sites/default/files/tex_cache/ba879b8c1139a9c7df399352700b0b37.png)
Следовательно, вес корыта равен
![G = G_1 + G_2 = c (r+t)^2 + \frac{cv}{\pi r^2} (2 r+t),](/sites/default/files/tex_cache/1140314f666de31bb68ff485ab63f81b.png)
где , или
![G = c \left[ r^2 + 2 rt + t^2 + \frac{2 v}{\pi r} + \frac{vt}{\pi r^2} \right],](/sites/default/files/tex_cache/8e36250b7001c944a99c7b621b925e19.png)
или
![G = c \left[ r^2 + 2 rt + t^2 +\frac{2 b}{r} + \frac{bt}{r^2}\right],](/sites/default/files/tex_cache/225675547978af10dc428975eb99b97d.png)
где .
Таким образом, задача свелась к минимизации позинома:
![]() |
( 19) |
Пример 15 Работа, затрачиваемая на сжатие 1 кг воздуха в поршневом
компрессоре от давления до давления
(
отношение
называется степенью сжатия),
выражается формулой
![]() |
( 20) |
где - так называемая газовая постоянная,
-
абсолютная температура воздуха до сжатия,
- некоторая постоянная, учитывающая конструктивные особенности
компрессора. Для получения высоких давлений делают
многоступенчатые компрессорные установки, состоящие из нескольких
последовательно соединенных компрессоров (ступеней) с холодильными
устройствами между ступенями. Пусть проектируется
-ступенчатая
компрессорная установка и предполагается воздух, поступающий
в любую из ступеней, охлаждать до температуры
. Требуется
при заданных
определить такие
промежуточные значения давлений
, чтобы работа, затрачиваемая на весь
процесс сжатия, была минимальна.
По формуле (20) работа, затрачиваемая на сжатие воздуха в -й ступени, равна
![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.](/sites/default/files/tex_cache/e15322a2a47b68f7a009593147e89e43.png)
Следовательно, при выбранных
работа, затрачиваемая на весь процесс сжатия, выразится формулой
![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].](/sites/default/files/tex_cache/7f5292783705f7958cbb4789c178d57b.png)
Таким образом, задача свелась к нахождению наименьшего значения позинома:
![]() |
( 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,](/sites/default/files/tex_cache/094f71f9d37a619b7a031e1b6d3a5167.png)
![x_{i} > 0,\ i=\overline{1,m}.](/sites/default/files/tex_cache/a343436ae26fc3d8d385903e9074bc39.png)
Предполагается, что .
Обозначим через
,
. Тогда
. Во введенных
обозначениях задача с позиномом
принимает вид:
![f(x_1,\ldots,x_{m+1}) =\sum\limits_{i
=1}^{m+1} \alpha_{i} x_{i}\rightarrow
\min,](/sites/default/files/tex_cache/9ca013d848ff3c802c1cef4b4fc53c06.png)
![x_{i} > 0,\ \ i=\overline{1,m+1}](/sites/default/files/tex_cache/4d15ed0972de85aab8a1203c02ab912d.png)
при ограничении
![x_{m+1}\prod\limits_{i=1}^{m}x_{i}^{\alpha_i} = 1.](/sites/default/files/tex_cache/74f106afb8544a64b889ec830abdbc1f.png)
Воспользуемся теоремой 2 при ,
,
,
,
,
:
![\min f(x_1,\ldots,x_{m+1}) =\min g(x_1,\ldots,x_m) = \beta b^{1/\beta},](/sites/default/files/tex_cache/d314fe471bd7c44e6c4fd7f3c308280c.png)
причем минимум достигается в единственной точке
![(b^{1/\beta},\ldots, b^{1/\beta}).](/sites/default/files/tex_cache/93e1b689482b207bc64eba05cfc53764.png)
{Пример 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.](/sites/default/files/tex_cache/6e2851d2c0c44c98358c1cf3fb2fc7f1.png)
Обозначим через
![x_i =
\left(\frac{\rho_i}{\rho_{i-1}}\right)^{{(\gamma-1)}/
\gamma}, \ i = \overline{1,n}.](/sites/default/files/tex_cache/6e7c63e6b1305bef75364f3c70365d51.png)
Тогда сумма равна константе, так как выполнено следующее равенство:
![\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}.](/sites/default/files/tex_cache/308862511be0aa36dfd10dd0509be6be.png)
Воспользуемся теоремой 2
при ,
,
,
:
![\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)},](/sites/default/files/tex_cache/2d6feebb71cd6ad8d16d3b986c7a08da.png)
и достигается он только при .
Система уравнений
![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},](/sites/default/files/tex_cache/c1592c5c9183f1be540ef95387a9567d.png)
имеет положительное решение
![\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}.](/sites/default/files/tex_cache/67eca56edf1af577abb76a460834289f.png)
Таким образом, работа, затрачиваемая на -ступенчатый процесс
сжатия газа, минимальна, когда на всех ступенях степени сжатия
одинаковы и равны
, то есть числа
образуют геометрическую прогрессию
со знаменателем
.
В следующих лекциях мы вернемся к задачам из примеров 14, 15 и решим их.