Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Polnaya_versia.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.21 Mб
Скачать

3.3. Алгоритм метода потенциалов.

Числа ui (i=1, 2, …, m) и vj (j=1, 2, …, n) из Теоремы 3.2.5 называются потенциалами задачи. Метод потенциалов основан на использовании этих чисел.

3.3.1. Основные пункты алгоритма:

1) Построить первоначальный опорный план.

2) Проверить план на оптимальность. Если критерий оптимальности не выполнен, то перейти к пункту 3). В противном случае задача решена. Перейти к пункту 5).

3) Перейти к очередному опорному плану.

4) Перейти к пункту 2).

5) Вычислить стоимость перевозок.

Распишем подробно основные пункты алгоритма.

3.3.2. Построение первоначального опорного плана.

Мы познакомимся с двумя методами построения первоначального опорного плана. Мы здесь рассмотрим метод северо-западного угла (ниже, в пункте 3.3.5 познакомимся с так называемым методом наименьшей стоимости). Суть метода (северо-западного угла) поясним на задаче с Таблицей 3.1. Начинаем заполнять таблицу планом с «северо-западного угла».

Пример 4. У первого поставщика имеется 90 единиц груза, а первому потребителю нужно 70 единиц. Поэтому можем спланировать перевозку 70 единиц груза от первого поставщика к первому потребителю: вписываем в клетку (1, 1) 70 и как бы вычёркиваем первого потребителя  он «получил своё» и в дальнейшем распределении груза не участвует: ставим знак «» над первым столбцом:

bj

ai

70

30

20

40

90

1

70

3

4

5

30

5

3

1

2

40

2

1

4

2

У первого поставщика осталось 20 единиц груза, а второму потребителю всего нужно 30. Поэтому вписываем эти 20 единиц в клетку (1, 2), вычеркнув первую строку (у первого поставщика все 90 единиц груза использованы, и он выбывает из дальнейшего распределения поставок):

bj

ai

70

30

20

40

90

1

70

3

20

4

5

30

5

3

1

2

40

2

1

4

2

Второму потребителю требуется ещё 10 единиц, которые мы «заберём» у второго поставщика (у него их имеется 30 единиц): вписываем 10 в клетку (2, 2) и вычеркнем второй столбец:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

30

5

3

10

1

2

40

2

1

4

2

У второго поставщика осталось ещё 20 единиц груза, и третьему потребителю требуется как раз 20 единиц. Вписав эти 20 единиц в клетку (2, 3) вычёркиваем только одного участника, скажем, второго поставщика, хотя фактически из распределения груза выбывают одновременно второй поставщик и третий потребитель. Вычёркивание на одном шаге только одного участника обеспечивает участие второго в следующем шаге заполнения таблицы, и в результате будет заполнено в точности m+n1 клеток:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

30

5

3

10

1

20

2

40

2

1

4

2

Так как третий потребитель ещё не вычеркнут, то вписываем 0 в клетку (3, 3) и вычёркиваем третьего потребителя:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

30

5

3

10

1

20

2

40

2

1

4

0

2

Наконец, на последнем, 3+41=6-м шаге, вписываем 40 в клетку (3, 4) и вычёркиваем обоих участников  третьего поставщика и четвёртого потребителя:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

30

5

3

10

1

20

2

40

2

1

4

0

2

40

Получили первоначальный опорный план (Таблица 3.2).

3.3.3. Проверка плана на оптимальность производится по следующей схеме:

1) Вычислить потенциалы ui (i=1, 2, …, m) и vj (j=1, 2, …, n).

2) Проверить условие оптимальности (3.3).

Более подробно:

1) Потенциалы вычисляются решением системы (3.2), где cij  стоимости перевозок для заполненных клеток. Эта система состоит из m+n уравнений с m+n неизвестными. Ранг системы равен m+n1, так как матрица этой системы транспонирована по отношению к матрице ограничений транспортной задачи (3.1), ранг которой равен m+n1 (Теорема 3.2.2). Поэтому эта система имеет одну свободную неизвестную, и, вообще говоря, имеет бесконечное множество решений. Присвоив какой-то неизвестной, скажем, неизвестной u1, какое-то значение, например, 0 (u1=0), мы найдём однозначно определённые значения остальных ui и vj. При этом удобно решать систему не традиционным способом (например, методом исключения Гаусса), а, так сказать, «не отходя от таблицы»: справа от таблицы на уровне соответствующей строки последовательно выписываем очередное найденное значение ui, а под соответствующим столбцом  очередное найденное значение vj. Продемонстрируем это на нашем примере (Таблица 3.1). А именно,

Пример 5. Найдём потенциалы ui и vj для первоначального опорного плана (Таблица 3.2).

Справа от таблицы на уровне первой строки записываем 0:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

40

2

1

4

0

2

40

В первой строке заполнены клетки (1, 1) и (1, 2). Стоимости в этих клетках равны соответственно c11=1 и c12=3. Поэтому v1=c11u1=10=1 и v2=c12u1=30=3. Значения v1=1 и v2=3 записываем под первым и вторым столбцами соответственно:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

40

2

1

4

0

2

40

1

3

Во втором столбце кроме клетки (1, 2) заполнена клетка (2, 2). По ней определяем u2=c22v2=33=0. Записываем u2=0 справа от таблицы на уровне второй строки:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

0

40

2

1

4

0

2

40

1

3

Во второй строке кроме клетки (2, 2) заполнена клетка (2, 3). По ней определяем v3=c23u2=10=1. Записываем значение v3=1 под третьим столбцом:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

0

40

2

1

4

0

2

40

1

3

1

В третьем столбце кроме клетки (2, 3) заполнена клетка (3, 3). По ней определяем u3=c33v3=41=3, и записываем u3=3 справа от таблицы на уровне третьей строки:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

0

40

2

1

4

0

2

40

3

1

3

1

Наконец, по клетке (3, 4) определяем v4=c34u3=23=1, и записываем его под четвёртым столбцом:

bj

ai

70

30

20

40

90

1

70

3

20

4

5

0

30

5

3

10

1

20

2

0

40

2

1

4

0

2

40

3

1

3

1

1

Таким образом, u1=0, u2=0, u3=3, v1=1, v2=3, v3=1, v4=1.

2) После нахождения потенциалов ui (i=1, 2, …, m) и vj (j=1, 2, …, n) необходимо проверить выполнение условия (3.3) для всех пустых клеток (для заполненных клеток потенциалы найдены из условия ui+vj=cij; поэтому для заполненных клеток проверка условия (3.3) нужна разве что только для проверки правильности найденных потенциалов. Имеем

u1+v3=0+1=1<4=c13, u1+v4=01=1<5=c14, u2+v1=0+1=1<5=c21,

u2+v4=01=1<2=c24, u3+v1=3+1=4>2=c31, u3+v2=3+3=6>1=c32,

Таким образом, u1+v3<c13, u1+v4<c14, u2+v1<c21, u2+v4<c24, но u3+v1>c31 и u3+v2>c32, то есть условие (3.3) выполнено не для всех клеток, и нельзя утверждать, что данный опорный план оптимален.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]