Математическое моделирование и его применение в научных
исследованиях
УДК 004.942
DOI:10.25729/ESI.2024.34.2.008
Транспортная задача с ограничением на время перевозок
Бахвалов Сергей Владимирович, Маланова Татьяна Валерьевна, Янхаев Данил Вадимович
Иркутский национальный исследовательский технический университет,
Россия, Иркутск, [email protected]
Аннотация. В статье представлена модифицированная транспортная задача, в которой учитывается перевозка грузов от поставщиков к потребителям за несколько рейсов, причем весь товар должен быть доставлен в установленный срок. Авторы отдают предпочтение задачам линейного программирования в силу существования различных решателей, позволяющих найти решение существующими методами. В связи с этим была разработана математическая модель транспортной задачи, как задачи целочисленного линейного программирования, и предложено решение задачи в среде программирования Python с использованием библиотеки PuLP. Для наглядности рассмотрен простейший пример. Ключевые слова: математическое моделирование, оптимизация, линейное программирование, транспортная задача, библиотека PuLP на Python
Цитирование: Бахвалов С.В. Транспортная задача с ограничением на время перевозок / С.В. Бахвалов, Т.В. Маланова, Д.В. Янхаев // Информационные и математические технологии в науке и управлении. -2024. - № 2(34). - С. 82-89. - DOI: 10.25729/ESI.2024.34.2.008.
Введение. В современной экономике пункты производства товаров и их потребители зачастую находятся на больших расстояниях, вследствие чего затраты на перевозку продукции являются существенными. Очевидно, что потребители, приобретающие товары с наценкой, включающие данные издержки, отдают предпочтение конкурирующему товару подобного типа с меньшей ценой. Кроме того, время на доставку товаров часто должно быть жестко ограниченным в силу того, что товары могут быть скоропортящимися, товары в пункте потребления могут закончиться. Таким образом, для уменьшения общей себестоимости продукции необходимо формирование такого плана перевозки грузов, чтобы затраты на перевозку были минимальными, и груз был доставлен вовремя.
Как известно, транспортная задача (Т-задача) является одной из самых распространенных задач исследования операций [1-3]. Их решение может позволить повысить эффективность и экономию ресурсов в области логистики и перевозок, способствуя улучшению качества обслуживания и удовлетворению потребностей клиентов. Модель Т-задачи может приобрети дополнительные условия с ограничениями (в дальнейшем модифицированная Т-задача), которые обусловлены спецификой сферы деятельности предприятия и его географического местоположения [4-6]. На сегодняшний день известно множество ее модификаций: транспортная задача по критерию стоимости [1, 2], по критерию времени [2, 7], с промежуточными пунктами [8], многопродуктовая Т-задача [9] и т.д. Также в силу того, что на формирование плана перевозок может влиять множество факторов, в литературе часто рассматриваются многокритериальные транспортные задачи [10-14].
В статье рассмотрена следующая модификация Т-задачи. В пунктах отправления сосредоточен груз в некоторых количествах. Этот груз следует доставить в пункты назначения в ограниченном количестве, определенным спросом, используя различный транспорт.
Рейс из одного пункта отправления в определенный пункт назначения характеризуется затратами времени и стоимости. Товар может перевозиться за несколько рейсов. Каждый рейс имеет заданный объем вместимости, определенный видом транспорта. Только поставщик за-
нимается перевозкой грузов. Наиболее часто при перевозке больших объемов груза автотранспортом оплата производится в ценах за рейс (а не за объем или массу перевозимого груза). Необходимо составить план перевозки груза так, чтобы затраты на перевозку были минимальными, а также, чтобы перевозка была осуществлена в установленные сроки.
Так как оплата за перевозку груза осуществляется в ценах за рейс, то необходимо привести математическую модель, зависящую от количества рейсов. Анализ литературы показал, что, несмотря большое разнообразие Т-задач, задачи в такой постановке не рассматривались.
1. Постановка задачи. Необходимо построить математическую модель задачи поиска оптимального плана перевозки товаров от поставщиков до потребителей, в которой функция затрат определяется по количеству рейсов, и учтено ограничение времени на перевозку.
Как известно, задачи линейного программирования (ЛП) являются наиболее изученными в области задач оптимизации, и для их решения существуют различные готовые библиотеки в различных средах программирования, таким образом, разрабатываемая математическая модель должна также оставаться в классе задач ЛП, чтобы была возможность использовать уже существующие возможности с необходимыми доработками.
2. Описание и подготовка исходных данных. Введем следующие обозначения:
А; - поставщики продукции с их объемами а; ^ = 1, т);
Bj - потребители с величинами спроса Ь ( = 1, п);
С = ||с1]||тхп — стоимостные затраты на перевозку из 1-го пункта производства в ьй пункт;
T = ||tjj || х — временные затраты на перевозку из i-го пункта производства в i-й пункт;
s - время, за которое необходимо произвести перевозку всех грузов.
Для того, чтобы определить значения параметров Cjj и tjj, необходимо выполнить следующие действия.
Так как доставить груз от i-го пункта производства к j-му пункту возможно различным способом (самолетом, поездом, автотранспортом, водным транспортом), то сначала необходимо получить массив объектов P = ||pjj||mx . Здесь под pjj понимаем объект, обозначающий
совокупность возможных путей, по которым можно добраться от i-го пункта производства к j-му пункту потребления. Объект имеет атрибут - вектор возможных путей, где каждый путь
- также объект с атрибутами:
p
- цена перевозки cjj;
- время доставки tP;
- статус - выбран / не выбран данный путь для планирования.
Предполагается, что все возможные пути совокупности pjj можно найти либо вручную, либо с использованием геоинформационных систем, и пользователь имеет возможность вносить изменения в массив P.
Среди всех возможных путей в совокупности pjj выбираем тот, который соответствует минимальным затратам и открыт на период планирования, или тот путь, который выбрал сам пользователь. В результате в матрицу C вносим соответствующее значение цены перевозки, а в матрицу T — значения времени перевозки.
Таким образом, коммуникации, связывающие склады и пункты потребления выбираются, исходя из условия: Cjj = min cP или вручную лицом, принимающим решение (ЛПР).
k j
3. Формирование модели. Пусть количество перевезенной продукции i -го пункта в j-ый определяется матрицей X=||xjj|| ^ .
Необходимо определить такой план перевозки X, чтобы стоимость его перевозки была наименьшей, все заявки были удовлетворены, все запасы были вывезены, а время перевозки было не больше заданного значения s.
Временные затраты определяются следующим образом. Учитывая, что перевозка будет производиться рейсами, обозначим количество рейсов, которое нужно выполнить при перевозке за Гц. Чтобы оставаться в рамках задачи линейного программирования, сделаем следующие допущения. Если на складах имеются несколько машин, то пусть все машины выезжают в пункты потребления одновременно, считаем это за один совокупный рейс из i -го пункта в ]-ый. Кроме того, поставщик перевозит груз в каждый пункт потребления последовательно (не одновременно). Тогда:
ri]
Л = 1, тЛ = 1, п. (1)
Здесь G = х — общая грузоподъемность совокупного транспорта на ьм складе, осу-
ществляющего перевозку из ьго пункта производства в j-й пункт; г^у —целое число; знак [...] обозначает округление до целого числа в большую сторону.
Параметры gij и s задаются пользователем, либо хранятся в соответствующей базе данных.
Общие затраты на перевозку всех грузов составляют ^^(с^г^), и эти затраты необходимо минимизировать.
Для ЛПР план должен выражаться не в рейсах, а в объемах перевозимого груза, поэтому, для возможности обратного перехода от количества рейсов г^ к объему перевозок Xjj, необходимо учитывать погрешность округления Zjj по формуле (1), тогда справедливо соотношение:
Гц = (2)
Отсюда,
^ = ^^ — (3)
и объем перевозимого груза Xjj = gjj ^ — Zjj должен быть неотрицательным.
Суммарное время перевозки от каждого ьго пункта до всех пунктов потребления составит £"=1^.
Следует заметить, что допущение о том, что из ьго пункта все рейсы могут быть только в один пункт, и пока все не будет вывезено, в другой пункт перевозка не будет осуществляться, вносит дополнительную погрешность в модель, но на составление плана перевозки это допущение не должно существенно повлиять. В данном случае учитывается лишь максимально затраченное время из возможного.
В результате математическая модель задачи будет иметь вид:
F(г)=Z!=lZ]n=l(cjjГjj)^min (4)
при ограничениях
!]=!] < s.i = 1.m
2í=l(gi]ri] — zi]) = b]. j = 1.n
i = a. i = 1.m
(5)
Zn=l(gi]ri] — zi]) = ai. i = 1.m
gij rij — Zij > 0, i = 1, m, j = 1,n
rij >0, i = 1, m, j = 1, n
zij >0, i = 1, m, j = 1, n 4. Решение поставленной задачи среде программирования Python с использованием библиотеки PuLP. Задача (4), (5) является модифицированной транспортной с добавлением
ограничения по времени. Ввод указанных ограничений по времени не дает нам возможности решать полученную задачу методами, приспособленными для решения Т-задач, например, методом потенциалов, так как число ограничений больше, чем m + n — 1. Таким образом, количество базисных клеток в соответствующей таблице для Т-задачи не обязательно должно быть равным m + n — 1, что не дает возможности нужным образом работать с базисными клетками: вычислять потенциалы, формировать оценочную матрицу, строить циклы.
В связи с этим в данной работе предлагается использовать общие методы задачи целочисленного линейного программирования. Для этого воспользуемся библиотекой PuLP на языке программирования Python в среде разработки Jupyter Notebook. PuLP - программный интерфейс для решения задач линейного программирования на Python, предназначенный для определения задачи и вызова решателей. В качестве решателя по умолчанию используется COIN-OR Branch and Cut Solver (CBC) [15].
Для решения задачи (4), (5) была разработана функция, которая принимает на вход в качестве аргументов матрицы A, B, G, T и интерпретирует входные данные Т-задачи к валидной постановке модели библиотеки PuLP, и дальнейшего её решения с использованием решателя CBC. Общая схема работы функции представлена на рисунке 1.
Рис. 1. Схема работы функции
Процесс описания модели в PuLP является важным этапом, ведь от него зависит, что получим в качестве решения. Код на языке Python процесса описания модели PuLP должен включать:
- инициализацию модели; на первом этапе вызывается метод создания модели, аргументами которого являются наименование модели и направление оптимизации (максимизация или минимизация);
- следующим этапом следует инициализация переменных решения; создаются словари R и Z, и в цикле по каждому поставщику А и потребителю В заполняются переменными;
- создание целевой функции; на данном этапе с помощью аргументов функции и созданных переменных решения описывается целевая функция, далее данное описание подается как аргумент в метод созданной модели PuLP;
- создание ограничений; заключительным этапом происходит описание ограничений в виде строкового типа данных, для каждого вида ограничения в цикле, в зависимости от постановки задачи, задаем наименование ограничения и его математическую структуру. Далее необходимо решить сформированную задачу ЛП выбранным решателем.
В общем случае рассматриваемая задача имеет решение, если система ограничений (5) совместна. По теореме о необходимом и достаточном условии совместности системы линейных неравенств рассматриваемая система ограничений (5) (без учета ограничений на целочис-ленность) совместна, если ее ранг равен числу ограничений [16]. Кроме того, следует отметить, что количество пунктов поставщиков и потребителей существенно влияет на время решения задачи, так как решатели основаны на таких методах, как метод отсекающих плоскостей и метод ветвей и границ, которые используют многократное применение стандартных методов задачи ЛП.
5. Пример. Пусть необходимо вывезти груз из пунктов Аь А2, А3, в которых хранятся запасы в следующих объемах соответственно: 3000, 4900, 3800. Груз должен быть доставлен в пункты Bb B2, B3, B4 в следующих объемах соответственно: 3200, 2900, 3000, 2600.
Затраты на перевозку груза одним рейсом из каждого склада каждому потребителю заданы матрицей C :
/ 28 28 26 80 \ C = ( 120 21 31 39 ). V 80 27 120 34/
Время, затраченное на один рейс, определено матрицей T:
/6 4 5 24\ T = (24 6 4 5). 24 7 24 6
Совокупная грузоподъемность транспорта, которая определена для перевозки из i-го пункта в j-й задана в матрице G:
150 210 120 800 G = ( 200 120 180 180 ).
800 180 200 120
Следует отметить, что, если поставщик будет использовать один и тот же транспорт для
перевозки всех грузов всем своим потребителям, то в соответствующей для него строке матрицы G будут одинаковые значения ^¿у.
Время, за которое нужно вывезти груз, определено переменной s = 126. В результате решения задачи (4) - (5) получаем следующий план перевозок:
/ 0 2080 120 800 \ X = ( 0 220 2880 1800 ). 3200 600 0 0 По формуле (1) число рейсов представлено следующей матрицей:
/0 10 1 1 \ r = ( 0 2 16 10) V 4 4 0 0 /
Тогда суммарное время из каждого пункта определяется следующим образом:
s1 = 0- 6 + 10-4 + 1- 5 + 1-24 = 60 s2 = 0 • 24 + 2 • 6 + 16 • 4 + 10 • 5 = 126 s3 = 3200 • 24 + 7 • 4 + 0 • 24 + 0 • 6 = 124 В результате видим, что время перевозки не превышает числа s = 126, за которое нужно перевезти вест груз.
Цена перевозки составляет 1742 единицы.
Если пренебречь ограничением на время перевозки, то есть решить обычную транспортную задачу, то оптимальный план позволит перевезти груз с затратами в 1640 единиц. Но время перевозки продукции от каждого склада составит соответственно s1 = 84, s2 = 163, s3 = 123. Как видим, этот план позволяет вывезти товар со всех складов всем потребителям за минимальную стоимость, но время перевозки составляет более 126.
Отсюда следует, что внесение дополнительного ограничения в транспортную задачу сужает область допустимых значений снизу, что приводит к увеличению минимального значения на этой области.
Заключение. Таким образом, предложенная модель транспортной задачи позволяет находить оптимальный план перевозки грузов, когда груз доставляется за несколько рейсов, а время на перевозку ограничено. Данная модель может быть применена для задач, имеющих практическое значение. Полученная модификация транспортной задачи относится к классу задач дискретного линейного программирования, поэтому результат можно получить известными методами решения задач целочисленного программирования с использованием известных решателей.
Список источников
1. Зайченко Ю.П. Исследование операций: учеб. для вузов / Ю. П. Зайченко. - 3-е изд., перераб. и доп. -Киев: Выща шк., 1988. -552 с.
2. Таха Х.А. Введение в исследование операций: пер. с англ. / Х.А. Таха. - М.: Вильямс, 2016. - 912 с.
3. Тюрин А.Ю. Модели транспортного обслуживания в цепях поставок пищевой промышленности / А.Ю. Тюрин // Вестн. КузГТУ, 2011. - №4. - С.89-92.
4. Петрунин С.В. Метод решения открытых транспортных задач / С.В. Петрунин, Г.В. Кренева // Научный вестник Московского государственного технического университета гражданской авиации, 2014. - № 202. С. 58-60.
5. Петрунин С.В. О решении транспортных задач большой размерности / С.В. Петрунин // Научный Вестник МГТУ ГА, 2008. - № 131. - С. 183-185.
6. Петрунин С.В. Решение транспортных задач ПС-методом при ограничениях на переменные / С.В. Петрунин // Научный вестник МГТУ ГА, 2014. - №202. - С. 53-57
7. Нечитайло Н.М. Транспортная задача по критерию минимума суммарного времени и модификация метода Балинского для её решения / Н.М. Нечитайло, С.В. Мартемьянов, В.Л. Панасов // Инженерный вестник Дона, 2016. - № 4 (43). - 64 с.
8. Кривопалов В.Ю. Решение открытой транспортной задачи с промежуточными пунктами / В.Ю. Кривопа-лов // Сборник научных трудов Международной научно-технической конференции, 2015. - Т. 2. - С. 8691.
9. Монтлевич В.М. О некоторых постановках многопродуктовых транспортных задач / В.М. Монтлевич, И.А. Бородинова // Вестник СамГУ, 2008. - №7 (66). - С. 86-93.
10. Yu L., Zeleny M. The set of all nondominated solutions in linear cases and multycriteria simplex method. J. of Math. Anal. and applic,1975, vol. 45, no.2, pp. 430-468.
11. Золотарюк А.В. Математическая модель многокритериальной оптимизации транспортных перевозок / А.В. Золотарюк // Инновационные технологии в науке и образовании, 2015. - № 1. - С. 317-320.
12. Кошкин Б.П. О многокритериальной транспортной задаче / Б.П. Кошкин, С.И. Носков, В.А. Оленцевич, А.И. Рязанцев // Фундаментальные исследования, 2017. - №7. - С. 35-38.
13. Носков С.И. Двухкритериальная транспортная задача / С.И. Носков, А.И. Рязанцев // T -Comm: Телекоммуникации и транспорт, 2019. - Т. 13. - № 2. - С. 59-63.
14. Осыкина Ю.А. Многокритериальная транспортная задача с разрывной целевой функцией / Ю.А. Осыкина, Г.Д. Чернышова // Вестник Воронежского государственного университета. Серия: системный анализ и информационные технологии, 2008. - № 2. - С. 10-12.
15. Vlasov A., Stanovskih А. Additional constraints in the vehicle routing problem. Universum, 2022, 4(97), available at: https://7universum.com/ru/tech/archive/item/13513.
16. Черников С.Н., Системы линейных неравенств / С.Н. Черников // Успехи математических наук, 1953. - Т. 8. - № 2(54). - С. 7-73.
Бахвалов Сергей Владимирович. Доцент, к.т.н., Иркутский национальный исследовательский технический университет, SPIN:1842-7155, AuthorlD: 169991, ORCID:0009-0009-83961926, [email protected], 664074, г. Иркутск, ул. Лермонтова 83.
Маланова Татьяна Валерьевна. Доцент, к.т.н., Иркутский национальный исследовательский технический университет, AuthorlD: 530825, ORCID: 0000-0002-1586-2530, [email protected], 664074, г. Иркутск, ул. Лермонтова 83.
Янхаев Данил Вадимович. Магистрант, Иркутский национальный исследовательский технический университет, [email protected], 664074, г. Иркутск, ул. Лермонтова 83.
UDC 004.942
DOI: 10.25729/ESI.2024.34.2.008
Transport problem with transportation time constraint
Sergey V. Bakhvalov, Tatyana V. Malanova, Danil V. Yanhaev
National research Irkutsk state technical university,
Russia, Irkutsk, [email protected]
Abstract. The article presents a modified transport problem, which takes into account the transportation of goods from suppliers to consumers over several flights, and all goods must be delivered on time. The authors give preference to linear programming problems due to the existence of various solvers that allow one to find a solution using existing methods. In this regard, a mathematical model of the transport problem was developed as an integer linear programming problem, and a solution to the problem was proposed in the Python programming environment using the PuLP library. For clarity, a simple example is considered.
Keywords: mathematical modeling, optimization, linear programming, transport problem, PuLP library in Python
References
1. Zaychenko Yu.P. Issledovanie operatsiy: ucheb. dlya vuzov [Operations research]. 2nd ed., Kiev, Vyshcha shk., 1988, 552 p.
2. Takha H. A. Vvedeniye v issledovaniye operatsiy, per. s angl. [Operations research: an introduction, trans. from English]. M., Williams, 2007, 838 p.
3. Tyurin A.Yu. Vvedeniye v issledovaniye operatsiy [Utilization of advanced methods of food industry goods transportation routing]. Vestn. KuzGTU [Bulletin of Kuzbass state technical university], 2011, no.4, pp.89-92.
4. Petrunin S.V., Kreneva G.V. Metod resheniya otkrytykh transportnykh zadach [Solution of open transportation problems] Nauchnyy vestnik Moskovskogo gosudarstvennogo tekhnicheskogo universiteta grazhdanskoy aviatsii [Scientific bulletin of the Moscow state technical university of civil aviation], 2014, no. 202, pp. 58-60z
5. Petrunin S.V. O reshenii transportnykh zadach bol'shoy razmernosti [Solution of transportation problems of large volume]. Nauchnyy vestnik MGTU GA [Scientific bulletin of the MSTU CA], 2008, no. 131, pp. 183-185.
6. Petrunin S.V. Resheniye transportnykh zadach PS-metodom pri ogranicheniyakh na peremennyye [ Solution of transportation problems with bounded-variables using PC-method]. Nauchnyy vestnik MGTU GA [Scientific bulletin of the MSTU CA], 2014, no.202, pp. 53-57.
7. Nechitaylo N.M., Martem'yanov S.V., Panasov V.L. Transportnaya zadacha po kriteriyu minimuma summarnogo vremeni i modifikatsiya metoda balinskogo dlya ee resheniya [Transport problem based on the criterion of minimum total time and modification of the Balinsky method for solving it]. Inzhenernyy vestnik Dona [Engineering bulletin of the Don], 2016, no. 4 (43), pp. 64-73.
8. Krivopalov V.Yu. Reshenie otkrytoy transportnoy zadachi s promezhutochnymi punktami [Solution of an open transport problem with intermediate points]. Sbornik nauchnykh trudov Mezhdunarodnoy nauchno -tekhnicheskoy konferentsii [Collection of scientific papers of the international scientific and technical conference], 2015, vol. 2, pp. 86-91.
9. Montlevich V.M., Borodinova I.A. O nekotorykh postanovkakh mnogoproduktovykh transportnykh zadach [About some tasks of multicommodity transporting problems]. Vestnik SamGU [Vestnik of Samara State University], 2008, no.7 (66), pp. 86-93.
10. Yu L., Zeleny M. The set of all nondominated solutions in linear cases and multycriteria simplex method. J. of Math. Anal. and applic,1975, vol. 45, no.2, pp. 430-468.
11. Zolotaryuk A.V. Matematicheskaya model' mnogokriterial'noy optimizatsii transportnykh perevozok [Mathematical model of multi-criteria optimization of transportation organization]. Innovatsionnye tekhnologii v nauke i obrazovanii [Innovative technologies in science and education], 2015, no. 1, pp. 317-320.
12. Koshkin B.P., Noskov S.I., Olentsevich V.A., Ryazantsev A.I. O mnogokriterial'noy transportnoy zadache [ About multi-criteria transport problem]. Fundamental'nye issledovaniya [Basic Research], 2017, no.7, pp. 35-38.
13. Noskov S.I., Ryazantsev A.I. Dvukhkriterial'naya transportnaya zadacha [Two-criteria transport problem]. T-Comm, Telekommunikatsii i transport [Telecommunications and transport], 2019, vol. 13, no. 2, pp. 59-63.
14. Osykina Yu.A., Chernyshova G.D. Mnogokriterial'naya transportnaya zadacha s razryvnoy tselevoy funktsiey [Multicriteria transport problem with discontinuous objective function]. Vestnik Voronezhskogo gosudarstven-nogo universiteta, Seriya sistemnyy analiz i informatsionnye tekhnologii [Bulletin of Voronezh State University. Series systems analysis and information technology], 2008, no. 2, pp. 10-12.
15. Vlasov A., Stanovskih А. Additional constraints in the vehicle routing problem. Universum, 2022, 4(97), available at: https://7universum.com/ru/tech/archive/item/13513.
16. Chernikov S.N. Sistemy linejnyh neravenstv [Systems of linear inequalities]. Uspehi matematicheskih nauk [Advances in mathematical sciences], 1953, vol. 8. no. 2(54), pp. 7-73.
Sergey Vladimirovich Bakhvalov. Cand. Sci. (Technics), associate professor at software engineering center, institute of information technology and data analysis, Irkutsk national research technical university, SPIN:1842-7155; AuthorID: 169991, ORCID:0009-0009-83961926, [email protected], 664074, Irkutsk,83 Lermontov Str.
Tatyana Valeryevna Malanova. Cand. Sci. (Technics), associate professor at software engineering center, institute of information technology and data analysis, Irkutsk national research technical university, AuthorID: 530825, ORCID: 0000-0002-1586-2530, [email protected], 664074, Irkutsk,83 Lermontov Str.
Danil Vavimovich Yanhaev. Master's student, Irkutsk national research technical university, [email protected], 664074, Irkutsk,83 Lermontov Str.
Статья поступила в редакцию 15.12.2023; одобрена после рецензирования 06.06.2024; принята к публикации 06.06.2024.
The article was submitted 12/15/2023; approved after reviewing 06/06/2024; accepted for publication 06/06/2024.