Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

..pdf
Скачиваний:
14
Добавлен:
15.11.2022
Размер:
1.81 Mб
Скачать

Согласно теореме 3.7.5 оптимальные решения этих задач связаны равенствами

 

ó1 (2õ1 + 3õ2 19)= 0,

(1)

 

 

 

 

 

 

 

ó2 (3õ1

+ õ2 13)= 0,

(2)

 

 

 

 

 

 

 

 

 

 

3õ2 19)= 0,

(3)

ó3 (

 

 

 

 

 

 

 

 

 

 

 

 

ó4 (3õ1

 

18)= 0,

(4)

 

 

 

 

 

 

õ1 (2 ó1 + 2 ó2 + 3ó4 7)= 0,

(5)

 

 

 

 

 

 

 

 

(3ó

+ ó

+ 3ó 5)= 0.

(6)

õ

 

2

1

2

3

 

Поскольку õ1 = 5, õ2 = 3, то для выполнения равенств (5),

(6) необходимо, чтобы в этих равенствах выражения в скобках равнялись нулю, то есть

2y* + 2y*

 

+ 3y* = 7,

 

1

2

 

4

 

 

 

 

=5.

3y* + y* + 3y*

 

1

2

3

 

Равенства (1), (2) выполняются за счет того, что выражения, стоящие в скобках, обращаются в нуль при подстановке значе-

ний õ1 = 5 и õ2 = 3, поэтому на основе этих равенств нельзя сделать никакого заключения относительно ó1 и ó2 . В равенствах (3) и (4) выражения в скобках при подстановке значений õ1 = 5 и õ2 = 3 принимают значения, отличные от нуля, поэтому для вы-

полнения этих равенств необходимо, чтобы ó3 = 0 и ó4 = 0. Получаем в результате следующую систему уравнений

для определения yi* :

51

2 y* +2 y*

+3y* = 7,

 

 

1

2

 

4

3y* + y* +3y*

=5,

 

 

1

2

3

 

y*

= 0,

 

 

 

 

3

 

 

 

 

*

 

 

 

 

 

= 0.

 

 

 

y4

 

 

 

Решая полученную систему, находим ó1 = 3/4, ó2 = 11/4. В итоге получаем оптимальное решение двойственнойзадачи

 

*

3

 

11

 

Y

 

 

=

 

,

 

, 0, 0 .

 

4

4

 

 

 

 

 

Значение Fmin (Y *) = 50 = Zmax (Õ*) .

Согласно теореме 3.7.4 это равенство еще раз указывает

на то, что X * и Y* представляют собой пару оптимальных решений для рассмотренных взаимно двойственных задач.

3.8. Транспортная задача

Среди задач линейной оптимизации могут быть выделены два класса задач со специальной структурой: транспортные задачи (ТЗ) и задачи о назначениях. Эти задачи используются для моделирования экономических проблем, связанных с формированием оптимального плана перевозок, оптимального распределения индивидуальных контрактов на перевозки, составлением оптимального штатного расписания, оптимального назначения кандидатов на работы, оптимального использования торговых агентов и т.д.

Критерием эффективности в данных задачах является линейная функция, ограничения также линейны, поэтому для их решения могут применяться методы линейной оптимизации, например С-метод. Однако специальная структура таких задач позволяет разработать более удобные методы их решения.

52

Постановка транспортной задачи по критерию стоимости

Транспортная задача в матричной форме формулируется следующим образом. В m пунктах отправления А1, А2, …, Аm сосредоточен однородный груз в количествах а1, а2, …, аm единиц соответственно. Этот груз необходимо доставить потребителям В1, В2, …, Вn, спрос которых задается величинами b1, b2 , ..., bn единиц.

Известны стоимости сij перевозки единицы груза из i-го ( i =1, m ) пункта отправления в j-й ( j =1, n ) пункт назначения.

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

Построим математическую модель транспортной задачи. Обозначим через õij ( i =1, m ; j =1, n ) количество единиц груза,

которое нужно перевезти из i-го пункта отправления в j-й пункт назначения.

Матрицу

x11x12... õ1n

X = x21x22... õ2n..............

xm1xm2... õmn

будем называть матрицей перевозок.

Транспортные издержки (тарифы) сij тоже запишем в виде матрицы С и назовем ее матрицей тарифов,

c

c ... c

 

 

11 12

 

1n

 

c

c

... c

 

C =

 

21 22

 

2n

.

 

..............

c

c

 

... c

 

 

 

m1 m2

mn

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

53

 

 

 

 

 

 

 

Таблица 3.8.1

 

 

 

 

 

 

 

Поставщик

 

Потребитель

 

Запас груза (аi)

В1

В2

 

Вn

 

 

 

 

 

А1

с11

с12

 

 

с1n

 

a1

 

x11

 

x12

 

 

x1n

 

 

 

 

 

A2

c21

с22

 

 

с2n

 

a2

x21

 

x22

 

 

x2n

 

 

 

 

 

 

 

Am

cm1

сm2

 

 

сmn

 

am

xm1

 

xm2

 

 

xmn

 

 

 

 

 

Потребность

b1

b2

 

bn

 

 

в грузе (bj)

 

 

 

 

 

 

 

 

 

 

Составим систему ограничений задачи.

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

x11 + x12 +... + õ1n = à1, x21 + x22 +... + õ2n = à2 ,

............................

xm1 + xm2 +... + õmn = àm.

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

x11 + x21 +. . . + õm1 = b1,

x12 + x22 +. . . + õm2 = b2 ,

. . . . . . . . . . . . . . . . . . . . . . . . . . .

x1n + x2n +... + õmn = bn.

Все переменные хij по смыслу задачи должны быть неотрицательны:

xij 0 ( i =1, m ; j =1, n ).

54

Цель транспортной задачи – минимизировать общие затраты на перевозки, поэтому критерием эффективности (целевой функцией) является функция Z, выражающая общую стоимость всех перевозок:

Z = c11x11 +c12 x12 +... +c1n x1n +

+c21x21 +... +cmn xmn.

Итак, математически транспортная задача ставится следующим образом:

дана система m + n линейных уравнений с m n переменными

 

n

 

 

 

 

 

 

 

 

 

= ai

 

(i =1, m),

 

xij

 

j=1

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

xij =bj

 

( j =

1, n

),

 

i=1

 

 

 

 

 

 

 

 

 

причем

 

(j =

 

 

 

 

 

 

)

xij 0

 

; i =

 

1, n

1, m

и линейная функция

 

m

n

 

 

 

Z = ∑ ∑cij xij .

 

 

i=1 j=1

(3.8.1)

(3.8.2)

(3.8.3)

Требуется среди решений системы (3.8.1) найти такое неотрицательное решение, при котором целевая функция (3.8.3) принимает минимальное значение.

Целевая функция и ограничения задачи линейны, значит, данная задача относится к задачам линейного программирования и может быть решена С-методом, однако благодаря особой структуре и особой значимости ТЗ для ее решения разработаны специальные методы.

Всегда ли транспортная задача разрешима? Ответ на этот вопрос дает следующая теорема.

Теорема 3.8.1 (о существовании допустимого плана ТЗ) Для того чтобы ТЗ имела допустимые планы, необходимо

и достаточно, чтобы

m

n

ai = bj .

i=1

j=1

55

Закрытая и открытая модели ТЗ

Модель ТЗ называют закрытой, если выполняется равенство

m

n

ài = bj ,

i=1

j=1

т.е. суммарный объем груза, имеющегося у поставщиков, равен суммарному спросу потребителей.

Если для ТЗ выполняется одно из следующих условий:

m

n

m

n

ài > bj èëè

ài < bj ,

i=1

j=1

i=1

j=1

то модель задачи называют открытой.

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

Допустим, имеет место первое из условий. В этом случае необходимо ввести фиктивный (n+1)-й пункт назначения Bn+1 ,

т.е. в распределительной таблице предусматривается дополнительный столбец. Спрос фиктивного потребителя полагают равным небалансу, т.е.

 

 

m

n

 

 

bn+1 = ai bj ,

 

 

i=1

j=1

а все тарифы – одинаковыми,

обычно равными нулю, т.е.

ci,n+1 = 0 (i =

 

) .

 

1, m

 

Аналогично при выполнении второго условия вводится

фиктивный

поставщик Àm+1 , запас груза у которого

n

m

am+1 = bj ai , а тарифы дополнительной строки распреде-

j=1

i=1

лительной таблицы равны нулю, т.е. cm+1, j = 0 ( j =1, n) .

При преобразовании открытой задачи в закрытую целевая функция не меняется, т.к. все слагаемые, соответствующие дополнительным перевозкам, равны нулю.

56

Теорема 3.8.2 (о ранге матрицы)

Ранг матрицы из коэффициентов при неизвестных ТЗ на единицу меньше числа уравнений системы ограничений: r = m +n 1.

Решение ТЗ состоит из двух этапов:

1 этап. Построение исходного опорного плана перевозок (xij )m n , удовлетворяющего ограничениям (3.8.1)–(3.8.2).

2 этап. Улучшение начального плана перевозок и получение оптимального плана перевозок, доставляющего минимум целевой функции (3.8.3).

Заметим, что общее число неизвестных в ТЗ равно m n, количество базисных неизвестных согласно теореме 3.8.2 равно m + n – 1, а остальные m n – (m + n – 1) будут свободными неизвестными.

Каждое решение ТЗ находим следующим образом: свободные неизвестные полагаются равными нулю, а базисные неизвестные находим из системы ограничений (3.8.1). Полученное опорное решение проверяем на оптимальность. Если решение неоптимальное, то переходим к новому решению путем изменения набора базисных неизвестных.

Эти действия повторяют до тех пор, пока не будет получено оптимальное решение.

Построение исходного опорного плана

Построение опорных планов, а также их преобразование будем проводить непосредственно в распределительной таблице.

Рассмотрим два метода нахождения начального опорного плана ТЗ: метод «северо-западного угла» и метод «минимального элемента».

Метод «северо-западного угла»

Составим распределительную таблицу. Начинаем ее заполнение с левого верхнего (северо-западного) угла. При заполнении двигаемся по строке вправо и по столбцу вниз. В клетку, находящуюся на пересечении первой строки и первого столбца, помещаем максимально возможное число единиц продукции, разрешенное ограничениями на предложение и спрос: x11 = min(a1,b1 ).

57

Если à1 <b1 , то x11 = a1 . Первую строку вычеркиваем (весь

груз из п. А1 вывезен) и двигаемся по столбцу вниз. В клетку, находящуюся на пересечении первого столбца и второй строки, помещаем максимально возможное число единиц продукции, разрешенное ограничениями на предложение и спрос

x21 = min(a2 ,b1 a1 ).

Если b1 à1 < à2 , то x21 = b1 a1 . Спрос первого потребителя удовлетворен. Первый столбец вычеркиваем и движемся по второй строке вправо. Заполнив клетку, стоящую на пересечении второй строки и второго столбца, переходим к заполнению следующей клетки второй строки либо второго столбца. Процесс продолжаем до тех пор, пока не исчерпается предложение и не будет удовлетворен спрос. Последняя заполненная клетка находится в последнем n-м столбце и последней m-й строке.

Пример 7

Составить план перевозки зерна из районов À1, À2 , À3, À4 , в которых запасы составляют соответственно 800, 700, 1000, 500 тыс. ц на три элеватора Â1, Â2 , Â3 мощностью 1000, 1100

и 900 тыс. ц. Затраты на перевозку 1 тыс. ц зерна из районов на элеваторы приведены в табл. 3.8.2.

 

 

 

 

 

 

Таблица 3.8.2

 

Районы

 

Элеваторы

 

 

Запасы

 

 

B1

B2

 

 

B3

 

 

 

 

 

 

 

 

 

 

A1

3

5

 

 

6

 

800

 

 

A2

7

2

 

 

4

 

700

 

 

A3

4

3

 

 

5

 

1000

 

 

A4

6

4

 

 

7

 

500

 

 

Мощность

 

 

 

 

 

 

 

 

 

элеватора

1000

1100

 

 

900

 

3000

 

 

Проверим,

разрешима

ли

задача.

Сравнивая

4

 

 

 

3

 

 

 

 

 

aj =800+700+1000+500=3000 и

bj =1000+1100+900=3000 ,

i=1

 

 

j=1

 

 

 

 

замечаем, что ТЗ разрешима (теорема 3.8.1). Заполняем табл. 3.8.3. В первую клетку помещаем x11 = min(800,1000) = 800 тыс. ц.

58

Весь запас зерна из района А1 отгружен на элеватор В1. Первую строку вычеркиваем. Двигаемся по первому столбцу вниз. Недостающее количество зерна на элеваторе В1 составляет 1000 –

– 800 = 200 тыс. ц зерна, x21 = min(200, 700)= 200 тыс. ц зерна.

Мощность первого элеватора В1 полностью использована. Первый столбец вычеркиваем.

 

 

 

 

 

Таблица 3.8.3

Районы

B1

Элеваторы

Запасы

 

B2

B3

 

 

 

A1

3

 

5

6

800

800

 

 

 

 

A2

7

 

2

4

700

200

 

500

 

 

 

 

A3

4

 

3

5

1000

 

600

400

 

 

 

 

A4

6

 

4

7

500

 

500

Мощность

 

 

 

 

 

 

 

 

 

элеватора

1000

 

1100

900

3000

Двигаемся по второй строке. Остаток зерна из района А2 отправляем на элеватор В2. x22 = min(700 200,1100)=500 тыс. ц

зерна. Запас района А2 исчерпан, вторую строку вычеркиваем. Отправляемся по второму столбцу вниз. х32 = (1100 – 500, 1000) = = 600 тыс. ц зерна. Мощность элеватора В2 исчерпана. Второй столбец закрыт. Двигаемся по третьей строке. Поставку зерна производим на элеватор В3. x33 = min(900,1000 600)= 400 тыс. ц зерна.

Отгрузка из района А3 полностью произведена. Третья

строка закрыта. Производим отгрузку

зерна

из района

А4.

x43 = min(500, 900 400)=500 тыс. ц зерна.

 

 

 

Табл. 3.8.3 заполнена(занятыеклеткивыделеныдиагоналями).

Число ненулевых значений хij (i =

 

j =

 

 

1,4;

1,3) равно шести.

Число базисных переменных задачи

m +n 1 = 4 +3 1 = 6 .

Остальные 4 3 6 = 6 переменных являются

свободными,

их

значения равны нулю.

 

 

 

 

 

59

 

 

 

 

 

 

Итак, исходный план перевозок имеет вид

 

 

800

0

0

 

Õ

=

 

200

500

0

 

 

.

1

 

 

0

600

400

 

 

 

 

 

 

 

 

0

0

500

 

 

 

 

 

Суммарные расходы на перевозку зерна

Z(X1) =3 800+7 200+2 500+3 600+5 400+7 500=12 100 тыс. руб.

Метод «северо-западного угла» – наиболее простой метод нахождения исходного опорного плана. План перевозок, полученный по этому методу, обычно далек от оптимального.

Метод «минимального элемента»

Суть метода состоит в следующем. Составляем распределительную таблицу с исходными данными.

Выбираем клетку таблицы с наименьшим тарифом и помещаем в нее максимально возможное значение единиц продукции, разрешенное ограничениями на предложение и спрос. После этого, если предложение производителя исчерпано, вычеркиваем соответствующую строку, если спрос удовлетворен, – соответствующий столбец.

Переходим к заполнению следующей клетки, тариф которой наименьший. Процесс продолжаем до тех пор, пока все клетки таблицы не окажутся заполненными или вычеркнутыми, т.е. когда все запасы поставщиков будут исчерпаны, а спрос потребителей полностью удовлетворен. В результате получаем опорный план, который должен содержать m +n 1 загруженных клеток.

Пример 8

Рассмотрим задачу из примера 7. Составим распределительную табл. 3.8.4.

60