Назад в библиотеку

Разработка программного обеспечения для загрузки транспортного средства с помощью эволюционнных алгоритмов

Автор:Семенова А.П., Стрюковская А.Д.
Источник: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ-2017): сборник материалов VIII Международной научно-технической конференции в рамках III Международного Научного форума Донецкой Народной Республики. 25 мая 2017 г. – Донецк, ГОУ ВПО «Донецкий национальный технический университет»

Аннотация

Семенова А.П., Стрюковская А.Д., Разработка программного обеспечения для загрузки транспортного средства с помощью эволюционнных алгоритмов. Проанализированы методы решения оптимизационных комбинаторных задач (задача о загрузке транспортного средства, задача о рюкзаке, задача о раскрое). Рассмотрены основные понятия технологии генетических алгоритмов. Описан метод решения и программная реализация задачи загрузки транспортного средства с помощью генетического алгоритма.

Ключевые слова

Задача о рюкзаке, задача раскроя, генетические алгоритмы, задача о загрузке транспортного средства.

Общая постановка проблемы

В настоящие время многие производственные предприятия сталкиваются с задачей загрузки транспортного средства [1]. При решении данной задачи возникает проблема поиска оптимального распределения некоторого ресурса при наличии ряда ограничивающих факторов. Таким образом, задачу о загрузке можно свести к задаче о рюкзаке [4] и задаче о раскрое [3]. Задача о рюкзаке, как и многие оптимизационные комбинаторные задачи, принадлежит к классу NP-полных задач. Ее можно решить полным перебором всех допустимых вариантов заполнения рюкзака имеющимися предметами, однако при больших массивах входных данных такой переборный алгоритм практически неприемлем, поскольку имеет экспоненциальную сложность относительно длины входа. Если же применить идеи «метода ветвей и границ» [5], то в большинстве случаев объем перебираемых вариантов можно сократить. Подобные алгоритмы с ограниченным перебором могут иметь неплохую сложность в среднем, но в худшем случае все равно остаются экспоненциальными. Поэтому на практике часто используют различные модификации «жадного» алгоритма [5], который имеет полиномиальную сложность, что и является его основным достоинством. В данной работе будет представлен метод загрузки транспортного средства на основе генетического алгоритма.

Цель статьи

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

Постановка задачи

Задачу о загрузке транспортного средства можно сформулировать следующим образом: из заданного множества объектов с определенными свойствами необходимо выбрать и разместить в транспортном средстве такое количество объектов, чтобы количество объектов было максимальным, площадь свободного места в кузове была минимальна. При этом необходимо учитывать все ограничения, как груза, так и транспортного средства..

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

Исследования

Программное обеспечение реализовано с целью уменьшения затрат времени на поиск оптимального размещения груза и загрузку транспортного средства.

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

Методы решения

Для решения классических задач о рюкзаке и раскрое существуют уже известные генетические алгоритмы [1]. Приведем описание генетического алгоритма, позволяющего решить задачу о загрузке транспортного средства. В данной задаче генетический алгоритм, позволяет получить оптимальные решения, сочетающие в себе случайные методы. Размер начальной популяции составляет 20 особей. Хромосома представлена в виде матрицы. В качестве способа кодирования хромосом было выбрано бинарное кодирование. Формирование новой популяции осуществляется с помощью таких генетических операторов: отбор родителей – заключается в турнирном отборе, скрещивание – происходит обмен одним геном, мутация – является генномной. Поскольку в задаче о загрузке транспортного средства суммарная стоимость загруженного груза должна стремиться к максимуму. Предположим, что количество типов груза равно n. Обозначим стоимость i-го предмета как pi, а i-й ген хромосомы как hi.

Но на значение фитнесс-функции влияют некоторые условия задачи: грузоподъемность транспортного средства, площадь кузова транспортного средства, габариты груза. Эти ограничения учтены в штрафной функции.

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

Программная реалиация

Программное обеспечение позволит пользователю вводить необходимые параметры груза и полотна для загрузки транспортного средства. Программный продукт будет реализован в виде нативного приложения под операционную систему семейства Windows с использованием Net.Framework не ниже 4.1 версии.

Программная реализация создана на языке С# и состоит из главного меню и последовательно вызываемых форм. В формах, в свою очередь, размещены элементы интерфейса, взаимодействие с которыми вызывает другие элементы или формы.

Выводы

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

Список использованной литературы

1. Панченко Т. Генетические алгоритмы в примерах / Панченко Т. – М.: Питер, 2007. – 89 с.
2. Падлазова И. Генетические алгоритмы на примерах задачи раскроя / Падлазова И. – М. : Питер, 2015. – 50 с.
3. Шилд Г. С#. Объектно-ориентированное программирование. Практикум. СПб.: Питер, 2008.
4. Давыдов В. Г. Технологии программирования. C#: [руководство]/ В. Г. Давыдов. –СПб.: БХВ-Петербург, 2005.
5. Павловская Т. А. C/C#. Программирование на языке высокого уровня / Павловская Т. А. – СПб.: Питер, 2010