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

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

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

 

 

 

 

 

Таблица 3.8.4

 

Районы

 

Элеваторы

 

Запасы

 

 

B1

B2

B3

 

 

 

 

 

 

 

A1

 

3

5

6

 

800

 

 

800

 

 

 

 

2

 

 

 

 

A2

 

7

4

 

700

 

 

700

 

 

 

 

 

 

 

 

 

A3

 

4

3

5

 

1000

 

 

200

400

400

 

 

 

 

 

 

 

A4

 

6

4

7

 

500

 

 

500

 

 

Мощность

 

 

ai = bj

 

1000

1100

900

 

элеватора

 

i

j

 

 

 

 

 

 

Просматриваем табл. 3.8.4 и находим клетку, соответствую-

щую наименьшей стоимости перевозки ( ñ22 = 2

тыс. руб).

 

Помещаем в

эту

клетку

x22 = min(700,1100)= 700

тыс. ц

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

Помещаем x11 =min(800,1000)=800 тыс. цзернаводнуизэтих клетоки x32 = min(1000,1100 700)= 400 тыс. ц– вдругую.

Вычеркиваем первую строку и второй столбец таблицы. Далее загружаем клетки, тариф которых равен 4 тыс. руб.

Загружаем õ31 = min(1000 400,1000 800) = min(600, 200) =

=200 тыс. ц зерна в соответствующую клетку. После этого

мощность элеватора В1 полностью использована. Остается эле-

ватор В3, который может принять зерно из районов А3 и А4.

Помещаем x33 = min(1000200400, 900)= min(400, 900) =

=400 тыс. ц зерна в соответствующую клетку. Остается заполнить последнюю клетку таблицы, помещаем туда x43 =500 тыс. ц

зерна.

61

В результате получаем опорный план задачи

800

0

0

 

 

0

700

0

 

 

 

Õ2 =

200

400

400

.

 

 

 

0

0

500

 

 

 

Подсчитаем общие затраты на перевозку груза по этому плану:

Z(X2) =3 800+2 700+4 200+3 400+5 400+7 500=11 300 тыс. руб.

Сравнивая значения целевых функций для планов Õ1 и Õ2 ,

полученных по методам «северо-западного угла» и «минимального элемента», замечаем, что транспортные расходы по плану Õ2 на перевозку зерна из районов на элеваторы на 800 тыс. руб.

меньше, чем по плану Õ1 . Замечание:

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

Вэтом случае в свободные клетки надо записать число 0 (говорят «сделать нуль-загрузку»), условно считая такую клетку

занятой (количество занятых клеток должно быть равно m +n 1 ). Однако число 0 можно записать лишь в те свободные клетки, которые не образуют циклов с ранее занятыми клетками (понятие цикла будет рассмотрено позднее).

Итак, первый этап решения ТЗ завершен, исходный опорный план построен.

Переходим ко второму этапу. Как определить, будет ли построенный опорный план оптимальным? Чтобы ответить на этот вопрос, необходимо уметь оценивать оптимальность полученного плана.

Имеет место теорема 3.8.3 (о потенциалах)

Если план Õ = (õij )m n ТЗ является оптимальным, то суще-

ствует набор m + n чисел ui*,v*j , удовлетворяющих условиям

62

u*

+ v* = c

, если

x*

> 0

i

j

ij

 

 

ij

 

 

и u* + v* c

 

, если

x*

= 0

i

j

ij

 

 

ij

 

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

Числа ui* и v*j называются потенциалами соответственно

i-го поставщика и j-го потребителя.

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

1) каждой занятой клетке в распределительной таблице соответствует сумма потенциалов, равная тарифу этой клетки, т.е.

ui* +v*j = cij ;

2) каждой свободной клетке соответствует сумма потенциалов, не превышающая тарифа этой клетки, т.е. ui* +v*j cij .

На теореме о потенциалах основан специальный метод решения ТЗ – метод потенциалов.

Метод потенциалов

Пусть исходный опорный план ТЗ построен.

Если полученный план вырожденный, делаем «нульзагрузку» в свободные клетки так, чтобы общее число занятых клеток стало равно m +n 1 .

Проверяем план на оптимальность. Для этого каждому по-

ставщику поставим в соответствие потенциал ui

(i =

1, m

),

а каждому потребителю – потенциал v j ( j =

 

).

 

 

 

1, n

 

 

 

Согласно теореме о потенциалах каждой занятой клетке будет соответствовать уравнение

ui + v j = cij .

Число таких уравнений равно m +n 1 , а число неизвестных ui и v j равно m + n . Система неопределенная, и, чтобы

найти частное решение, одному из потенциалов придадим произвольное числовое значение, обычно полагают u1 = 0.

