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

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

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

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

Предлагаемый алгоритм использует псевдогенетические процедуры для одномерной упаковки произвольно заданного количества элементов в блоки. Алгоритм автоматически выбирает необходимое количество блоков (по заданному Размеру блока и коэффициенту заполнения). Сделана программа по данному алгоритму на языке Borland C++ 4.5 под Windows, которая имеет наглядное Цветное графическое изображение процесса работы алгоритма.

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

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

3. Ho J. Layer assignment for multichip moduls. IEEE Trans. CAD, Vol. 9, no. 12, December, 1990.

УДК 681.3-519.8

А. В. Бондалетов

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

упаковки.

Предлагаемый алгоритм использует псевдогенетические процедуры для одномерной упаковки произвольно заданного количества элементов в блоки. Алгоритм автоматически выбирает необходимое количество блоков (по заданному Размеру блока и коэффициенту заполнения). Сделана программа по данному алгоритму на языке Borland C++ 4.5 под Windows, которая имеет наглядное Цветное графическое изображение процесса работы алгоритма.

Введение

Данный алгоритм выполняет следующие функции:

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

2) автоматическое определение количества необходимых блоков;

3) позволяет задать процент заполнения блоков (от 0 до 100%);

4) возможность изменять основные параметры в динамике процесса.

Этот алгоритм может использоваться как подзадача в более сложных задачах Упаковки.

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

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

Дано конечное множество элементов Е = { ei, ег,..., еп }, каждый элемент можно пРедставить числом, характеризующим его длину. Максимальная длина элемента ограничена параметром SIZE, размер одного блока • МАХ (тоже число), минимальный коэффициент заполнения одного блока - COEF (от 0 до 100%). Тогда нижняя граница заполнения будет равна MIN = МАХ * COEF. А оптимумом будет являться диапазон чисел между МАХ и MIN. Требуется найти разбиение Множества Е на такие подмножества {Si, S2, ..., Sm}, чтобы сумма элементов в

Каждом подмножестве Sk (SUMk = 2(eieSk), i=l...n) лежала в пределах оптимума, т-е. MIN s SUMk 5 МАХ, для Vk = 1 ... (m-1).

Описание алгоритма

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

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

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

Такой метод решения приводит к многократным повторениям одних и тех же перестановок, т.е. алгоритм “зацикливается”

Для избежания “зацикливания” вводится модифицированный оператор мутации.

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

1. Скрещивание.

Производится сортировка блоков в порядке возрастания зависимости от суммарного объема элементов в каждом блоке.

Затем берется минимальный элемент в первом блоке и меняется местом с максимальным элементом в последнем блоке. После этого берутся минимальный элемент второго блока и максимальный предпоследнего. И так далее, до тех пор пока не будут изменены все блоки.

2. Мутация.

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

3. Селекция.

Проверяются все блоки и те, которые оптимально заполнены, исключаются из дальнейшей обработки.

Момент выполнения скрещивания и мутации выбирается по случайному закону.

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

Существует два условия завершения работы:

1) если упаковано(ш-1)блоков;

2) если количество псевдогенетических циклов достигло заданного числа.

Альтернативные варианты решения

В работе проанализированы 2 варианта начального заполнения блоков.

1. Блоки заполняются случайным образом. l 2. (Sortelem). В начале все элементы сортируются в порядке убывания. Пусть N - количество блоков. 1-й элемент ставится в 1-й блок, 2-й во 2-й ... N-й в N-й (N+1)-й в N-й, (N+2)-fl в (N-1 )-й ... (N+N)-fi в 1-й, (N+N+l)-fl в 1-й и т.д. Т.е. заполнение происходит как бы волнами, сначала слева направо, потом справа налево, опять слева направо и т.д.

Количество блоков можно определить двумя способами.

1. Количество блоков определяется однозначно и один раз в зависимости от суммарной длины элементов и коэффициента заполнения. Пусть сумма всех элементов равна S и среднее значение между МАХ и MIN равно MID. MID=(MAX+MIN)/2. Тогда количество блоков N=S/MID.

