Научная статья на тему 'Объектно-ориентированная библиотека классов для решения оптимизационных задач распределения ресурсов'

Объектно-ориентированная библиотека классов для решения оптимизационных задач распределения ресурсов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
418
79
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ БИБЛИОТЕКА КЛАССОВ / ИНФОРМАЦИОННАЯ МОДЕЛЬ / ЗАДАЧИ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ / ЗАДАЧИ УПАКОВКИ / ОПТИМИЗАЦИЯ / ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чеканин В.А., Чеканин А.В.

В статье описывается разработанная объектно-ориентированная библиотека классов, предназначенная для решения различных оптимизационных задач распределения ресурсов, включая задачи раскроя материалов и задачи упаковки объектов произвольной размерности. Основу библиотеки классов, разработанной на объектно-ориентированном языке программирования С++, составляют абстрактный класс объектов, содержащий информацию о геометрических, физических и иных параметрах размещаемых объектах, а также абстрактный класс алгоритмов решения задачи. Библиотека классов обеспечивает возможность получения субоптимальных решений задач распределения ресурсов с использованием как стандартных эволюционных алгоритмов (генетический алгоритм, алгоритм отжига, алгоритм муравьиной колонии), так и модифицированных эвристических и эволюционных алгоритмов многокритериальной оптимизации. Использование методов объектно-ориентированного моделирования обеспечивает возможность расширения библиотеки путем включения в нее новых оптимизационных алгоритмов искусственного интеллекта. Использование единой схемы кодирования решений задач делает библиотеку классов применимой для решения задач упаковки объектов различных типов (кругов, шаров, цилиндров, отрезков, прямоугольников, параллелепипедов и других объектов произвольной размерности). Разработанная библиотека классов может быть использована при разработке прикладного программного обеспечения для решения широкого класса оптимизационных задач распределения ресурсов в системах телекоммуникаций, агротехнических и экологических системах, в системах хранения и перевозки грузов, при раскрое материалов на станках с числовым программным управлением, при решении задач объемного и календарного планирования, при разработке технологической компоновки для ограниченных объемов в системах автоматизированного проектирования, а также при решении большого числа других практических задач.

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

Текст научной работы на тему «Объектно-ориентированная библиотека классов для решения оптимизационных задач распределения ресурсов»

УДК 004.94

ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ БИБЛИОТЕКА КЛАССОВ ДЛЯ РЕШЕНИЯ ОПТИМИЗАЦИОННЫХ ЗАДАЧ РАСПРЕДЕЛЕНИЯ РЕСУРСОВ

Чеканин Владислав Александрович, к.т.н., доцент, ФГБОУ ВПО МГТУ «СТАНКИН», Москва,

Россия, vladcheka.nin@rambler.ru

Чеканин Александр Васильевич, д.т.н., профессор, ФГБОУ ВПО МГТУ «СТАНКИН», Москва,

Россия, avchekanin@rambler.ru

Введение

Задачи распределения ресурсов объединяют большое число различных оптимизационных задач, требующих поиска наиболее рациональных способов размещения ресурсов одного типа, называемых объектами, среди ресурсов другого типа, называемых контейнерами. Задачи распределения ресурсов имеют место при решении задач раскроя материалов, календарного и объемного планирования, контейнерной упаковки, компоновки объектов, распределения трафика в вычислительных сетях, а также многих других практических оптимизационных задач [1-4].

Принадлежность задач распределения ресурсов к классу NP-полных задач [5] делает невозможным их решение за полиномиальное время, что требует применения интеллектуальных эвристических алгоритмов оптимизации, среди которых наиболее эффективными являются эволюционные алгоритмы, такие как генетический алгоритм, алгоритм муравья (алгоритм муравьиной колонии), алгоритм отжига, а также их комбинированные и модифицированные варианты [2, 6-10].

1. Библиотека классов для решения задач распределения ресурсов

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

• возможность решения задач распределения ресурсов произвольной размерности;

• возможность расширения библиотеки за счет включения в нее новых типов размещаемых объектов;

• возможность расширения библиотеки за счет включения в нее новых алгоритмов решения задач.

Возможность размещения различных видов объектов обеспечивается благодаря использованию универсальной узловой модели, описывающей положение каждого объекта одной точкой, называемой узлом [11, 12]. Для хранения координат узлов в контейнерах произвольной размерности используется разработанная многоуровневая связная структура данных, представляющая собой набор рекурсивно вложенных друг в друга упорядоченных линейных связных списков [14, 15].

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

При разработке библиотеки классов был применен объектно-ориентированный подход, к преимуществам которого относят инкапсуляцию методов и данных, наследование объектов, перегрузку методов, моделирование связей между объектами в условиях, предельно близких к реальности, естественность и наглядность процесса программирования, а также легкость сопровождения и дальнейшей модификации программного кода [15]. Библиотека классов реализована на алгоритмическом языке программирования С++.

