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

Применение группирующего генетического алгоритма для решения задач одномерной упаковки Текст научной статьи по специальности «Математика»

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

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

Группирующий генетический алгоритм (ГГА) (Grouping Genetic Algorithm (GGA)) это генетический алгоритм, измененный для решения задач группировки. Цель таких задач найти лучшее разбиение множества или сгруппировать вместе членов данного множества, используя различные критерии группировки. Задача упаковки (ЗУ) (Bin Packing Problem (ВРР)) является NP-сложной задачей группировки элементы различного размера должны быть сгруппированы в минимальное количество блоков (bin) фиксированного размера.

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

Текст научной работы на тему «Применение группирующего генетического алгоритма для решения задач одномерной упаковки»

8. Лебедев Б.К. "Канальная трассировка на основе генетических процедур", Известия ТРТУ, №3, Таганрог, с. 53-60, 1997.

9. Syswcrda G. “Uniform Crossover in Genetic Algorithms", Proc. of the 3-rd Conf. on Genetic Algorithms, M. Kaufmann Publisher, San Mateo, California, 1989. p. 2-9

10. Yoshimura, T. and Kuh, E.S. «Efficient algorithms for channel routing», IEEE Trans. Comput.-Aided Des. Integrated Circuits & Syst., vol.l, no.l, pp.25-35,1982.

УДК 658.512

Бондалетов A.B.

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

одномерной упаковки.

Аннотация.

Группирующий генетический алгоритм (ГГА) (Grouping Genetic Algorithm (GGA)) - это генетический алгоритм, измененный для решения задач группировки. Цель таких задач найти лучшее разбиение множества или сгруппировать вместе членов данного множества, используя различные критерии группировки. Задача упаковки (ЗУ) (Bin Packing Problem (ВРР)) является NP-сложной задачей группировки элементы различного размера должны быть сгруппированы в минимальное количество блоков (bin) фиксированного размера.

1. Введение.

1.1 Задача упаковки.

Задача упаковки (ЗУ) определяется следующим образом: дано конечное множество чисел (размеров элементов) Е и константа МАХ (размер блока), цель найти разбиение

множества Е на минимальное количество подмножеств, таких, что сумма элементов в каждом подмножестве не будет превышать МАХ (размера блока).

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

Например: Начиная с одного пустого блока, брать последовательно элементы и для каждого из них искать уже используемый блок с достаточным свободным местом. Если такой блок найден, то «положить» в него элемент, иначе взять пустой блок. Такая эвристика называется First Fit (FF). Если элементы перед распределением отсортировать, то получим эвристику First Fit Decreasing (FFD), которая решает задачу лучше, но работает медпенее. А если искать самый заполненный блок, имеющий достаточно места, то такая эвристика называется Best Fit.

1.2 Задача группировки.

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