63

Решаем полученную систему уравнений и находим значения потенциалов ui и v j .

Далее для каждой свободной клетки таблицы проверяем условие ui +v j cij , для этого для каждой свободной клетки вы-

числяется оценка Sij = cij (ui +v j ) . Если все Sij 0 , то содержащийся в таблице опорный план является оптимальным. Причем если все Sij > 0 , то оптимальное решение единственно, если

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

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

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

Возможные виды циклов:

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

Из поставок в клетках цикла с «отрицательными» вершинами выбирается наименьшее количество груза – λ, которое и перемещается по клеткам этого цикла: прибавляется к поставкам

в«положительных» вершинах и вычитается в «отрицательных»,

врезультате чего баланс цикла не нарушается.

64

Укажем некоторые свойства цикла:

1.Каждое звено соединяет две клетки строки или столбца.

2.Цикл строится для свободной клетки, остальные вершины цикла находятся в занятых (базисных) клетках.

3.В цикле всегда четное число клеток.

4.Длясвободнойклеткиможнопостроитьединственныйцикл.

Алгоритм решения транспортной задачи методом потенциалов

1.Строим исходный опорный план по методу «северозападного угла» или по методу «минимального элемента».

2.Вычисляем потенциалы поставщиков и потребителей ui

и v j ( i =1, m; j =1, n ) из системы линейных уравнений вида

ui + v j = cij ( m +n 1 уравнений).

3. Вычисляем оценки Sij для всех свободных клеток таб-

лицы по формуле Sij = cij (ui +v j ) . Если все Sij 0 , то полученный опорный план является оптимальным. При этом если все Sij > 0 , то полученный оптимальный план единственный.

Если хотя бы одна оценка Sij = 0 , то задача имеет множество

оптимальных планов.

Пример 9

С трех складов А1, А2, А3 необходимо доставить овощи

впять торговых точек В1, В2, В3, В4, В5. Требуется закрепить склады за торговыми точками так, чтобы общая сумма затрат на перевозку была минимальной. Числовые данные указаны

втабл. 3.8.5.

 

 

 

 

 

 

 

Таблица 3.8.5

Склады

 

Торговые точки

 

Объем вывоза, т

В1

В2

В3

В4

В5

А1

7

3

5

4

2

 

40

А2

6

2

3

1

7

 

150

А3

3

5

2

6

4

 

100

Объем ввоза, т

20

80

90

60

40

ai = bj = 290

 

 

 

 

 

i

j

 

 

 

 

 

 

 

 

 

65

 

 

 

 

Модель задачи закрытая. Составим исходный опорный план

по методу «минимального элемента» (табл. 3.8.6).

Таблица 3.8.6

 

 

 

 

 

 

 

 

 

Склады

 

 

Торговые точки

 

Объем вывоза, т

В1

В2

 

В3

В4

В5

А1

7

 

3

 

5

4

2

 

40

 

0

 

40

 

 

 

 

 

 

1

 

 

А2

6

 

2

 

+

7

 

150

 

10

80

 

3

60

 

 

3 +

2

 

 

 

 

А3

10

5

6

4

 

100

 

 

 

 

90

 

 

ai = bj = 290

Объем ввоза, т

20

80

 

90

60

40

 

 

 

 

 

 

 

 

i

j

х24 = 60; х22 = 80; х33 = 90; х15 = 40; х31 = 10; х21 = 10.

Число занятых клеток равно шести, а m +n 1 =3 +5 1 = 7 . Таким образом, мы получили вырожденный опорный план.

В одну из свободных клеток помещаем 0 и будем считать эту клетку занятой. Полагаем, что х12 = 0.

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

 

 

0

0

0

0

40

 

Х1 =

 

10

80 0

60

0

 

 

.

 

 

10

0

90

0

0

 

 

 

 

Стоимость перевозки по плану Х1

Z(Х1) = 2 40 +6 10 +2 80 +1 60 +3 10 +2 90 =570 ó.å.

Присваиваем потенциалы пунктам отправления – ui (i =1,3) и пунктам назначения – v j ( j =1, 5) .

Определяем потенциалы из системы уравнений:

66

u1 +v2 =3,

u1 +v5 = 2,

u2 +v1 = 6,

u2 +v2 = 2,

u2 +v4 =1,

u3 +v1 =3,

u3 +v3 = 2.

Положим u1 = 0 , тогда

u2 = −1; u3 = −4;

v1 = 7; v2 =3; v3 = 6; v4 = 2; v5 = 2.

Вычисляем оценки для всех свободных клеток:

S11 = 7 (0 +7) = 0, S13 =5 (0 +6) = −1(!), S14 = 4 (0 +2) = 2,

