Научная статья на тему 'РАЗРАБОТКА СПЕЦИАЛЬНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РЕШЕНИЯ ТРАНСПОРТНЫХ ЗАДАЧ МОДИФИЦИРОВАННЫМ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ С ИСПОЛЬЗОВАНИЕМ МНОГОПОТОЧНОСТИ'

РАЗРАБОТКА СПЕЦИАЛЬНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РЕШЕНИЯ ТРАНСПОРТНЫХ ЗАДАЧ МОДИФИЦИРОВАННЫМ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ С ИСПОЛЬЗОВАНИЕМ МНОГОПОТОЧНОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
142
20
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / ПРОГРАММНОЕ СРЕДСТВО / ТРАНСПОРТНАЯ ЗАДАЧА / МНОГОПОТОЧНОСТЬ / ЭВРИСТИЧЕСКИЙ АЛГОРИТМ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Подвальный С.Л., Вдовин Д.А.

Представлена проблема разработки специального программно-алгоритмического обеспечения для решения транспортных задач с использованием генетического алгоритма. Выбран критерий: минимизация времени обслуживания при ограничениях на ресурсы. По сравнению с традиционными генетическими алгоритмами потребовалось создание некоторого варианта модифицированного генетического алгоритма, в котором используется второй оператор мутации, для уменьшения вероятности попадания в локальный экстремум. Подробно рассмотрен алгоритм работы программного средства, которое позволяет произвести начальные настройки генетических операторов (размер популяции, количество итераций) и основные элементы эволюционного поиска (отбор, наследование кроссинговер, мутация), что особенно важно при решении задач большой размерности; сохранить полученные маршруты при повторном решении перемещения транспортного средства по заказчикам в сочетании с оперативно используемой базой данных как по заказчикам, так и по транспортным средствам. Программа разработана в среде программирования Microsoft Visual Studio 2017, а в качестве языка программирования использовался C Sharp. Представлен интерфейс программного средства. Для повышения эффективности использования процессора и, в частности, увеличения быстродействия при решении задач большой размерности были использованы элементы распараллеливания вычислительного процесса, в качестве которого выбран метод многопоточности. Показано, что благодаря такому подходу время поиска уменьшилось более чем в пять раз и сопоставимо со временем поиска другими методами, например роевыми

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF SPECIAL SOFTWARE FOR SOLUTION OF TRANSPORT TASKS BY MODIFIED GENETIC ALGORITHM USING FREE THREADING

The article solves the problem of developing special software and algorithmic software for solving transport problems using the genetic algorithm. Criterion selected: minimization of service time with resource constraints. Compared with traditional genetic algorithms, it was required to create some version of the modified genetic algorithm, which uses the second mutation operator, to reduce the probability of falling into a local extremum. The algorithm of the software tool’s operation is considered in detail, which allows one to make initial settings for genetic operators (population size, number of iterations) and the basic elements of evolutionary search (selection, crossingover inheritance, mutation), and which is especially important when solving large-dimensional problems; save the received routes when re-deciding the movement of the vehicle according to customers in combination with an online database, both for customers and for vehicles. The program was developed in the Microsoft Visual Studio 2017 programming environment, and C sharp was used as the programming language. The software interface is presented. In order to increase the efficiency of processor utilization and, in particular, to increase performance when solving large-dimensional problems, we used elements of parallelization of the computing process, for which the multithreading method was chosen. It is shown in the work that thanks to this approach, the search time decreased by more than 5 times and is comparable with the search time by other methods, for example, by swarm ones

Текст научной работы на тему «РАЗРАБОТКА СПЕЦИАЛЬНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РЕШЕНИЯ ТРАНСПОРТНЫХ ЗАДАЧ МОДИФИЦИРОВАННЫМ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ С ИСПОЛЬЗОВАНИЕМ МНОГОПОТОЧНОСТИ»

Информатика, вычислительная техника и управление

DOI 10.25987/VSTU.2020.16.4.001 УДК 004.4

