Разбиение на основе роевого интеллекта и генетической эволюции
Алгоритмы разбиения графов на подграфы и их необходимость при решении многих прикладных задач, при автоматизации проектирования и контроля, при автоматическом анализе содержания документов. Поиск в глубину и в ширину; метод динамического программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 19.01.2018 |
Размер файла | 56,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Разбиение на основе роевого интеллекта и генетической эволюции**Работа выполнена при финансовой поддержке РФФИ (проект № 09 - 07 - 00318) и программы развития научного потенциала высшей школы 2009-2010 гг. (РНП.2.1.2.1652)
Лебедев Б.К.,
Лебедев В.Б.
Введение
Одной из центральных комбинаторных проблем теории графов является проблема разбиения графов на подграфы. Решение этой проблемы важно не только для самой теории графов, но и для многих практических приложений. Алгоритмы разбиения графов на подграфы необходимы при решении многих прикладных задач и, в частности, при автоматизации проектирования и контроля, при автоматическом анализе содержания документов и т.д. [1]. Эта задача относится, к так называемому, классу NP-полных задач, т.е. к таким задачам, время решения которых зависит не полиноминально от размерности входов. Переборные алгоритмы такие, как поиск в глубину, поиск в ширину, метод динамического программирования, метод ветвей и границ и др. обеспечивают абсолютную точность решения, однако не удовлетворяют по одному из основных критериев оценки алгоритма - времени расчёта. Такие способы, основанные на прямом переборе вариантов хороши для задач, которые имеют небольшую размерность входов, так как при размерности задачи n необходимо осуществить n! сравнений. Для сокращения времени решения, задач разбиения графов на подграфы, используются различные эвристические способы ограничения перебора, основанные на неких математических закономерностях, позволяющих сократить временную и пространственную сложность алгоритма [2]. Тем не менее, в последнее время для решения различных "сложных" задач, к которым относятся и задачи разбиения, всё чаще используются способы, основанные на применении методов искусственного интеллекта [2,3]. Особенно наблюдается стремительный рост интереса к разработке алгоритмов, инспирированных природными системами [3,4]. В основе большинства этих алгоритмов лежат идеи, заимствованные в природе, а также базовые постулаты универсальности и фундаментальности, присущие самоорганизации природных систем.
Одним из новых направлений таких методов являются мультиагентные методы интеллектуальной оптимизации, базирующиеся на моделировании коллективного интеллекта [5,6] . Коллективная система способна решать сложные динамические задачи по выполнению совместной работы, которая не могла бы выполняться каждым элементом системы в отдельности в разнообразных средах без внешнего управления, контроля или координации. В таких случаях говорят о роевом интеллекте (Swarm intelligence), как о замысловатых способах кооперативного поведения, то есть стратегии выживания. Оптимизация с использованием роя частиц (Particle Swarm Optimization, PSO)-это метод поиска, который базируется на понятии популяции, и моделирует поведение птиц в стае и косяков рыб [7,8]. Рой частиц может рассматриваться как многоагентная система, в которой каждый агент (частица) функционирует автономно по очень простым правилам. В противовес почти примитивному поведению агентов, поведение всей системы получается на удивление разумным.
В работе излагается метод решения задачи разбиения на основе роевого интеллекта и генетической эволюции [9]. Предложена композитная архитектура многоагентной системы бионического поиска.
Основные положения
Задача разбиения гиперграфа с взвешенными вершинами и ребрами формулируется следующим образом.
Пусть дан гиперграф H=(X,E), где X={xi | i=1,2,…,n}-множество вершин, а E={ej | ej X, j=1,2,…,m}- множество ребер (каждое ребро - подмножество связываемых им вершин). Вес вершин задается множеством ={i | i=1,2,…,n}, а вес ребер - множеством ={i | i=1,2,…,n}. Необходимо сформировать К - узлов, т.е. множество X разбить на К непустых и непересекающихся подмножеств Xv, X=Xv, ( i,j) [Xi Xj =], Xv . граф программирование автоматизация
На формируемые узлы накладываются ограничения. С помощью вектора S={sv | v=1,2,…,k} задается максимально допустимый суммарный вес вершин, назначенных в v-ый узел, а с помощью вектора N={nv | v=1,2,…,k} - максимально допустимое число вершин назначенных в v-ый узел.
Ограничения на вместимость имеют вид:
, I={i | xi Xv}, v=1,2,…,k. (1)
|Xv| nv, v=1,2,…,k. (2)
Выражение (1) является ограничением на максимальный вес узла, а выражение (2) - на максимальное число вершин в узле.
Иногда задано допустимое число выводов max для узлов. Ограничение для узлов, на число выводов v имеет вид:
v max, v=1,2,…,k,
v=|Ev|, Ev={ej | (ej Xv ) & (ej Xv ej)}. (3)
Ev - множество ребер, связывающих множество вершин Xv с вершинами остальных узлов.
Основным критерием является F1 - суммарная стоимость ребер в разрезе.
F1=, J = {j | ej C}, (4)
где C = {ej | (v) [ej Xv ej]} - множество ребер в разрезе.
Вторым часто используемым критерием является F2 - суммарное число выводов.
(5)
Возможно использования критерия F, являющегося аддитивной сверткой критериев F1 и F2.
F=k1F1+k2F2
Общая структура представления решений в алгоритмах разбиения на основе роевого интеллекта и генетического поиска
В эвристических алгоритмах роевого интеллекта многомерное пространство поиска населяется роем частиц [7]. Каждая частица представляет некоторое решение. В нашем случае решение задачи разбиения. Процесс поиска решений заключается в последовательном перемещении частиц в пространство поиска. Обозначим позицию частицы i в пространстве решений в момент времени t (t имеет дискретные значения) как xi(t). По аналогии с эволюционными стратегиями, рой можно трактовать как популяцию, а частицу как индивида (хромосому). Это дает возможность построения гибридной структуры поиска решения, основанную на сочетании генетического поиска с методами роевого интеллекта. Связующим звеном такого подхода является структура данных, описывающая в виде хромосомы решение задачи. Если в качестве частицы используется хромосома, то число параметров, определяющих положение частицы в пространстве решений должно быть равно числу генов в хромосоме. Значение каждого гена откладывается на соответствующей оси пространства решений. В этом случае возникают некоторые требования к структуре хромосомы и значениям генов. Значения генов могут быть непрерывными или дискретными. Значения генов должны быть независимыми друг от друга, то есть хромосомы должны быть гомологичными.
В работе предлагается подход к построению структур и принципов кодирования хромосом, обеспечивающих их гомологичность и возможность одновременного использования в генетическом алгоритме, и в алгоритме на основе роя частиц.
Будем решение задачи разбиения представлять в виде вектора P={pi | i=1,2,…,n}. Значением pi - является номер некоторой вершины, причем (ij)[pi ? pj].Элементы pi для которых 1 i n1, соответствуют первому узлу Х 1. Элементы pi для которых n1+1 i n1+n2 соответствуют второму узлу Х 2 и т.д. В общем случае для элементов pi справедливо:
(i)[(1+dj i dj + nj) (pi Xj)], j=1,2,…,k,
где dj = () -nl.
Таким образом, разбиение определяется перестановкой элементов pi в векторе P.
Хромосома, соответствующая решению Р, состоит из генов, число которых на единицу меньше числа n элементов в векторе P : H={gl | l=1,2,…,(n-1)}. Решение Р получается путем применения к хромосоме рекурсивной процедуры декодирования.
Ген gl может принимать значения, лежащие в интервале 1 gl n-l+1, т.е. чем больше порядковый номер t, тем меньшее значение он может принять. Декодирование хромосомы выполняется последовательно, начиная с первого гена g1. На шаге l декодируется ген gl. В результате декодирования гена gl определяется номер элемента, помещаемого в позицию l. Для декодирования хромосомы используется опорный вектор номеров элементов B1={bi1 | i=1,2,…,n}. После декодирования очередного гена gl вектор Bl уменьшается, путем удаления из него номера элемента, определенного при декодировании gl.
Пусть на шаге l (l=1,2,…,(n-1)) декодируется ген gl. К моменту декодирования gl, получен вектор Bl={bil | i=1,2,…, (n-t+1)}, путем удаления l-1 элемента из B1 на предыдущих шагах. Определяется значение z гена gl, т.е. z=gl. В векторе Bl определяется номер bzl очередного элемента, который помещается в позицию l, т.е. pl присваивается значение bzl, (pl=bil). После этого формируется вектор Bl+1, для этого из Bl удаляется элемент bzl.
Связь между элементами bil+1 и bil определяется с помощью следующих выражений:
bil+1= bil, i=1,2,…,(z-1), z=gl; bz+j-1l+1=bz+jl, j=1,2,…((n-l+1)-z).
На шаге n вектор Bn состоит из одного элемента b1n, поэтому pn=b1n.
Рассмотрим метод декодирования на примере. Пусть имеется хромосома H=<5,2,3,2> и опорный вектор B1=<2,3,1,5,4> (рис. 1)
На первом шаге рассматриваем ген g1. i=g1=5. Отсюда p1=bi1=b51=4. Элемент b51 удаляется из B1 и получается B2=<2,3,1,5>. На втором шаге рассматривается ген g2. Отсюда i=g2=2. Тогда p2=b22=3. Элемент b22 удаляется из B2 и получается B3=<2,1,5>. На третьем шаге рассматриваем ген g3. i=g3=3. Тогда p3=b33=5. Элемент b33 удаляется из B3 и получается B4=<2,1>. На четвертом шаге рассматривается ген g4. i=g4=2. Отсюда p4=b24=1. Удаляем b24 из B4 и получаем B5=<2>. Так как b15 является единственным элементом в векторе B5, то p5=b15=2. Таким образом, построенный вектор P имеет вид: P=<4,3,5,1,2>.
Трудоемкость декодирования хромосом имеет оценку O(n).
Алгоритм разбиения на основе роевого интеллекта
Основу поведения роя частиц составляет самоорганизация, обеспечивающая достижение общих целей роя на основе низкоуровневого взаимодействия. Каждая частица связана со всем роем, может взаимодействовать со всем роем и она тяготеет к лучшему решению роя. Процесс поиска решений итерационный. На каждой итерации каждая частица перемещается в новую позицию. Новая позиция определяется как
xi(t+1)= xi(t)+ vi(t+1),
где vi(t+1) скорость перемещения частицы из позиции xi(t) в позицию xi(t+1). Начальное состояние определяется, как xi(0), vi(0).
Приведенная формула представлена в векторной форме. Для отдельного измерения j пространства поиска формула примет вид
xij(t+1)= xij(t)+ vij(t+1), (6)
где xij(t)- позиция частицы i в измерении j, vij(t+1)- скорость частицы i измерении j.
Введем обозначения:
fi(t) - текущее значение целевой функции частицы i в позиции xi(t);
x*i(t)- лучшая позиция частицы i, которую она посещала с начала первой итерации, а f*i(t)- значение целевой функции в этой позиции (лучшее значение частицы i);
F(t)- лучшее значение целевой функции среди частиц роя в момент времени t, а x(t)- позиция с этим значением.
Тогда скорость частицы i на шаге (t+1) в измерении j вычисляется как
vij(t+1)=w• vij(t)+ k1•rnd(0,1)•(x*ij(t)- xij(t)) + k2•rnd(0,1)•(xj(t) - xij(t)), (7)
где rnd(0,1) - случайное число на интервале (0,1), (w,k1, k2) - некоторые коэффициенты. Формула для расчета скорости составлена из трех компонентов.
Предыдущая скорость vij(t) выступает в роли памяти частицы об ее перемещениях в прошлом и является инерционным компонентом
Значение второго компонента, называемого когнитивным, прямо пропорционально текущему расстоянию частицы от ее наилучшей позиции, которая была найдена с момента старта ее жизненного цикла. Когнитивный компонент выступает в роли индивидуальной памяти о наиболее оптимальных позициях данной частицы.
Значение третьего компонента, называемого социальным, прямо пропорционально текущему расстоянию частицы от наилучшей позиции роя в момент времени t. Благодаря социальному компоненту частица имеет возможность передвигаться в оптимальные позиции, найденные соседними частицами.
В нашем случае позиция xi(t) задается с помощью хромосомы H={gl | l=1,2,…,(n-1)}, структура которой рассмотрена выше. Отметим, что скорость vi(t) имеет ту же структуру, что и хромосома H. Позиция xi(t) то есть хромосома H является решением, а скорость vi(t+1) рассматривается как средство изменения хромосомы, то есть решения.
Схема работы роевого алгоритма разбиения включает следующие шаги:
1.В соответствии с постановкой задачи разбиения и исходными данными формируется структура данных частицы (хромосома) и устанавливаются диапазоны значений для каждого измерения (оси) пространства поиска.
2.Создается исходная "случайная" популяция частиц, t=0. Для каждой частицы случайным образом задается начальная позиция xi(0) и начальная скорость перемещения vi(0). С этой целью в каждой формируемой хромосоме, соответствующей позиции xi(0), каждому гену, лежащему в локусе l, случайным образом присваивается целочисленное значение, лежащее в диапазоне 1n-l+1. Генам хромосомы, соответствующей скорости перемещения vi(0) задаются сравнительно малые значения.
3. t= t+1.
4.Рассчитывается целевая функция fi(t) для каждой частицы.
5.Для каждой частицы определяются лучшая позиции x*i(t+1), которую она посещала с начала первой итерации, и значение целевой функции f*i(t+1) в этой позиции.
7. Определяются лучшая позиция роя на шаге t и значение целевой функции F(t) в этой позиции.
8. Лучшие частицы с точки зрения целевой функции объявляется "центром притяжения". Векторы скоростей всех частиц устремляются к этим центрам. Чем дальше частица находится от центра, тем большим ускорением она обладает. По формуле (7) для всех частиц рассчитываются скорости приращения.
9.Рассчитываются новые позиции частиц в пространстве решений.
10.Шаги 3-9 итерационно повторяются заданное число раз.
11.Последний "центр тяжести" соответствует найденному локальному оптимуму.
Таким образом, согласно алгоритму роя после случайной инициализации популяции частиц для каждой из них вычисляется значение целевой функции fi(t+1). Если оно окажется лучше, чем f*i(t), то
f*i(t+1)= fi(t+1),
в противном случае
f*i(t+1)= f*i(t).
Далее, среди fi(t+1) выбирается лучшее значение F(t) и затем вычисляются согласно приведенным выше формулам новые значения скоростей частиц и их новые позиции в пространстве решений. Итерационный процесс повторяется. Отметим, что формула (6) фактически является оператором (назовем его роевым) с помощью которого изменяется текущее решение.
Гибридизация роевого интеллекта с генетическим поиском
Предлагается композитная архитектура многоагентной системы бионического поиска для решения задачи разбиения на основе роевого интеллекта и генетической эволюции [9]. Рассмотрены три подхода к построению такой архитектуры.
Первый и наиболее простой подход к гибридизации заключается в следующем. С начала поиск решения осуществляется генетическим алгоритмом [10]. Затем на основе популяции, полученной на последней итерации генетического поиска, формируется популяция для роевого алгоритма. В формируемую популяцию включаются лучшие, но отличные друг от друга хромосомы. При необходимости полученная популяция доукомплектовывается новыми индивидами. После этого дальнейший поиск решения осуществляется роевым алгоритмом.
При втором подходе метод роя частиц используется в процессе генетического поиска и играет роль аналогичную генетическим операторам. В этом случае на каждой итерации генетического алгоритма синтез новых хромосом с одной стороны осуществляется с помощью кроссинговера и мутации, а с другой стороны с помощью операторов метода роя частиц по формулам (6) и модифицированной формуле (7). Модифицированная формула получается путем удаления в формуле (7) второй компоненты и имеет вид:
vij(t+1)=w• vij(t)+ k•rnd(0,1)•(xj(t) - xij(t)). (8)
Третий подход является объединением первого и второго подходов.
Оценка временной сложности операторов роя частиц не превышает оценки временной сложности генетических операторов. Оценка временной сложности генетического алгоритма не превышает оценки временной сложности алгоритма роя частиц. В связи с этим общая оценка временной сложности при любом подходе к гибридизации не превышает оценки временной сложности генетического алгоритма и лежит в пределах О(n2)- О(n3).
При тестировании роевого алгоритма выяснилось, что для задач разбиения небольшой сложности, чтобы получить хорошие результаты достаточен объем популяции в 10 частиц. Для задач средней сложности рекомендуемый размер популяции - 20ч40 частиц. Для некоторых сложных задач разбиения размер популяции может достигать от 100 до 200 частиц. Число итераций выбирается следующим образом. Если, например целочисленная переменная изменяется на интервале [0, n], то число итераций около n. Коэффициенты k1 и k2 в экспериментах выбирались равными 2, либо варьировались на интервале [0, 4]. Экспериментальные исследования показали, что наиболее эффективен третий подход. Исследованию подвергались примеры, содержащие до 1000 вершин. Тестирование производилось на бенчмарках 19s, PrimGA1, PrimGA2. По сравнению с существующими алгоритмами достигнуто улучшение результатов на 6-7%. Вероятность получения глобального оптимума составила 0.94, а у локально оптимальных решений, отклонение от глобального оптимума составило в среднем 1%.
Литература
1. Naveed Sherwani. Algorithms for VLSI physical design automation. Kluwer academic publishers. Boston /Dordrecht/ London. 1995.
2. МакКоннелл Дж. Основы современных алгоритмов. Москва: Техносфера, 2004.
3. Caro G. D., Ducatelle F., Gambardella L. M. AntHocNet: An adaptive nature-inspired algorithm for routing in mobile ad hoc networks. European Transactions on Telecommunications, 16(5):443-455, 2005.
4. Курейчик В.М., Курейчик В.В. Генетический алгоритм разбиения графа // Известия Академии наук. Теория и системы управления. 1999. -№4.
5. Курейчик В.М., Лебедев Б.К., Лебедев О.Б. Поисковая адаптация: теория и практика. М.: Физматлит, 2006.
6. Engelbrecht A. P. Fundamentals of Computational Swarm Intelligence. John Wiley & Sons, Chichester, UK, 2005.
7. Clerc M. Particle Swarm Optimization. ISTE, London, UK, 2006.
8. Poli R. Analysis of the publications on the applications of particle swarm optimisation. Journal of Artificial Evolution and Applications, Article ID 685175, 10 pages, 2008.
9. Емельянов В.В., Курейчик В.М., Курейчик В.В. Теория и практика эволюционного моделирования. - М.: Физматлит, 2003.
10. Лебедев Б.К. Разбиение на основе эволюционной адаптации. Известия ТРТУ. Тематический выпуск "Интеллектуальные САПР". 1999. -№3.
Размещено на Allbest.ru
...Подобные документы
Способы построения остовного дерева (алгоритма поиска в глубину и поиска в ширину). Вид неориентированного графа. Понятие и алгоритмы нахождения минимальных остовных деревьев. Последовательность построения дерева графов по алгоритмам Крускала и Прима.
презентация [22,8 K], добавлен 16.09.2013Графоаналитический метод решения задач. Получение задачи линейного программирования в основном виде. Вычисление градиента и поиск экстремумов методом множителей Лагранжа. Параболоид вращения функции. Поиск решения на основе условий Куна-Таккера.
контрольная работа [139,3 K], добавлен 13.09.2010Понятие алгоритма как набора инструкций, описывающего порядок действий. Поиск в ширину - метод обхода графа и поиска пути в нем. Пример работы алгоритма поиска в ширину, его неформальное и формальное описание. Реализация с помощью структуры "очередь".
курсовая работа [684,8 K], добавлен 05.04.2015Модель динамического программирования для решения задач оптимального распределения ресурсов. Принцип оптимальности, уравнение Беллмана. Двумерная и дискретная динамическая модель. Значение метода в решении прикладных задач различных областей науки.
курсовая работа [400,2 K], добавлен 01.10.2009Поиск как основа функционирования СОЗ. Стратегии; эвристического поиска и управления выводом. Циклическая работа интерпретатора. Вывод на знаниях в продукционных системах. Методы поиска в глубину и ширину. Формализация задач в пространстве состояний.
презентация [741,2 K], добавлен 14.08.2013Обзор моделей анализа и синтеза модульных систем обработки данных. Модели и методы решения задач дискретного программирования при проектировании. Декомпозиция прикладных задач и документов систем обработки данных на этапе технического проектирования.
диссертация [423,1 K], добавлен 07.12.2010Обзор задач, решаемых методом динамического программирования. Составление маршрута оптимальной длины. Перемножение цепочки матриц. Задача "Лестницы". Анализ необходимости использования специальных методов вероятностного динамического программирования.
курсовая работа [503,3 K], добавлен 28.06.2015Понятие и базовые свойства ориентированного дерева. Обходы (способы нумерации вершин) в глубину и ширину. Представление бинарных графов с помощью указателей и массива, скобочной записи, списком прямых предков. Сбалансированность дерева двоичного поиска.
презентация [330,6 K], добавлен 19.10.2014Алгоритмы, использующие решение дополнительных подзадач. Основные определения теории графов. Поиск пути между парой вершин невзвешенного графа. Пути минимальной длины во взвешенном графе. Понятие кратчайшего пути для графов с помощью алгоритма Флойда.
реферат [39,6 K], добавлен 06.03.2010Классы задач P и NP, их сводимость. Примеры NP-полных и NP-трудных задач. Сущность метода поиска с возвратом. Алгоритмы решения классических задач комбинаторного поиска. Решение задачи о восьми ферзях. Поиск оптимального решения методом ветвей и границ.
презентация [441,5 K], добавлен 19.10.2014Метод пустого шара Делоне. Симплициальное разбиение (триангуляция). Особенности взаимного расположения симплексов Делоне. Алгоритм построения круга Делоне. Возможности программирования с помощью технологии Microsoft Windows Presentation Foundation.
курсовая работа [639,3 K], добавлен 14.05.2011Принципы построения и программирования игр. Основы 2-3D графики. Особенности динамического изображения и искусственного интеллекта, их использование для создания игровых программ. Разработка логических игр "Бильярд", "Карточная игра - 50", "Морской бой".
отчет по практике [2,3 M], добавлен 21.05.2013Постановка и решение дискретных оптимизационных задач методом дискретного программирования и методом ветвей и границ на примере классической задачи коммивояжера. Этапы построения алгоритма ветвей и границ и его эффективность, построение дерева графов.
курсовая работа [195,5 K], добавлен 08.11.2009Роль классификации документов в решении задач информационного поиска. Методы автоматической классификации документов и этапы построения классифицирующей системы: индексация документа, построение классификаторов на базе обучающих данных, оценка их работы.
курсовая работа [354,2 K], добавлен 13.01.2013Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".
курсовая работа [2,2 M], добавлен 29.05.2015Класс задач, к которым применяются методы динамического программирования. Решения задачи распределения капитальных вложений между предприятиями путем построения математической модели. Программа "Максимизации капиталовложений" на базе Microsoft Excel.
курсовая работа [1,4 M], добавлен 28.10.2014Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.
дипломная работа [2,4 M], добавлен 13.08.2011Использование пакета прикладных программ MS Office при решении экономических задач. Разработка баз данных при помощи Microsoft Access. Интернет-технологии и применение языка гипертекста HTML. Построение и вычисление финансовых функций с помощью MS Excel.
курсовая работа [3,2 M], добавлен 19.03.2010Постановка задачи. Математическое обоснование. Последовательность разбиений множества. Язык программирования. Реализация алгоритмов. Генерирование разбиений множества. Генерирование всех понятий.
курсовая работа [29,9 K], добавлен 20.06.2003Разработка среды структурно-визуального программирования с возможностью решения пользовательских задач в операционной системе по средствам использования готовых компонент. Организация упрощенного проектирования на основе алгоритмических примитивов.
дипломная работа [2,3 M], добавлен 12.04.2012