и( = U и U[ Uj =, і j.

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

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

Цель задачи - оптимизировать целевую функцию (cost function) определенную на множестве всех легальных решений.

Приведем примеры известных задач группировки, с условиями (где МАХ - заданная константа), и целевая функция должна минимизироваться.

Задача Условия Целевая функция

Упаковка Сумма размеров элементов в любой группе < МАХ. Количество фупп.

Распределение элементов в микросхемах Количество элементов в любой группе (микросхеме) < МАХ. Общее количество соединений между микросхемами.

Раскраска графа Нет инцидентных вершин в любой группе. Количество групп.

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

2. Описание предлагаемого группирующего генетического алгоритма для решения задач

одномерной упаковки.

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

2.1 Целевая функция.

В данной задаче целевую функцию можно определить как: махимизировать

Х^/МАХ)*

*ВРР = ^

где N - число используемых блоков,

- сумма размеров элементов в (заполненном) блоке 1,

МАХ - размер блока, к - константа, к>0.

Константа к выражает нашу концентрацию на «очень хорошо» заполненных блоках в сравнении с менее заполненными. Если мы увеличиваем к, значит, мы предпочитаем хорошо заполненные «элитные» блоки в сравнении с набором примерно одинаково заполненных блоков. Результаты экспериментов с различными значениями к показали, что к=2 дает хорошие результаты. Увеличение к ведет к предварительной сходимости алгоритма в локальном оптимуме, из которого трудно выйти.

Замечание. Были проведены эксперименты с такими множествами элементов, которые можно идеально сгруппировать в блоки, т.е. существует такое решение, когда все блоки могут быть заполнены на 100%. В таких (редких) случаях решение находится быстрее, если к равняется сотням или даже тысячам.

2.2 Кодировка хромосом.

Основные отличия в кодировке от стандартного ГА (СГА) и порядкового (Ordering) ГА (ПГА) состоят в следующем:

• в предлагаемом ГТА используется группо-ориентированный подход, в то время как в СГА и ПГА используется элементно-ориентированный подход.

• в предлагаемом ГГА хромосома состоит из двух частей, причем одна из частей имеет переменную длину, а в СГА и ПГА хромосома состоит из одной части.

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

Хромосома состоит из двух частей:

1. элементной части (фиксированной длины равной количеству элементов)

2. фупповой части (переменной длины).

Например, хромосома:

ACBADC:CBDA элементная групповая часть часть будет кодировать следущее решение (рис. 1):

С В О А

Рис.1

Элементная часть такая же, как и в СГА, т.е. один ген - один элемент.

Например, хромосома

1 2 34 5 6 (номера элементов)

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

Групповая часть хромосомы представляет только группы (блоки в ЗУ) и порядок их следования (порядок может быть важен в операторе скрещивания). Итак : СВОА

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

А = {1,4},В = {3}, С = (2, 6},0 = {5}.

И хромосома может быть записана как:

(2,6) {3} {5} (1,4).

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

2.3 Оператор скрещивания с заменой (Bin Packing Crossover with Replacement - BPRX)

Задача оператора скрещивания состоит в создании потомков (offspring) двух родителей (parent) таким путем, чтобы дети включали в себя как можно больше полезной (значимой) информации из обоих родителей. Нужно найти способ перемешать блоки от родителей к детям, т.к. именно блок несет важную информацию в задаче упаковки. Это сделано следующим образом.

Даны две хромосомы • родителя (рис. 2 и рис. 3):

BFECFADCCEDA : ABCDEF

И 10 5

7 3 2

D Е F

Рис.2

bcdbcaaddacd abed

Рис. 3

Возьмем групповые части двух хромосом (родителей).

ABCDEF (первый родитель) (рис. 2) abed (второй родитель) (рис. 3)

Выберем случайным образом две точки (crossing site) в каждой хромосоме.

AIBCDIEF

albcld

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

AbcBCDEF (рис. 4)

Рис.4

Теперь некоторые элементы встречаются дважды в решении и должны быть устранены. В данном примере элементы, вставленные с блоками Ь и с, также встречаются в блоках В, С, О и Р. Мы устраняем эти четыре блока, оставляя

АЬсЕ (рис. 5)

Рис.5

После устранения, скорее всего, появятся элементы, которые устранены с блоками B,C,D,F и не присутствуют в блоках Ь,с (элементы 7,8,9). Эти элементы является упущенными из решения.

Чтобы устранить эту проблему, можно использовать, например, First Fit Decreasing эвристику для вставки в решение упущенных элементов (рис. 6).

ЬсЕЬсААЬЕЕсА :АЬсЕ

7 8 и

12 4

5

6 1

2

А Ь с

Рис. 6

10

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

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

Этот процесс продолжается до тех пор, пока такие замены возможны. Затем применяется FFD эвристика для завершения создания решения.

2.4 Оператор Мутации (Mutation).

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

УДК 658.52.011

Емельянов В.В.,. Захаров П.А Планирование поставок торговой фирме с использованием имитации и

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

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

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

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