РАЗРАБОТКА СПЕЦИАЛЬНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ РЕШЕНИЯ ТРАНСПОРТНЫХ ЗАДАЧ МОДИФИЦИРОВАННЫМ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ С ИСПОЛЬЗОВАНИЕМ МНОГОПОТОЧНОСТИ

С.Л. Подвальный, Д.А. Вдовин Воронежский государственный технический университет, г. Воронеж, Россия

Аннотация: представлена проблема разработки специального программно-алгоритмического обеспечения для решения транспортных задач с использованием генетического алгоритма. Выбран критерий: минимизация времени обслуживания при ограничениях на ресурсы. По сравнению с традиционными генетическими алгоритмами потребовалось создание некоторого варианта модифицированного генетического алгоритма, в котором используется второй оператор мутации, для уменьшения вероятности попадания в локальный экстремум. Подробно рассмотрен алгоритм работы программного средства, которое позволяет произвести начальные настройки генетических операторов (размер популяции, количество итераций) и основные элементы эволюционного поиска (отбор, наследование кроссинговер, мутация), что особенно важно при решении задач большой размерности; сохранить полученные маршруты при повторном решении перемещения транспортного средства по заказчикам в сочетании с оперативно используемой базой данных как по заказчикам, так и по транспортным средствам. Программа разработана в среде программирования Microsoft Visual Studio 2017, а в качестве языка программирования использовался C Sharp. Представлен интерфейс программного средства. Для повышения эффективности использования процессора и, в частности, увеличения быстродействия при решении задач большой размерности были использованы элементы распараллеливания вычислительного процесса, в качестве которого выбран метод многопоточности. Показано, что благодаря такому подходу время поиска уменьшилось более чем в пять раз и сопоставимо со временем поиска другими методами, например роевыми

Ключевые слова: генетический алгоритм, программное средство, транспортная задача, многопоточность, эвристический алгоритм

Введение

Транспортировка различного количества груза является актуальной темой и на сегодняшний день в жизни современного человека. Решение таких задач увеличивает прибыль организаций и минимизирует издержку на транспортировку товаров. Поставленная задача является выполненной, если определённое количество груза достигло потребителя при определенных ограничениях. Для увеличения скорости и эффективности поиска лучшего решения применяются алгоритмы, которые выполняются на электронно-вычислительной машине. Разработка таких алгоритмов должна учитывать специфику аппаратного обеспечения компьютера.

Транспортные задачи (ТЗ) можно разделить на следующие типы:

- ТЗ по ограничению стоимости перевозок.

- ТЗ по ограничению времени.

- ТЗ на поиск кратчайшего расстояния по заданным точкам.

В данной статье будет рассмотрен второй тип задачи. Критерием завершённости выполне-

© Подвальный С.Л., Вдовин Д.А., 2020

ния ТЗ будет считаться минимальное затраченное время на перевозку товара по заказчикам.

Одним из методов решения оптимизационных задач являются генетические алгоритмы (ГА), основанные на принципах естественного отбора Ч. Дарвина. Генетический алгоритм -это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию [1].

В статье рассматривается алгоритм работы программного средства, которое реализует поиск лучшего решения с помощью модифицированного ГА. Этот метод отличается от стандартного алгоритма тем, что использует второй оператор мутации. Благодаря ему поиск оптимального пути сократился в несколько раз, а также уменьшилась вероятность попасть в локальный минимум.

Программное средство (ПС) использует свойство многопоточности. Такой метод позволяет уменьшить время выполнения алгоритма за счет распределения нагрузки центрального процессора на отдельные потоки.

Данная статья посвящена разработке программного средства для решения ТЗ с ограничением по времени при помощи модифицированного генетического алгоритма.

Алгоритм работы программного средства

Для объяснения работы модифицированного генетического алгоритма в программном средстве необходимо ввести следующие обозначения:

- «тах_йег» - переменная, обозначающая максимальное количество выполненных шагов алгоритма;

- «size_popul» - показывает количество маршрутов в популяции;

- «p_cross» - переменная, которая позволяет оператора кроссинговера в модифицированном ГА с определённой вероятностью;

