копленное на момент обработки данного гена математическое выражение; если выражение незаконченное или это первый ген, то X,; 1 - ген содержит целое число; 2 - ген содержит элементарную функцию, в которой аргументом уже выступает выражение, получаемое из необработанных генов справа.
В результате использования структуры представления хромосом ГААФ и разработанной схемы их кодирования получаем эффективную среду поиска оптимального решения для аппроксимации формул. Используемая структура генетического материала хорошо согласуется с ДГА, который имеет нефиксированную , . заключается в том, что у ДГ А отсутствуют фиксированные генетические операторы. Они рекурсивно изменяют сами себя, меняются их действия над хромосомами. ,
. .
В заключении отметим, что данную структуру, разработанную для аппроксимации формул можно применять и в других сложных задачах, т.к. приведенная схема является универсальной.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Малюков СМ., Обжелянский С.А. Проектирование магиитиьк головок с помощью генетических алгоритмов. Труды международной научно-технической конференции IEEE AIS’02 CAD, 2002. - С.592-595.
2. J. Stender et al. (Eds.). Genetic algorithms in business. Genetic Algorithms in Optimisation, Simulation and Modelling. Amsterdam-Oxford-Washington DC, IOS Press, 1994.
pp.172 - 174.
УДК 621.3
В.В. Курейчик, П.В. Сороколетов ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ РАЗБИЕНИЯ ГРАФОВ И ГИПЕРГРАФОВ*
Введение. Одной из важнейших задач САПР является компоновка аппаратуры по заданным критериям. Обычно эти задачи решаются путем разбиения графа или гиперграфа на заданное или произвольное число частей [1-5]. Отметим, что задача разбиения графа относится к классу №-полных проблем, то есть не существует эффективных алгоритмов ее решения с полиномиальной временной сложностью. Для решения данных задач предлагается использовать принципы эволю-,
[6-11].
В отличие от известных методов приведены усовершенствованные алгоритмы построения кластеров и итерационного разбиения гиперграфов, позволяющие расширять область поиска решений и выходить из локальных оптимумов. Такое разбиение графов позволяет всегда получать локальные оптимумы, иметь возможность выхода из них и приближаться к получению оптимальных и квазиопти-мальных решений. Причем, что особенно важно, временная сложность алгоритма не уходит из области полиномиальной сложности (~ 0(nLogn) - 0(п3)).
* Работа выполнена при поддержке РФФИ, грант № 12388 03-01-00336
. -
менная сложность составляет О(п), 0(п2), 0(п3),.... Для экспоненциальных алгоритмов (№) временная сложность алгоритма составляет 0(пп), 0(п2п), 0(п3п),.... Класс КР-полных задач включает такие задачи, для которых не найдены полиномиальные алгоритмы, однако и не доказано, что их не существует. Говорят, что алгоритм решает задачу разбиения за время 0(Т(п)), если на входных данных длины п алгоритм работает время 0(Т(п)) [12]. В этой связи разрабатываются различ-, -
.
В [3] дана классификация существующих методов разбиения графа на части. При решении задачи компоновки большой размерности наибольший интерес, с точки зрения реализации, представляют последовательные (конструктивно) . методов лежит в интервале О(п) - 0(п3), где п - число вер шин графа. В некоторых случаях для разбиения графа могут быть использованы методы случайного поиска, но они не гарантируют получения локального оптимума за конечное число шагов. В настоящее время для решения задач разбиения графов широкое применение получили методы генетического поиска [6-11]. Эти методы используют эволюционный поиск и критерии типа «выживания сильнейших» для получения оптималь-. -ное или произвольное число частей. Предварительно представим гиперграф в виде двудольного графа или в виде неориентированного графа, где каждое ребро гиперграфа представляется полным подграфом. Пусть задан граф в = (X, Е), где X представляет множество вершин графа, Е - множество ребер.
Пусть В = {В! , В2 ,..., В,} - множество разбиений графа в на части В! , В2 ,..., В, , такие, что В1 п В2 п... п В, = 0, и В1 и В2 и ... и В, = В. Пусть каждое разбиение В1 состоит из элементов В1 = {Ъ1 ,Ь2 ,...,Ьп }, п < |Х|. Тогда задача разбиения графа в на части заключается в получении разбиения В^ В, удовлетворяющего трем условиям и ограничениям [2,3]:
(УВ1 е В) да Ф 0),
(УВ1, BJ е В) (р1 Ф BJ ^ Х1 п X; = 0]л[^1 п Е, = Е п Е, = 0)]),
£ п п
и В, = В, и Е, = Е, и X, = X, \Е,,,| = К,,
,=1 ,=1 ,= 1
Целевая функция для разбиения графа в запишется так:
1 п п
к = 21 Хк.раФй <1»
2 1=1 ,=1
где Ку - число связей м ежду частями В1 и BJ при разбиении графа в на части; б - количество час тей в разбиении; К - суммарное количество ребер при разбиении графа на части.
Стандартная задача разбиения заключается в минимизации К (К^шш). Минимизация К при разбиении графа на части позволяет косвенно учитывать многие критерии и конструкторско-технологические ограничения исследуемой .
В задачах разбиения графов общее число вариантов решения равно числу перестановок из п вершин графов, то есть Сп=п!, а с учетом ограничений на формирование подмножеств (частей графа в задаче разбиения) - числу сочетаний из п вершин по ш частей, то есть [4]:
с: = п ! / т ! (п - т )! (2)
Сущность большинства алгоритмов разбиения графов заключается в выборе некоторого начального разбиения исходного графа и последующего его улучшения с помощью итерационного, парного или группового обмена вершин из различных частей разбиения. При этом для каждой итерации осуществляется перестановка таких вершин, которая обеспечивает максимальное уменьшение числа связей между частями разбиения графа или минимальное приращение числа внешних ребер [1-5].
Эволюционные алгоритмы разбиения графов и гиперграфов. Су щест-венным преимуществом предлагаемых эволюционных алгоритмов является то, что они могут работать в любом классе задач, связанных с графами. Здесь важно только правильно представить постановку задачи в генетической форме, чтобы верно отобразить поисковое пространство. Для этого поставленная задача анализируется с точки зрения применяемых критериев и оптимальности использования того или .
Построим схему разбиения графа на части на основе эволюционного поиска. Такая схема дана на рис.1.
выход
Рис.1
Здесь в первом блоке строится текущая (начшгьная) популяция решений, т.е. определяется заданное подмножество В1, В2, ..., Вк (к < 8) множества альтерна-.
виде пользователя. Отметим, что такое подмножество решений может быть полу, - .
При наличии большого количества элементов предпочтительными будут конструктивные, итерационные, случайные и поисковые алгоритмы для получения текущей популяции. В качестве целевой функции (ЦФ) выберем К (выражение (1)). 2
Кср - среднее значение ЦФ на данной популяции (см. рис.1). Блок 3 осуществляет сортировку популяции на основе значений ЦФ. Сначала расставляются элементы с наименьшим значением К и так далее по возрастанию. Блок 4 выполняет репро-
( ), -действованы далее в генетических преобразованиях. Блок 5 осуществляет реализацию генетических операторов и их модификаций.
Модификация выполняется за счет использования нетрадиционных методов поиска на основе чисел Фибоначчи, дихотомии, «золотого сечения». Блок 6 собирает и анализирует перспективные и отличающиеся друг от друга решения задачи разбиения, с дальнейшей миграцией их в новую популяцию. Блок 7 реализует стратегии адаптации и на основе обратных связей выбирает модель эволюции, а также порядок использования и применения различных алгоритмов генетической оптимизации. В блоке 8 осуществляется построение новой популяции решений. Девятый блок позволяет управлять процессом поиска с помощью информирующих обратных связей. Далее для каждого решения из новой популяции вычисляется К и выживают те элементы из старой и новой популяции, у которых К < Кср. , , должно превышать число элементов в старой популяции.
Предложенная схема генетического поиска позволяет варьировать размер популяции от генерации к генерации, что позволяет частично предотвращать преждевременную сходимость алгоритма в задачах разбиения. Заметим, что такая стратегия поиска позволяет быстрее находить локально-оптимальные результаты. Это связано с параллельной обработкой множества альтернативных решений. Причем в такой схеме возможно концентрировать поиск на получение более пер. , -ского алгоритма (ГА) можно проводить различные изменения в перспективных, неперспективных и в других решениях.
Предложим модифицированный алгоритм разбиения графов на части на основе построения кластеров [3]. Процесс создания кластеров основан на идеях построения минимальных и квазиминимальных массивов в графе или гиперграфе. Кластер - это часть графа Фев, причем Ф=^1,Б1), Х^Х, Б1еБ. Вершины кластера соединены внутренними ребрами с остальными вершинами Х^С1 графа в. Внешние ребра не входят в подмножество ребер кластеров. Мощность подмножества внешних ребер кластера обозначим £ Кластер Ф1 называется минимальным, если для любого другого кластера Ф^ ФJ еФ1 выполняется условие £ <1 Другими словами, удаление произвольных вершин из Ф1 (ФДХ:) приводит к новому кластеру с большим числом внешних ребер. По определению будем считать:
(УФ1 ев) (Ф^0),
(Ух1 еХ) (х1 - минимальный кластер). (3)
, . будем называть квазиминимальным, если выполняется условие:
1+е<1 (4)
где е - коэффициент, определяющий на какую величину можно увеличить
1.
Построение минимального кластера и квазиминимального связано с выделением почти всех подмножеств множества X, а оно составляет 2п, если |Х|=п. В этой связи продолжают разрабатываться различные эвристики выделения набора , . заданное число вершин количество решений в общем случае - это мощность некоторого подмножества альтернатив разбиений графа.
Опишем модифицированный эвристический нечеткий алгоритм построения минимальных и квазиминимальных кластеров в графе.
1. -нимальные и квазиминимальные кластеры.
2. .
3. , -
ны кластеров графа в. Если определяется пара вершин (хь х^, для которой:
1=Р(х1)+Р(^)-2Гу ,
то Ф=(ХЬ Б1), Х1={хъх^ и Ф является минимальным кластером, где р(х^, р(х^ -локальные степени вершин х1, х^ Гу - число ребер, соединяющих вершины Х^ между собой, 1 - число ребер, соединяющих минимальный кластер с остальными вершинами графа в, причем К р(х^), f<p^j). Если определяется пара вершин (хъх^, :
1=р(хО+р(х!)-2Гу+е,
где 1+е<р^1), 1+е<р(х^, то Ф=(ХЬ Б1), Х1={хъх^ и Ф является квазиминимальным кластером. Минимальные или квазиминимальные кластеры Ф заносим в специальный список, а вершины х1, xJ исключаем из рассмотрения и возвращаемся к началу п.3. Если новых минимальных или квазиминимальных кластеров не образовалось, то переход к п.4.
4. Выполняем факторизацию. Вершины х1, XJ в минимальных или квазиминимальных кластерах заменяем одной Ху. При этом ребра, соединяющие х1 и х^ удаляются, а ребра из вершины х1, XJ к другим вершинам приписываются общей вершине х^. Получается граф в’.
5. В графе в’ случайным и направленным образом формируются тройки вершин. Если определится тройка вершин ха, хв, хс, для которой справедливо:
1=р(ха)+р(хв)+р(хс)-2га,в-2гв,с -2гас, где Кр(ха), Кр(хв), Кр(хс), то вершины ха, хв, хс образует минимальный кластер. Если определится тройка вершин ха, хв, хс, для которой справедливо:
1=р(ха)+р(хв)+р(хс)-2га,в-2гв,с -2Га,с+е, где 1+е<р(ха), 1+е<р(хв), 1+е<р(хс), то вершины ха, хв, хс образуют квазиминималь-ный кластер. Переход к п.3. Минимальный или квазиминимальный кластер заносится в список. Если минимальных или квазиминимальных кластеров больше нет, то переход к п.5.
6.
кластера на единицу и переходим к п.4. Если мощность минимального или квазиминимального кластера равна заданному или равна числу вершин графа, то переход к п.6.
7. .
Здесь е - наименьшее относительное отклонение от минимального кластера (е=0,1,2,...). После построения набора минимальных или квазиминимальных кластеров, если в графе в остались свободные вершины, необходимо провести проце-.
или квазиминимальный кластер с анализом ЦФ. Вершина помещается в мини-
, -
ну, не превышающую е.
,
процессе реализации алгоритма после каждого шага построения минимальных и
. . матрице определяем локальную степень каждой вершины и упорядочиваем их по .
.
, -
шиной, и продолжается поиск минимального или квазиминимального кластера, состоящего из двух вершин. Если таких минимальных или квазиминимальных кластеров больше нет, то переходим к поиску минимальных или квазиминимальных кластеров, состоящих из трех вершин и т.д.
Рассмотрим основную идею итерационного разбиения гиперграфа И=(Х,Е) на части с минимизацией К. Для каждого ребра е^ Е можно определить разрезающую функцию как число вершин дерева или полного подграфа, моделирующих анализируемую цепь коммутационной схемы ЭВА, попадающих в различные блоки. Если хотя бы одна вершина ребра гиперграфа лежит не в той части, что остальные вершины этого ребра, то обязательно будет существовать по крайней мере одно разрезающее ребро. Просуммировав все разрезающие ребра, получим общее число К (связей) между блоками, которое необходимо минимизировать.
Предлагаемый алгоритм состоит из пяти этапов. На первом этапе одним из ( , , « ») -
- . -решения случайным или направленным образом генерируется популяция альтер-. -пуляции определяется значение ЦФ. В качестве ЦФ выбирается значение К (вы-1).
. :
перспективных и неперспективных решений. Для первой подпопуляции используется быстрый поиск на основе последовательных эвристик. Для второй подпопуляции используется эволюционный поиск. Затем реализуется миграция альтернативных решений между подпопуляциями. На четвертом этапе выполняются различные генетические операторы. На пятом этапе выполняется поиск на основе метода моделирования отжига [3,4]. Такой поиск выполняется итерационно на основе заданного числа генераций.
, - , шаг из последовательности действий или набора описаний алгоритма, а генетический оператор - это средство отображения одного множества на другое, т.е. это конструкция, представляющая один шаг из последовательности действий .
Перед выполнением генетических операторов в каждой хромосоме (текущий вариант разбиения) определяется стоимость существующих строительных блоков. Работа генетических операторов начинается с «жадного» оператора крос-синговера (ОК). «Жадный» оператор - это языковая конструкция, позволяющая создавать новые решения на основе частичного выбора на каждом шаге преобразования локально-оптимального значения целевой функции. «Жадный» оператор
кроссинговера может быть реализован на двух и более альтернативных решениях, а в пределе - на всей популяции. Приведем алгоритм «жадного» ОК:
1.
ЦФ. Выбирается заданное число родительских решений, и случайным образом на одном из них определяется точка «жадного» ОК.
2. 1- ,
«жадного» ОК, определяется значение частичной ЦФ. Аналогичные действия вы-1- .
3. В решение «потомок» выбирают тот элемент, у которого значение ЦФ ниже при минимизации К.
4. ,
« ». « » , то в потомок выбираются нерассмотренные элементы с лучшим значением ЦФ.
Для выхода из локальных оптимумов предлагается процедура миграции решений внутри одной популяции и между популяциями. В зависимости от наличия вычислительных ресурсов можно первоначально строить не одну, а некоторый набор популяций. Далее выбирать «лучшего» представителя из каждой популяции и на этом множестве осуществлять поиск.
. , -ного решения изменяется от О(п) до 0(п4), а трудоемкость генерации одного потомка зависит от сложности применяемого генетического оператора и ориентировочно изменяется от О(п) до 0(nLogn). Следует заметить, что с увеличением числа генераций в ГА время решения оптимизационной задачи разбиения повышается, но это повышение незначительно и может быть компенсированно получением
- . , чем алгоритмы парных перестановок и случайного разбиения графов. Разбиение графов с применением методов эволюционного поиска позволяет всегда получать , -чению оптимальных и квазиоптимальных решений. Причем, что особенно важно, временная сложность алгоритма не уходит из области полиномиальной сложности (= 0(nLogn) - 0(п3)).
Тестирование проводилось на ЭВМ типа 1ВМ РС с процессором Репйит-1У, АМБ Айоп-2500МИ с ОЗУ 512Мб. Для исследования стандартных графовых моделей были реализованы такие классические методы разбиения, как последова-, . -. -
. -
ние оптимальных результатов. В общем случае время решения линейно зависит от .
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Норенков ИЛ. Принципы построения и структура САПР. - М.: Высшая школа, 1986.
2. Курейчик В.М. Математическое обеспечение конструкторского и технологического про-
ектирования с применением САПР. - М.: Радио и связь, 1990.
3. Корячко В.П., Курейчик В.М., Норенков ИЛ. Теоретические основы САПР. - М.: Энер-гоатомиздат, 1987.
4. Sherwani Naveed. А^огйЬ: 1ог VLSI РИу81са1 Design АШютайоп, КЬгае Аса(1етю РиЬ-^Иеге, Во81оп/Боп1гесЬ1Лоп11оп, 1995.
5. .. . .
- М.: Советское радио, i97B.
6. . ., . ., . . -лирования. - М.: Физматлит, 2003. - 4З2с.
7. Батищев ДА. Генетические алгоритмы решения экстремальных задач. - Воронеж: Изд-во ВГТУ, i995.
В. . . ,
решений. Монография. - Таганрог: Изд-во ТРТУ, 200i.
9. Куре йчик В.М. Генетические алгоритмы и их применение: Монография. - Таганрог: Изд-во ТРТУ, 2002.
10. Holland John H., Adaptatlon ln Natural and Artlflclal Systems: An Introductory Analysls wlth Appllcatlon to Blology, Control, and Artlflclal Intelllgence. USA: Unlverslty of Mlchlgan, i975.
11. Goldberg David E. Genetlc Algorithms ln Search, Optlmlzatlon and Machlne Learnlng. USA: Addlson-Wesley Publlshlng Company, Inc., i989.
12. Кормен Т., Лейзерсон И., Ривест Р. Алгоритмы: построения и анализ. - М.: МЦМО,
2000.
УДК 681.324
В.П. Карелин, В.И. Протасов ПОИСК РЕШЕНИЯ СЛОЖНЫХ КОМБИНАТОРНЫХ И МНОГОКРИТЕРИАЛЬНЫХ ЗАДАЧ ВЫБОРА МЕТОДОМ ГЕНЕТИЧЕСКОГО КОНСИЛИУМА
Многие задачи выбора и принятия решений (ПР) в социотехнических системах относятся к классу комбинаторных дискретных или целочисленных задач и, в большинстве случаев, имеют не одно, а множество решений различной ценности. Поиск оптимального решения таких задач - проблема существенно более сложная, чем для задач непрерывной оптимизации. Средством анализа оптимизационных задач с дискретной структурой являются комбинаторные алгоритмы или комбинаторные вычисления [1]. Рост объёма комбинаторных вычислений в большой степени связан с повышением уровня интеллектуальности различного рода автоматизированных систем проектирования, систем поддержки принятия решений, автоматизированных информационно-поисковых и советующих систем, а также с широким внедрением средств вычислительной техники и обработки информации в производство и повседневную деятельность человека, где решения принимаются на основе комбинаторного оценивания, прогнозирования, анализа и перебора ва.
Для решения комбинаторных задач разработано множество методов, способов и алгоритмов [2]. Ядром всех комбинаторных алгоритмов являются операции полного или сокращенного перебора подмножеств решений, но суть комбинаторного перебора в различных алгоритмах проявляется по-р^ному. Для поиска лучшего решения наиболее сложных комбинаторных задач в настоящее время применяют методы эволюционных вычислений и генетические алгоритмы [3]. Методы эволюционных вычислений - это мето ды поиска, оптимизации или обучения, основанные на некоторых формализованных принципах естественного эволюцион-