Тема 5. Транспортная задача
Постановка транспортной задачи
Симплекс-метод является универсальным методом решения задач линейного программирования. Однако существуют классы задач, обладающие специфическими свойствами, для которых разработаны более простые методы решения. К такому типу относится задача, получившая название транспортной.
Пусть имеется m поставщиков однородного груза с запасами (мощностями) единиц соответственно. Этот груз необходимо доставить n потребителям , необходимое количество груза для которых (емкости) составляет . Стоимости сij перевозок единицы груза от i-го поставщика к j-му потребителю считаются заданными. Условия задачи представлены в таблице вида
|
b2 |
|||
a2 |
||||
am |
Требуется составить такой план перевозок (т.е. указать количество перевезенного груза от каждого поставщика к каждому потребителю), при котором будут полностью разгружены поставщики и удовлетворены потребители, а транспортные издержки будут минимальны.
Если суммарная мощность поставщиков равна суммарной емкости потребителей, т.е. , то модель транспортной задачи называется закрытой, при нарушении этого условия — открытой.
Закрытая транспортная задача
Рассмотрим задачу закрытого типа. Обозначим количество груза, перевозимого от i-го поставщика к j-му потребителю, через.
Составим математическую модель задачи.
(1)
(2)
(3)
(4)
Первые m уравнений системы (1) соответствуют ограничениям по запасам поставщиков, последние n — ограничениям потребителей; условие неотрицательности (2) следует из экономического смысла неизвестных ; уравнение (2) означает, что транспортная задача является закрытой. Целевая функция (4) выражает суммарную стоимость перевозок.
Математически транспортная задача (1)—(4) ставится следующим образом: среди множества планов системы линейных уравнений (1), (3) и неравенств (2) найти такой план , который минимизирует целевую функцию (4).
Таким образом, транспортная задача является задачей линейного программирования и может быть решена симплекс-методом, алгоритм которого состоит из трех шагов:
-
Построение начального плана.
2. Проверка плана на оптимальность. Если план оптимален, то задача решена; в противном случае — переход к п.3.
3. Построение нового плана с меньшей (или равной) стоимостью перевозок.
Специфические особенности системы ограничений транспортной задачи привели к разработке упрощенного метода решения на каждом шаге алгоритма.
Пример 1. Необходимо осуществить перевозки однородного груза от 4-х поставщиков 3-м потребителям, запасы и потребности которых, а также стоимости единичных перевозок заданы таблицей:
|
12 |
9 |
19 |
9 |
10 |
3 |
10 |
8 |
7 |
8 |
12 |
12 |
5 |
5 |
8 |
11 |
2 |
1 |
7 |
Требуется построить такой план перевозок, при котором суммарная стоимость будет наименьшей.
-
Построение начального плана.
Прежде всего проверим, является ли задача закрытой.
9+8+12+11=40;
12+9+11=40.
Поскольку , мы имеем дело с закрытой задачей.
Решение будем строить непосредственно в транспортной таблице 7, которая имеет вид:
Таблица 7.
Поставщики |
Потребители |
||||
b2 |
|||||
|
|
||||
|
|
||||
|
|
||||
|
|
где ai — мощность поставщиков, bj — емкость потребителей, сij —стоимость единичной перевозки, а хij — количество перевозимого груза от Аi поставщика к Bj потребителю, i=1…m, j=1…n.
Начальный план составим методом наименьшей стоимости.
Из всей таблицы выбираем наименьшую стоимость единичной перевозки сij и в соответствующую ей клетку помещаем наименьшее из чисел и . Тогда или будет полностью исчерпан запас груза поставщика и в остальных клетках i -ой строки можно поставить прочерк, или потребности потребителя будут полностью удовлетворены и можно поставить прочерк в оставшихся клетках j-го столбца.
Из незаполненных клеток снова выбираем клетку с наименьшей стоимостью, и процесс распределения грузов повторяем, пока все запасы поставщиков не будут распределены, а потребности потребителей полностью удовлетворены. (Если клеток с одинаковой стоимостью несколько, в первую очередь заполняется клетка с наибольшей возможной поставкой.)
В нашем примере наименьшую стоимость перевозки с42=1 имеет клетка (4;2). Потребность в грузе потребителя B2 составляет 9, а запас груза поставщика А4 11 единиц. Наибольшая из возможных поставок =9 (наименьшее из чисел 11 и 9). Записываем =9 в таблицу и в оставшихся клетках второго столбца ставим прочерк, т.к. потребности B2 будут полностью удовлетворены. У поставщика А4 остается в запасе 2 единицы груза.
Далее заполняем клетку (4;1) с с41=2. Поставку х42 определим как наименьшее из чисел 12 и 2 (остаток груза А4), х42=2. Потребителю В1 необходимо завезти еще 10 единиц груза, а возможности поставщика А4 будут исчерпаны полностью, в клетке (4;3) ставим прочерк.
Из оставшихся клеток наименьшую стоимость имеет клетка (3;1) с с31=5. Запас груза А3 равен 12, потребность В1 10 единиц, следовательно х31=10. Потребности В1 удовлетворены полностью, в остальных клетках первого столбца ставим прочерки. Оставшиеся у А3 2 единицы поместим в (3;3), т. е. х33=2. Далее вносим в таблицу х23=8, х12=9.
Таблица 8 представляет начальный план задачи Х1. (Полезно проверить, что сумма поставок по столбцам равна соответствующим мощностям потребителей, сумма поставок по строкам — емкостям поставщиков.)
Таблица 8. План Х1.
40 40 |
||||
12 |
9 |
19 |
||
|
9 |
10 — |
3 — |
10 9 |
|
8 |
7 — |
8 — |
12 8 |
|
12 |
5 10 |
5 — |
8 2 |
|
11 |
2 2 |
1 9 |
7 — |
Заполненные клетки таблицы соответствуют базисным переменным, а пустые — свободным переменным из системы ограничений (1) (свободные переменные равны нулю). Поскольку система (1) содержит m+n–1 линейно независимых уравнений, то и число базисных переменных будет таким же, (m — число поставщиков, n — число потребителей). План с m+n–1 заполненными (базисными) клетками называется невырожденным, при меньшем числе заполненных клеток — вырожденным. Для того чтобы снять вырождение, необходимо в пустые клетки записать нулевые перевозки, дополнив число базисных переменных до количества m+n–1. Ноль можно поставить только в ту пустую клетку, которая не будет образовывать цикла вместе с уже заполненными клетками.
Циклом называется замкнутая ломаная, вершины которой находятся в клетках, а звенья располагаются вдоль строк и столбцов; в каждой вершине встречаются два звена, одно из которых проходит вдоль строки, а другое — вдоль столбца. Начало и конец ломаной совпадают; она может самопересекаться.
Проверим вырожденность плана нашей задачи: мы имеем 4-х поставщиков и 3-х потребителей, для невырожденного плана число заполненных клеток должно составлять 4+3–1=6. У нас 6 заполненных клеток, следовательно, план невырожденный.
Подсчитаем суммарную стоимость перевозок плана Х1:
и делаем следующий шаг.