- «р_тиЪ> - переменная, значение которой показывает вероятность использования оператора мутации;

- «F_best_c» - лучшая целевая функция (ЦФ) на данном шаге поиска оптимального маршрута;

- «F_best_p» - ЦФ лучшего решения в популяции на предыдущей итерации алгоритма;

- «соиП_Р» - количество шагов неизменяемых значений целевой функции;

- <а» - текущий шаг итерации алгоритма.

Модифицированный ГА для программного средства изображен на рис. 1.

Рис. 1. Алгоритм работы программного средства 8

Во время запуска алгоритма необходимо обнулить переменные: «F_best_c», «F_best_p» и «count_F». Далее применяется оператор инициализации, т.е. создается массив решений (набор маршрутов) в количестве равным переменной «size_popul». На следующем шаге происходит сравнение шага «i» с максимальной возможной итерацией «max_iter». Если первая переменная превосходит вторую, то заканчивается выполнение алгоритма, иначе переходим к следующему шагу. Далее если количество неизменяемых решений «count» в течение десяти итераций будут одинаковые, то завершаем процесс алгоритма, иначе применяем оператор селекции. С заданной вероятностью «p_cross» применяется оператор кроссинговера. Аналогичным образом применяется первый оператор мутации (ОМ1). После, если число неизменившихся решений превосходит пять, то применяем второй оператор мутации (ОМ2), в противном случае оператор пропускается. Оператор ОМ2 способен разнообразить популяцию новыми маршрутами, тем самым обеспечивая выход из локального минимума, с которым не справляется оператор ОМ1. Далее решение необходимо записать в таблицу

«History» в базу данных для дальнейшего составления отчета, а также отобразить наглядно текущий маршрут на карте. Следом меняем старое решение на новое и присваиваем лучшую целевую функцию переменной «F_best_c». Если предыдущая лучшая ЦФ «F_best_pr» будет равна текущей, то прибавляем «count» на единицу, иначе приравняем их и обнуляем «count_F». Дальше алгоритм будет выполняться до тех пор, пока либо не закончатся итерации, либо произойдет выход.

Интерфейс программного средства

Программное средство позволяет наглядно отображать заказчиков (точки на карте) и передвижение транспортного средства (ТС) от одного потребителя к другому (линия между двумя точками). Программа написана на языке C Sharp, среда разработки Microsoft Visual Studio 2017. Программа предназначена для запуска под операционными системами Windows 10 и выше. Главное окно программы «Решение ТЗ при помощи МГА» показано на рис. 2.

Рис. 2. Главное окно программного средства

Правая часть ПС предоставляет возможность настраивать различные параметры генетического алгоритма, тем самым повышается качество получаемого решения. Надстройка различных параметров делится на три этапа: инициализация, оператор кроссинговера и мутации.

Размер популяции позволяет создавать нужное количество начальных решений (ген или хромосом). Большое количество выбора решений повышает вероятность выбора лучшего набора маршрутов. При достижении максимального числа итераций, указанного в поле, алгоритм выводит последний обработанный маршрут. Значение грузоподъемности акту-

ально для каждого ТС, выезжающего из склада. Параметр «Количество заказчиков» создает указанное количество строк для инициализации данных о каждом потребителе, а также это максимальное число, которое можно нанести на рабочую зону.

В поле «Оператор кроссинговера» настраиваются два параметра «Вероятность кроссин-говера» и «Параметр». Первое поле показывает вероятность использования данного оператора в модифицированном алгоритме. Значение второго поле позволяет выбрать указанное количество маршрутов из поколения для дальнейшего применения на них оператора крос-синговера.

Оператор мутации и поля «вероятность мутации» и «Параметр» аналогичны оператору кроссинговера.

Вкладка «Инициализация» позволяет заполнить начальные данные о заказчиках, а именно: номер потребителя; верхнюю и нижнюю границу отправка ТС от заказчика; запрашиваемый вес товара; координаты «X» и

заказчика; время, в которое можно обслужить текущего потребителя на транспортном средстве.

