
Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ
.pdf
Численные методы оптимизации
В качестве управляемых переменных примем xj (j=1,2,…,5), причем xj=1, если в месте Vj построена ГЭС, и xj=0 в противном случае.
Математическая модель задачи получается такая же, как и в задаче оптимального раскроя (8.67) – (8.69), но с условием, что bi=1 (i=1,2,…,4) и с дополнительным условием «xj=0 или xj=1» при j=1,2,…,5).
Возможны следующие варианты задачи:
1) Заданы расходы на строительство Vj, равные сj, и ищется наиболее дешевое «покрытие» всех местностей.
Целевая функция в этом случае Zmin = c1 x1 + c2 x2 + ... + c5 x5 ; 2) Можно потребовать также k-кратное покрытие. В этом
случае bi = k.
Транспортная задача
Это еще одна типичная и очень важная задача линейного программирования.
Постановка задачи. В n пунктах отправления (склады, заводы и т.п.) A1,A2,..,An имеется (или производится) некоторый однородный продукт в количествах a1,a2,..,an. Необходимо доставить этот продукт в m пунктов назначения B1,B2,..,Bm в количествах b1,b2,..,bm.
Стоимость перевозки единицы груза из пункта Ai в пункт Bj равна cij. Заметим, что стоимость – это условное понятие, которое может означать расстояние, тариф, расход топлива, время и т.д.
Количество перевозимого груза из пункта Ai в пункт Bj обозначим через xij (i=1,2,..,n; j=1,2,..,m). Задача заключается в определении таких величин xij , при которых стоимость перевозок будет минимальной.
Условия задачи можно записать компактно в виде таблицы 8.1. (двойной матрицы):
303

Численные методы оптимизации
Таблица 8.1
Bj |
|
b1 |
b2 |
… |
bm |
Ai |
|
|
|
|
|
|
|
|
|
|
|
a1 |
|
c11 |
c12 |
….. |
c1m |
|
x11 |
|
x12 |
|
x1m |
a2 |
|
c21 |
c22 |
….. |
c2m |
|
x21 |
|
x22 |
|
x2m |
… |
|
… |
… |
… |
…. |
an |
|
cn1 |
cn2 |
… |
cnm |
|
xn1 |
|
xn2 |
|
xnm |
Cовокупность m × n чисел xij , т.е. матрицу Х=[xij] будем называть
матрицей перевозок или планом перевозки, а матрицу С=[cij ] – матрицей транспортных издержек (затрат).
Сформулируем математическую модель транспортной задачи.
Транспортная задача заключается в отыскании среди допустимых планов оптимального, т.е. такого, по которому общая стоимость перевозок минимальна, т.е
|
|
|
m |
n |
|
|
|
|
|
|
|
zmin = ååcij |
× xij . |
|
(8.70) |
||||
|
|
|
i=1 j=1 |
|
|
|
|
|
|
План является допустимым, если числа xij удовлетворяют |
|||||||||
следующим естественным ограничениям: |
|
|
|
||||||
xi1 + xi2 |
+ ... + xin = ai |
|
(i =1,2,..,m) |
ü |
(8.71) |
||||
x |
+ x |
2 j |
+ ... + x |
mj |
= b |
i |
( j =1,2,..,n)ý |
||
1 j |
|
|
|
|
þ |
|
Поскольку грузы предполагается перевозить только в одном направлении – из пунктов отправления в пункты назначения, то на
переменные |
накладываются |
условия |
неотрицательности |
|
переменных: |
xij ³ 0 (i =1,2,..,m; |
j =1,2,..,n) , |
(8.72) |
|
|
в которых первые m равенств означают, что из каждого пункта производства Ai вывозится весь произведенный продукт. Последние (n) равенства означают, что каждый пункт потребления полностью удовлетворяется.
304

