ТРАНСПОРТНАЯ ЗАДАЧА. Общая постановка транспортной задачи состоит в определении оптимального плана перевозок некоторого однородного груза из пунктов отправления (поставщики) A1, A2, . . ., A в m n m пунктов потребления (потребители) B1, B2, . . . Bn так, чтобы: - вывезти все грузы от поставщиков; - удовлетворить спрос каждого потребителя; - обеспечить минимальные суммарные транспортные расходы на перевозку всех грузов. Рассмотрим оптимальности транспортную которой задачу, используется в качестве критерия минимальная стоимость перевозки всего груза. Обозначим: ai - наличие груза в i-ом пункте отправления ; bj - величина потребности в этом грузе в j-ом пункте назначения ; сij - стоимость перевозки единицы груза из i-ого пункта отправления в j-ый пункт потребления (тариф перевозки); xij - количество груза, перевозимого из i-ого пункта отправления в j-ый пункт назначения, назначения, xij ≥ 0. Математическая нахождении такого постановка транспортной неотрицательного решения задачи системы состоит в линейных уравнений, при котором целевая функция принимает минимальное значение. Запишем математическую модель транспортной задачи. Требуется определить матрицу , которая ) удовлетворяет следующим условиям: n x j1 ij m x i1 ij ai , i 1, m (5.1) bj , j 1, n (5.2) x ij 0 , j 1, n i 1, m (5.3) , и доставляет минимальное значение целевой функции m n L( )= cx min i 1 j 1 j (5.4) j Поскольку переменные удовлетворяют системе линейных уравнений (5.1), (5.2) и условию неотрицательности, то обеспечивается доставка необходимого груза каждому потребителю, вывоз имеющегося груза от всех поставщиков, а также исключаются обратные перевозки. Определение 1. Всякое неотрицательное решение систем линейных уравнений (5.1) и (5.2), определенное матрицей называется допустимым планом ) транспортной задачи. Определение 2. котором функция План (5.4) ) при принимает максимальное значение, называется оптимальным планом транспортной задачи. Теорема 1. Ранг матрицы, составленный из коэффициентов при неизвестных системы линейных уравнений (5.1) и (5.2) транспортной задачи, на единицу меньше числа уравнений, т.е. равен (m + n – 1). Следовательно, число линейно независимых уравнений равно (m + n – 1), они образуют базис, а соответствующие им переменные будут являться базисными. Определение 3. Допустимый план транспортной задачи, имеющий не более (m + n – 1) отличных от нуля величин , называется базисным или опорным. Определение 4. Если в опорном плане число отличных от нуля значений переменных в точности равно (m + n – 1), то план является невырожденным, а если меньше – вырожденным. Теорема 2. Для разрешимости транспортной задачи необходимо и достаточно, что суммарные запасы груза в пунктах отправления были равны суммарным потребностям в пунктах назначения, т.е. = Определение 5. (5.5) Модель транспортной задачи, удовлетворяющая условию (5.5), называется закрытой. Если указанное условие не выполняется, то модель является открытой. Для получения оптимального плана открытую модель транспортной задачи необходимо свести к закрытой модели. В случае превышения запаса над потребностью, т.е. > , вводится фиктивный (n+ 1) –ый пункт назначения с потребностью bn+1 = − , а соответствующие тарифы считаются равными нулю: Сi ,n+1 = 0 Если < , то вводится фиктивный (m + 1) –ый пункт отправления с потребностью am+1 = − и тарифами Сm+1, j = 0 Рассмотрим один из методов построения первого опорного транспортной задачи – метод минимальной стоимости или плана наилучшего элемента матрицы удельных затрат. Определение 6. Наилучшим элементом матрицы удельных затрат (тарифов) будем называть наименьший тариф, если задача поставлена на минимум целевой функции, наибольший тариф – если задача поставлена на максимум. Алгоритм построения первого опорного плана. 1. Среди матрицы удельных затрат находим наилучший тариф. 2. Клетку распределительной таблицы с выбранным тарифом заполняем максимально возможным объемом груза с учетом ограничений по строке и столбцу. При этом либо весь груз вывозится от поставщика, либо полностью удовлетворяется потребность потребителя. Строка или столбец таблицы вычеркивается из рассмотрения и в дальнейшем распределении не участвует. 3. Из оставшихся тарифов вновь выбираем наилучший и процесс продолжается до тех пор, пока не будет распределен весь груз. Если модель транспортной задачи открытая и введен фиктивный поставщик или потребитель, то распределение сначала осуществляется для действительных поставщиков и потребителей, и в последнюю очередь нераспределенный груз направляется от фиктивного поставщика или к фиктивному потребителю. Дальнейшее улучшение первого опорного плана транспортной задачи и получение оптимального плана производим методом потенциалов. Теорема 3. План ) транспортной задачи является оптимальным, если существует система (m + n) чисел u i и vj (называемых потенциалами), удовлетворяющая условиям: 1. L( ) → min (5.6) 2. L( ) → max (5.7) Потенциалы ui и vj являются переменными двойственной задачи, составленной к исходной транспортной задаче, и обозначают оценку единицы груза в пунктах отправления и назначения соответственно. Обозначим: ) оценка свободной (незанятой) клетки таблицы. Определение 7. Опорный план транспортной задачи является оптимальным, если все оценки свободных клеток распределительной таблицы (задача поставлена на минимум). Алгоритм метода потенциалов 1. Построение первого опорного плана транспортной задачи методом минимальной стоимости. 2. Проверка вырожденности плана. Потенциалы могут быть рассчитаны только для невырожденного плана. Если число занятых клеток в опорном плане (число базисных переменных) меньше, чем (m+n−1), то вносим нуль в одну из свободных клеток таблицы так, чтобы общее число занятых клеток стало равным (m+n−1). Нуль вводят в клетку с наилучшим тарифом, которая принадлежит строке или столбцу. Одновременно вычеркиваемых при составлении первого опорного плана. При этом фиктивно занятая нулем клетка таблицы не должна образовывать замкнутого прямоугольного контура с другими занятыми клетками таблицы. 3. Расчет значения функции цели (5.4) путем суммирования произведений тарифов (удельных затрат) на объемы перевозимого груза по всем занятым клеткам таблицы. 4. Проверка оптимальности плана. Определяем потенциалы записываем уравнение . Для каждой занятой клетки , в результате получаем систему (m + n−1) уравнений с (m + n) переменными. Так как число переменных больше числа уравнений, то полученная система не определена и имеет бесчисленное множество решений. Поэтому одной из неизвестных величин придают произвольное значение. Для простоты вычислений полагаем , тогда остальные потенциалы определяются однозначно, а их значения заносятся в дополнительные строку и столбец распределительной таблицы. Для каждой свободной клетки определяем оценки Если все . (задача решается на минимум целевой функции), то оптимальный план найден. Если хотя бы одна оценка свободной клетки не удовлетворяет условию оптимальности, то необходимо план улучшить, осуществив перераспределение груза. 5. Построение нового опорного плана. Из всех положительных оценок свободных клеток выбираем наибольшую (задача поставлена на минимум); из всех отрицательных – наибольшую по абсолютной величине (задача поставлена на максимум). Клетку, которой соответствует наибольшая оценка, следует заполнить, т.е. направить в нее груз. Заполняя выбранную клетку, необходимо изменить объем поставок, записанных в ряде других занятых клеток и связанных с заполняемой так называемым циклом. Циклом или прямоугольным контуром в распределительной таблице транспортной задачи называется ломанная линия, вершины которой расположены в занятых клетках таблицы, а звенья – вдоль строк и столбцов, причем в каждой вершине цикла встречаются ровна два звена, одно из которых находится в строке, другое – в столбце. Если ломанная линия, образующая цикл, пересекается, то точки пересечения не являются вершинами. Для каждой свободной клетки можно построить единственный цикл. Вершинам цикла, начиная от вершины, находящейся в выбранной клетке на загрузку, присваиваем поочередно знаки «+» и «−» . будем назвать эти клетки плюсовыми и минусовыми. Из объемов груза, стоящих в минусовых клетках, выбираем наименьшее и обозначим его θ. Перераспределяем величину θ по контуру, прибавляя θ к соответствующим объемам груза, стоящим в плюсовых клетках, и вычитаем θ из объемов груза, находящихся в минусовых клетках таблицы. В результате клетка, которая была свободной и выбрана на загрузку, становится занятой, а одна из занятых клеток контура – свободной. Полученный опорный план проверяем на оптимальность, возвращаемся к четвертому этапу алгоритма. Замечания 1. Если в минусовых клетках построенного цикла находятся два или несколько одинаковых минимальных значений , то при перераспределении объемов груза освобождается не одна, а две или несколько клеток. В этом случае план становится вырожденным. Для продолжения решения необходимо одну или несколько одновременно освобождающихся клеток таблицы занять нулем, причем предпочтение отдается клеткам с наилучшим тарифом. Нулей вводят столько, чтобы во т.е. вновь полученном опорном плане число занятых клеток (базисных переменных) было ровно (m + n−1). 2. Если в оптимальном плане транспортной задачи оценка для некоторой свободной клетки равна нулю ) , то задача имеет множество оптимальных планов. Для клетки с нулевой оценкой можно построить цикл и перераспределить груз. В результате полученный план будет также оптимальным и иметь такое же значение целевой функции. 3. Значение целевой функции на каждой итерации можно рассчитать следующим образом: (задача поставлена на минимум), (задача поставлена на максимум), где - величина перемещаемого по контуру объема груза; - оценка свободной клетки, в которую направляется груз при переходе к новому опорному плану; − значение функции цели на k-ой итерации; − значение функции цели на предыдущей итерации. Пример На трех складах оптовой базы имеется однородный груз в количествах 40, 80 и 80 единиц. Этот груз необходимо перевезти в четыре магазина, каждый из которых должен получить соответственно 70, 20, 60 и 60 единиц. Стоимости доставки единицы груза (тарифы) из каждого склада ) во все магазины ) заданы матрицей . Составить план перевозок однородного груза с минимальными транспортными затратами (числа условные). Решение. 1. Проверим необходимое и достаточное условие разрешимости задачи: =40+80+80 = 200, =70+20+60+60 = 210. Как видно, суммарная потребность груза превышает его запасы на складах оптовой базы. Следовательно, модель транспортной задачи является открытой и в исходном виде решения не имеет. Для получения закрытой модели введем дополнительный (фиктивный) склад А4 с запасом груза, равным а4 = 210 – 200 = 10 ед. тарифы перевозки единицы груза из склада А4 во все магазины полагаем равными нулю. Все исходные данные заносим в таблицу 7. Запасы В1 В2 5 В3 4 В4 2 A1 40 4 A2 1 3 20 2 60 40 3 0 80 4 A3 3 3 6 70 10 0 0 0 80 0 A4 10 10 210 Потребности 70 20 60 60 210 2. Построение первого опорного плана методом минимальной стоимости. Среди тарифов минимальным или наилучшим является С 14 =1. В клетку А1В4 направляем максимально возможный груз, равный min{60,40} = 40. Тогда x14 = 40. Из склада А1 весь груз вывезен, но потребность четвертого магазина неудовлетворенна на 20 ед. строка А1 выходит из рассмотрения. Среди оставшихся тарифов минимальный элемент - С23 = 2. В клетку А2В3 направляем груз min{60,80} = 60. При этом столбец В 3 выходит из рассмотрения, а из склада А2 не вывезено 20 ед. Из оставшихся элементов минимальный С22 = 3. В клетку А2В2 направляем груз в количестве min{20,20} = 20. При этом столбец одновременно вычеркиваются строка А2 и столбец В2. Выбираем минимальный элемент С31 = 4. В клетку А3В1 направляем груз, равный min{70,80} = 70. При этом столбец В1 выходит из рассмотрения, а из склада А3 не вывезено 10 ед. Оставшийся груз с третьего склада направляем в летку А3В4, x34 = 10. Потребность четвертого магазина не удовлетворена на 10 ед. направим от фиктивного поставщика – склад А4 10 ед. груза в клетку А4В4, x44 = 10. В результате получен первый опорный план, который является допустимым, так как все грузы со складов вывезены и потребности всех магазинов удовлетворены. 3. Проверка вырожденности плана Число занятых клеток или базисных переменных в первом опорном плане равно шести . план транспортной задачи является вырожденным, так как число базисных переменных в невырожденном плане равно m + n – 1 = 4 + 4 – 1 = 7. Для продолжения решения задачи опорный план необходимо дополнить введением фиктивной перевозки, т.е. занять нулем одну из свободных клеток. При построении первого опорного плана одновременно были вычеркнуты строка А2 и столбец В2, поэтому произошло вырождение плана. На право фиктивной перевозки претендуют свободные клетки строки А2 и столбца В2, которые имеют минимальный тариф и не образуют с занятыми клетками замкнутого прямоугольного контура. Такими клетками являются А2В4 и А3В2. Нуль направляем в клетку А2В4. 4. Расчет значения целевой функции Значение целевой функции первого опорного плана определяем путем суммирования произведений тарифов на объемы перевозимого груза по всем занятым клеткам таблицы. L(Х1) = 4∙70 + 3∙20 + 2∙60 + 1∙40 + 3∙0 + 6∙10 + 0∙10 = 560 (тыс.руб.). 5. Проверка условия оптимальности Рассчитаем потенциалы по занятым клеткам таблицы из условия: Так как число неизвестных потенциалов ( больше числа уравнений (m + n > m + n – 1), то один из потенциалов принимаем равным нулю. Пусть . Тогда для занятых клеток можем записать систему уравнений: Полагая , получим , , , , Рассчитанные потенциалы заносим в таблицу 7. Подсчитаем оценки свободных клеток. , , , , , , , , . Первый опорный план не является оптимальным, так как имеются положительные оценки свободных клеток и . Выбираем максимальную положительную оценку свободной клетки - . 6. Построение нового опорного плана Для клетки А3В2 построим прямоугольный замкнутый контур 0таблица 7) и проведем перераспределение груза контуру. Вершинам контура, начиная от вершины, находящейся в свободной клетке А3В2,присваиваем поочередно знаки «+» и «−» . Из объемов груза, стоящих в минусовых клетках, выбираем наименьшее, т.е. θ = min(20,10) = 10. Прибавляем значение θ = 10 к объемам груза, стоящих в плюсовых клетках, вычитаем из объемов груза, стоящих в минусовых клетках замкнутого контура. В результате получим новый опорный план, приведенный в таблице 8. Запасы В1 В2 В3 В4 5 A1 4 2 1 40 40 4 3 A2 10 4 A3 10 3 80 6 10 0 A4 3 60 3 70 2 80 0 0 0 10 10 210 Потребности 70 20 60 60 210 Второй опорный план транспортной задачи невырожденный, так как число занятых клеток равно 7. L(X2) = L(X1) – θ∙ = 560 – 10∙3 = 530 (тыс.руб.). Этот план проверяем на оптимальность. Снова находим потенциалы поставщиков и потребителей. Для этого составляем по занятым клеткам следующую систему уравнений: Полагая , получим , , , , Рассчитываем оценки свободных клеток. , , , , , , , , . Второй опорный план транспортной задачи (таблица 8) не является оптимальным, так как . Строим замкнутый контур для клетки А4В1. Находим значение θ в контуре: θ = min{70, 10, 10}= 10. Переходим к третьему опорному плану, приведенному в таблице 9. Запасы В1 В2 5 В3 4 В4 2 A1 40 4 3 2 A2 60 4 A3 60 3 40 3 20 3 80 6 20 0 A4 1 80 0 0 0 10 10 210 Потребности 70 20 60 60 210 Третий опорный план является вырожденным, так как в минусовых клетках замкнутого контура (таблица 8) находятся два одинаковых минимальных значения . При переходе к третьему плану клетка А4В1 становится занятой, а две клетки А2В2 и оказались свободными. Для продолжения становится А4В4 решения задачи в одну из освободившихся клеток записываем нуль. Предпочтение отдаем клетке А4В4 , так как L(X3) = L(X2) – θ∙ = 530 – 10∙1 = 520 (тыс.руб.). Проверяем третий опорный план на оптимальность. Снова находим потенциалы поставщиков и потребителей. Для этого составляем по занятым клеткам таблицы 9 следующую систему уравнений: Полагая , получим , , , Рассчитываем оценки свободных клеток. , , , , , , , , . Все оценки свободных клеток меньше или равны нулю, следовательно третий опорный план является оптимальным. , Анализ оптимального плана. Из первого склада необходимо весь груз направить в четвертый магазин, из второго склада направить груз в третий и четвертый магазины в количестве 60 и 20 единиц соответственно. С третьего склада следует вывозить груз в первый и второй магазины в количестве 60 и 20 единиц соответственно. Потребность первого магазина остается неудовлетворенной на 10 единиц груза. Общая стоимость доставки груза потребителям будет минимальной и составит 520 тыс.рублей. Оптимальный план транспортной задачи является вырожденным, так как клетка А4В4 занята нулем ( = 0). Задача имеет множество оптимальных планов, поскольку оценка свободной клетки .