- •Теоретические пояснения
- •Постановка задачи
- •Зависимости, связывающие переменные в матрице теневых цен Сij
- •Зависимости, связывающие переменные в матрице переменных Хij
- •Матрица произведения Сij*Хij
- •Сводная таблица грузопотоков в базовом варианте
- •Матрица теневых цен Сij
- •Матрица переменных Хij (решение задачи)
Матрица произведения Сij*Хij
|
U |
V |
W |
X |
Y |
Z |
AA |
AB |
AC |
4 |
Клиенты
|
Номер рейса |
Сумма |
||||||
5 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
||
6 |
1 |
=B6*L6 |
=C6*M6 |
=D |
=E |
=F |
=G |
=H |
=СУММ(V6:AB6) |
7 |
2 |
=B7*L7 |
=C7*M7 |
=D |
=E |
=F |
=G |
=H |
=СУММ(V7:AB7) |
8 |
3 |
=B8*L8 |
=C8*M8 |
=D |
=E |
=F |
=G |
=H |
=СУММ(V8:AB8) |
9 |
4 |
=B9*L9 |
=C9*M9 |
=D |
=E |
=F |
=G |
=H |
=СУММ(V9:AB9) |
10 |
5 |
=B10*L10 |
=C10*M10 |
=D |
=E |
=F |
=G |
=H |
=СУММ(V10:AB10) |
11 |
Сумма |
=СУММ(V6:V10) |
=СУММ(W6:W10) |
= |
= |
= |
= |
= |
=СУММ(AC6:AC10 |
Таблица 4
-
Параметры задачи
Ячейки
Семантика
Результат
$АС$11
Цель – уменьшение общих транспортных затрат
Изменяемые данные
$L$6:$R$10
Количество транспортных средств, используемых при перевозках
Ограничения
$В$11:$Н$11<=$В$12:$Н$12
Фактическая загрузка подвижного состава не должна превышать его грузоподъемности
$L$6:$R$10=двоичное
Двоичность переменных xij, т.е. значениями переменных могут быть только 0 и 1.
$S$6:$S$10=1
Ограничение гарантирует обслуживание клиента лишь одним автомобилем, т.е. заказы клиентов дробить нельзя.
Задача
Продемонстрируем возможность фактического применения рассмотренного алгоритма на практическом примере. Одна из крупных дистрибьюторских компаний Санкт-Петербурга ООО «Холдинг78», осуществляющая поставку продуктов питания в магазины города и Ленинградской области, использует для перевозки арендованный подвижной состав. Поскольку ежедневно данная компания обслуживает до полутора тысяч клиентов, что вызывает серьезные проблемы при формировании маршрутов, весь город разбит на зоны обслуживания и секторы развозки. Перед диспетчерами, занимающимися формированием маршрутов, ставится задача – обслужить всех клиентов, используя минимальное количество подвижного состава. Решение данной задачи до настоящего времени не автоматизировано, но имеется определенный алгоритм, в соответствии с которым, во-первых, выбирается рациональный по грузоподъемности подвижной состав из имеющегося в наличии. Во-вторых, формируются маршруты внутри секторов развозки при условии, что число пунктов, объединенных в один маршрут, не должно превышать двенадцати. Если число клиентов в данном секторе развозки превышает двенадцать, то часть их присоединяется к клиентам ближайших секторов таким образом, чтобы выполнялось данное ограничение.
В качестве примера взяты данные об обслуживании клиентов данной компании в зоне Московского района Санкт-Петербурга за один день. Сводная таблица грузопотоков и фактически сформированные маршруты представлены в таблице 5.
В таблице 5 представлены следующие данные:
в «шапке» таблицы отмечены: дата, регион, сектор развозки, номер магазина, номера рейсов и модели автомобилей, которыми были обслужены данные клиенты (магазины);
в столбце «Сумма» указан вес заказа каждого магазина (кг);
в строке «Сумма» - фактическая загрузка каждого автомобиля (кг);
в ячейках таблицы на пересечении соответствующих строк и столбцов представлен вес товара, доставленного клиенту данным рейсом (кг).
Анализ данной таблицы показывает: для обслуживания 25-ти клиентов потребовалось девять единиц подвижного состава, рейсы 48,54 и 57 выполнены с крайне низкой загрузкой автомобилей, заказ магазина номер 7254 распределен между двумя единицами подвижного состава, что может быть оправдано только при отсутствии автомобиля требуемой грузоподъемности.
Таблица 5