Численные методы оптимизации
Транспортную задачу в приведенной формулировке (8.70) – (8.72) называют закрытой (или замкнутой) транспортной задачей, в отличие от открытой, в которой
n |
m |
|
åai ¹ åbj . |
(8.73) |
|
i=1 |
j=1 |
|
n Пример 8.8. Построить математическую модель транспортной задачи.
На трех цементных заводах производится цемент одной и той же марки в количествах соответственно 100, 130, 170 тонн. Цемент следует доставить на четыре ЖБК, потребляющих его соответственно в количествах 150, 120, 80, 50 тонн. Стоимости (у.е.) перевозок одной тонны продукта с i-го (i=1,2,3) завода на j-й (j=1,2,3,4) ЖБК приведены в табл. 6.2. Спланировать перевозки так, чтобы их стоимость была минимальной.
|
|
|
|
|
|
|
|
Таблица 8.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Стоимость перевозки |
|
|
|
|
Объем |
||
Цемент- |
(у.е.) |
|
|
|
|
|
производ- |
|
|
ные |
|
|
|
Количество . |
|
ства (т) |
|
||
заводы |
|
перевозимого продукта (т) |
|
|
|||||
|
|
ЖБК-1 |
ЖБК-2 |
|
ЖБК-3 |
|
ЖБК-4 |
|
|
|
|
3 |
5 |
|
7 |
|
11 |
|
|
№1 |
|
x11 |
x12 |
|
x13 |
|
x14 |
100 |
|
|
|
1 |
4 |
|
6 |
|
3 |
|
|
№2 |
|
x21 |
x22 |
|
x23 |
|
x24 |
130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
8 |
|
12 |
|
7 |
|
|
№3 |
|
x31 |
x32 |
|
x33 |
|
x34 |
170 |
|
|
|
|
|
|
|
|
|
|
|
Объем |
|
150 |
120 |
|
80 |
|
50 |
|
|
пот- |
|
|
|
|
|
|
|
|
|
ребления |
|
|
|
|
|
|
|
|
|
|
Проектные параметры: xij–количество (т) продукта, |
||||||||
перевозимого с i-го (i=1,2,3) завода на j-й (j=1,2,3,4) ЖБК. |
|
|
|||||||
|
Тогда целевая функция (общая стоимость перевозок) имеет вид: |
||||||||
Zmin =3x11+5x12+7х13+11х14+x21+4x22+6x23+3x24+5x31+8x32+12x33+7x34. |
305

Численные методы оптимизации
Ограничения записываем из условия, что вывозится весь произведенный на каждом заводе цемент (первые три) и что каждый ЖБК полностью обеспечивается цементом:
x11 +x12 +х13+х14=150, x21 +x22 +x23+x24=130,
x31 +x32.+x33+x34=170, x11 +x21 +х31=150,
x12 +x22 +x32=120, x13 +x23.+x33=80, x14 +x24.+x34=50,
xij³0 (i=1,2,3; j=1,2,3,4).
Решение данной транспортной задачи с использованием приложения Microsoft Excel приведено в подразделе 8.5.
Задача о назначениях (проблема выбора)
Эта задача является частным случаем транспортной задачи
Постановка задачи. В распоряжении имеется n механизмов (бригад) и n различных видов работ. Производительность каждого механизма на различных работах, вообще говоря, различна. Обозначим через cij (i,j=1,2,..,n) производительность i-го механизма на j-й работе. Матрица C=[cij] называется матрицей эффективностей или производительностей.
Требуется так распределить n механизмов на n работах, чтобы
каждый механизм выполнял одну и только одну работу и чтобы при заданной производительности каждого механизма на каждой из работ
суммарный эффект был бы максимальным.
Обозначим через xij переменную, равную единице, если i-й механизм назначен на j-ю работу, и равен нулю, если он на эту работу не назначен. В качестве целевой функции выбираем
суммарную производительность всех механизмов
n |
n |
|
zmax = ååcij xij . |
(8.74) |
|
i=1 |
j=1 |
|
Ограничения записываем из условия, что каждый механизм
выполняет одну работу и что каждая работа обеспечивается одним механизмом:
306

Численные методы оптимизации |
|
||
xi1 + xi2 |
+ ... + xin =1, |
i =1,2,..,n, ü |
(8.75) |
x1 j + x2 j |
+ .. + xnj =1, |
ý |
|
j =1,2,..,n.þ |
|
nПример 8.9. Задача о назначениях.
Имеются три бригады В1, В2, В3, каждая из которых может быть использована на каждой из 3-х строительной площадке с производительностью (в условных единицах), заданной в таблице 8.3:
|
|
|
Таблица 8.3 |
|
|
|
|
|
|
Строител. |
Производительность бригад |
|||
площадка |
|
(у.е.) |
|
|
|
|
|
|
|
|
В1 |
В2 |
В3 |
|
1 |
1 |
2 |
3 |
|
2 |
2 |
4 |
1 |
|
3 |
3 |
1 |
5 |
|
Требуется распределить бригады по одной на каждую строительную площадку так, чтобы суммарная производительность всех бригад была максимальной.
Обозначим xij=1, если на i-ю стройплощадку назначена j-я бригада,
иxij=0, если она на эту стройплощадку не назначена.
Вкачестве функции цели возьмите суммарную производительность всех бригад:
Zmax =x11 +2x12 +3х13+2x21 +4x22 +x23+3x31 +x32.+5x33.
Систему ограничений запишите из условий, что каждая бригада
выполняет работу на одной определенной стройплощадке и что каждая площадка обеспечена одной бригадой рабочих.
a) |
xi1 + xi2 + xi3 −1 = 0, |
i =1,2,3, |
|
b) |
x1 j |
+ x2 j + x3 j -1 = 0, |
j = 1,2,3, . |
c) |
xij |
³ 0. |
|
307

