Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
12.02.2015
Размер:
383.49 Кб
Скачать

Теорема о сдвиге по циклу.

Любой сдвиг на величину а по циклу в матрице плана Х переводит любое решение системы (1/, 1//) в другое решение этой системы.

Докажем это.

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

Однако в распределительном методе используется не всякий цикл и не всякий сдвиг.

Рассмотрим матрицу плана нашей ТЗ Запишем в ней некоторое базисное решение задачи. Поскольку все переменные xij делятся на свободные и базисные, то и ячейки матрицы Х, в которых записаны значения этого базисного решения, будем называть соответственно свободными и базисными.

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

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

Допустим, что имеется два таких цикла. Из предыдущего ясно, что оба они содержат единственную свободную вершину. Означим эти циклы так, чтобы эта вершина была положительной в обоих циклах. Осуществим сдвиг в первом цикле на +2, а по второму на -2. Это не изменит значение свободной переменной, соответствующей нашей общей ячейке и тем более в остальных свободных ячейках. Но, поскольку циклы разные, решение в некоторых базисных ячейках тоже будут разные. Это противоречит тому, что базисные переменные не могут измениться при неизменных свободных переменных.

Определение.

Циклом пересчета свободной переменной (ЦПСП) назовем означенный цикл, который:

содержит эту ячейку;

остальные вершины цикла являются базисными ячейками матрицы плана;

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

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

Смысл введения этого понятия станет ясным из дальнейшего.

Перейдем к другой важной процедуре - выражению целевой функции через свободные переменные.

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

Рассмотрим исходный вид целевой функции

. (2)

В результате выполнения указанной процедуры мы должны для целевой функции получить следующее выражение

В этой форму суммирование распространяется только на свободные переменные, которые здесь обозначены через .

Чтобы получить форму (2а) из формы (2), следует подставить в нее вместо каждой базисной переменной ее выражение через свободные.

Формула для такого выражения имеет вид

(*),

где - произвольная базисная переменная,- свободные переменные,

(**)

Для доказательства этого факта рассмотрим некоторое базисное решение ТЗ и некоторую свободную переменную Построим ЦПСП этой переменной и осуществим по ней сдвиг на 1.

Изменение базисной переменной при этом согласно формуле (*) будет равно

,

поскольку приращение , а все остальные приращения свободных переменных

С другой стороны по определению сдвига по это ЦПСП приращение равно 0, если базисная ячейкане входит в ЦПСП свободной переменной, равно+1, если базисная ячейка является положительной вершиной ЦПСП свободной переменной и равно -1, если базисная ячейка является отрицательной вершиной ЦПСП свободной переменной.

Сказанное доказывает формулу (**).

Используя этот результат, получим формулу для коэффициентов вразложении целевой функции по свободным переменным. Для этого подставим в (2) вместо базисных переменных их выражения по формуле (**). После группировки по свободным переменным, получим искомую формулу

. (***)

Здесь - коэффициент при свободной переменной, - коэффициенты при базисных переменных, соответствующих положительным базисным ячейкам и- коэффициенты при базисных переменных, соответствующих отрицательным базисным ячейкам ЦПСП свободной переменной.При этом суммирование производится по положительным базисным ячейкам , суммирование-по отрицательным базисным ячейкам ЦПСП свободной переменной.

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

Эта операция называется алгебраическим суммированием стоимостей по циклу пересчета соответствующей свободной переменной (АСС по ЦПСП).

Для завершения подготовки к изложению распределительного метода решения транспортной задачи необходимо рассмотреть методы построения исходного базисного решения транспортной задачи

Рассмотрим два метода.

1. Метод северо-западного угла (диагональный метод).

Пример.

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

Таблица 1

0

50

a1

70

a2

10

a3

60

a4

20

30

20

50

30

40

190

b1

b2

b3

b4

b5

b6

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

Из названия метода следует, что заполнение начнем с левого верхнего угла таблицы.

Таблица 2

20

0

30

a1

70

a2

10

a3

60

a4

0

30

20

50

30

40

170

a5

b1

b2

b3

b4

b5

b6

Из таблицы 2 следует, что потребность первого потребителя в 50 единиц

удовлетворяется частично за счет всех запасов первого склада. Потребности первого потребителя теперь составляют 50-20=30 единиц.

Это отображается в том, что мы полагаем ,b1:=0, a1:=30

Только что внесенные изменения отмечаем подчеркиванием. При этом на первом складе не остается сырья, что выражается в «вычеркиванием» первого столбца. (в таблице вычеркивание выражается выделением жирным шрифтом)

Аналогично строится таблица 3. Оставшаяся потребность первого потребителя в 30 единиц удовлетворяется полностью за счет всех запасов второго склада, что выражается «вычеркиванием» второго столбца. Полагаем .

Таблица 3

20

30

0

0

a1

0

70

a2

10

a3

60

a4

0

0

20

50

30

40

140

a5

b1

b2

b3

b4

b5

b6

Важное замечание: на каждом шаге вычеркивается только одна строка или только один столбец. Необходимость этого требования станет ясным позже. Мы видим, что при построении таблицы 3 можно было бы вычеркнуть первую строку а не второй столбец, но нельзя вычеркивать их обоих.

При построении таблицы 4 нам придется поэтому «перевезти» 0 единиц сырья из третьего склада первому потребителю, положив , и вычеркнув первую строку.

Таблица 4

20

30

0

0

a1

0

70

a2

10

a3

60

a4

0

0

20

50

30

40

140

a5

b1

b2

b3

b4

b5

b6

При построении таблицы 5, мы вычеркиваем третий столбец, положив ,b3:=0, a2:=50

Таблица 5

20

30

0

0

a1

20

0

50

a2

10

a3

60

a4

0

0

0

50

30

40

120

a5

b1

b2

b3

b4

b5

b6

При построении таблицы 6 опять приходилось выбирать, что вычеркивать: четвертый столбец или вторую строку?

Мы вычеркиваем вторую строку, положив ,b4:=0, a2:=0

Таблица 6

20

30

0

0

a1

20

50

0

0

a2

10

a3

60

a4

0

0

0

0

30

40

70

a5

b1

b2

b3

b4

b5

b6

При построении таблицы 7, мы вновь «перевозим» 0 из четвертого склада к третьему потребителю, вычеркиваем четвертый столбец, положив ,b34:=0, a2:=0

Таблица 7

20

30

0

0

a1

20

50

0

0

a2

0

10

a3

60

a4

0

0

0

0

30

40

70

a5

b1

b2

B3

b4

b5

b6

При построении таблицы 8, мы вычеркиваем третью строку, положив ,b5:=20, a3:=0

Таблица 8

20

30

0

0

a1

20

50

0

0

a2

0

10

0

a3

60

a4

0

0

0

0

20

40

60

b1

b2

b3

b4

b5

b6

При построении таблицы 9, мы вычеркиваем пятый столбец , положив ,b5:=0, a4:=40

Таблица 9

20

30

0

0

a1

20

50

0

0

a2

0

10

0

a3

20

40

a4

0

0

0

0

0

40

40

b1

b2

b3

b14

b5

5

b6

При построении последней таблицы 10, мы вычеркиваем шестой столбец , положив ,b6:=0, a4:=0

Таблица 10

20

30

0

0

a1

20

50

0

0

a2

0

10

0

a3

20

40

0

a4

0

0

0

0

0

0

0

b1

b2

b3

b4

b5

b6

Теперь перевозка завершена, так как предпоследние строка и столбец обнулены.

Мы можем утверждать, что построено базисное решение нашей ТЗ, так как заполнены 9 ячеек матрицы , то есть определены значения всех девяти базисных переменных. Действительно, в нашей задаче n=4, m=6 и поэтому ранг и число базисных переменных равны r=n+m-1-=9.

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

В таблицу 11 занесено построенное базисное решение.

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

Таблица 11

20

30

0

0

0

0

0

a1

0

0

20

50

0

0

0

a2

0

0

0

0

10

0

0

a3

0

0

0

0

20

40

0

a4

0

0

0

0

0

0

0

b1

b2

b3

b4

b5

b6

2. Метод наименьшей стоимости.

Это «жадный» метод, являющийся модернизацией метода северо-западного угла.

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

Соседние файлы в папке Лекции