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

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

CC BY
186
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
оптимизация заказов / генетический алгоритм / распараллеливание вычислений / mpi
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

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

УДК 004.023

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

В.В. МУРОМЦЕВ

А.А. СЛОБОДЮК В статье рассматривается задача оптимизации заказов

предприятия. Предложен метод решения с использованием гене-Белгородский тических алгоритмов. Рассмотрена возможность распараллелива-

государственны-й ния вычислений при решении поставленной задачи.

университет Ключевые слова: оптимизация заказов, генетический алго-

e-mail: muromtsev@bsu.edu.ru ритм, распараллеливание вычислений, MPI.

Введение

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

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

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

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

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

Применение генетического алгоритма

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

n

f (x1,x2,...,xn ) = І К (і )Цс і = 1

n

xi,i, ІК (j )Ц (xjJ )

j = 1; xj = x

где п — число закупаемых товаров, пронумерованных натуральными числами; хі є {і,2,...,Ь},і = 1,2,...,п — номер поставщика, у которого закупается і-й товар; Ь — чис-

ло поставщиков; К (i) — количество /-го товара, которое требуется закупить; Ц(х;., j) — цена j-го товара у поставщика xj без скидки; Цс(х{, i, Е) - цена /-го товара у поставщика xt при закупке у данного поставщика товаров на сумму большую или равную

порогу скидки Е (цена со скидкой).

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

і ( ^ n b

f(xl,x2,..„xn)= Е К(i)ц(x,,i)- Е С i = 1 l = 1

I, Е К(])Ц (х,) '

] = 1;х] = I J

где С (/, Е) — скидка, предоставляемая поставщиком с номером /, при закупке у данного поставщика товаров на сумму большую или равную Е .

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

М = {(х1,х2,...,хп)| х е {1,2,...,ь}г = 1 ,2,...,п}. После того, как множество М сформировано, осуществляется уточнение решений с помощью генетического алгоритма. В предлагаемом алгоритме элементы множества М рассматриваются как хромосомы. Генетический код особи представляется одной хромосомой. Таким образом, исходное множество особей (начальная популяция) совпадает с множеством М .

Основной шаг генетического алгоритма включает:

1. Выбор из текущей популяции М некоторого числа пар особей (родителей).

2. Выполнение генетических операций.

3. Отбор жизнеспособных особей.

4. Корректировка популяции М .

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

Над выбранными парами родителей выполняются операции кроссинговера и репродукции. В результате выполнения таких операций два родителя (т,...,тк_1,тк,...,тп) и (т{,...,т'к_1,т[,...,т'п) порождают двух особей: Ц,...,тк_х,т[,...,т'п) и

(да',...,т’к1,тк,...,тп). Точка перекрестного обмена к выбирается случайным образом.

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

1. Случайно выбранный ген mi,г = 1,2,...,п заменяется случайным числом в диапазоне от 1 до Ь .

2. Случайно выбранный ген mi заменяется числом ё в диапазоне от 1 до Ь .

Здесь ё — номер поставщика, которому заказаны товары на сумму, близкую к пороговому значению, после которого определена скидка у данного поставщика. Если таких поставщиков несколько, то при выборе ё учитываются дополнительные критерии.

После выполнения генетических операций новые особи проверяются на жизнеспособность. Особь (т1,т2,...,тп) считается жизнеспособной, если выполняется условие / (т1,т2,...,тп )< Е К (г)Ц * (г) + с/ , где Ц * (г ) = Д1т& }{Ц (х, г)} - минимальная цена на г = 1

162 НАУЧНЫЕ ВЕДОМОСТИ ^ № 9(64) 2009

/-ый товар, предложенная одним из поставщиков, у которого может быть закуплен данный товар; cf > 0 — некоторая заданная константа.

Жизнеспособные особи включаются в популяцию. Если размер популяции превышает заданный, то он корректируется. Корректировка размера популяции заключается в удалении наименее жизнеспособных особей. Из двух особей (ml5m2,...,mn) и

(m|, m2,..., m'n ) наименее жизнеспособной считается особь (m1; m2,...,mn ) если f (ml,^..^m„)> f (ml,^m2,...,m'n).

Основной шаг генетического алгоритма повторяется заданное число раз (число поколений), также может быть задано время выполнения алгоритма.

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

По завершении анализа заданного числа поколений в популяции отбирается наиболее жизнеспособная особь (ml, m2,..., mn). Если выполняется условие

f (m m m )< £ К(;)ц*(;), то закупка товаров осуществляется в соответствии с данной

i = 1

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

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

Возможны следующие режимы использования п-процессорной системы:

1. Все ресурсы отдаются для выполнения одной программы, и тогда можно ожидать п-кратного ускорения работы программы по сравнению с однопроцессорной системой.

2. Одновременно выполняется п обычных однопроцессорных программ, при этом пользователь вправе рассчитывать, что на скорость выполнения его программы не будут оказывать влияния другие программы.

Для решения поставленной задачи логично было бы использовать первый из выше представленных режимов. Также предлагается воспользоваться средой параллельного программирования MPI [2]. MPI — это библиотека функций, обеспечивающая взаимодействие параллельных процессов с помощью механизма передачи сообщений. Она является общепризнанным стандартом в параллельном программировании с использованием механизма передачи сообщений.

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

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

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

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

Выводы

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

Литература

1. Муромцев, В.В. Организация конкурсных закупок. [Текст] / В.В.Муромцев // Научные ведо-

мости БелГУ. Серия «Информатика и прикладная математика». — 2006. — №1(21), вып. 2. — с.56-65.

2. MPI: Message Passing Interface - русскоязычная страница [Электронный ресурс]: сайт о суперкомпьютерах и параллельных вычислениях. — Режим доступа: http://www .parallel. ru/tech /tech_dev/mpi.html, свободный.

164

НАУЧНЫЕ ВЕДОМОСТИ

№ 9(64)2009

ABOUT USAGE OF GENETIC ALGORITHMS AND PARALLEL CALCULATIONS FOR OPTIMISATION OF ORDERS OF THE ENTERPRISE

The article considers the problem of optimisation of orders of the enterprise is considered. The method of the decision with use of genetic algorithms is offered. Possibility to use parallel calculations is considered at the task in view decision.

V.V. MUROMTSEV A.A. SLOBODYUK

Belgorod State University

e-mail: anna-slobodyuk@yandex.ru Keywords: optimisation of orders, genetic algorithm, paral-

lel calculations, MPI.

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