Левая часть программы представляет собой рабочую зону. Она необходима для установки клиентов на карту, а также для отображения маршрутов ТС со склада. Карта обновляется на каждой итерации алгоритма. В нижней части рабочей зоны отображаются: номер последней итерации, общее время обслуживания всех заказчиков и расстояние пройденных всех транспортных средств.

Разработка многопоточного алгоритма

Параллельное исполнение кода современного программного обеспечения реализуется, с одной стороны, аппаратными возможностями современных персональных компьютеров, а с другой - возможностями операционных систем, такими как процессная многозадачность и поточная многозадачность [3]. Процесс - это объект, который создаётся и контролируется операционной системой. Он обладает собственным адресным пространством и приоритетом выполнения на уровне операционной системы. Процессы могут взаимодействовать через сервисы операционной системы: сокеты, каналы и отправку сообщений. При этом надо отметить, что имеют место относительно высокие накладные расходы при передаче данных.

Поточная многозадачность опирается на понятие потока - изолированной последовательности команд, которые выполняются в рамках некоторого процесса. Потоки управляются как самой программой, которая их формирует, так и операционной системой. Много-поточность позволяет процессу разделить алгоритм своей работы на отдельные параллельно исполняемые группы команд.

ГА является одним из лучших алгоритмов, который способен выполнять поиск лучшей целевой на параллельных процессах [27]. Разделение нагрузки на процессор осуществляется с помощью реализации обработки данных в разных процессах. Поток (в языке программирования C Sharp это библиотека «Thread») -это независимое последовательное выполнение набора команд и функций в ПС [2].

Алгоритм, позволяющий распараллелить вышеуказанные операции, представлен на рис. 3.

Рис. 3. Многопоточный алгоритм работы ПС

Запуск дополнительных потоков происходит после получения набора маршрута. Дальше программа подразделяется на основной поток и два дополнительных. В первом продолжается обработка данных о маршрутах и оценивание целевой функции. В дополнительном потоке происходит запись получившейся популяции в

таблицу базы данных, а во втором - графическое построение популяции на текущей итерации, т.е. отображение передвижение ТС на карте. Вспомогательные потоки работают независимо от основного, тем самым уменьшается время на поиск лучшего решения.

В Visual Studio для использования функции многопоточного режима подключается библиотека «System.Threading». Для инициализации дополнительного потока используются класс «Thread».

Результаты

В статье [4] было проведено сравнение эвристических алгоритмов для поиска оптимального маршрута. Моделирование происходило в имитационной среде, а именно -AnyLogic.

Для сравнения были взяты результаты стандартного генетического алгоритма, а также были добавлены итоги многопоточного выполнения программного средства, но с небольшими преобразованиями. Изменения были следующие: убрана интеграция с базой данных SQL и количество ТС было уменьшено до одного. Эти преобразования были необходимы из-за начальных условий в статье [4], а также, чтобы результаты были приближенными к стандартному генетическому алгоритму.

График зависимостей времени вычисления маршрута от количества заказчиков для каждого из алгоритмов представлен на рис. 4.

По итогам стандартного и модифицированного ГА можно сказать, что разработанный алгоритм позволяет снизить время выполнения поиска лучшего пути приблизительно в 5 раз.

Заключение

В данной статье рассмотрен модифицированный ГА для решения транспортных задач с ограничениями во времени.

В статье представлен алгоритм работы программного средства для решения транспортных задач с ограничением по времени. На этапе разработки интерфейса программного средства была произведена интеграция с базой данных.

Разработанный алгоритм ПС позволяет реализовать поиск лучшего решения с большой размерностью, а также предотвращает попадания в локальный минимум.

Для увеличения быстродействия поиска оптимального пути передвижения ТС, а также записи в базу данных и отображения маршрутов был использован многопоточный метод. Такой режим во время сравнения показал уменьшенное время работы программы приблизительно в 5 раз, по сравнению со стандартным генетическим алгоритмом.

Литература

1. Кремер О.Б., Подвальный С.Л. Программная реализация решения оптимизационных задач методом генетического алгоритма // Вестник Воронежского государственного технического университета. 2012. Т. 5. № 3. С. 21-24.