41

Основными классами разработанной библиотеки являются класс задачи и два абстрактных класса - класс объектов и класс алгоритмов решения.

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

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

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

1..* Закодированное решение

Алгоритм решения -хромосома

-популяция решений -целевая функция

-лучшее решение 1 +Размещение объектов()

+Создание начальной популяции() +Расчет целевой функции()

+3апуск алгоритма() +Новое решение()

Алгоритм отжига Алгоритм муравья Генетический алгоритм

Рис. 2 - Абстрактный класс алгоритмов решения задач

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

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

42

Библиотека классов для решения оптимизационных задач распределения ресурсов приведена в виде диаграммы UML на рис. 3.

Рис. 3 - Библиотека классов для решения задач распределения ресурсов

Заключение

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

Литература

43

1. WascherG., HaubnerH., SchumannH. An improved typology of cutting and packing problems//

European Journal of Operational Research. 2007. Vol. 183, N. 3. P. 1109-1130.

2. Оптимизационные проблемы транспортной логистики: оперативное размещение контейнеров

при транспортировке грузов / МухачеваЭ.А. [идр.] // Информационные технологии. 2008. № 7. С. 17-22.

З.Чеканин В.А., Чеканин А.В. Модель размещения объектов в задаче контейнерной ортогональной упаковки // Инновационные информационные технологии: Материалы международной научно-практической конференции. Том 3. - М. : МИЭМ НИУ ВШЭ, 2013.-С. 418-420.

4. Митрофанов В.Г., Капитанов А.В., Гришина Т.Г. Цикл выработки и обоснованность принятия

решений при управлении автоматизированным производством // Инновации. 2013. № 10(180). С. 23-27.

5. GareyM., Johnson D. Computers intractability: a guide to the theory of NP-completeness. -

San Francisco: W.H. Freeman, 1979. - 338 p.

6. Валеева А.Ф. Применение метаэвристики муравьиной колонии к задачам двумерной упаковки

// Информационные технологии. 2005. № 10. С. 36-43.

7. Чеканин А.В., Чеканин В.А. Алгоритмы эффективного решения задачи ортогональной

упаковки объектов // Журнал вычислительной математики и математической физики. 2013. Т. 53. № 10. С. 1639-1648.

8. Чеканин В.А., Ковшов Е.Е. Систематизация и анализ структур данных при автоматизации

управления склада на основе генетических алгоритмов // Вестник высших учебных заведений. Проблемы полиграфии и издательского дела. 2008. № 5. С. 42-51.

9. Чеканин В.А., Чеканин А.В. Алгоритм решения задач ортогональной упаковки объектов на

основе мультиметодной технологии // Информационные технологии. 2013. № 7. С. 17-21.

10. Чеканин В.А., Чеканин А.В. Исследование генетических методов оптимизации распределения прямоугольных ресурсов // Современное машиностроение. Наука и образование: Материалы 2-й Международной научно-практической конференции / Под ред. М.М. Радкевича и А.Н. Евграфова. - СПб.: Изд-во Политехн. ун-та, 2012. - C. 798-804.

11. Crainic T.G., Perboli G., Tadei R. Extreme point-based heuristics for three-dimensional bin packing // INFORMS Journal on Computing. 2008. Vol. 20, N. 3. P. 368-384.

12. Chekanin A.V., Chekanin V.A. Improved packing representation model for the orthogonal packing problem // Applied Mechanics and Materials. 2013. Vol. 390. P. 591-595.

13. Chekanin V.A., Chekanin A.V. Multilevel linked data structure for the multidimensional orthogonal packing problem // Applied Mechanics and Materials. 2014. Vol. 598. P. 387-391.

14. Чеканин В.А., Чеканин А.В. Модели конструирования ортогональной упаковки объектов // Информационные технологии и вычислительные системы. 2014. № 2. С. 37-45.

15. Лафоре Р. Объектно-ориентированное программирование в С++. 4-е изд. - СПб.: Питер, 2011.-928 с.

УДК 004.942

МЕТОД И ЯЗЫК МОДЕЛИРОВАНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ УПРАВЛЕНИЯ СЛОЖНЫМИ ТЕХНОЛОГИЧЕСКИМИ ОБЪЕКТАМИ

Дмитриев Вячеслав Михайлович, д.т.н., профессор, зав кафедрой Моделирования и системного анализа Томского государственного университета систем управления и радиоэлектроники, Россия,

Томск, dmitriewvm@gmail.com

Ганджа Тарас Викторович, к.т.н., доцент кафедры Моделирования и системного анализа Томского государственного университета систем управления и радиоэлектроники, Россия, Томск,

gandgatv@gmail.com

Введение

Промышленное оборудование предприятий нефтегазовой промышленности (НГП)

44

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