В.ВМеньших, Е.Ю.Никулина
доктор физико-математических наук, профессор
ОЦЕНКИ ДЛИТЕЛЬНОСТИ ВЫПОЛНЕНИЯ ЗАПРОСА В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ ОВД С ПОМОЩЬЮ ГЕНЕТИЧЕСКОГО АЛГОРИТМА
GENETIC ALGORITHM FOR THE RUNTIME ESTIMATION OF OPERATIONS ACTIVITIES IN DISTRIBUTED SYSTEMS
В работе рассматривается новое применение генетических алгоритмов для решения оптимизационной задачи теории расписаний, возникшей при оценке длительностей выполнения запросов в распределеннътх системах. Метод отличается от существующих оптимизационных методов возможностью получения расписания за заданное время, при увеличении которого решение задачи приближается к оптимальному решению.
The new application of genetic algorithms for the decision of the schedules theory optimization tasks which have appeared of the query runtime estimation in distributed systems is considered. The method differs from existing algorithms by opportunity of the schedule reception for the time period which increasing is come decision to the optimum.
Введение. Данная работа является продолжением серии статей [4, 6], посвященных модернизации состава и структуры распределенной системы (РИС) с целью повышения эффективности ее работы и выполнения предъявляемых к ней требований в сфере информационного обеспечения. Рассматриваются вопросы нахождения временных оценок для каждого из возможных вариантов модернизации РИС за ограниченное время.
Решение данной задачи осуществляется путем генерации альтернативных вариантов модернизации bu их оценки и выбора оптимального варианта по используемому критерию. В качестве такого критерия выступает производительность системы Pr(b), под которой понимается время, необходимое для выполнения информационных запросов, определяемое как суммарное произведения частоты поступления запроса на его время выполнения:
Pr (bi) = (YaaiH )_1, (1)
l
где tn — усредненная временная оценка выполнения l-го запроса; al — относительная частота поступления l-го запроса.
Таким образом, задача сводится к общей задаче теории расписаний [7], для решения которой применяются общепринятые методы и алгоритмы.
Общая задача теории расписаний заключается в нахождении порядка распределения списка заданий между исполнителями. Для решения оптимизационных задач теории расписаний существуют точные и приближенные алгоритмы.
Сравнивая точные и приближенные алгоритмы, можно сказать, что основными их отличиями является то, что:
- точные методы, основанные на переборе, последовательно находят все возможные решения, запоминая лучшие из них, но имеют большую вычислительную тру-
доемкость и не дают решения в тех случаях, когда ограничено время поиска оптимального решения;
- приближенные методы работают очень быстро, но не гарантируют оптимальности найденного решения и не могут дать оценок качества полученного решения [8].
Рассматриваемая нами задача относится к классу задач, решение которой должно быть получено за ограниченное время. В [4] предложен алгоритм решения данной задачи, основанный на использовании метода ветвей и границ. Однако в случае большой размерности задачи его применение окажется невозможным, т.к. решение не будет найдено за отведенное время. С другой стороны, применение эвристических алгоритмов [2], позволяющих получить «быстрое» приближенное решение за минимальное время, не дает возможности улучшать найденное приближенное решение за имеющийся ресурс времени.
Таким образом, возникает противоречие между наличием ресурса времени на решение задачи и отсутствием алгоритма, работающего заданное время. Поэтому возникает необходимость нахождения новых методов и алгоритмов решения нашей задачи.
Идея, предложенная в данной работе, заключается в том, чтобы использовать генетический алгоритм для решения задачи составления расписания, основанный на применении известных эффективных эвристических правил, позволяющий решать задачу заданное время, постепенно приближая ее решение к оптимальному.
1. Постановка задачи теории расписаний.
Основная задача теории расписаний заключается в нахождении приемлемого расписания, т.е. определении полного порядка на частично упорядоченном множестве заданий, распределенных между их исполнителями с учетом ограничивающих факторов или выбранных критериев, ограничивающих множество допустимых решений [7].
В связи с этим обратимся к разработке технологической модели, возникшей при решении прикладной задачи, которая сводится к задаче теории расписания [6].
В нашем случае прикладная задача выбора варианта модернизации РИС включает в себя описание:
- множества запросов системы, содержание которых определено предметной областью;
- отношения частичного порядка на множестве запросов;
- множество исполнителей запросов;
- априорные оценки длительностей запросов.
В свою очередь, запрос представляет собой множество взаимосвязанных операций. Таким образом, в качестве технологической модели, возникшей при решении прикладной задачи и сводящейся к решению задачи теории расписания, может использоваться взвешенный раскрашенный ациклический граф [2]:
0=(У, Е, Р, Т), (2)
где V — множество вершин, соответствующих множеству операций типового запроса;
Е — множество дуг, устанавливающих отношение частичного порядка на множестве операций;
Р — цвета вершин, номера которых соответствуют номерам исполнителей в составе системы;
Т — веса вершин, определяющих временные характеристики отдельных операций.
Для решения задачи теории расписаний используются оптимизационные методы и алгоритмы. Приближенные (эвристические) методы решения задачи теории расписаний были рассмотрены авторами в предыдущих работах [2, 3]. Их высокая эффективность подтверждена результатами статистического эксперимента, который показал, что для технологических моделей с числом операций, не превышающим семи, и равными длительностями выполнения, хотя бы один из простых диспетчеров построил оптимальное расписание.
2. Генетический алгоритм.
Генетический алгоритм — новейший, но не единственно возможный способ решения задач оптимизации. С давних пор известно два основных класса методов решения таких задач — переборный и эвристический.
Идея целесообразности использования генетического алгоритма состоит в том, что он, комбинируя переборные и эвристические методы, позволяет находить приближенное решение, точность которого возрастает при увеличении времени расчета.
Учитывая новизну такого алгоритма, подробнее остановимся на рассмотрении основных понятий, используемых в генетических алгоритмах и заимствованных из генетики [5].
Популяция — конечное множество альтернативных вариантов или особей.
Особи, входящие в популяцию, в генетических алгоритмах представляются хромосомами, в большинстве случаев одной хромосомой.
Хромосома — упорядоченная последовательность генов, значение (аллель) которых выбирается из множества {0, 1}.
Генотип или структура — это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы или единичные хромосомы в довольно распространенном случае, когда генотип состоит из одной хромосомы.
В теории выбора принято рассматривать множество альтернативных решений или пространство поиска, каждая точка которого является возможным решением. Для того чтобы воспользоваться генетическим алгоритмом, необходимо, прежде всего, уметь преобразовывать (кодировать) точки пространства поиска (фенотипы) в генотипы или отдельные хромосомы. По окончании работы генетического алгоритма необходимо обратное преобразование (декодирование) хромосом в точки решений.
В общем, генетический алгоритм работает следующим образом. В первом поколении все хромосомы генерируются случайно, т.е. из исходной (генеральной) популяции создается случайная выборка хромосом определенного объема (этап генерации начальной популяции). Определяется их приспособленность или «полезность» с точки зрения цели решаемой задачи. Приспособленность отображается в виде числовой функции (критерия). Отбираются хромосомы из начальной выборки с учетом их приспособленности и только эти хромосомы участвуют в создании новой популяции или популяции нового поколения (этап селекции). Далее генетический алгоритм начинает генерировать новую популяцию (этап репродукции). Обычно размер выборочной популяции постоянен в различных поколениях.
Репродукция состоит из трех генетических операторов (порядок применения не важен): кроссовера, мутации и инверсии.
Кроссовер является наиболее важным генетическим оператором. Он генерирует новую хромосому, объединяя генетический материал двух родительских.
Мутация представляет собой случайное изменение хромосомы. Если кроссовер
— обязательный оператор, то мутация может и не использоваться. Такой подход соответствует природной, естественной эволюции, где мутация довольно редкое явление.
Инверсия инвертирует (изменяет) порядок бит в хромосоме путем циклической перестановки (случайное количество раз). Многие модификации генетических алгоритмов обходятся без данного генетического оператора.
После образования такого же числа хромосом в новой популяции (новое поколение), что и в исходной, новое поколение полностью замещает предыдущее, и итерация повторяется.
В процессе моделирования эволюционных изменений решения (популяции) становятся все более близкими к оптимальным, с точки зрения критерия приспособленности, и изменения критерия на каждой итерации уменьшаются. В отличие от точных методов и алгоритмов генетический алгоритм не гарантирует нахождения точного оптимального решения. Можно быстро найти хорошее решение, но оно не всегда будет оп-
тимальным. Однако большинство реальных оптимизационных задач не требуют нахождения оптимального решения.
Блок- схема генетического алгоритма может быть представлена в виде, показанном на рис. 1.
На основе анализа литературы [1, 5] известно, что генетический алгоритм зарекомендовал себя как быстрый метод, позволяющий получать приемлемые решения за допустимое время. Следует отметить преимущества и недостатки данного метода.
Преимущества генетического алгоритма:
- возможность получения близких к оптимальному решений за небольшое вычислительное время;
- результатом поиска является не одно найденное решение, а сразу несколько, что позволяет выбрать из них наиболее подходящее;
- простота реализации позволяет при незначительной модификации алгоритма использовать его для решения задач назначения с целевыми функциями, отличающимися от исследуемой;
- на любой итерации вычисления имеется возможность получить наилучшее на данный момент решение, что важно для задач высокой размерности;
- для задач высокой размерности скорость работы алгоритма можно «регулировать» размерами начальной популяции.
Недостатки следующие:
- качество решения значительным образом зависит от размера начальной популяции, что составляет проблему использования памяти на первых итерациях;
- решения, полученные в результате нескольких экспериментов для одной и той же задачи могут незначительно различаться.
3. Применение генетического алгоритма для решения задачи выбора наилучшего варианта модернизации РИС.
На этапе инициализации необходимо описать решаемую нами задачу в терминах генетического алгоритма.
В основе всех конструкций, используемых в генетических алгоритмах, лежат гены, в качестве которых предлагается использовать операции с указанием их исполнителей, т.е. пары н,=(г, р), где і — номер операции, р — номер исполнителя.
Под хромосомой будем понимать упорядоченную последовательность генов такую, чтобы для генов одного исполнителя существовал полный порядок, таким образом, хромосома может быть представлена как
о=(ж, Е), (3)
где Ж — множество генов; Е — отношение частичного порядка на множестве Ж, т.е. в терминах генетического алгоритма локи.
Рис. 1. Блок- схема генетического алгоритма
Отношение Е отвечает следующему условию и: отношение Ер с Е, рассматриваемое для каждого конкретного р-го исполнителя, является отношением полного порядка, т. е. все операции одного исполнителя в расписании строго упорядочены.
Утверждение.
Граф 0=(Ж, Е) соответствует в точности одному расписанию в том и только в том случае, если выполняется условие и.
Дуги графа 0=(Ж, Е) будем называть жесткими, если они отражают причинноследственные отношения между операциями, и мягкими, если они отражают упорядочение операций одного исполнителя и при их инверсии граф 0=(Ж, Е) продолжает оставаться расписанием. Легко видеть, что дуги графа 0=(Ж, Е) являются либо жесткими, либо мягкими.
Будем считать, что генотип каждой особи состоит из одной хромосомы, таким образом, особи в нашем случае представляют собой отдельные расписания.
Тем самым, популяция — это конечное подмножество множества расписаний.
При описании генетического алгоритма для каждой особи необходимо задать ее фенотип, т.е. двоичную кодировку генотипа.
Поскольку фактически генотип представляет собой раскрашенный ациклический граф, вершинами которого являются операции, а цветом обозначены исполнители операций, то в качестве фенотипа естественно принять пару (М, Н), где М=(Шу) — матрица смежности, задаваемая следующим правилом:
Обратимся к описанию эволюционного процесса. Эволюционный процесс включает в себя этап генерации начальной популяции и множество итераций этапа создания новой популяции. Укрупненная блок-схема данного процесса представлена на рис. 2.
Опишем отдельные этапы генетического алгоритма.
Первый этап — создание начальной популяции.
В классическом генетическом алгоритме принято определять выборку случайным образом. Однако такой подход не дает возможности сравнивать (оценивать) эффективность генетического алгоритма с другими известными алгоритмами.
Будем использовать в качестве начальной выборки следующие множества особей:
- множество решений, полученное при использовании простых диспетчеров
— Бв , описанных выше;
- множество расписаний, полученных с помощью диспетчера Б0, т.е. случайно выбранных.
Будем считать, что общее число особей в начальной популяции равно N. В соответствии с классическим генетическим алгоритмом количество особей постоянно во всех популяциях последующего поколения.
Вторым этапом работы генетического алгоритма является вычисление показателя приспособленности начальной популяции.
Эффективность каждой 1-й особи уг- естественно определить длиной соответствующего расписания, т.е. для рассматриваемой задачи числом ярусов ЯПФ. Показатель приспособленности популяции должен отражать качество приспособленности всех особей популяции. Поэтому в качестве такого показателя естественно принять среднее арифметическое показателей приспособленности каждой особи, т.е.
1, если і предшествует ^ 0 — если иначе.
(4)
Матрица раскраски графа И=(Иік) такая, что
1, если ья вершина имеет цвет к; 0 — если иначе.
(5)
Рис. 2. Укрупненная блок- схема генетического алгоритма
Дополним общую схему генетического алгоритма требованием монотонности у . Для обеспечения получения заведомо лучших особей, чем те, которые входят в начальную популяцию, необходимо чтобы у монотонно не возрастала при переходе к новому поколению.
Рассмотрим процесс создания новой популяции, представляющий собой множество повторяющихся этапов, представленных на рис. 3.
Селекция пары осуществляется методом рулетки, суть которого заключается в следующем. В процессе случайного выбора особей при скрещивании для начальной популяции выбираются более приспособленные особи с большей вероятностью.
Это можно интерпретировать как выбор сектора колеса рулетки, которая содержит по одному сектору для каждого члена популяции. Секторы упорядочены случайным образом и пронумерованы по часовой стрелке, начиная со случайно выбранной точки отсчета, а размер сектора пропорционален величине показателя приспособленности данной особи. Поскольку в нашей задаче требуется минимизировать величинууг-, то величина сектора должна быть обратно пропорциональна значению уг-, т.е.
1 у ■
р = N-1(1 >• (Т>
Ъ У г
■
N
Легко можно видеть, что Ъ рі = 1.
і
Суть метода рулетки сводится к выбору случайного числа а є [0;1] и нахожде-
і0 і0 + 1
нию особи с номером іо по следующему правилу: Ъ Рг <а£Ъ Рг .
і=1 і =1
Для селекции родительской пары методом рулетки отбираются две особи, не совпадающие между собой.
Перейдем к следующему этапу — репродукции или применению генетических операторов (кроссовера и мутации).
Рис. 3. Процесс создания новой популяции
Для генерации следующего поколения используется семейство генетических операторов кроссовера, основное предназначение которого — генерация следующего поколения хромосом-детей путем комбинации частей хромосом- родителей через обмен сегментами между парами хромосом. Можно показать, что такой вариант репродукции в нашем случае не применим, т.к. при этом может не соблюдаться условие и, описанное выше, а, следовательно, потомок не будет соответствовать расписанию, т.е. являться особью того же типа, что и родители.
Опишем правило функционирования кроссовера, которое всегда обеспечивает получение новой особи.
Пусть методом рулетки выбираются родительские особи с номерами і и ]. Их фенотипы — (Мі, Ні) и (М}-,). Определим фенотип их потомка (М',И') следующим образом:
1, если ш; = mj = 1;
0, если ш
Для к<=1: шк1 ® шк1
О(аК1), если ш; ф т^ где О(ак1) — функция округления случайного числа ок/. Н = И = И,
шj = 0;
кк
(8)
Для к>1: ш1к ® ш1к =
1, если ш; = Шj = 0;
0, если ш; = Шj = 1;
О(ак1), если ш; ф Шj.
(9)
Утверждение. Потомок (М', И') является фенотипом особи того же типа, что и родители.
Последний этап — мутация (шиШіоп). Даже для больших популяций может оказаться, что не все биты генетического материала в ней представлены. Например, если первый бит у всех хромосом равен 0, то кроссовер никогда не породит решение с 1 в первом бите. Мутация предназначена для того, чтобы избежать таких ситуаций и увеличить вариабельность популяции.
Заключение.
В данной работе рассмотрено решение задачи выбора наилучшего варианта модернизации РИС методами теории расписаний. Предложенный алгоритм решения задачи основан на использовании генетического алгоритма, имеющего следующие преимущества перед известными точными и приближенными алгоритмами:
1) предложенный генетический алгоритм находит решение за заданное время;
2) точность найденного решения с каждой итерацией алгоритма не уменьшается.
ЛИТЕРАТУРА
1. Маслов М.Г. Разработка моделей и алгоритмов составления расписаний в системах административно-организационного управления: автореф. дис. ... канд. тех. наук: 05.13.18 / М.Г. Маслов.— М, 2004.— 24 с.
2. Меньших В. В. Алгоритмы планирования выполнения заданий в вычислительных системах реального времени / В.В.Меньших, Е.Ю.Никулина // Вестник Воронежского института МВД России.— 2005.— Вып. 2(21).— С. 76—80.
3. Меньших В. В. Выбор алгоритмов планирования выполнения нитей в многопроцессорных системах / В.В. Меньших, Е.Ю. Никулина // Компьютерные технологии автоматизированного проектирования систем машиностроения и аэрокосмической техники: материалы Всероссийской конференции.— Воронеж: ВГТУ — 2004.— С. 157—162.
4. Меньших В. В. Оценки длительности выполнения запроса в распределенных системах ОВД методом ветвей и границ / В.В.Меньших, Е.Ю. Никулина // Вестник Воронежского института МВД России. 2008.— №1.— С. 109—114.
5.Метвеев М.Г. Модели и методы искусственного интеллекта: применение вэко-номике / М.Г. Метвеев, А.С. Свиридов, Н.А. Алейникова.— М.: Финансы и статистика, 2008.— 448 с.
6.Никулина Е.Ю. Разработка модели выбора вариантов модернизации распределенной информационной системы ОВД / Е. Ю. Никулина // Вестник Воронежского института МВД России.— 2007.— №4.— С. 156—160.
7. Танаев В.С. Теория расписаний. Одностадийные системы / В.С. Танаев, В.С. Гордон, Я.М. Шафранский.— М.: Наука. Гл. ред. физ.-мат. лит., 1989.— 384 с.
8. Теория расписаний и вычислительные машины / под ред. Э.Г. Коффмана.— М.: Наука, 1984.— 334 с.