S23 =3 (1+6) = −2(!), S25 = 7 (1+2) = 6, S32 =5 (4 +3) = 6, S34 = 6 (4 +2) =8, S35 = 4 (4 +2) = 6.

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

Наиболее перспективной для загрузки является клетка с оценкой S23 = –2. Построим для нее цикл в распределительной таблице (цикл выделен штриховой линией в табл. 3.8.6).

λ = min (10, 90) = 10.

Делаем сдвиг по циклу на число λ = 10. Получаем новый опорный план, строим новую табл. 3.8.7.

67

 

 

 

 

 

 

 

Таблица 3.8.7

Склады

 

Торговые точки

 

Объем вывоза, т

В1

В2

В3

В4

В5

А1

7

3

5

4

2

 

40

0

40

 

 

 

 

 

 

 

А2

6

2

3

1

7

 

150

80

10

60

 

 

 

 

 

 

А3

3

5

2

6

4

 

100

20

80

 

 

 

 

 

ai = bj = 290

Объем ввоза, т

20

80

90

60

40

 

 

 

 

 

 

i

j

Выписываем полученный опорный план

 

0

0

0

0

40

 

Х2

 

0

80

10 60

0

 

=

.

 

 

20

0

80

0

0

 

 

 

 

Z(Х2) = 2 80 +3 10 +1 60 + 2 40 +3 20 + 2 80 = 550 ó.å.

Проверим план Х2

на оптимальность.

 

 

Для занятых клеток составим систему уравнений для опре-

деления потенциалов ui (i =

 

 

и v j

( j =

 

 

1,3)

1, 5) :

u1 +v2 =3,u1 +v5 = 2,

u2 +v2 = 2,u2 +v3 =3,u2 +v4 =1,

u3 +v1 =3,u3 +v3 = 2.

Положимu1 = 0 , тогда u2 = −1; u3 = −2;

v1 = 5; v2 = 3; v3 = 4; v4 = 2; v5 = 2.

68

Вычислим оценки для всех свободных клеток

S11 = 7 (0 +5) = 2,

S13 =5 (0 +4) =1,

S14 = 4 (0 +2) = 2,

S21 = 6 (1+5) = 2,

S25 = 7 (1+2) = 6,

S32 =5 (2 +3) = 4,

S34 = 6 (2 +2) = 6,

S35 = 4 (2 +2) = 4.

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

Итак,

 

0

0

0

0

40

 

 

 

 

 

 

 

 

 

 

Õ2 =

0

80 10 60

0

.

 

 

20

0

80

0

0

 

 

 

 

 

Стоимость перевозки по плану Х2* минимальна.

 

Z*min = Z(Х2*) = 550 у.е.

 

Решение транспортной задачи с открытой моделью

 

Решение ТЗ проиллюстрируем

 

для случая, когда

m

n

 

 

 

 

 

 

ài > bj .

 

 

 

 

 

 

i=1

j =1

 

 

 

 

 

 

Пример 10

Втрех хранилищах А1, А2, А3 имеется соответственно 70, 90

и50 т топлива. Требуется спланировать перевозку топлива че-

тырем потребителям В1, В2, В3, В4, спрос которых равен соответственно 50, 70, 40 и 40 т, так, чтобы затраты на транспортировку были минимальны. Стоимость перевозки 1 т топлива указана в табл. 3.8.8.

69

 

 

 

 

 

 

 

Таблица 3.8.8

 

 

 

 

 

 

 

 

Хранилище

 

Потребители

 

Запас топлива, т

В1

 

В2

В3

 

В4

А1

5

 

2

3

 

6

70

А2

4

 

3

5

 

7

90

А3

2

 

4

1

 

5

50

Потребность в топливе, т

50

 

70

40

 

40

210 > 200

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

3

4

 

 

b5 =

ài bj = 210

200

=10 .

i=1

j=1

 

 

Затраты фиктивного потребителя ñi5 = 0 (i =1,3) .

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

 

 

 

 

 

 

Таблица 3.8.9

 

 

 

 

 

 

 

Хранилище

 

Потребители

 

Запас

В1

В2

В3

В4

В5

топлива, т

 

А1

5

2

3

6

0

70

А2

4

3

5

7

0

90

А3

2

4

1

5

0

50

Потребностьв топливе, т

50

70

40

40

10

210

Исходный опорный план получим по правилу «минимального элемента». Так как наименьшими являются нулевые тарифы, то положим, например, õ15 =10 . Затем получаем õ33 = 40 ,

õ12 = 60, õ31 =10, õ22 =10, õ21 = 40, õ24 = 40. Получаем табл. 3.8.10.

70