Применение генетического алгоритма для оптимизации складских запасов

Применение генетического алгоритма для оптимизации складских запасов

Доронин В.А.

Московский институт электроники и математики, каф. ИТАС

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

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

На данный момент известно множество подходов для решения проблемных ситуаций, рассмотренных выше. Выбор наилучшего подхода остается за специалистами в области логистики. Ниже будет рассмотрен метод по оптимизации складского запаса методом, основанным на применение Генетического Алгоритма (ГА) для поиска логических закономерностей в наборах данных. ГА является одним из инструментариев Data Mining. В основу современной технологии Data Mining положена концепция шаблонов (паттернов),

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

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

Однако ГА содержит и ряд недостатков:

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

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

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

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

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

Для работы ГА мы будем рассматривать КП состоящие из нескольких объединенных параметров. Для решения задачи оптимизации учитывались следующие составляющие:

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

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

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

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

4. Обязательной составляющей являются данные по товарным запасам на текущий момент времени.

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

ГА для генерации кодовых последовательностей можно представить в виде следующей последовательности шагов:

1. Генерируется начальная популяция, состоящая из заданного числа особей.

2. Для каждой особи производится расчёт целевой функции.

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

Тогда целевую функцию можно определить как р' = Г З, где у -

I

Гк

I=1

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

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

обмениваются сегментом, который находится между этими точками. В

, 12

равномерном операторе скрещивания каждый элемент (пара < щ , щ >

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

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

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

6. Проверяется, все ли отобранные особи дали потомство.

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

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

9. Проверяется выполнение условия останова генетического алгоритма, иначе алгоритм повторяется с пункта 2.

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

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

Если 650 гкл < склад > 700 гкл И 50 < продажи < 100 И 100<отгрузки<300 ТО Класс1: Дефицит

Если 100 гкл < склад < 400 гкл И 70 < продажи < 100 И 50<отгрузки<300 ТО КлассЗ: Профицит (точность - 0.5, полнота - 0.3).

Если 350 гкл < склад < 500 гкл И 90 < продажи < 100 И 100<отгрузки<300 ТО Класс2: Нормативная зона (точность - 0.5, полнота - 0.3).

Сравнительные испытания предложенного подхода, на основе применения ГА по сравнению с традиционным вычислением формул на листах среды MS Excel показали:

снижение трудоемкости вычисления дефицита и профицита в 1.5-2 раза.

снижение затрачиваемого времени на разработку рекомендованного плана отгрузок на основе данных по дефициту и профициту в 2-3 раза.

исключение ошибок, связанных с человеческим фактором при расчете формул.

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

Литература

1. Дюк В., Самойленко А. Data Mining. Учебный курс. - СПб: Питер, 2001.

2. Солодовников И.В., Доронин В. А. Генетический алгоритм для поиска логических закономерностей в данных - // Информационные технологии в управлении. № 7. М.: 2005 г.

3. Майкл Р. Линдерс, Харольд Е. Фирон Управление снабжением и запасами. Виктория - плюс, Москва, 2002 г.

4. В.В. Дыбская Логистика для практиков: Эффективные решения в складировании и грузопереработке, Москва, ВИНИТИ РАН, 2002 г.