2.2.2 ПРОВЕРКА НА ОПТИМАЛЬНОСТЬ
Если распределение перевозок включает (m + n - 1) независимых переменных, то к нему непосредственно можно применить методы проверки оптимальности. Если же число переменных меньше указанного количества, то критерий проверки оптимальности необходимо модифицировать так, как это будет показано ниже. Однако если число переменных превышает (m + n - 1), процедура распределения перевозок проведена некорректно. В
этом случае должны существовать варианты такого распределения перевозок, которые при меньшей стоимости содержат требуемое число переменных.
Проверим каждое из полученных разными методами распределений перевозок на базисность. В таблице 3 строки и 4 столбца, следовательно, базисное решение должно содержать (3 + 4 - 1) = 6 заполненных клеток. Это верно для обоих методов распределения перевозок. Кроме того, переменные решения, полученные с помощью обоих методов, находятся в различных точках допустимого множества. Следовательно, процедуру проверки можно применять, не прибегая ни к каким модификациям.
Проверка исходного распределения перевозок производится для того, чтобы определить, является ли данный вариант наиболее дешевым для транспортировки, и, если это не так, какие изменения следует внести в распределение.
Ниже изложены два метода проверки решения на оптимальность. В методе ступенек рассчитываются значения стоимости неиспользованных клеток, или теневые издержки. Сама процедура довольно длительная и кропотливая, однако, понимание ее сущности не представляет затруднений. Метод МОДИ (модифицированных распределений) - это математический алгоритм, позволяющий получить те же значения теневых издержек, причем гораздо быстрее, однако этот метод более сложен. В обоих методах в случае, если распределение перевозок является неоптимальным, для перехода к следующему базисному распределению используется ступенчатая процедура. Как только получено базисное решение, алгоритм позволяет осуществить переход от одной крайней точки допустимого множества к другой до тех пор, пока не будет достигнуто оптимальное решение.Для иллюстрации применения данного алгоритма используем распределение перевозок, полученное методом минимальной стоимости.
Ступеньками называются точки, в которые производится распределение перевозок. Выбирается одна из пустых клеток и предполагается, что в нее помещается одна единица продукта. Такая процедура нарушает баланс итоговых значений столбца или строки, на пересечении которых лежит данная клетка. Затем для восстановления баланса производится корректировка количества перевозимого продукта в некоторых заполненных клетках. Эти заполненные клетки, или ступеньки, используют при вычислении стоимости перевозки единицы продукта.
2.11П Начальное распределение перевозок, полученное методом минимальной стоимости Поставщик Транспортные издержки для магазинов, у.е. Общий объем предложения А В С Ф Р - 10 - 20 2 5 7 0 9 Q - 2 45 10 - 8 - 0 4 R 32 1 1б 20 44 7 - 0 8 Общий объем спроса 3 5 6 7 21
Ключ:
. Единичная
стоимость ^ транспортировки
4444,44444 Количество перевозимого
продукта
Если значение стоимости положительное, то привлечение пустой клетки увеличит общую стоимость, а это невыгодно. Если же значение стоимости отрицательное, то использование пустой клетки, напротив, снижает общую стоимость транспортировки.
Последнее означает, что полученное распределение перевозок является неоптимальным, и при использовании данной незаполненной клетки можно получить лучшее решение задачи.Какая из пустых клеток будет выбрана в начале процедуры, значения не имеет. Выберем клетку (Р, А). Добавим в нее одну единицу изделия. Теперь полученное распределение является несбалансированным. Розничный магазин А получает 4 единицы изделия, в то время как его потребность - 3. Торговый склад Р является поставщиком 10 изделий, тогда как максимальный объем его предложения равен 9. Необходимо произвести корректировку столбца А и строки Р. Для восстановления баланса в столбце А необходимо вычесть одно изделие из ступеньки (R, А). Эта мера корректирует столбец А, но нарушает баланс строки R, уменьшая соответствующее предложение с 8 до 7 единиц.
Можно осуществить перебалансировку строки Р вычитанием одного изделия либо из клетки (Р, Ф), либо из клетки (Р, С). Если мы выберем клетку (Р, Ф), то в фиктивном столбце нет больше заполненных клеток, которые можно было бы использовать в дальнейшей корректировке этого столбца, следовательно, данный выбор неприемлем. Корректировку можно осуществлять только с помощью тех клеток, которые уже заполнены на настоящий момент. Поэтому мы должны выбрать клетку (Р, С). Из (Р, С) вычитаем одно изделие. Это корректирует баланс по строке Р, но нарушает его по столбцу С. На данном этапе проблема несбалансированности связана со строкой R и столбцом С. Их можно скорректировать одновременно, добавив одно изделие в (R, C). Схематично процесс заполнения пустой клетки (Р, А) и восстановления баланса распределения перевозок показан в таблице.
Денежный эффект от перемещения одного изделия в клетку (Р, А) рассчитывается следующим образом:
+ 1 х стоимость (Р, А) - 1 х стоимость (R, A) + 1 х х стоимость (R, С) - 1 х стоимость (Р, С) = + 11 за изделие.
2.12П Проверка пустой клетки (Р, А) Изменение натурального объема, изделий А С Р Клетка, подвергнутая проверке + 1 Заполненная клетка - 1 R Заполненная клетка - 1 Заполненная клетка + 1 Использование клетки (Р, А) увеличило бы стоимость транспортировки на 11 у.е.
За каждое изделие, перевозимое из Р в А. Значение теневой цены является положительным, следовательно, использование данной клетки нежелательно.Возвращаемся к исходному распределению перевозок и проводим последовательную проверку остальных пустых клеток. Выберем клетку (R, Ф), а для иллюстрации натуральных и стоимостных изменений, связанных с перемещением одной единицы изделия в клетку (R, Ф), используем ступеньки (Р, Ф), (Р, С) и (R, С).
С
Ф
2.13П Проверка пустой клетки (R, Ф) Изменение натурального объема, изделий
Р Клетка, подвергнутая проверке + 1 Заполненная клетка - 1 R Заполненная клетка - 1 Заполненная клетка + 1 2.14П Проверка пустой клетки (R, Ф) Стоимостные изменения, у.е. С Ф Р Клетка, подвергнутая проверке + 5 Заполненная клетка - 0 R Заполненная клетка - 7 Заполненная клетка + 0 Стоимостные изменения от дополнения одного изделия в клетку (R, Ф) составили - 2 у.е. за одно изделие.
Размещение перевозок в клетке (R, Ф) дает возможность снизить издержки транспортировки, следовательно, начальное распределение перевозок оптимальным не является. Используя клетку (R, Ф) и указанный ступенчатый маршрут, можно найти более дешевое решение, позволяющее сэкономить 2 у.е. за каждую единицу изделия, перемещаемого в данную клетку. Однако проверку пустых клеток необходимо завершить, поскольку могут существовать клетки, использование которых позволяет получить еще большую экономию.
Теперь построим ступенчатый путь для пустой клетки (Q, Ф). Необходимо учитывать, что для последующего осуществления балансировки движение можно осуществлять только через заполненные клетки. В этом случае цикл из четырех шагов построить уже невозможно. Нам приходится выбирать более сложный маршрут. В клетку (Q, Ф) поместим одно изделие. Строка Q и фиктивный столбец содержат только по одной заполненной клетке. Предположим, что мы приняли решение двигаться из (Q, Ф) в (Q, В). Для того, чтобы сбалансировать строку Q, из этой клетки вычтем одно изделие.
Восстановить баланс для столбца В можно только с помощью клетки (R, В), следовательно, в нее необходимо добавить одно изделие. Балансировку строки R можно осуществить через клетки (R, А) и (R, С), но поскольку (R, А) - единственная заполненная клетка в столбце А, ее использовать нельзя. Если бы маршрут проходил через данную клетку, мы не могли бы сбалансировать столбец А. Объем перевозок в (R, С) уменьшается на одно изделие. Оставшаяся часть маршрута очевидна. Восстановление баланса в столбце С производится увеличением перевозок в (Р, С) на одну единицу, а баланс строки Р достигается вычитанием одного изделия из (Р, Ф). Последний шаг позволяет также сбалансировать фиктивный столбец и замкнуть цикл. Следует помнить, что построение замкнутого цикла внутри транспортной таблицы, который начинается и заканчивается в выбранной пустой точке, возможно только в том случае, если исходное распределение перевозок является базисным. Натуральные и стоимостные изменения, соответствующие построенному циклу, показаны в таблицах.Чистый стоимостной эффект от размещения в пустой клетке (Q, Ф) составит + 8 у.е. за изделие. В случае заполнения данной пустой клетки общая стоимость транспортировки увеличится. Поэтому рассмотренные изменения вводить не следует. В таблице показаны значения теневых цен.
2.15П Проверка пустой клетки (Q, Ф) Натуральные изменения, изделий В C Ф Р ПУСТАЯ Заполненная + 1 Заполненная - 1 Q Заполненная ПУСТА Проверяемая + 1 - 1 Я Я R Заполненная + 1 Заполненная - 1 Пустая 2.16П Проверка пустой клетки (Q, Ф) Стоимостные изменения, изделий
с
Ф
В
Пустая
Р
Заполненная - 0
Заполненная + 1
Я
Q
ПУСТА
Проверяемая + 0
Заполненная - 10
R
ПУСТА Я
Заполненная - 7
Заполненная + 20
2.17П Начальное распределение перевозок на оптимальность - метод ступенек Поставщик Транспортные издержки для магазинов, у.е. Общий объем предложения А В С Ф Р ©^ С?) 20 2 1 5 7 1». 9 Q © 2 4.
10 © ^ 4 R 3 1 1 20 4 LL © ^ 8 Общий объем спроса 3 5 6 7 21 Единичнаястоимость транспортировки
Ключ:
Количество перевозимого
продукта
Теневая цена клетки
Единичная
стоимость
транспортировки
Это решение является неоптимальным, так как клетке (R, Ф) соответствует отрицательная теневая цена, равная - 2 у.е. Стоимость транспортировки в 101 у.е. можно уменьшить, если ввести эту клетку и соответствующий ступенчатый цикл в распределение перевозок, что позволит достичь экономии стоимости в 2 у.е. на одно изделие.
Рассмотрим метод МОДИ вычисления теневых цен. Алгоритм метода ступенек является довольно трудоемким, и в процессе его реализации легко допустить ошибки. Использование оптимальности метода МОДИ в данном случае является более разумным. Хотя его алгоритм не позволяет вывить натуральные изменения, однако с его помощью можно получить те же значения теневых цен, затратив при этом гораздо меньше усилий.
Для начала рассмотрим только заполненные клетки. Для этих клеток каждое значение единичной стоимости су разделяется на две компоненты - и, для строк и Vj для столбцов. Например, единичная стоимость для клетки (R, B), лежащей на пересечении строки 3 и столбца 2, равна с32 = 20 у.е. В ней можно выделить компоненту и3, соответствующую строке, и компоненту v2, соответствующую столбцу.
Теневые цены для каждой пустой (небазисной) клетки можно найти из соотношения:
Sj = су - ( щ + Vj ).
Эта теневая цена означает дополнительную стоимость транспортировки единицы изделия из пункта i в пункт j. Если все теневые цены положительны или равны нулю, то есть sij > 0, то полученное решение является оптимальным. В этом случае перемещение единицы изделия в пустую клетку, которой соответствует положительная теневая цена, увеличит стоимость транспортировки. Если теневая цена имеет нулевое значение, то общая стоимость транспортировки не изменится.
Обратимся вновь к начальному распределению перевозок, полученному методом минимальной стоимости. Проведем проверку данного распределения на оптимальность с помощью метода МОДИ.
2.18П
Начальное распределение перевозок, полученое методом минимальной стоимости
Количество перевозимого продукта Поставщик Транспортные издержки для магазинов, у.е. Общий объем предложения А В С Ф Р 10 20 5
2 — 7 0 9 Q 2 10
4 —1 8 0 4 R 3 1 1 20 4 7 0 8 Общий
объем
спроса 3 5 6 7 21 Ключ:
Единичная
стоимость
транспортировки
Расчет компонент для строк и компонент для столбцов производится с помощью заполненных клеток. Заполненные клетки (Р, С), (Р, Ф), (Q, В), (R, А), (R, В), (R, С) приводят к системе из шести уравнений. Эти
шесть уравнений содержат семь переменных, поэтому система имеет не одно решение. Поскольку множество значений переменных является совместимым, фактические значения, присваиваемые компонентам, не играют никакой роли.
с13 = 5 = u1 + v3 с14 = 0 = ui + v4 с33 = 7 = u3 + v3 с31 = 1 = u3 + v1
с32 = 20 = u3 + V2
с22 = 10 = u2 + V2
для заполненной клетки (Р, С); для заполненной клетки (Р, Ф); для заполненной клетки (R, С); для заполненной клетки (R, A); для заполненной клетки (R, B); для заполненной клетки (Q, B).
Какой-либо из компонент присваивается некоторое значение, по которому из соответствующих уравнений рассчитываются значения остальных компонент. Положим, u1 = 0. Из этого следует, что V3 = 5, V4 = 0, V1 = - 1, V2 = 18, u3 = 2, u2 = - 8. Теперь, пользуясь соотношением sij- = су - (ui + Vj), мы можем найти значения теневых цен, соответствующих незаполненным клеткам.
Подставив найденные значения компонент ui и Vj, получим следующие теневые цены:
для пустой клетки (Р, А); для пустой клетки (Р, В); для пустой клетки (Q, А); для пустой клетки (Q, С); для пустой клетки (Q, Ф); для пустой клетки (R, Ф).
= 10 - (0 - (-1)) = + 11
= 20 - (0 + 18) = + 2 S21 = 2 - (- 8 - 1) = + 11
= 8 - (- 8 + 5) = + 11
= 0 - (- 8 + 0) = + 8 S34 = 0 - (2 + 0) = - 2
Эти значения заносятся в транспортную таблицу.
Теневые цены совпадают со значениями, найденными методом ступенек. Маршрут (R, Ф) имеет отрицательную теневую цену, следовательно, полученное решение является неоптимальным. Необходимо осуществить перераспределение перевозимых изделий с использованием указанной клетки и соответствующего ей ступенчатого цикла, что позволит снизит стоимость транспортировки. 2.19П Применение метода МОДИ для проверки
на оптимальность начального распределения перевозок Постав-щик Транспортные издержки
для магазинов, у.е. Общий объем предложения А В С Ф Р (+Л 10 20 2 Ш 7 Ш 9 щ = 0 Q (+11 2 , 10 45 СП Н 68) Ш 4 U2 = - 8 R 1
3 20
1 4 Ш 62)ш 8 u3 = 2 Общий объем спроса 3 5 6 7 21 Vi = - 1 V2 = 18 v3 = 5 V4 = 0
Единичная стоимость транспортировки
Ключ:
Количество перевозимого продукта
Теневая цена клетки
Единичная стоимость транспортировки