Нижегородский государственный университет им. Н.И. Лобачевского
Факультет вычислительной математики и кибернетики Кафед...
81 downloads
140 Views
399KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Нижегородский государственный университет им. Н.И. Лобачевского
Факультет вычислительной математики и кибернетики Кафедра информатики и автоматизации научных исследований
Методические указания по проведению лабораторных работ
«Задачи декомпозиции графов» по курсу «Эволюционно-генетические алгоритмы решения оптимизационных задач» специальность «Прикладная информатика»
Н.Новгород, 2001
УДК. 681.3.015 Методические указания по проведению лабораторных работ «Задачи декомпозиции графов» по курсу «Эволюционно-генетические алгоритмы решения оптимизационных задач» для студентов факультета ВМК специальности «Прикладная информатика». /Нижегородский государственный университет, 2001, 13 c.
Методические указания содержат основные понятия из области подходов к решению экстремальных задач переборного типа на графовых структурах. Дается содержательное описание объекта исследования, строится общая математическая модель, ставятся оптимизационные задачи на графах, предлагаются алгоритмы решения поставленных оптимизационных задач. Приводится описание диалогового программного комплекса “Задачи декомпозиции графов”. Считаю, что данное методическое пособие необходимо опубликовать по желанию авторов либо в электронном варианте, либо через типографию.
Методическое пособие подготовлено профессором Д.И. Батищевым и аспирантом Н.В. Старостиным.
Рецензент профессор, д.т.н. Гергель В.П.
2
Содержание 1. Содержательная постановка задачи ............................................................................ 4 2. Задача разбиения графа на фиксированное число подграфов заданных порядков 5 3. Задачи оптимальной правильной раскраски графов.................................................. 6 4. Постановка бикритериальной задачи разбиения........................................................ 8 5. Подход к решению задач декомпозиции графа.......................................................... 8 6. Программный комплекс по разработке графов и решению задач декомпозиции графов ............................................................................................................................... 10 7. Пример.......................................................................................................................... 13 8. Задания по лабораторной работе ............................................................................... 14 Литература........................................................................................................................ 14
3
1. Содержательная постановка задачи К теории графов проявляется всевозрастающий интерес, поскольку она признана эффективным аппаратом формализации научных и технических задач в различных отраслях знаний и деятельности человека, например, в вычислительной технике, автоматизации проектирования, микроэлектронике, радиоэлектронике, приборостроении, автоматике, кибернетике, медицине, биологии, генетике. Для многих задач доказано, что они являются NP-полными. Это означает, что не найдено эффективных алгоритмов, позволяющих находить точные решения. Однако такие задачи не исчезают, и по-прежнему остается проблема их решения. Задачи подобного рода возникают при адаптивном управлении сложными системами с дискретной эволюционирующей структурой, задача структурной адаптации подобных систем, которые часто сводится к агрегации системы на заданное число подсистем таким образом, чтобы связи между подсистемами были минимальными. Так, например, при производстве современного электронного оборудования особое место занимает разработка печатных плат и микросхем. Одной из задач, которая требует решения при их конструировании, является задача разбиения принципиальных схем устройств на составные части (подсхемы, функциональные блоки). Типовые элементы принципиальной схемы должны таким образом быть распределены по отдельным подсхемам, чтобы число внешних соединений было как можно меньше. Это необходимо с целью повышения надежности схемы, уменьшения влияния наводок, повышения технологичности и простоты конструктивного оформления. При разработке топологии многослойных схем возникает задача распределения “конфликтующих” соединений по отдельным слоям (задача расслоения цепей). Расслоение до трассировки основано на анализе схемы соединений для выявления тех соединений или их групп, которые не могут быть расположены на одной плоскости из-за неизбежности “сложных” ситуаций трассировки. В частности, усложняется форма соединений, увеличивается их длина, растет время поиска трасс при реализации алгоритма трассировки на ЭВМ. Поскольку эти объекты, рассматриваемых структур, представляются, как правило, графовыми моделями. Вершины, моделируют элементы систем, а ребра моделируют связи между элементами. Так, например, при компоновки микромодульных схем (или печатных плат) в качестве вершин рассматриваются типовые модули (элементы схемы), а множеству ребер графа ставится в соответствие множество соединений (проводников) схемы. Таким образом, задачи агрегации системы формально сводится к задачам декомпозиции графа. На самом деле это не отдельная задача, а целый класс задач, объединенных общей структурой получаемых решений – это разбиения множества элементов графа на классы. Постановка задачи может варьироваться в зависимости от свойств графа, которые задаются моделируемыми объектами. Исходным объектом для задач декомпозиции служит неориентированный граф G=(X,V). Пространством решений служит множество всевозможных разбие4
ний графа на непересекающиеся подграфы. На разбиения графа могут накладываться ограничения D. Для различных задач, естественно, возможны различные ограничения. Задачи декомпозиции имеют следующий набор основных критериев: 1. Число внешних соединений между подграфами 2. Число подграфов 3. Число типов подграфов Первый критерий определяется функционалом внешних связей. Смысл второго критерия очевиден: он просто равен числу подграфов разбиения. Третий критерий зависит от характера оптимизационной задачи. Чтобы описать этот критерий, нужно задать понятие подграфа или, точнее, понятие однотипности графов. При определении однотипности графов исходят из того, что каждой вершине графа присваивается один тип из конечного набора. Математически это означает, что исходный граф хроматический, то есть его вершины раскрашены, при этом цвет вершины соответствует типу. Постановки задач могут варьироваться в зависимости от свойств графа, которые задаются моделируемым объектом.
2. Задача разбиения графа на фиксированное число подграфов заданных порядков Пусть задан неориентированный взвешенный граф G(X,V,w) порядка n, где X={x1,…,xn} – множество вершин; V⊆X×X – множество ребер; w:V→R+ – отображение, определяющее вес каждого ребра, где R+ – множество действительных неотрицательных чисел. Требуется определить разбиение множества вершин X графа G(X,V,w) на k – подмножеств (X1,…,Xk) таким образом, чтобы для кусков графа G1(X1,V1,w1),…, Gk(Xk,Vk,wk) выполнялись следующие требования: Xi∩Xj=∅, для ∀ i≠j, где i,j = 1,k ; k
UX
i
=X;
(1)
i =1
|X1|=n1,…, |Xk|=nk, n1+…+nk=n, Сечением разбиения C(X1,…,Xk) будем называть совокупность ребер, соединяющих вершины, которые принадлежат разным подграфам. В качестве критерия оптимальности Q, определяющего эффективность биразбиения (X1,…,Xk) будем рассматривать вес сечения - сумма весов всех ребер сечения: Q( X 1 ,X 2 ,… ,X k ) =
1 k −1 ∑ ∑ ∑ w(xi ,x j ) → min 2 L=1 i∈VL j∉VL
(2)
5
В этом случае оптимальным k-разбиением является решение (X1*,…,Xk*) экстремальной задачи (2), то есть разбиение (X1*,…,Xk*) с минимальным весом сечения C(X1*,…,Xk*). Частным случаем задачи k-разбиения является задача (1) биразбиения графа – когда граф разбивается на два подграфа (k=2). В этом случае решение задачи биразбиения графа (X1,X2) будем называть биразбиением. Система требований (2), предъявленных к разбиению (X1,…,Xk), определяет область поиска D задачи разбиения графа. Данная задача относится к задачам переборного типа и общее число допустимых решений |D| можно вычислить из выражения: n! n 1 !⋅ n 2 !⋅ ... ⋅ n k !⋅t !
(3)
где t – общее число подграфов, имеющих одинаковые размерности.
3. Задачи оптимальной правильной раскраски графов Пусть задан неориентированный граф без петель G(X,V) порядка n, X={x1,… …,xn} – множество вершин; V⊆X×X – множество ребер. Под раскраской вершин графа понимается процедура приписывания цветов (меток) вершинам графа G(X,V). Правильной раскраской графа в k цветов (kраскраской графа) считается такая раскраска вершин графа G(X,V), при которой никакие две смежные вершины xi, xj∈X, xi≠xj не получают одинакового цвета. Наименьшее число k, такое, что граф G(X,V) является k-раскрашиваемым, называется хроматическим числом графа G(X,V). Задача нахождения хроматического числа графа называется задачей о раскраске (правильной раскраске) графа. Соответствующая этому числу раскраска вершин разбивает множество вершин на k подмножеств, каждое из которых содержит вершины одного цвета. Эти множества вершин одного цвета называется одноцветным классом и являются независимыми, так как в пределах одного множества нет двух смежных вершин. На практике чаще приходится с несколько иной задачей, связанной с правильной вершинной раскраской – задачей выделения максимального k-хроматического подграфа. Данная задача формулируется следующим образом. Пусть задан неориентированный взвешенный граф G(X,V,d) порядка n, где X={x1,…,xn} – множество вершин; V⊆X×X – множество ребер; d:X→R+ – отображение, определяющее вес каждой вершины, где R+ – множество действительных неотрицательных чисел. Требуется для заданного числа цветов k выделить в исходном графе G(X,V,d) k-хроматический подграф с максимальным весом:
⎛ ⎞ max ⎜⎜ ∑ d(x i ) ⎟⎟ Γ ∈Ω ⎝ xi ∈ Γ ⎠
(4)
где Ω – множество всевозможных k-раскрашиваемых подграфов исходного графа G(X,V,d). 6
В качестве варьируемых параметров здесь выступают: во-первых, распределение множества вершин исходного графа на k+1 подмножества (k-одноветных класса раскрашиваемого подграфа и одно не раскрашиваемое); во-вторых, размерности цветовых классов. Таким образом можно трактовать поставленную задачу как однокритериальную с двумя степенями свободы. Еще ряд задач из рассматриваемого класса, выбранные в качестве тестовых графовых проблем, заключаются в равномерном разбиении множества вершин графа. Под равномерностью здесь понимается приблизительно равное соотношение весов (суммарный вес вершин из одного класса) одноцветных классов. Задачи такого рода уже имеют три типа варьируемых параметров. Во-первых, распределение множества вершин исходного графа на k одноцветных классов. Во-вторых, размерности цветовых классов. В качестве третьего варьируемого параметра выступает k – число цветов. Потребуем, чтобы исходный граф G(X,V,d) был полностью правильно раскрашен. Данное условие определяет область поиска D – множество всевозможных правильных раскрасок исходного графа. Так, если в качестве критерия оптимальности использовать минимизацию числа используемых цветов в правильных раскрасках, то получим классическую задачу раскраски графа. Обозначим через X1,…,Xk – множества одноцветных классов k-хроматического графа; si – суммарный вес вершин множества Xi (т.е. суммарный вес независимых вершин):
si =
∑ d(x
x j ∈X i
j
);
(5)
s – средний вес одноцветных классов:
1 k s = ∑ si . k i =1
(6)
Потребуем, чтобы суммарный вес вершин для всех одноцветных классов отличался от среднего как можно меньше. То есть необходимо осуществить правильную раскраску вершин графа G(X,V,d) таким образом, чтобы минимизировать целевую функцию: k
F1( X 1 ,..., X k ) = ∑ si − s .
(7)
i =1
Тогда оптимальным решением будет правильная раскраска (X1*,…,Xk*)∈D графа G(X,V,d) такая, что
F1 ( X 1 ,..., X k ) = *
*
min
( X 1 ,..., X k )∈D
k
∑s i =1
i
− si .
(8)
Также для выравнивания весов одноцветных классов можно максимизировать вес минимального из получившихся одноцветных классов:
F2 ( X 1 ,..., X k ) = min(si ) . i =1,k
7
(9)
В этом случае оптимальной будет правильная раскраска (X1*,…,Xk*)∈D графа G(X,V,d) такая, что
F2 ( X 1 ,..., X k ) = *
*
max
min (si ) .
( X 1 ,..., X k )∈ D i = 1, k
(10)
4. Постановка бикритериальной задачи разбиения Пусть задан неориентированный взвешенный граф G(X,V,w,d) порядка n, где X={x1,…,xn} – множество вершин; V⊆X×X – множество ребер; w:V→R+ – отображение, определяющее вес каждого ребра; d:X →R+ – отображение, определяющее вес каждой вершины, где R+ – множество действительных неотрицательных чисел. Требуется определить разбиение множества вершин X графа G(X,V,w,d) на k подмножеств (X1,X2,…,Xk) таким образом, чтобы для кусков графа G1(X1,V1,w1,d1), G2(X2,V2,w2,d2), …, Gk(Xk,Vk,wk,dk) выполнялись требования (1). В качестве первого критерия оптимальности F1, определяющего эффективность k-разбиения (X1,…,Xk), будем рассматривать суммарный вес всех ребер, целиком попавших в один из подграфов разбиения:
1 k F1( X 1 ,..., X k ) = ∑ ∑ ∑ w( xa , xb ) 2 i =1 xa ∈ X i xb ∈ X i
(11)
xb ≠ xa
Суммарный вес вершин, принадлежащих одному подграфу, будем называть весом подграфа. Вес некоторого подграфа Xi будем обозначать через W(Xi). Для уравнивания весов получаемых подграфов будем использовать следующий критерий оптимальности F2:
⎧ ⎫ F2 ( X 1 ,..., X k ) = min W ( X i ) = min ⎨ ∑ d ( xa )⎬ i =1..k i =1..k ⎩ xa ∈ X i ⎭
(12)
Таким образом имеем бикритериальную задачу:
⎧⎪ max F1( X 1 ,..., X k ), ( X1 ,..., X k )∈D ⎨ max F ( X ,..., X ). k ⎪⎩( X1 ,..., X k )∈D 2 1
(13)
Система требований (1), предъявленных к разбиению (X1,…,Xk), определяет область поиска D задачи k-разбиения графа. В этом случае решением экстремальной задачи (13) является Парето-область из компромиссных решений. Данная задача относится к задачам переборного типа и общее число допустимых решений |D| также можно вычислить из выражения (3).
5. Подход к решению задач декомпозиции графа Для решения заявленного класса задач предлагается генетический алгоритм, сочетающий в себе специальные процедуры и операторы, в основе которых лежат эвристические подходы по построению и оптимизации структуры допустимых ре8
шений исходной задачи. Такого рода алгоритм в дальнейшем будем называть гибридным алгоритмом. На рисунке 1 приведена общая схема гибридного алгоритма. Таким образом, в структуре гибридного алгоритма, по аналогии с генетическим алгоритмом, можно выделить четыре группы операторов: оператор формирования начальной совокупности решений, группа операторов по воспроизводству новых решений, группа операторов по оценке качества найденных решений и оператор отбора решений. Кроме того, гибридная методика допускает включение в состав алгоритма различного рода специальные операторы, такие например, как: оператор прижизненной адаптации, который осуществляет оптимизацию структуры новых построенных решений с целью отстранения от поиска областей с заведомо низким качественным уровнем; оператор генетического всплеска, который осуществляет контроль за эффективностью поиска, и принимает решение о замене части популяции новыми решениями, которые формируются либо случайным образом, либо на основе некоторого конструктивного подхода; оператор коррекции генотипов, осуществляющий такое исправление структуры недопустимых решений, которое позволяет осуществлять поиск исключительно в области допустимых решений исходной задачи.
9
Общая схема гибридного алгоритма при прямом представлении
Рисунок 1 Гибридный алгоритм имеет массу разнообразных настроек и параметров. Например, схемы формирования начальной популяции, скрещивания, отбора, алгоритмы размножения и мутации, размер популяции, число брачных пар, вероятность мутации и т.д. От настроек параметров алгоритма во многом будет зависеть и его качество работы. Реализация механизма автоматического подбора режима работы осуществлена стохастическими автоматами, которые подстраивают в процессе поиска отдельные параметры алгоритма.
6. Программный комплекс по разработке графов и решению задач декомпозиции графов Для решения задач декомпозиции графов создан диалоговый комплекс, включающий в себя как средства проектирования графов (Graph Builder v4.04), так 10
и программную систему (Evolution v3.01) принятия оптимальных и компромиссных решений, позволяющую решать заявленный класс графовых проблем. Программная система Graph Builder позволяет создавать, редактировать и сохранять в виде файлов графовые структуры. На рисунке 2 изображен общий вид главной панели редактора.
Рисунок 2 Главное меню включает в себя следующие пункты: File – открытие, создание и сохранение файлов графовых структур; Edit – опции по установке режимов редактирования и автоматического создания случайных графов; Options – опции по настройке программы и вызов краткой статистической информации об особенностях редактируемой структуре графа; View – включение (отключение) панели режимов; Actions – операции автоматического расположения на плоскости элементов редактируемых графовых структур; Window – опции по управлению несколькими окнами редактирования; Help – справочная система. Другая программная система Evolution ориентирована на работу с готовыми графовыми структурами, на которых можно ставить и исследовать различные задачи разбиения и раскраски графов (в том числе бикритериальные задачи разбиения). На рисунке 3 представлен общий вид главной панели Evolution v3.01.
11
Рисунок 3 Цифрами обозначены: 1– кнопки управления режимами визуализации структуры графа; 2 – панель визуализации структуры графа; 3 – сплиттер для изменения пропорций панелей визуализации; 4 – панель статистических диаграмм и таблиц; 5 – переключатели между различными типами статистических данных; 6 – информационная панель; 7 – основные кнопки управления программой (запуск/останов алгоритма, инициализация начальной популяции, загрузка файла структуры графа, автоматический подбор параметров алгоритма, отображение дополнительных средств визуализации, выход из программы, вызов справочной информации); 8 – панель переключения задач (задачи k-разбиения, комплект задач оптимальной раскраски, бикритериальные задачи разбиения); 9 – панель основных параметров алгоритма; 10 – курсор установки параметров; 11 – кнопки переключения панелей (панель описания и задания параметров задачи, панель основных параметров алгоритма, панель по управлению программой в командном режиме, панель создания, загрузки, сохранения и редактирования макросов); 12 – панель по управлению параметрами останова алгоритма (остановка по числу итераций, по числу различных генотипов в текущей популяции, по проделанному комплекту вычислений, по значению критерия наилучшего найденного решения, по среднему значению критерия по популяции, по времени работы алгоритма); 13 – индикатор прогресса работы алгоритма. Имеется возможность управления системой при помощи функциональных клавиш: “F1” – вызов контекстной помощи; “F2” – инициализация начальной популяции; “F3” – загрузка новой графовой структуры; “F9” – запуск алгоритма; “F10” – выход из программы; “Esc” – прерывание работы алгоритма; “Tab” – переход от одной панели к другой. В программе предусмотрена возможность получения справки о любом элементе (достаточно щелкнуть правой клавишей мышки по соответствующему элементу) и любой управляющей команде (общий список включает 115 команд для версии 3.010415). 12
Диалоговая система Evolution предоставляет пользователю богатый набор настроек гибридного алгоритма, в том числе: размер популяции, число брачных пар, схемы скрещивания, кроссовера, мутации, селекции, вероятность мутации, тип и глубина прижизненной адаптации, настройки генетического всплеска, параметры останова алгоритма и т.п. Результаты решения задачи могут быть отражены в следующем виде: • визуализация решений задачи декомпозиции посредством раскраски графовой структуры (подграфы разбиения окрашиваются в разные цвета); • решения задачи в текстовом виде (команда result); • имеется возможность просмотреть все решения текущей популяции; • предусмотрен режим графической визуализации текущих решений относительно друг друга как в пространстве поиска, так и в пространстве критериев (для построения области компромиссных решений); • разнообразная статистическая информация в виде диаграмм и сводных таблиц. Для постановки больших вычислительных экспериментов, заключающихся в исследовании большого числа тестовых примеров с различными настройками алгоритма, в программе предусмотрен специальный режим управления – в специальном окне пишется программа-макрос, в которой задается список тестовых графов, параметры задач, настройки алгоритма. Запуск такой программы-макроса в диалоговой среде Evolution приведет к последовательному выполнению всего списка операций. Отлаженные программы-макросы можно сохранять в виде специальных файлов.
7. Пример Требуется: 1) создать случайный регулярный не взвешенный граф с локальной степенью для всех вершин равной 3 на 100 вершинах; 2) на данном графе поставить задачу k-разбиения графа со следующими параметрами: k=3, n1=n2=30, n3=40; 3) используя гибридный алгоритм найти решение задачи, из расчета что комплект вычислений алгоритма должен быть равен 500. Гибридный алгоритм должен иметь следующий набор параметров: случайное формирование начальной популяции; панмексия генотипов; случайная рулетка среди трех типов классических кроссоверов (одноточечный, двухточечный, равномерный); компонентная коррекция; мутации и генетические всплески отсутствуют; элитарный отбор с вытеснением генотипов; численность популяции и число брачных пар – 10; полная прижизненная адаптация. 1. Для решения поставленной задач при помощи редактора графа Graph Builder v4.04 создаем (опция Edit\Create subgraph) требуемый граф на 100 вершинах (см. рис. 4). Сохраняем структуру графа в виде файла. 2. Запускаем программу Evolution v3.01 и загружаем ранее сохраненный файл со структурой графа. При помощи панели переключения задач (см. рис. 3) устанавливаем тип задачи: задача k-разбиения (GPP_MinC). В панели описания и задания параметров задачи устанавливаем параметры разбиения: 30, 30, 40. При помощи панели основных параметров алгоритма устанавливаем требуемый набор па13
раметров. При помощи панели управления параметрами останова алгоритма задаем требуемые условия останова (calculations - 500).
Рисунок 4
Рисунок 5
Гибридный алгоритм нашел разбиение графа с весом сечения, равным 6 (см. рис. 5). Алгоритм выполнил требуемый комплект вычислений за 24 итерации, что составило 26 секунд машинного времени. Вычисления проводились на компьютере со следующей конфигурацией: Intel Pentium 100/24mb/Windows 98.
8. Задания по лабораторной работе Задание 1. Создать взвешенный граф заданного порядка и с заданными структурными особенностями. Задание 2. На графе поставить задачу одну из задач декомпозиции графа. Задание 3. Настроить параметры гибридного алгоритма. Задание 4. Найти решение поставленной задачи.
Литература 1. Батищев Д.И., Коган Д.И.. Вычислительная сложность экстремальных задач переборного типа. Н.Новгород, ННГУ, 1994. 2. Батищев Д.И. Генетические алгоритмы решения экстремальных задач / Под ред. Львовича Я.Е.: Учеб. пособие, Воронеж, 1995. 3. Батищев Д.И., Старостин Н.В. Применение генетических алгоритмов к решению задачи дихотомического разбиения графа. Воронеж. Межвузовский сборник науч. трудов «Оптимизация и моделирование в автоматизированных системах», 1998 г., с.3 – 10. 4. Батищев Д.И., Старостин Н.В. Способы повышения эффективности генетического поиска оптимального k-разбиения графа. Воронеж. Межвузовский сборник н. трудов “Прикладные задачи моделирования и оптимизации”, 2000 г., Часть 2, стр. 4-17. 5. Батищев Д.И., Старостин Н.В, Дроздова Е.П. Экстремальные задачи правильной раскраски графа. Воронеж. Межвузовский сборник научных трудов “Прикладные задачи моделирования и оптимизации”, 2000 г., Часть 2, стр. 49-60. 6. Батищев Д.И., Старостин Н.В. k-разбиение графов. Вестник ННГУ “Математическое моделирование и оптимальное управление”, Н.Новгород, 2000 г., стр. 27-35.
14