Численные методы оптимизации
8.3.6. Двойственные задачи в линейном программировании
С каждой задачей линейного программирования связана так называемая двойственная задача [2, 20], которая формулируется по определенным правилам.
Теория двойственности полезна при проведении качественных исследований задач ЛП, когда необходимо не только найти оптимальное решение задачи, но и оценить влияние на оптимальное решение изменений в параметрах, представляющих собой исходную информацию задачи.
Обратимся вновь к задаче об оптимальном плане выпуска продукции, математическая модель которой записана в виде (8.64) – (8.66) и предположим, что некоторая организация решила закупить ресурсы предприятия, и необходимо установить оптимальные цены на эти ресурсы у1, у2,... ут. Здесь уi – единичная стоимость i-го ресурса (например, стоимость одного станка - для единиц оборудования, одного человеко-дня – для трудовых ресурсов, стоимость 1 кв.м. производственной площади – для зданий и т.п.).
Очевидно, что покупающая организация заинтересована в том, чтобы затраты ее на все ресурсы F, имеющиеся в известных количествах b1, b2,.., bт были минимальны, то есть
Fmin =b1y1+b2y2+…+bmym. |
(8.76) |
С другой стороны, предприятие, продающее ресурсы, заинтересовано в том, чтобы полученная от продажи ресурсов выручка была не меньше той суммы прибыли, которую
предприятие может получить при переработке этих ресурсов в готовую продукцию.
Поскольку удельные расходы каждого вида ресурсов при производстве того или иного вида продукции известны (матрица удельных расходов ресурсов aij), то удовлетворение требований
продавца можно записать в виде соответствующей системы ограничений:
308

Численные методы оптимизации
|
a11 y1 + a21 y2 + ... + am1 ym ³ c1 , |
|
|
|
a12 y1 + a22 y2 |
+ ... + am2 ym ³ c2 , |
(8.77) |
|
........................................................... |
||
|
|
||
|
a1n y1 + a2n y2 + ... + amn ym ³ cn . |
|
|
Здесь |
ограничения |
соответствуют |
удовлетворению |
требований продавца при изготовлении каждого вида продукции.
Кроме |
того, |
должны |
быть |
наложены |
условия |
неотрицательности оценок ресурсов: |
|
|
|
||
|
y1 ³ 0, y2 ³ 0,...., ym ³ 0. |
|
(8.78) |
Таким образом, математическая модель двойственной задачи представлена выражениями (8.76)-(8.78), а содержательная
интерпретация ее может быть сформулирована следующим образом:
найти такой набор цен (оценок) ресурсов Y = (y1, y2 ,K, ym ) , который
обеспечит минимальные общие расходы на ресурсы при условии, что
затраты на ресурсы при выпуске каждого вида продукции не меньше прибыли от реализации этой продукции.
Абстрагируясь от содержательной интерпретации параметров, рассмотрим формально две задачи (прямую и двойственную) линейного программирования. Двойственная задача получается из основной по следующим правилам :
∙Максимизация целевой функции в исходной задаче заменяется минимизацией в двойственной.
∙Каждому ограничению исходной задачи соответствует неизвестное
в двойственной задаче. Причем, если это ограничение в виде неравенства, то соответствующее неизвестное неотрицательно. Если ограничение в виде уравнения, то соответствующее неизвестное произвольно (т.е. не является неотрицательным).
∙Каждому неизвестному в исходной задаче соответствует
ограничение в двойственной задаче. Причем, если неизвестное неотрицательно, то соответствующее ограничение в виде неравенства. Если неизвестное произвольно, то соответствующее ограничение в виде уравнения.
309

Численные методы оптимизации
·Свободными членами новых ограничений служат коэффициенты c1, c2,..cn исходной целевой функции.
·Матрицы А коэффициентов aij при переменных в системах
ограничений обеих задач являются транспонированными по отношению друг к другу.
·Свободные члены b1, b2,…,bm ограничений служат коэффициентами
новой целевой функции.
Из рассмотренных выше правил построения двойственной задачи вытекает, что основную задачу можно рассматривать как двойственную по отношению к своей двойственной.
nПример 8.6. Сформулировать задачу, двойственную к следующей:
Z max = 2x1 + x2 ,
x1 + 2x2 ³ 5, 2x1 + 3x2 £ 4, 4x1 - 3x2 £ 8.
Поскольку исходная задача на максимум, то приводим ее к виду
Zmax = 2x1 + x2 , |
|
|
(8.79) |
-x1 - 2x2 £ -5, |
|
y1 |
|
|
|
||
2x1 + 3x2 £ 4, |
|
y2 |
(8.80) |
4x1 - 3x2 £ 8. |
|
y3 |
|
|
|
Система ограничений (8.80) содержит три неравенства. Каждому из них соответствует неотрицательное неизвестное в двойственной задаче,
т.е. y1, y2, y3 ³ 0.
Неизвестное x1, х2 в задаче (8.79 – 8.80) произвольны (т.е. не является неотрицательным). Следовательно, в двойственной задаче им
соответствуют два ограничения в виде равенств
–y1 +2y2 +4y3=2,
–2y1 +3y2 -3y3=1,
причем матрица коэффициентов новых ограничений является матрицей Ат, где А матрица коэффициентов старых ограничений (8.80).
310

