Аннотация 2
Введение 5
1 Анализ задач линейного программирования 7
1.1 Современные аспекты линейного программирования 7
1.2 Методы решения задач линейного программирования 10
2 Решение задач линейного программирования с использованием Python 12
2.1 Постановка транспортной задачи 12
2.2 Библиотеки Python для решения задач линейного программирования 15
3 Разработка программного обеспечения для решения транспортной задачи с дополнительными условиями 18
3.1 Алгоритм решения транспортной задачи 18
3.2 Формирование дополнительных условий для транспортной задачи 20
3.3 Решение задач с использованием методов библиотеки cvxopt 21
3.4 Решение задач с использованием методов библиотеки scipy.optimize 27
3.5 Решение задач с использованием методов библиотеки pulp 32
3.6 Визуализация результатов вычислительного эксперимента 39
Заключение 42
Список используемой литературы 43
В настоящее время площадь России по официальным данным составляет порядка 17,13 миллионов квадратных километров. При этом количество населенных пунктов по данным общероссийского классификатора территорий муниципальных образований равно 155649. С учетом данных фактов, продумывание логистики доставки товаров превращается в большую исследовательскую задачу, требующую использования компьютерных мощностей для ее решения.
С точки зрения математики логистическую задачу можно свести к решению оптимизационной задачи линейного программирования (к транспортной задаче) [1, 3]. От успеха решения транспортной задачи, например, зависит количество издержек транспортной компании при доставке заказов. Крупные интернет-магазины также вынуждены периодически решать транспортные задачи для своевременного обеспечения своих клиентов заказами.
Одновременно с этим сложность транспортных задач постоянно увеличивается, и для их решения привлекаются компьютерные мощности [5]. Поэтому увеличивается актуальность в разработке программных комплексов для решения задач линейного программирования. При создании программных комплексов часто используется компонентный подход, когда вместо написания своей реализации алгоритма, применяются свободно распространяемые библиотеки. С одной стороны это упрощает разработку программного обеспечения, но с другой – у каждой реализации есть скрытые особенности, определить которые можно только в условиях вычислительных экспериментов.
В настоящее время существует множество библиотек для языка Python, в которых реализованы методы, позволяющие решать задачи линейного программирования [10, 12, 14]. Из их числа наиболее известные свободно распространяемые библиотеки с открытым исходным кодом – cvxopt, SciPy и PuLp. В этих библиотеках для решения задач линейного программирования используются различные реализации симплекс-метода.
Из-за различий в реализациях сложно оценить, как поведут себя реализованные в этих библиотеках методы при решении одной и той же транспортной задачи с дополнительными условиями. Поэтому актуальной проблемой является разработка программного обеспечения для сравнительного анализ методов решения транспортной задачи.
Цель работы - разработка программного обеспечения для сравнения различных программных методов решения транспортных задач с дополнительными условиями.
Для достижения поставленной цели в работе решаются следующие задачи:
1. Анализ современных аспектов линейного программирования.
2. Исследование подходов по решению задач линейного программирования с использованием Python.
3. Разработка программного обеспечения для сравнения различных программных методов решения транспортных задач с дополнительными условиями.
Отметим основные моменты проведенного исследования:
1. В ходе анализа источников литературы проведен обзор аспектов линейного программирования. Описана математическая постановка задач «максимального паросочетания», «максимального потока» и «игры с нулевой суммой». Установлено что при программном решении оптимизационных задач линейного программирования в подавляющем большинстве случаев используется симплекс-метод.
2. Сформулировано математическое описание транспортной задачи в общем виде. Проанализированы наиболее известные свободно распространяемые библиотеки Python (cvxopt, scipy и pulp), реализующие методы решения транспортных задач. Установлено, что в данных библиотеках решение оптимизационных задач линейного программирования реализовано с использованием симплекс-метода.
3. На языке программирования Python разработано программное обеспечение для сравнения методов библиотек cvxopt, scipy, pulp при решении задач оптимизации. Разработанное программное обеспечение производит решение транспортной задачи с заданными пользователем исходными данными, объединяет результаты тестирования методов этих библиотек в таблицу и визуализирует результаты экспериментов в виде графиков.
4. При тестировании методов библиотек cvxopt, scipy, pulp на задаче с 4 дополнительными условиями установлено, что быстродействие библиотек cvxopt и scipy приблизительно равное, а библиотека pulp затрачивает на решение в 2.5-3 раза больше времени. Однако стоить отметить, что результаты быстродействия во многом зависят от исходных данных, поэтому производить сравнительный анализ методов из данных библиотек необходимо для конкретного экземпляра данных.
1. Александров, А.Э. Стохастическая постановка динамической транспортной задачи с задержками с учетом случайного разброса времени доставки и времени потребления / А.Э. Александров, Н.В. Якушев // Управление большими системами: сборник трудов, 2006. - №12-13. - Институт проблем управления им. В.А. Трапезникова РАН (Москва), 2006 - с. 5-14. - Текст : непосредственный.
2. Алехин, Р.В. Анализ вариаций транспортных задач / Р.В. Алехин, О.В. Косенко // Проблемы автоматизации. Региональное управление. Связь и автоматика - Паруса-2015: сборник трудов IV Всероссийской научной конференции молодых ученых, аспирантов и студентов. 2015. - Издательство: Южный федеральный университет (Ростов-на-Дону), 2015. - с. 159-161. - Текст: непосредственный.
3. Алмазова, Г.М. Транспортная логистика и его задачи / Г.М. Алмазова, Г. Гельдимурадов // Современная наука: проблемы, идеи, тенденции: материалы Международной (заочной) научно-практической конференции. Нефтекамск, 2021. - Издательство: Научно-издательский центр "Мир науки" (ИП Вострецов Александр Ильич) (Нефтекамск), 2021. - с. 1113. - Текст: непосредственный.
4. Берман, Н.Д. Решение задач оптимизации транспортной логистики в Mathcad Prime 3.1 (на примере транспортной задачи) / Н.Д. Берман, Т.С. Кузьминых // Лучшая научно-исследовательская работа 2017: сборник статей победителей VII Международного научно-практического конкурса. 2017. - Издательство: Наука и Просвещение (Пенза). - с. 12-16. - Текст: непосредственный.
5. Волик В.Г. Обучающий программный комплекс "Транспортная задача" / В.Г. Волик // Перспективные информационные технологии: труды Международной научно-технической конференции. 2016. - Издательство: Самарский научный центр РАН (Самара), 2016. - с. 728-730. - Текст: непосредственный.
6. Заруднев, Д.И. Задача выбора транспортных средств и ее взаимосвязь с другими задачами транспортной логистики / Д.И. Заруднев, С.М. Мочалин // Формирование транспортно-логистической инфраструктуры. Стратегическое направление повышения конкурентоспособности транспортного комплекса России: Материалы III Международной научно-практической конференции. 2010. - Издательство: ООО "Полиграфический центр КАН" (Омск). - с. 78-82. - Текст: непосредственный.
7. Зедгенизов, А.В. Некоторые аспекты применения геоинформационных систем для задач транспортного планирования / А.В. Зедгенизов // Геология, поиски и разведка полезных ископаемых и методы геологических исследований: Материалы международной научно-технической конференции «Геонауки - 2020». Иркутск, 2020. - Издательство: ИРНИТУ, 2020. - с. 41-45. - Текст: непосредственный.
8. Зуева, Е.А. Транспортная задача с ответственными поставщиками / Е.А. Зуева, В.П. Шаравина // Россия молодая: сборник лучших статей VIII Всероссийской, 61 научно-практической конференции молодых ученых. Кемерово, 2016. - Издательство: Кузбасский государственный технический университет имени Т.Ф. Горбачева (Кемерово), 2016. - с. 39-41. - Текст: непосредственный.
9. Касаткина, Е.В. Математическое моделирование транспортных сетей для решения задачи топливоснабжения региона / Е.В. Касаткина, А.О. Агафонов // Автомобилестроение: проектирование, конструирование, расчет и технологии ремонта и производства: Материалы Всероссийской научно-практической конференции. 2013. - Издательство: Ижевский государственный технический университет имени М.Т. Калашникова (Ижевск), 2013. - с. 6-9. - Текст: непосредственный.
10. Нечитайло, Н.М. Транспортная задача по критерию минимума общего времени с учетом потерь на промежуточную обработку ресурсов / Н.М. Нечитайло // Известия высших учебных заведений. Северо-Кавказский регион. Серия: естественные науки. 2003. - №3 (123). - ФГБОУ ВО Дагестанский государственный технический университет, 2003. - с. 11-14. - Текст: непосредственный.
11. Пилипчук, Л.А. Алгоритм решения производственно-транспортной задачи на обобщенной сети с дополнительными ограничениями / Л.А. Пилипчук // VIII Белорусская математическая конференция: Тезисы докладов международной конференции. 2000. - Издательство: Институт математики НАН Беларуси (Минск), 2000. - с. 82-83. • Текст: непосредственный.
12. Ригерт, Е.М. Решение задач транспортной логистики генетическими алгоритмами / Е.М. Ригерт, В.Н. Зуева // Научный потенциал вуза - производству и образованию: сборник статей по материалам II Международной научно-практической конференции, посвященной 150- летию со дня рождения Б.Л. Розинга. Кубанский государственный технологический университет, Армавирский механико-технологический институт, Кафедра гуманитарных дисциплин. 2020. - Издательство: ООО «Редакция газеты «Армавирский собеседник» (Армавирская типография). - с. 238-242. - Текст: непосредственный.
13. Самородов, А.С. Задача интеллектуальной транспортной системы / А.С. Самородов, Т.В. Мелькумова // Актуальные вопросы совершенствования технической эксплуатации мобильной техники: Материалы Международной научно-практической конференции, посвященной 20-летию кафедры технической эксплуатация транспорта. 2020. • Издательство: Рязанский государственный агротехнологический университет им. П.А. Костычева (Рязань), 2020. - с. 158-162. - Текст: непосредственный.
14. Степанов, В.В. Применение транспортной задачи для оптимизации в межрегиональных сетевых компаниях передачи электроэнергии / В.В. Степанов, М.В. Степанова, Ю.А. Кабанков // VI Международная научно-практическая конференция молодых ученых, посвященная 55-й годовщине полета Ю.А. Гагарина в космос: сборник научных статей. КВВАУЛ им. А.К. Серова. 2016. - Издательство: Общество с ограниченной ответственностью "Издательский Дом - Юг" (Краснодар), 2016. -c. 217-221. - Текст: непосредственный.
15. Тихонова А.Д. Транспортные задачи: понятие, типы, методы решения и практическое применение / Тихонова А.Д. // Российская наука: актуальные исследования и разработки: сборник научных статей IX Всероссийской научно-практической конференции. В 2-х частях. Редколлегия: С.И. Ашмарина, А.В. Павлова (отв. редакторы) [и др.]. 2020. - Издательство: Самарский государственный экономический университет (Самара), 2020. - c.105-109. - Текст: непосредственный.
...