2. Денискин А.В. Многопоточность в языке программирования C Sharp // Academy. 2017. № 2. С. 21-24.

3. Соболев П.Ю., Филенко Е.С. Реализация много-поточности в современных языках программирования // Современные тенденции развития науки и образования: материалы междунар. (заоч.) науч.-практ. конф. Нефтекамск: Научно-издательский центр «Мир науки», 2016. С. 14-19.

4. Анализ трудоемкости различных алгоритмических подходов для решения задачи коммивояжера/ С.С. Семенов, А.В. Педан, В.С. Воловиков, И.С. Климов // Системы управления, связи и безопасности. 2017. № 1. С. 116-131.

о

10 30 50 100 150 ZOO 254 Количество заказчиков

Рис. 4. Сравнение результатов генетических алгоритмов

Поступила 28.06.2020; принята к публикации 17.08.2020

Информация об авторах

Подвальный Семен Леонидович - д-р техн. наук, профессор, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: spodvalny@yandex.ru

Вдовин Дмитрий Андреевич - магистрант, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: vdovin-vm@mail.ru

DEVELOPMENT OF SPECIAL SOFTWARE FOR SOLUTION OF TRANSPORT TASKS BY MODIFIED GENETIC ALGORITHM USING FREE THREADING

S.L. Podval'ny, D.A. Vdovin

Voronezh State Technical University, Voronezh, Russia

Abstract: the article solves the problem of developing special software and algorithmic software for solving transport problems using the genetic algorithm. Criterion selected: minimization of service time with resource constraints. Compared with traditional genetic algorithms, it was required to create some version of the modified genetic algorithm, which uses the second mutation operator, to reduce the probability of falling into a local extremum. The algorithm of the software tool's operation is considered in detail, which allows one to make initial settings for genetic operators (population size, number of iterations) and the basic elements of evolutionary search (selection, crossingover inheritance, mutation), and which is especially important when solving large-dimensional problems; save the received routes when re-deciding the movement of the vehicle according to customers in combination with an online database, both for customers and for vehicles. The program was developed in the Microsoft Visual Studio 2017 programming environment, and C sharp was used as the programming language. The software interface is presented. In order to increase the efficiency of processor utilization and, in particular, to increase performance when solving large-dimensional problems, we used elements of parallelization of the computing process, for which the multithreading method was chosen. It is shown in the work that thanks to this approach, the search time decreased by more than 5 times and is comparable with the search time by other methods, for example, by swarm ones

Key words: genetic algorithm, software, transportation task, free threading, heuristic algorithm

References

1. Kremer O.B., Podval'nyy S.L. "Software implementation of optimization problems solutions using genetic algorithm", Bulletin of Voronezh State Technical University (Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta), 2012, vol. 8, no. 3, pp. 21-24.

2. Deniskin A.V. "Multithreading in the C Sharp programming language", Ivanovo, Academy, 2017, no 2, pp. 21-24.

3. Sobolev P.Yu., Filenko E.S. "Multithreading implementation in modern programming languages", Proc. of the Intern. Sci. and Pract. Conf.: Modern Trends in the Development of Science and Education (Sovremennye tendentsii razvitiya nauki i obra-zovaniya: materialy mezhdunar. (zaoch.) nauch.-prakt. konf.), Neftekamsk, Mir Nauki, 2016, pp. 14-19.

4. Semenov S.S., Pedan A.V., Volovikov V.S., Klimov I.S. "Analysis of the complexity of various algorithmic approaches to solve the traveling salesman problem", St. Petersburg, Management, Communication and Security Systems (Sistemy upravleniya, svyazi i bezopasnosti), 2017, no 1, pp. 116-131.

Submitted 28.06.2020; revised 17.08.2020

Information about the authors

Semyen L. Podval'ny, Dr. Sc. (Technical), Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh, 394016, Russia), e-mail: spodvalny@yandex.ru, tel.: +7 (929) 011-21-53

Dmitriy A. Vdovin, MA, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026 Russia), e-mail: vdovin-vm@mail.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.