Численные методы оптимизации
Максимизация целевой функции Zmax заменяется минимизацией в двойственной. Коэффициентами линейной формы Fmin являются свободные члены в системе ограничений исходной задачи. Таким образом, получили задачу, двойственную к задаче (8.79 – 8.80)
Fmin = -5y1+4y2 +8y3 , |
(8.81) |
-y1 + 2y2 + 4y3 = 2, |
(8.82) |
- 2y1 + 3y2 - 3y3 = 1, |
|
yi ³ 0, i = 1,2,3. |
(8.83) |
Решение исходной задачи и ей двойственной имеют вид соответственно:
Zmax=1,3333 при x1=0 и x2=1,3333, Fmin=1,3333 при y1=1,20, y2=0,60 и y3=0,20.
n Пример 8.7. Для производства некоторой продукции используются три вида сырья Si, (i=1,2,3), которое имеется соответственно в количествах b1=32, b2=24, b3=31, и применяется три типа технологии Tj, (j=1,2,3).
Расход i-го вида сырья при работе по j-й технологии за единицу времени (например, в час) задается матрицей
ê2 |
1 |
2ú |
ê |
3 |
ú |
[aij ] = ê1 |
4ú |
|
ê3 |
3 |
1ú |
ë |
|
û |
Выход продукта за единицу времени при использовании каждой из технологий задается матрицей строкой С=[3, 5, 9]. Найти такой оптимальный план работы, при котором из имеющихся запасов сырья выпускалось бы максимальное количество продукции.
Дать экономическую интерпретацию данной задачи и задачи, двойственной к ней.
Решение. Примем за неизвестные (проектные параметры) xi (i=1,2,3) - время работы по i-й технологии. Тогда количество единиц выпускаемой продукции (план выпуска), которое требуется максимизировать, можно записать в виде: Z=3x1,+5x2,+9x3.
При этом будет израсходовано ai1x1 + ai2 x2 + ai3 x3 единиц i-го сырья (i=1,2,3).
Математическая формулировка задачи такова: |
|
Zmax=3x1,+5x2,+9x3 |
(8.84) |
311

Численные методы оптимизации |
|
|||
2x1 + |
x2 + 2x3 £ 32, |
|
||
x1 + 3x2 + 4x3 |
£ 25, |
(8.85) |
||
3x1 + |
3x2 + x3 |
£ 31, |
||
|
||||
x j ³ 0, |
j = 1,2,3. |
|
Оптимальное решение задачи X * = {9, 0, 4} и Zmax=63.
Таким образом, оптимальное время работы по 1-й технологии составляет 9 часов, по 3-й – 4 часа. А т.к. х2=0, то использовать 2-й тип технологии не следует. Максимальное количество продукции при этом составляет 63 единицы.
В соответствии с правилами, сформулированными выше, составим
задачу, двойственную задаче (8.84 – 8.85): |
|
Fmin = 32y1 + 25y2 + 31y3 , |
(8.86) |
2y1 + y2 + 3y3 ³ 3, |
|
||
y1 + 3y2 + 3y3 ³ 5, |
(8.87) |
||
2y1 + 4y2 + |
y3 ³ 9, |
||
|
|||
yi ³ 0, i = |
1,2,3. |
|
Здесь целевая функция описывает стоимость используемого сырья, а
ограничения – стоимость выпускаемой из этого сырья продукции при использовании каждого из трех типов технологии соответственно.
Оптимальное решение задачи (8.86 – 8.87)
Y * = {0, 2,1818, 0,2727} и Fmin=63.
Проанализируем полученные оптимальные решения. Сырье S1
используется не полностью, потому что его цена равна нулю, y* = 0 , т.е. |
|
|
1 |
сырье, имеющееся в избытке, не ценится. Сырье S2 и S3, цены которых |
|
отличны от нуля, |
y2* = 2,1818 > 0, y3* = 0,2727 > 0 , используется |
полностью. |
|
Для технологии T2 издержки вычисляются как
y1 + 3y2 + 3y3 = 1×0 + 3×2,1818+ 3×0,2727 = 6,3636 > 5,
т.е. превышают стоимость продукции, равную 5. Эта технология не рентабельна и поэтому не используется, т.е. х*2 = 0 .
312