Пример № 1
На трех базах находится однородный груз. На базе А1 в количестве 300 т., на базе А2 в количестве 150 т., на базе А3 в количестве 50 т. Весь этот груз необходимо развести четырем заказчикам так, чтобы стоимость перевозок была наименьшей. Заказчику в пункте В1 должно поступить 170 т., в пункте В2 – 110 т., в пункте В3 – 100 т., в пункте В4 – 120 т. Расстояния между базами и пунктами назначения приведены в таблице 1 в угловых скобках.
Таблица 1
Базы | Заказчики | Запасы на базах | |||
В1 | В2 | В3 | В4 | ||
А1 | — | 300 т. | |||
А2 | — | — | 150 т. | ||
А3 | — | — | — | 50 т. | |
Потребности заказчика | 170 т. | 110 т. | 100 т. | 120 т. | 500 т. 500 т. |
Решение
1. Описание транспортной задачи как задачи линейного программирования
Пусть из i-ой базы (i = ) j-му заказчику (j = ) доставлено хij тонн груза. От j-го заказчика i-я база находится на известном расстоянии сij (км), указанном в таблице 1 в угловой скобке. В этом случае хіjсіj есть количество тонно-километров необходимое для такой перевозки. Рассматривая в произведениях хіjсіj всевозможные комбинации значений индексов i и j, получим для каждой такой комбинации свое значение тонно-километров. Из суммы этих произведений образуется общая стоимость перевозок F, выраженная в тонно-километрах
. (1)
Требуется найти такой план перевозок (х11, х12,…, х34), который минимизирует его стоимость. Этот план перевозок называется оптимальным.
Если суммарный объем груза, содержащийся на базах, равен суммарной потребности заказчиков, то есть, при вывозе всего груза, имеющегося на базах, потребности всех заказчиков будут полностью удовлетворены, то транспортная задача называется закрытой или сбалансированной. Именно такая задача рассматривается в примере №1.
Покажем, что транспортная задача есть частный случай задачи линейного программирования. Действительно, целевая функция F в ней это линейная функция вида (1) относительно определяемых переменных хіj. Линейной является и система ограничений, на которой требуется найти минимум функции F. Так в примере №1 система ограничений представлена уравнениями
х11 + х12 + х13 + х14 = 300,
х21 + х22 + х23 + х24 = 150,
х31 + х32 + х33 + х34 = 50,
х11 + х21 + х31 = 170,
х12 + х22 + х32 = 110,
х13 + х23 + х33 = 100,
х14 + х24+ х34 = 120.
Особенность системы ограничений в транспортных задачах состоит в том, что коэффициенты при неизвестных во всех уравнениях системы ограничений равны 1. Эта особенность позволяет предположить метод решения транспорт- ной задачи, отличный от симплекс-метода.
Примечание. Часто сij означают не расстояния между базами и заказчиками, а стои-мость перевозки одной тонны груза между ними. Очевидно, что эта стоимость пропорциональна расстоянию. Поэтому, если хіj – количество тонн груза, перевозимого из i-ой базы j-му заказчику, то функция (1) означает в этом случае стоимость всех перевозок, выраженную не в тонно-километрах, а в рублях.
2. Формирование опорного решения (опорного плана перевозок) методом северо-западного угла
При формировании опорного плана методом северо-западного угла, заполняется левая верхняя клетка (северо-западный угол) исходной таблицы или её оставшейся части. После заполнения северо-западного угла с учетом предельных возможностей базы, лежащей с заполняемой клеткой в одной строке, из таблицы исключается или очередной столбец слева, или очередная строка сверху. Так в данной таблице потребность заказчика В1 может быть полностью удовлетворена базой А1 (а1 = 300; в1 = 170; а1 > в1). Полагая х11=170, вписываем это значение в клетку (1;1) и исключаем из рассмотрения первый столбец.
На базе А1 остается 130 т. груза (). В новой таблице с тремя строками А1, А2, А3 и тремя столбцами В2, В3, В4 северо-западным углом оказывается клетка (1;2). Первая база с оставшимися 130 т. груза может полностью удовлетворить потребность второго заказчика В2 ( > в2). Полагая х12 = 110, вписываем это значение в клет-ку (1; 2) и исключаем из рассмотрения второй столбец. На базе А1 остается 20 т. груза ().
В новой таблице с тремя строками А1, А2, А3 и двумя столбцами В3, В4 северо-западный угол соответствует клетке (1;3). Теперь третий заказчик
В3 может принять весь запас с базы А1 ( < в3 ). Полагая
х13 = 20, вписываем это значение в клетку (1;3) и исключаем из рассмотрения первую строку. Но потребность заказчика В3 оказалась не удовлетворенной (). Эту потребность может удовлетворить база А2. После чего в ней останется (т. груза). Записывая в клетку (2;3) х23 = 80 мы полностью удовлетворяем потребность заказчика В3 и вычеркиваем третий столбец. Теперь на северо-западе находится клетка (2;4) и потребность заказчика В4 будет частично удовлетворяться остатками груза с базы А2. Таким образом,
х24 = 70, что приводит к исключению второй строки в таблице 1. А не вполне удовлетворенная потребность заказчика В4 () удовлетворяется запасами груза с базы А3. При этом х34 = 50.
Опорный план составлен. Ошибки в его составлении можно обнаружить, если найти суммы указанных значений хіj по строкам и сравнивать их на равно с запасами груза на базах. Суммы хіj по столбцам сравниваются на равно с потребностями заказчиков.
3. Циклы пересчета в таблице перевозок
При решении транспортной задачи для перехода от одного решения к другому, уменьшающему стоимость перевозок, используются циклы пересчета.
Циклом пересчета в таблице перевозок называется последовательность переменных хіj, удовлетворяющих следующим условиям:
1) в каждый цикл может входить только одно свободное переменное (пустая клетка – клетка с прочерком). Все остальные переменные должны быть базисными (заполненные клетки);
2) каждые две последовательные переменные, входящие в цикл, могут находиться только на одной строке или только в одном столбце;
3) каждая строка или столбец данного цикла может содержать только две переменные;
4) каждый цикл замкнут. То есть, при последовательном обходе выбранных переменных цикл начинается и заканчивается одной и той же клеткой.
Если для свободной клетки исходной таблицы, заполненной методом северо-западного угла, можно построить цикл пересчета, то такой цикл является единственным. Число вершин в этом цикле чётно. Если же для какой-либо свободной клетки исходной таблицы цикл пересчета построить нельзя, то для реализации этой возможности некоторые из свободных переменных обращаются в базисные переменные с нулевыми значениями (в пустых клетках записываются нули. См. пример № 2). Решение, содержащее нулевые значения базисных переменных, называется вырожденным.
Укажем циклы пересчета для всех свободных клеток таблицы 1 и пере-распределение груза в них по следующим правилам:
а) снабдим свободную клетку знаком (+) и с каждым переходом к следую-щей клетке цикла будем изменять знак на противоположный;
б) в клетках, отмеченных знаком (-) выберем наименьшее из чисел. Это то количество груза, которое будет последовательно перевозиться из одной клетки в другую. Из клеток, отмеченных знаком (-), зафиксированное количество груза вывозится; в клетках со знаком (+) – прибывает.
Циклы пересчета в примере №1:
1)
F = 70·170 + 50·110 + 80·20 + 40·100 + 60·50 + 11·50 = 26 550 (т.км.);
2)
F = 70 · 90 + 50 · 110 + 15 · 100 + 80 · 80 + 60 · 70 + 11 · 50= 24 450 (т.км.);
3)
F = 70 · 170 + 50 ·30 + 15 ·100 + 80 · 90 + 60 · 70 + 11 · 50 = 26 850 (т.км.);
4)
F = 70 ·120 + 50 ·110 + 15 ·70 + 40 ·30 + 60 ·120 + 50 · 50 = 25 850 (т.км.);
5)
F = 70 · 170 + 50 · 60 + 15 · 70 + 40 ·30 + 60 ·120 + 10 · 50 = 24 850 (т.км.);
6)
F = 70 ·170 + 50 ·110 + 15 · 20 + 40 · 30 + 60 ·120 + 90 ·50 = 30 600 (т.км.);
Следует сравнить стоимость перевозок в каждом цикле со стоимостью перевозок по опорному (первоначальному) плану
Fнач = 70·170 + 50·110 + 15·20 + 40·80 + 60·70 + 11·50 = 25650 (т.км.)
и выбрать наименьший из всех результатов – результат (2), который представ-лен в таблице 2.
Таблица 2
Базы