УДК 681.3+681.5
ЭФФЕКТИВНОСТЬ РАЗЛИЧНЫХ ВИДОВ МУТАЦИИ ПРИ РЕШЕНИИ МИНИМАКСНОЙ ЗАДАЧИ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ НА БАЗЕ МОДЕЛИ ХОЛАНДА
© 2012 г. В.Г. Кобак*, А.Ю. Чижов**, АА. Ренсков**, Д.В. Плешаков*
*Донской государственный технический *Donskoy State Technical University,
университет, г. Ростов-на-Дону Rostov-on-Don
**Южно-Российский государственный **South-Russian State
технический университет Technical University
(Новочеркасский политехнический институт) (Novocherkassk Polytechnic Institute)
Рассмотрены некоторые из наиболее распространенных видов мутации с целью выявления наиболее эффективной для решения однородной или неоднородной распределительной задачи. Также приведены результаты работы различных видов кроссовера (ввиду того, что основная задача данной работы -рассмотрение и сравнение эффективности различных видов мутации, подробное рассмотрение кроссовера опущено).
Ключевые слова: теория расписаний; модель Холанда; однородная распределительная задача; неоднородная распределительная задача; мутация; кроссовер; генетические алгоритмы.
Annotation are in this work examined some of the most common forms of mutation for the purpose of the development of the uniform or heterogeneous distributive task most effective for the solution. Are also given the results of the work of different types of crossover (in view of the fact that the basic task of this work - examination and the comparison of the effectiveness of different forms of mutation, the detailed examination of crossover it is omitted).
Keywords: scheduling theory; the model of Kholanda; uniform distributive task; heterogeneous distributive task; mutation; crossover; genetic algorithms.
Введение
Существует множество различных подходов для решения распределительной задачи. Таковыми являются различные списочные алгоритмы, комбинаторные или же генетические. Помимо этого существуют различные смешанные алгоритмы, когда для получения конечного решения применяется поэтапное решение задачи то одними, то другими алгоритмами. У всех из них есть как свои плюсы, так и минусы. Например, списочные алгоритмы довольно быстро дают решение, но далеко не оптимальное, в то время как различные комбинаторные алгоритмы дают довольно близкое к оптимальному, а иногда и оптимальное, решение, но значительно проигрывают по времени расчетов. Зачастую для решения распределительной задачи комбинаторные алгоритмы просто неприемлемы для решения задачи в связи с колоссальными объемами времени получения результата.
Особую роль в решении распределительной задачи занимают генетические алгоритмы (в дальнейшем ГА), так как они построены на вероятностных событиях. Несмотря на это, ГА позволяют получить эффективное решение в короткие сроки времени.
Далее в работе будут рассмотрены некоторые виды мутации, а также проведен сравнительный анализ полученных с помощью них результатов решения распределительной задачи.
Постановка задачи
Задача теории расписаний может быть сформулирована следующим образом. Имеется вычислительная система, состоящая из п параллельных процессоров Р = {р!,...,рп}, на которые поступает т независимых заданий Q = ,qm}, образующих параллельную программу, причем известно время выполнения любого задания на любом из процессоров вычислительной системы. В зависимости от того, является задача однородной или неоднородной, время выполнения одного и того же задания на разных устройствах может быть одинаковым (в однородной задаче) или отличаться (в неоднородной задаче). В каждый момент времени отдельный процессор обслуживает не более одного задания, которое не передаётся на другой процессор. Задача составления расписания сводится к разбиению исход-
ного множества заданий на n непересекающихся подмножеств, т.е. Qi : Vi, j е [1, n] ^ Qi П Qj = 0 и
n
U Qi = Q. Критерием разбиения, обеспечивающего
i=1
оптимальность расписания по быстродействию, служит минимаксный критерий и определяет такое распределение заданий по процессорам, при котором время завершения T параллельной программы минимально, т.е. T = max T min, где Tt = ^ t}- -
tj eQ, j
загрузка i-го процессора (время окончания выполнения множества заданий Q, с Q, назначенных на процессор pt, i = 1, n ) [1].
Представление данных в генах
В генетических алгоритмах на каждом этапе решения задачи у нас есть множество решений, называемых особями, а хранящиеся в них данные представляются в виде последовательности генов. Так, например, последовательность генов [1,3,2,2,3,1,1] говорит о том, что задания 1, 6 и 7 выполняются на устройстве 1, задания 3 и 4 на устройстве 2, а задания 2 и 5 на устройстве 3. Это лишь один из многих видов представления данных.
Обзор видов мутации
Мутация зачастую является куда более эффективным инструментом для получения результата, чем кроссовер. Но помимо этого, существует множество различных ее видов. В зависимости от того, какой вид мы выберем, полученный результат может измениться как в лучшую, так и в худшую сторону.
Поэтому были рассмотрены наиболее распространенные виды мутации и проведен сравнительный анализ полученных результатов с целью выявления наиболее эффективного ее вида, а именно:
- одноточечная мутация;
- двухточечная мутация;
- инверсия;
- сильная мутация;
- битовая мутация;
- циклическая мутация (+);
- циклическая мутация (-);
- циклическая мутация (+/-).
Одноточечная мутация
Одноточечная мутация является самым простым из всех видов, суть ее заключается в том, что одно случайное задание переносится на другое устройство.
Пример: задание 6 переносится с устройства 1 на устройство 2 (рис. 1).
Есть два варианта перемещения на новое устройство:
- с проверкой на изменение устройства;
- без проверки на изменение устройства.
1 3 2 2 3 11
1 3 2 2 3®1
Рис. 1. Одноточечная мутация
В первом случае задание однозначно будет перемещено с одного устройства на любое другое. Во втором случае остается вероятность того, что задание останется на том же самом устройстве, понижающаяся с увеличением количества устройств. Так, при распределении на два устройства она составляет 50 %, на 3 - 33 %, 4 - 25 % и т.д.
Двухточечная мутация
При двухточечной мутации случайным образом выбираются два разных задания, и устройства, на которых выполняются эти задания, обмениваются ими.
Пример: устройства 1 и 2 обмениваются заданиями 3 и 6 (рис. 2).
1 3 1
1 Зф2 3 2 1
Рис. 2. Двухточечная инверсия Инверсия
Инверсия - изменение порядка следования частей хромосомы. Инверсия выполняется на одиночной хромосоме; при ее осуществлении изменяется последовательность аллелей между двумя случайно выбираемыми позициями в хромосоме. Несмотря на то что этот оператор был определен по аналогии с биологическим процессом хромосомной инверсии, он не слишком часто применяется в генетических алгоритмах [2]. По сути, инверсия - отдельный оператор ГА, как мутация или кроссовер, но так как он оперирует с одной особью, его можно отнести и к мутации. Инверсия происходит по следующему принципу. Есть позиция, начиная с которой происходит инверсия, и позиция, в которой инверсия завершается. Таким образом, мы получаем интервал, на котором происходит
данная мутация. После этого этот отрезок перезаписывается в обратном порядке.
Пример: инверсия на отрезке 3 - 6 (рис. 3).
Рис. 3. Инверсия
Сильная мутация
Сильная мутация происходит аналогично с точечной мутацией, но в нескольких позициях (устройство меняется не для одной задачи, а сразу для нескольких). Число этих позиций определяется заранее в виде процентного соотношения с общим числом задач. При этом, так же как и для одноточечной мутации, есть два варианта перемещения на новое устройство - с проверкой и без проверки.
Пример: задания 2, 3 и 6 переносятся с устройств 3, 2 и 1 на устройства 1, 3 и 2 соответственно (рис. 4).
Рис. 4. Сильная мутация
Битовая мутация
Битовая мутация одна из наиболее сложных. Для ее реализации недостаточно просто знать распределение заданий по устройствам. Для каждой задачи в распределении есть некоторое число, определяющее ее принадлежность к тому или иному устройству. Это число принадлежит интервалу 0 - 255. В зависимости от числа устройств, каждое устройство характеризует интервал чисел, например, если имеется три устройства, то числа от 0 до 85 характеризуют первое устройство, от 86 до 170 - второе устройство, от 171 до 255 - третье устройство. В зависимости от того, какое число привязано к задаче в распределении, определяется, на каком устройстве она выполняется. Например, если число устройств 3 и к заданию привязано число 37, то 37 попадает в интервал 0 - 85, этот интервал характеризует устройство 1, а значит, и это задание выполняется на устройстве 1. Связанные с заданиями числа генерируются единовременно в момент начала работы алгоритма и в дальнейшем изменяются только посредством мутации.
Сама мутация происходит следующим образом. Число, привязанное к заданию, представляется в виде его двоичного кода, последовательности из 8 бит. Затем случайным образом выбираются биты, которые инвертируются. Число бит может быть от 1 до 8. После того как все выбранные биты инвертируются, новый двоичный код преобразовывается в десятеричное число. В зависимости от того, какое новое число получилось, определяется, на каком устройстве будет выполняться задание.
Пример: есть распределение заданий [1, 3, 2, 2, 3, 1, 1], при этом к каждому заданию привязано число [37, 213, 97, 133, 195, 53, 7] соответственно. Чтобы осуществить мутацию для задания 4, которое выполняется на устройстве 2, сделаем следующее. Привязанное к заданию число 133 преобразуем в двоичный код. Получим [10000101]. Пусть требуется инвертировать 2 случайных бита. Инвертировав 1 и 3 биты, получим [00100101]. Полученная последовательность бит является представлением числа 37. 37 попадает в интервал 0 - 85, а это значит, что задание 4 будет перенесено на устройство 1, и новое распределение будет иметь вид [1, 3, 2, 1, 3, 1, 1]. Связанные с заданиями числа останутся все те же, кроме четвертого (было 133, стало 37). Новая последовательность будет иметь вид [37, 213, 97, 37, 195, 53, 7].
Циклическая мутация
Циклическая мутация происходит по следующему принципу: выбирается случайное задание и переносится на следующее или предыдущее устройство (в зависимости от типа цикличности). Есть три варианта реализации данной мутации:
- задание переносится только на следующее устройство (+);
- задание переносится только на предыдущее устройство (-);
- задание случайным образом переносится либо на следующее, либо на предыдущее устройство (+/-).
Стоит учитывать то, что иногда возникает ситуация, когда задание находится на последнем устройстве, и нам необходимо перенести его на следующее, которого не существует. В этом случае задание переносится на первое устройство. Аналогично делается, когда задание находится на первом устройстве и его нужно переместить на предыдущее. В этом случае задание переносится на последнее устройство.
Пример: задание 5 переносится на следующее устройство (но ввиду того, что сейчас оно на последнем устройстве, оно переносится на первое) (рис. 5).
Рис. 5. Циклическая мутация
Результаты расчетов с применением различных видов мутации
Тип оператора Вероятность Конечное значение минимакса
выполнения 2 устройства 3 устройства 4 устройства 5 устройств
Одноточечная мутация 421 288 214 182
Двухточечная мутация 411 279 211 179
Инверсия 414 282 214 180
Сильная мутация 10% 412 279 209 178
Сильная мутация 30% 412 279 210 178
Сильная мутация 50% 10 412 279 209 178
Битовая мутация 1 бит 422 289 215 183
Битовая мутация 3 бит 422 288 214 182
Битовая мутация 8 бит 422 289 215 185
Циклическая мутация + 421 288 215 184
Циклическая мутация - 422 289 214 184
Циклическая мутация +/- 421 288 214 183
Одноточечная мутация 420 287 213 181
Двухточечная мутация 411 279 208 178
Инверсия 50 414 281 212 180
Сильная мутация 10% 411 278 207 176
Сильная мутация 30% 411 278 208 176
Сильная мутация 50% 411 278 207 176
Битовая мутация 1 бит 422 288 214 182
Битовая мутация 3 бит 421 287 213 181
Битовая мутация 8 бит 50 420 288 213 184
Циклическая мутация + 421 287 213 181
Циклическая мутация - 420 287 213 182
Циклическая мутация +/- 420 286 212 181
Одноточечная мутация 420 284 209 178
Двухточечная мутация 411 278 208 177
Инверсия 413 280 210 178
Сильная мутация 10% 411 278 207 176
Сильная мутация 30% 411 278 207 175
Сильная мутация 50% 100 411 278 207 175
Битовая мутация 1 бит 421 287 213 181
Битовая мутация 3 бит 421 286 212 180
Битовая мутация 8 бит 420 288 213 182
Циклическая мутация + 420 285 211 180
Циклическая мутация - 420 285 211 180
Циклическая мутация +/- 420 284 210 180
Одноточечный кроссовер 414 283 211 180
Сегментный кроссовер 100 412 282 210 179
Равномерный кроссовер 419 287 214 183
Вероятностный кроссовер 411 282 210 181
В таблице приведены результаты распределения 31 задания на 2-5 устройств со временем выполнения от 25 до 30 при различных вероятностях мутации. Так же в таблице приведено сравнение с результатами, полученными посредством кроссовера.
Вывод
Из результатов, приведенных в таблице, явно следует, что использование мутации более эффективно, чем кроссовера. При этом видно, что во всех случаях наиболее эффективна либо двухточечная мутация, либо сильная мутация независимо от уровня.
Поступила в редакцию
Следовательно, при решении данной задачи можно использовать только мутацию, не прибегая к кроссоверу.
Литература
1. Коффман Э.Г. Теория расписания и вычислительные машины. М., 1987.
2. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы / пер. с польск. И.Д. Рудинского. М., 2006.
12 декабря 2011 г.
Кобак Валерий Григорьевич - д-р техн. наук, профессор, кафедра «Программное обеспечение вычислительной техники и автоматизированных систем», Донской государственный технический университет. Тел. 8-918-580-21-89.
Чижов Александр Юрьевич - канд. техн. наук, заведующий кафедрой «Информационная безопасность», Южно-Российский государственный технический университет (Новочеркасский политехнический институт). Тел. 8-918-503-67-89.
Ренсков Андрей Анатольевич - канд. техн. наук, доцент, кафедра «Информационная безопасность», Южно-Российский государственный технический университет (Новочеркасский политехнический институт). Тел. 8-928-611-34-78.
Плешаков Денис Валерьевич - аспирант, Донской государственный технический университет. Тел. 8-906-42669-97.
Kobak Valeriy Grigorevich - Doctor of Technical Sciences, professor, department «Software of Computer Technology and Automated Systems», Donskoy State Technical University. Ph. 8-918-580-21-89.
Chizhov Alexander Yurevich - Candidate of Technical Sciences, head of department «Information Safety», South-Russia State Technical University (Novocherkassk Polytechnic Institute). Ph. 8-918-503-67-89.
Renskov Andrey Anatolevich - Candidate of Technical Sciences, assistant professor, department «Information Safety», South-Russia State Technical University (Novocherkassk Polytechnic Institute). Ph. 8-928-611-34-78.
Pleshakov Denis Valerevich - post-graduate student, Donskoy State Technical University. Ph. 8-906-426-69-97.