Основной недостаток данного способа.

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

2. Чтобы этого не происходило, в программе применено динамическое изменение количества блоков (минимизация - Minimize).

Вначале работы количество блоков равно минимальному для решения задачи N=S/MAX. Затем после попадения суммы элементов какого-нибудь блока в оптимум (этот блок считается частью решения), считается сумма оставшихся

элементов впш и блоков N1011. Затем определяется новое количество необходимых блоков 1Чп™=5гяп/МАХ, причем МпстгЖгяп. Если Nnew>Nreln, ТО добавляется N11™— ^гоп блоков и все блоки равномерно заполняются оставшимися элементами.

При такой эвристике никогда не остается переполненных блоков в конце Решения.

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

Для максимизации заполнения блоков в программе использована следующая эвристика (Ве$1ег):

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

Результаты

Количество измерений в пределах каждого эксперимента равно 10.

Измерения проведены на 1ВМ 4860X80 4МВ.

Средний коэффициент заполнения считается для (т-1) блоков.

Ниже приведен график зависимости среднего коэффициента заполнения (%) от Количества элементов (14) при различных используемых эвристиках и следующих фиксированных параметрах:

СОЕР=90, МАХ=2500,81гЕ=500

N

■ -ЗоМвтН

Рис.1

Из графика видно, что

1) применение эвристики ВеэСег дает более высокий коэффициент заполнения;

2) при применении эвристики Вев(ег с увеличением кол-ва элементов увеличивается коэффициент заполнения.

Выводы

1 ■ При предварительной сортировке элементов заполнение блоков происходит значительно равномернее, поэтому скорость решения задачи возрастает в сотни раз.

2. Применять сортировку эффективнее при большем количестве элементов.

3. Если при предварительной сортировке элементов не все блоки оказались оптимально заполненными, то дальнейшее применение скрещивания не дает эффективных результатов, т.е. время решения значительно увеличивается.

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

5. Наиболее эффективное применение эвристики Ве$1ег - при заданном 80-90-процентном минимальном заполнении блоков (СОЕР).

6. Время решения задачи значительно увеличивается в соответствии с увеличением разногабаритности и количества элементов.

7. Работа алгоритма не эффективна при отношении размера блока и максимального элемента, равного 4 и менее процентам.

8. Устойчивая работа алгоритма на компьютере 1ВМ 486БХ80 4МВ при количестве элементов меньшем 2500.

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

УДК 681.356

СЛ. Дергачев

Генетический алгоритм диспетчеризации пакетов независимых задач

В этой статье представлен эффективный алгоритм для решения задачи диспетчеризации пакетов независимых задач на многопроцессорных системах без прерываний. Предлагается кодировка многопроцессорного расписания в виде последовательности номеров процессоров, на которых будет выполнена соответствующая работа. Данная кодировка позволяет единообразно подсчитывать длину расписания независимо от числа задач. Экспериментальные результаты на пакетах порядка 600 задач показывают, что предлагаемый алгоритм ”оТГаТЬ суб0ПТИМальные Расписания с относительной погрешностью

1. Введение

Задача оптимизации расписания хорошо известна как одна из самых практичных из числа ЫР-трудных проблем. Хорошо известны различные приближения решения данной задачи,как например, метод ветвей и границ, ЬРТ(1оп8е81-ргосез8.п^П^), ШШ и т.д. Так как оптимальное решение не может1 быть получено за полиномиальное время, то известные в настоящее время алгоритмы предназначены для поиска субоптимальных расписаний Таким образом, задача составления расписания была и остается актуальной проблемой.

2. Постановка задачи составления расписания

Задача составления расписания, рассматриваемая в данной статье имеет следующую постановку. Расмотрим систему, содержащую п идентичных процессоров, на которой необходимо решить без прерываний набор из Ь независимых задач с временами решения 11,1=(1 ,.Ь).

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

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