УДК: 519.16 MSC2010: 90C27
СИНТЕЗ АЛГОРИТМОВ КЛАСТЕРИЗАЦИИ ДЛЯ РЕШЕНИЯ МНОГОАГЕНТНОЙ ЗАДАЧИ КОММИВОЯЖЕРА © М. С. Германчук, М. Г. Козлова
Крымский федеральный университет им. В. И. Вернадского Таврическая академия факультет математики и информатики просп. Академика Вернадского, 4, Симферополь, 295007, Российская Федерация
e-mail: m.germa,n4uk@ya,ndex.ru
Synthesis of Algorithms of Clustering to Solve the Multi-agent Traveling Salesman Problem.
Germanchuk M. S., Kozlova M. G.
Abstract.
Purpose of work. For a given (partially, completely) complex network, it is necessary to find, consistent with the routing problem, the network layout for a certain number of clusters, which provides high accuracy and speed of solving the corresponding extreme problems on the graphs.
The article considers graph clustering algorithms, as well as their application for discrete optimization problems on graphs, as an example of the problem for k traveling salesmen. The basic algorithms for solving the traveling salesman problem and some of their modifications are considered. On the basis of theoretical results the software implementation of the following clustering algorithms is developed: hierarchical algorithm, K-means and greedy algorithm with various modifications. A genetic algorithm for solving the traveling salesman problem was implemented, as well as the synthesis of clustering algorithms and the solution of the traveling salesman problem with finding the optimal centers.
The main task of the work was to find the optimal clusters or subgraphs of the desired graph, taking into account the uniform distribution of traveling salesman routes in clusters. As a result, the difference between splitting the graph into clusters (with the preservation of the required centers in these clusters) and finding the optimal centers for further clustering with them is demonstrated. To find optimal in relation to the problem k traveling salesmen subgraphs, a synthesis of clustering algorithms and solutions of discrete optimization problems was developed and implemented on the example of the traveling salesman problem for k agents. The essence of the method is the mechanism of "throwing"vertices from larger clusters to smaller ones, until the convergence condition is fulfilled, the objective function of which depends on the length of the traveling salesmen paths. There are various options for this mechanism, including the transit of vertices through clusters between large and small clusters, so that the resulting clusters do not lose compactness and do not create intersections in further search of the optimal route.
Keywords: discrete optimization on complex networks, clustering, routing, synthesis of algorithms
Введение
К дискретным моделям выбора решений на основе данных и знаний приводится широкий класс задач из различных областей: обработки и восстановления изображений, прикладных задач маршрутизации в сложных сетях, построения траекторий динамических систем и др. Как правило, такие задачи являются ЖР-трудными. Классический подход состоит в разработке алгоритма решения конкретной задачи, оценки его сложности и проверки на известных тестовых задачах. Следующим шагом является применение комбинаций эвристических алгоритмов. Многие задачи изначально сочетают в своей постановке несколько задач дискретной оптимизации (ДО), например, задачу размещения и задачу кластеризации; задачу маршрутизации и задачу о рюкзаке; задачу маршрутизации, задачу кластеризации и задачу построения разрезов и т. д. В этом случае необходим синтез алгоритмов из заранее разработанного набора, который зависит от предполагаемого наличия знаний о дискретной модели и решении. В статье рассматривается задача кластеризации согласованная с основной задачей построения маршрутов в сложной сети, которая позволяет синтезировать иерархические алгоритмы решения, существенно снижающие время построения приемлемого приближенного решения.
Любая сложная сеть — это граф большой размерности, состоящий из вершин и дуг, которым отвечают наборы количественных (метрических) и качественных характеристик, признаков. Может оказаться, что для некоторых частей сети (кластеров) выбранные свойства практически не меняются, но претерпевают изменения на границах кластера. В связи с этим цель кластеризации заключается в упрощении исходной сложной сети, выделении в ней характерных структур для последующего анализа кластеров и межкластерных связей и построения приближенных (рациональных, реального времени, быстрых) решений соответствующих задач ДО на графах.
Результатом кластеризации является множество кластеров, которые полностью покрывают граф сети, либо границы кластеров, определяемые дугами разрезов между кластерами. В зависимости от исходных постановок задач ДО на сети возникает множество различных многоагентных задач на кластерах и межкластерных коммуникациях.
Работа является частью проекта по исследованию задач ДО на сложных сетях, предполагающего использование дополнительной информации [4], алгоритмов взаимодействия интеллектуальных агентов в решении сетевых задач [5], [18], алгоритмов реоптимизации сети [6] и др. В данной статье для решения задач маршрутизации
применяются алгоритмы кластеризации, основанные на K-средних, бионических алгоритмах и построении маршрутов с помощью генетических алгоритмов. Перспективной является композиция K-means, муравьиного и модифицированного генетического алгоритмов.
Цель работы. Для заданной (частично, полностью) сложной сети необходимо найти, согласованную с задачей маршрутизации, разметку сети на определенное количество кластеров, которая обеспечивает высокую точность и скорость решения соответствующих экстремальных задач на графах.
Для достижения поставленной цели необходимо решить следующие задачи:
- проанализировать существующие методы и алгоритмы ДО (маршрутизации для задач типа многих коммивояжеров), выявить и обосновать подходы, наиболее пригодные для достижения поставленной цели;
- разработать, исследовать и применить модели и методы коллективного интеллекта для решения задачи кластеризации и маршрутизации с учетом критериев точности и скорости построения метаэвристик;
- получить теоретическую и экспериментальную оценку возможностей алгоритмов коллективного интеллекта с целью расширения сферы применения интеллектуальных моделей в теории ДО и в задачах маршрутизации для повышении их продуктивности.
Подходящим способом для эффективного решения задач маршрутизации в сложноструктурированных сетях является использование математических моделей, описывающих коллективное поведение децентрализованной самоорганизующейся системы, состоящей из множества агентов, локально взаимодействующих между собой и с окружающей средой для достижения глобальной цели. В природе примерами подобного рода систем являются, например, муравьиные колонии, рои пчел. Каждый агент в системе функционирует автономно, используя простые правила. В то же время алгоритм совместного поведения всех агентов позволяет решить подобную задачу. Коллективный интеллект рассматривается как эффективная процедура оптимизации, которой присущи масштабируемость, возможность решать задачи независимо от их размерности, гибкость, отсутствие жесткой структуры, простота правил поведения агентов.
При переходе к математическим мультиагентным моделям коллективного интеллекта вводятся так называемые эвристические коэффициенты, которые являются управляющими параметрами мультиагентных методов и алгоритмов. От значения
этих параметров зависит, насколько эффективно будет решена оптимизационная задача. Параметры могут принимать бесконечное число значений из некоторого диапазона. Поэтому встает вопрос об их подборе и необходимости проведения экспериментальных исследований на распространенных модельных (эталонных) тестовых задачах из библиотек, чтобы выяснить оптимальные значения коэффициентов и оценить вычислительную сложность методов коллективного интеллекта. Иными словами, необходимо выяснить, насколько точно такие методы могут решать задачи ДО по сравнению с известными методами; какова оценка их вычислительной сложности; а также каковы оптимальные значения используемых в методах эвристических коэффициентов и как они влияют на конечный результат.
С учетом указанных подходов представим результаты по разработке алгоритмов кластеризации, пригодных для решения задачи многих коммивояжеров и их программной реализации.
1. АЛГОРИТМЫ РЕШЕНИЯ МНОГОАГЕНТНОЙ ЗАДАЧИ
КОММИВОЯЖЕРОВ
Задача коммивояжера (ЗК) является одной из самых известных задач ДО на графах. Суть задачи заключается в том, чтобы найти кратчайший путь в графе, который проходит из начальной вершины через все вершины графа и возвращается в исходную вершину. Агент должен пройти через каждую вершину лишь один раз. Для упрощения исходной задачи будем считать, что искомый граф имеет полную связность, т. к. в неполном графе нельзя гарантировать разовое прохождение через каждую вершину. Такой путь называют гамильтоновым циклом, а ЗК формулируют как нахождение минимального гамильтонова цикла в графе. Если исходный граф не является полным, его можно преобразовать в полный, добавив недостающие ребра и присвоив им большие весовые значения, чтобы эти ребра были менее «привлекательны» для алгоритмов решения ЗК. Таким образом, исходными данными в ЗК является полный взвешенный граф с матрицей расстояний (взвешенная матрица смежности).
Существуют частные случаи общей постановки задачи.
ЗК можно рассматривать как для одного агента (коммивояжера), так и для k агентов. Изначально заданы базы каждого агента или множество вершин-баз. Задача состоит в том, чтобы агент прошел путь по всем вершинам кластера и возвратился на свою базу.
Рассмотрим ЗК для k агентов. Для каждого агента задана вершина-база, а также k кластеров (подграфов) искомого графа сети, в каждом из которых содержится
соответствующая база. Существует также вариант, при котором агенты будут выходить из одной базы. Такое условие сведется к двум базам, где вторая база будет являться ближайшей вершиной к первой базе и при этом не будет базой для другого агента.
После разбиения графа на к оптимальных подграфов, необходимо решить ЗК для каждого подграфа.
1.1. Точные алгоритмы. К точным алгоритмам относят алгоритм полного перебора (АПП), метод ветвей и границ (МВГ) и метод динамического программирования.
Алгоритм полного перебора. Алгоритм реализует поиск оптимального решения с помощью полного перебора всех вариантов и гарантирует минимальный путь в графе. Недостаток заключается в том, что для больших п (количество вершин) алгоритм будет работать с оценкой 0((п-1)!), что является неприемлемым, и уже при п =30 ЗК станет практически неразрешимой. Но для малых п целесообразно использовать именно этот алгоритм.
Метод ветвей и границ. Ветвление подразумевает разбиение исходного множества допустимых значений на подмножества меньших размеров. В результате будет получено дерево ветвлений, а построенные подмножества будут узлами дерева. Далее находятся нижние и верхние границы для решения задачи на подмножестве. Если есть два подмножества Ы\ и М2, и нижняя граница подмножества Ы\ дерева ветвления больше, чем верхняя граница ранее просмотренного подмножества М2, то М\ можно исключить из дальнейшего ветвления. Минимальное значение из уже найденных верхних оценок хранят как глобальную переменную Б, и любой узел, чья нижняя граница больше Б, можно отсечь из ветвления. За счет этого количество проверок и ширина поиска значительно сокращается по сравнению с АПП. Однако при больших п алгоритм работает медленно и плохо применим для графов размерности больше чем 20 вершин. К МВГ можно применить жадный алгоритм в качестве начального решения. Точность в этих алгоритмах достигается большими временными затратами. Для таких алгоритмов ЗК при п = 30 и более практически неразрешима. Для ЗК с большим количеством вершин используют эвристические алгоритмы.
1.2. Эвристические алгоритмы. Эвристические алгоритмы являются основным инструментом для решения ЗК. На практике их особенностью является быстрое выполнение и адаптация к различным дополнительным условиям [4]. В эвристических алгоритмах учитывают специфику задачи с помощью простых средств, создают приёмы, эффективные для решения задач с определенной особенностью. Обычно такие алгоритмы редко дают точный результат. Строгого обоснования у этих алгоритмов
не существует, равно как и единого принятого алгоритма. Описание различных эвристических алгоритмов можно найти в работах [1, 9]. Одним из часто используемых эвристических алгоритмов является жадный алгоритм.
^Кадный алгоритм. Алгоритм заключается в том, что в итоговый путь записываются те вершины, которые являются ближайшими к уже полученному пути. Такой подход гарантирует локальный минимум в ЗК и довольно быстрое выполнение. Также одним из его достоинств является возможность синтеза с другими алгоритмами решения ЗК.
Существуют различные реализации жадного алгоритма для решения ЗК: ближайшего соседа; самого «дешевого» включения и др. Наиболее применимым для ЗК является алгоритм ближайшего соседа, который определяет вершину, ближайшую к текущей вершине.
Самыми известными эвристиками для решения ЗК являются эволюционные алгоритмы [8, 10, 19]. Они моделируют биологический процесс естественного отбора. Эволюционные алгоритмы используют для решения ЖР-трудных задач дискретной и комбинаторной оптимизации, в частности ЗК.
Эволюционные алгоритмы имеют широкое разнообразие. Наиболее известными алгоритмами являются: генетический алгоритм; алгоритм муравьиных колоний; алгоритм пчелиного роя; алгоритм роя светлячков и др.
Алгоритмы коллективного интеллекта. Аналогия в решении ЖР-трудных задач ДО неявно используется при выборе методов и алгоритмов, подобных алгоритмам живой природы, — «бионических» алгоритмов и методов. В этом случае считается, что если подобные алгоритмы эффективно работают в реальности, то обоснование работоспособности (сходимость, устойчивость и пр.) их аналогов для решения задач ДО косвенно получено в живой природе.
Термин «бионический» применяется к методам, учитывающим принципы организации, свойств, функций и структур живой природы. Среди «бионических» выделяют эволюционные и когнитивные роевые методы и алгоритмы. Эволюционные алгоритмы (генетические алгоритмы [26], эволюционные стратегии [39], генетическое и эволюционное программирование [33]) представляют собой итерационные преобразования, выполняемые специальными эволюционными операторами (кроссинговер, мутация, селекция), основанными на стохастических правилах имитации механизмов эволюции. Известны попытки применить генетические алгоритмы для решения задач кластеризации, ДО на графах [3, 8, 14, 16, 17, 26, 31].
Когнитивные роевые алгоритмы (колоний муравьев, роя пчел, стаи птиц, стаи волков, косяков рыб и др.) представляют собой преобразования, которые описывают коллективное поведение децентрализованной самоорганизующейся системы, состоящей из множества агентов, локально взаимодействующих между собой и с окружающей средой для достижения глобальной цели. Эти преобразования могут быть основаны на статистическом подходе к исследованию ситуаций и итерационном приближении к искомому решению. Каждый агент функционирует автономно по набору простых правил. В отличие от почти примитивного поведения агентов, поведение всей системы получается разумным.
Алгоритмы муравьиных колоний. Характерная особенность этих методов — для колонии муравьев или роя пчел необходима определенная форма связи, чтобы сотрудничать при решении общей задачи. Например, для колонии муравьев связь предполагает изменение индивидуумом окружающей среды так, чтобы это изменило поведение других индивидуумов, проходящих через эту измененную среду в будущем. Оставляя следы феромона, муравьи обеспечивают коммуникацию через среду, придавая ей семиотические характеристики. Колония или рой не имеют управляющих функций, они самоорганизуются за счёт согласованного взаимодействия множества составляющих элементов. Самоорганизация является результатом взаимодействия таких компонентов, как положительная и отрицательная обратная связь; случайность и многократность. Имитация самоорганизации и составляет основу этого типа бионических алгоритмов.
Достоинства муравьиных, роевых методов и алгоритмов известны: сравнительная простота выполняемых действий, возможность высокоэффективной реализации для многопроцессорных архитектур, гарантированная сходимость (хотя время сходимости не определено). Их недостатки в основном связаны с не всегда оптимальной настройкой параметров. Между тем объекты сложноструктурированных сетей обладают большой степенью сложности и многофакторности, что налагает высокие требования к надежности и точности их исследования.
К задачам ДО на графах применимы муравьиный, роевой и другие мультиагент-ные алгоритмы. Для кластеризации сети муравьиным (роевым) методом необходимо:
- представить сеть в виде графа с приписанными (вершинам и дугам) атрибутами (весами);
- определить пороговые значения параметров, которые должны быть в разных кластерах;
- определить значение следа феромона;
- настроить параметры метода.
Предполагаем, что «муравьи» порождаются в графе периодически каждой вершиной и следуют в случайно выбранную соседнюю вершину. Далее, по уровню феромона в каждой вершине происходит кластеризация сети. Здесь ключевую роль играют пороговые значения метрических характеристик сети между разными кластерами. Порог 0,5 позволяет отделить межкластерные связи от объекта. Если порог взять меньшим, то кластер станет больше.
Генетический алгоритм (ГА). ГА — это эволюционный алгоритм, используемый для решения разнообразных задач ДО путём случайного подбора, скрещивания (комбинирования) и мутации искомых параметров. Общий процесс поиска значений параметров схож с реальными биологическими процессами [8]. На данный момент реализовано большое количество ГА (в основном они мало похожи на классический ГА [16]) — это целое семейство алгоритмов, и их разнообразие проявляется не только при решении разных по условию задач, но и по конструкции отдельных частей алгоритма.
Несмотря на то, что модель эволюционного развития, применяемая в ГА, упрощена по сравнению со своим природным аналогом, она всё равно является достаточно хорошей моделью и может применяться для большого количества прикладных задач, даже тех, которые трудно, а иногда и невозможно решить другими методами. Генетические алгоритмы не гарантируют нахождение глобального оптимума. Они хорошо справляются с поиском «достаточно хорошего» решения задачи «достаточно быстро». Для задач, которые могут быть решены специальным методом, практически всегда специальные методы будут более эффективными, чем ГА в быстродействии и в точности найденных решений. Основным преимуществом данного алгоритма является то, что он легко адаптируется под задачу и может использоваться для решения сложных задач, в которых не существует никаких специальных методов. Важно, что можно достигнуть улучшения существующих методик, сочетая их с ГА [10, 14].
ГА содержит следующие основные этапы и действия:
10. Формирование начальной популяции.
20. Селекция.
30. Скрещивание (кроссинговер).
40. Мутации.
50. Если условия остановки не выполнены, вернуться в 2o.
Рассмотрим эти этапы более подробно, с учетом специфики ЗК.
1 0 . Формирование начальной популяции.
Популяция в генетическом алгоритме состоит из некоторого числа хромосом. Каждая хромосома являет собой некоторое уникальное решение поставленной задачи
или некоторой ее части. Природа хромосомы может быть абсолютно любая, главное, чтобы это не противоречило условию задачи. Например, хромосома, задающая путь в ЗК, может иметь вид, представленный на рис. 1. Здесь каждое число — это некоторый порядковый номер вершины в графе, а их последовательность — последовательность соединенных вершин, образующих путь.
Рис. 1. Пример хромосомы в генетическом алгоритме
20. Селекция.
Оператор селекции — это оператор, при помощи которого хромосомы (разнообразие решений), имеющие более высокое значение целевой функции (лучшие показатели, признаки), получают большую возможность для производства потомков, чем «худшие» хромосомы. Элементы, выбранные для репродукции, обмениваются генетическим материалом, создавая более разнообразных потомков (решений).
Оператор селекции считается эффективным, если создается возможность перехода из одного подмножества уникальных решений в другое подмножество. Это повышает вероятность нахождения глобального оптимума целевой функции. Выделяют два основных типа реализации оператора селекции: случайный выбор хромосом; выбор хромосом на основе значений целевой функции.
Существует большое число видов операторов селекции. К ним относятся:
- селекция на основе рулетки. Данная селекция основана на вероятностном подходе к выбору. «Более сильные» хромосомы имеют более высокие шансы быть избранными, чем «слабые». Если проводить аналогии с рулеткой, то мы имеем рулетку, где каждой хромосоме отведена некоторая область, соизмеримая с «силой» хромосомы. Соответственно, при повороте рулетки лучшие хромосомы будут иметь больший шанс быть выбранными;
- селекция на основе заданной шкалы. Здесь популяцию сортируют по возрастанию на основе некоторого критерия. Каждой хромосоме присваивается определенное число, и селекция будет выполняться на основании этого числа;
- элитная селекция. В данном случае селекцию проходят хромосомы с лучшими значениями целевой функции. Такие хромосомы называются элитными хромосомами;
- турнирная селекция. Здесь выбирается некоторое число хромосом (размер «турнира») случайным образом или последовательно из популяции, и лучшие участники турнира будут проходить селекцию.
30. Скрещивание (кроссинговер).
Оператор скрещивания (кроссинговера) — это конструкция, позволяющая на основе скрещивания хромосом родителей получать новые хромосомы — потомки. Разнообразие таких операторов велико, поскольку именно они определяют эффективность работы генетического алгоритма. Рассмотрим некоторые из них:
- простой (одноточечный) оператор кроссинговера. Перед началом работы одноточечного оператора определяется разрезающая точка оператора кроссинговера, которая обычно задается случайно. Эта точка определяет место в двух особях, где они должны быть «разрезаны»;
- двухточечный оператор кроссинговера. В каждой хромосоме определяются две точки оператора, и хромосомы обмениваются участками, расположенными между двумя точками оператора кроссинговера;
- упорядоченный оператор кроссинговера. Здесь «разрезающая» точка также выбирается случайно. Разрезав родительские хромосомы по «разрезающей» точке, мы получим два сегмента для каждого родителя: (Р/; Р/} и (Р2; Рг2}, где Р/ и Ргг — левый и правый сегмент ¿-го родителя. Тогда потомок Б состоит из Р/ в первой части хромосомы, а остальные позиции в Б берутся из хромосомы второго родителя в упорядоченном виде слева направо, исключая уже существующие значения в Б. Второй потомок образуется аналогично, только первая часть хромосомы потомка состоит уже из Р 2 и остатка от первого родителя;
- частично соответствующий оператор кроссинговера. Здесь также случайно выбирается «разрезающая» точка. Дальше анализируются сегменты в обеих хромосомах и устанавливается частичное соответствие между элементами первого и второго родителей с формированием потомков. При этом правый сегмент Р2 переносится в Б, левый сегмент Р1 переносится в Б с заменой повторяющихся генов на отсутствующие гены, находящиеся в частичном соответствии;
- циклический оператор кроссинговера. Этот оператор выполняет рекомендации согласно циклам, которые существуют при установлении соответствия между генами первого и второго родителей.
30. Мутации.
Оператор мутации позволяет получить потомка из одного родителя путем изменения состава хромосомы этого родителя. В общем случае оператор описывается следующим образом: в хромосоме случайным образом выбирается одна или несколько пар позиций; элементы в данных позициях в хромосоме меняются местами, тем самым получая новую хромосому.
Оператор применяется в том случае, если алгоритм долгое время не сходится, т. е. не удовлетворяется критерий останова. Если во время скрещивания получается некорректная хромосома с точки зрения условия задачи, мутацию можно применить для изменения хромосомы и приведения ее в корректную форму.
Исследования [2, 8] показали, что ГА дает лучший результат из описанных приближенных алгоритмов. В программной реализации в качестве решения ЗК будет использоваться именно ГА с жадной модификацией.
2. НАХОЖДЕНИЕ ОПТИМАЛЬНЫХ ЦЕНТРОВ И КЛАСТЕРОВ В ЗАДАЧАХ ДИСКРЕТНОЙ ОПТИМИЗАЦИИ НА ГРАФАХ
Методы кластеризации условно можно разбить на автоматические и интерактивные; использующие априорную информацию или универсальные, которые не используют априорную информацию (о компактности, однородности и др.). К универсальной группе методов и алгоритмов относят алгоритм K-means; алгоритмы, использующие метрические характеристики; алгоритмы построения различных разрезов и др. [3, 12, 13, 17].
Алгоритм K-means (K-средних) предполагает быстрый кластерный анализ путем выделения k кластеров, которые располагаются на максимальном расстоянии друг от друга [30]. Число кластеров k выбирается интуитивно либо опираясь на результаты экспериментов [23]. Идея алгоритма состоит в том, что центры кластеров соответствуют локальным максимумам плотности распределения данных. Базовый алгоритм K-means предполагает случайный или эвристический выбор k центров кластеров, размещение каждой вершины графа в кластер с ближайшим центром к этой вершине, после чего заново пересчитываются центры кластеров до сходимости процесса. Алгоритм гарантированно сходится, но не обязательно приводит к оптимальному решению, поскольку зависит от начального множества кластеров и значения k. Вычислительная сложность алгоритма K-means равна O(nkt), где n — размерность сети, k — число кластеров, а t — число итераций, которые требуются алгоритму для приведения кластеров к стабильному состоянию. К недостаткам алгоритма относится его чувствительность к локальным изменениям сети (запреты, предписания, удаление элементов и т. п.), снижение скорости работы на больших объемах данных, необходимость предварительно указывать число кластеров k [28].
Метод разреза графа предполагает, что сложная сеть представляется в качестве взвешенного неориентированного графа. Между всеми вершинами строятся ребра,
веса которых показывают меру сходства между вершинами по какой-либо характеристике. Исходная сеть в виде графа разрезается на подграфы, чтобы внутри подграфа веса ребер значительно отличались от весов ребер, связывающих подграфы. Одними из лучших графовых алгоритмов на сегодняшний день считаются алгоритм NormaZizedCut [37] и его модификации [22, 29], алгоритм NestedCuts [38], а также алгоритм SWA [23, 36]. Большинство алгоритмов минимального разреза графа имеют трудоемкость O(n), где n — общее число вершин графа, но требуют значительных затрат памяти для хранения матриц расстояний размером n х n. Поэтому их затруднительно применять к сетям большой размерности. Таким образом, проблема построения алгоритмов кластеризации всей сети на основе кластеризации графов с приемлемыми требованиями к памяти и быстродействию остаётся актуальной.
Автоматические методы и алгоритмы не позволяют находить решение произвольных задач кластеризации с гарантированным результатом. Ни один из автоматических методов и алгоритмов не идеален, в лучшем случае необходимо использовать гибридную кластеризацию из разных комбинаций алгоритмов кластеризации, полученных разными методами с разными параметрами. Применительно к задачам кластеризации изображений как графовых структур в [32] было проведено сравнение различных бионических подходов. Рассмотрено 80 различных бионических методов. Сравнивались генетические алгоритмы (GA), эволюционные стратегии (ES), генетическое программирование (GP), метод роя частиц (PSO), метод муравьиных колоний (АСО). В качестве критерия сравнения для алгоритмов кластеризации, как правило, используют точность работы и скорость выполнения.
Для алгоритма кластеризации важное значение имеет сложность обрабатываемой сети. Роевые методы кластеризации, в частности DarwinianPSO и Fractional — OrderDarwinianPSO, описаны в [24, 25]. Особенностью применения роевых методов является возможность нахождения квазиоптимальных решений, что рекомендуется учитывать при выборе между скоростью работы и качеством решения.
Наилучшую точность кластеризации для сложноструктурированных сетей показывают муравьиные алгоритмы, в частности для задач обработки изображений [21, 30, 35]. Данные этих исследований показали значительное влияние целевых функций муравьиных алгоритмов на процесс разметки сети на кластеры, что позволяет сделать вывод о зависимости точности результата от используемых критериев целевой функции. Анализ алгоритмов эволюционных стратегий [39] и генетических
алгоритмов [34] показал, что данный подход можно применять для обработки сложно структурированных сетей, но результат обладает меньшей степенью точности, а сходимость наблюдается в меньшем проценте случаев.
В качестве задачи ДО возьмем ЗК для k агентов. Искомый граф будет иметь большое количество вершин, поэтому для решения ЗК будет применяться один из эвристических алгоритмов. Граф имеет полную связность.
Решаются две задачи: нахождение оптимальных центров кластеров; формирование оптимальных кластеров на основании критерия качества и решение ЗК на кластерах.
2.1. Нахождение оптимальных центров кластеров. В качестве исходных данных задаем количество кластеров k. Будем считать, что оптимальность центра кластера задается двумя параметрами: удаленность центра от других центров кластеров; выполнение «гипотезы компактности» для текущего кластера. Гипотеза компактности в задачах кластеризации — предположение о том, что схожие объекты гораздо чаще лежат в одном кластере, чем в разных; или, другими словами, что кластеры образуют компактно локализованные подмножества в пространстве объектов. Это также означает, что граница между кластерами имеет достаточно простую форму.
Для решения этой задачи подойдет алгоритм кластеризации K-means. В классической реализации алгоритма K-means не требуется задавать искомые центры, а достаточно знать количество кластеров. Следовательно, алгоритм способен сам подобрать оптимальные для него кластеры (подграфы). Разбив граф на соответствующие подграфы, можно взять центр каждого подграфа, где центр — множество вершин, имеющих минимальный эксцентриситет. Нам достаточно одной вершины из каждого такого множества. Соответствующие вершины и будут оптимальными центрами для исходного графа с заранее заданным количеством кластеров.
Предпочтение алгоритма K-means можно аргументировать тем, что этот алгоритм показывает хорошие результаты кластеризации с различными критериями качества. Единственным альтернативным вариантом со схожим уровнем точности можно отметить вероятностный EM-алгоритм. Но он имеет несколько недостатков, в следствие которых получить с его помощью необходимые центры не представляется возможным, хотя бы потому, что алгоритм не предназначен для «навязывания» ему количества кластеров.
Алгоритм K-means также придерживается гипотезы компактности (форма кластеров — сферическая), поскольку использует в качестве критерия «схожести» расстояние от вершины до центра кластера. Отсюда вытекает и тот факт, что центры кластеров будут максимально удаленными друг от друга.
2.2. Нахождение оптимальных кластеров на основании критерия качества.
Рассмотрим ЗК для к агентов. Имеем исходный граф, на котором выделены базы для каждого агента. Будем считать, что все агенты готовы пойти на условие, что каждому достанется «приблизительно» равный подграф искомого графа. Ставится задача: по искомым центрам разбить граф на к кластеров 0i,г = 1, к так, что все агенты проходят почти равные расстояния /¿(С^ ~ /среднее ,£ = 1,к. Равенство кластеров относительно ЗК будем оценивать по следующему критерию качества:
max/i(Gj) - min/i(Gi) 1<i<k 1<i<k
< £
В качестве целевой функции выбрано значение пройденного пути в ЗК. Нахождение кратчайшего пути будет осуществляться ГА с элитной селекцией, частично соответствующим скрещиванием и с использованием жадной эвристики. Данная модификация предполагает, что одна из хромосом ГА в начальной популяции будет формироваться жадным алгоритмом (ближайший сосед). Такая хромосома гарантирует локальный оптимум, как и любая жадная эвристика, и при этом способствует более быстрой сходимости ГА. Проблема «застоя» в локальном оптимуме решается тем, что во время селекции половина хромосом из предыдущего поколения останутся в новом поколении. Поэтому «слабые» хромосомы могут внести свой дальнейший вклад в выходе из локального оптимума.
Получив начальное разбиение графа на к кластеров и значения целевой функции для каждого подграфа генетическим алгоритмом, оптимизируем кластеры путем балансирования значений целевой функции для каждого кластера. Для этого необходимо «перебросить» вершины из самого крупного по значению целевой функции кластера Стах в самый малый — Возьмем ближайшую вершину из Стах до
Стт и присвоим ее кластеру Стах. При этом если расстояние между кластерами большое и/или между ними есть другие кластеры, то необходимо передать вершину из 0max в ОтгП «транзитом» через все кластеры, лежащие между данными:
С _^ С _v _v С _v С
Стах Т С1 Т ••• Т Ст Т 0min,
где 0i — кластеры между Ста и г = 1, т.
Будем считать, что кластер С2 лежит между С1 и С3, если:
'р(С1,С2) < р(Сь Сз),
где р(х,у) — расстояние от центра кластера х до центра кластера у. После первого «перебрасывания» вершин применим генетический алгоритм для нового разбиения. Такие «перебрасывания» будем совершать до тех пор, пока не выполнится условие
остановки (1). При этом е может быть сколь угодно малым. Впрочем, брать слишком малые значения не стоит, ввиду того, что алгоритм может подобрать кластеры с очень большим разбросом вершин, что не является приемлемым. В программной реализации используется динамическое увеличение е (порога), если алгоритм не смог подобрать кластеры за некоторое количество итераций.
Данный алгоритм позволяет подобрать оптимальные подграфы с сохранением заданных центров для каждого кластера. Разбиение почти всегда будет неприемлемым, если обнаружатся центры, которые будут расположены близко друг к другу. В таком случае необходимо сначала найти оптимальные центры, а потом применить данный алгоритм.
В наиболее простом случае под синтезом алгоритмов кластеризации и решения ЗК будем понимать использование любого алгоритма кластеризации для получения начального разбиения исходного графа на подграфы и любого алгоритма решения ЗК. В общем случае синтез алгоритмов кластеризации и решения ЗК для k агентов выглядит следующим образом.
1. Для исходного графа ввести нужное количество кластеров k и центры.
2. Найти начальное разбиение графа на k кластеров с использованием текущих центров.
3. Если начальное разбиение на текущих центрах оказалось неприемлемым, то подобрать новые центры с помощью K-means.
4. Переопределить кластеры с помощью механизма «перебрасывания» вершин.
5. На каждом кластере найти решение локальной ЗК.
6. Найти значение целевой функции для каждого кластера текущего разбиения.
7. Проверить условие сходимости и, если оно не выполнено, вернуться в п. 4.
В качестве алгоритма кластеризации графа для начального разбиения подойдет любой алгоритм кластеризации с четкой принадлежностью вершин. ЗК также может решаться любым из известных алгоритмов. Данный синтез алгоритмов применим не только для ЗК, поскольку целевой функцией может быть целевая функция любой задачи ДО на графах, для которой необходимо применить кластеризацию и для которой можно сформулировать условие сходимости алгоритма синтеза.
2.3. Программная реализация. Среда программирования: Microsoft Visual Studio 2015 (Windows Forms); язык программирования: C#. Исходные данные: полный граф (100 вершин), количество кластеров k и их центры. Рассмотрим задачу многих агентов-коммивояжеров, с «плохими» начальными условиями, т. е. центры каждого агента будут расположены близко друг к другу. Для примера пусть число агентов
будет 5, а центрами — вершины 1, 2, 3, 4, 5. Реализуем кластеризацию графа алгоритмом K-means и жадным алгоритмом c распараллеливанием по исходным данным (рис. 2), сохраняя текущие центры (вершины, выделенные голубым цветом).
(a) (b)
Рис. 2. Разбиение графа на пять подграфов: (а) методом K-means; (b) жадным алгоритмом c распараллеливанием
Получив данные разбиения, применим ГА для нахождения оптимального пути для каждого подграфа (рис. 3).
Рис. 3. Построение ГА оптимального маршрута для кластеров, полученных: (а) алгоритмом K-means; (b) жадным алгоритмом c распараллеливанием
Сравним результаты.
На рис. 4 слева отображены значения целевой функции для соответствующего кластера, а в скобках — количество вершин в подграфе; справа — дополнительная информация: сумма значений целевых функций, их среднее значение, минимальное и максимальное значение и разница между минимумом и максимумом.
К: 5 К: 5
Centers: 1 2 3 4 5 Centers: 12 3 4 5
2371 (32) Sum: 8037 • 1646 (19) Sum: 8829
2511 (33) M ea il s: 1607 * 1608 [19) M ea n s: 1755
190(3) Max: 2511 • 1789 (18) Max: 1895
1142(9) Min: 190 • 1895 (25) Min: 1608
1823 (23} Max-Min: 2321 • 1891(19) Max-Min: 287
(a) (b)
Рис. 4. Результаты работы: (а) алгоритма К-теапз; (Ь) жадного алгоритма с распараллеливанием
Учитывая, что оптимальность кластеров характеризуется не только минимизацией значения целевой функции, но и ее усреднением по всем кластерам, можно однозначно сказать, что жадный алгоритм с модификацией распараллеливания отработал лучше и при этом разница между наибольшим и наименьшим кластером невелика.
В общем случае жадный алгоритм с данной модификацией практически всегда будет давать приемлемый результат, и поэтому рекомендуем к использованию в качестве начального разбиения для синтеза алгоритмов.
Смысл модификации распараллеливания заключается в том, чтобы разбиение графа проходило по жадному алгоритму параллельно, когда кластеры ведут себя независимо друг от друга, за исключением того, что одна вершина не может одновременно принадлежать нескольким кластерам.
(a) (b)
Рис. 5. Разбиение графа на подграфы с новыми центрами: (а) методом K-means; (b) жадным алгоритмом c распараллеливанием
Найдем оптимальные центры для данного графа при k=5 и снова применим те же алгоритмы кластеризации. Как видно из самих разбиений на рис. 5, кластеры получились более компактными, с выдержанной формой (сферической) и без пересечений.
Применим ГА для данных разбиений (рис. 6) и сравним результаты. По данным на рис. 7 видно, что найденные оптимальные центры оптимизируют алгоритм K-means, поскольку теперь не наблюдается сильных расхождений между кластерами. Однако, жадный алгоритм отработал сравнительно одинаково как для искомых центров, так и для новых. Это еще раз подчеркивает, что жадный алгоритм с распараллеливанием всегда дает адекватный результат.
(a)
(b)
Рис. 6. Построение ГА оптимального маршрута для кластеров с новыми центрами, полученных: (а) алгоритмом К-тваив; (Ь) жадным алгоритмом с распараллеливанием
(a)
(b)
Рис. 7. Результаты: (а) алгоритма К-тваив с новыми центрами; (Ь) жадного алгоритма с новыми центрами
Реализуем синтез алгоритмов кластеризации и решения ЗК. В качестве начального разбиения будем использовать K-means и жадный алгоритм с распараллеливанием; в качестве решения ЗК — генетический алгоритм (рис. 8, 9).
(a) (b)
Рис. 8. (a) Результат кластеризации синтезом c K-means в качестве начального разбиения; (b) результат работы ГА для подграфов, полученных с помощью синтеза, с K-means в качестве начального
(a) (b)
Рис. 9. (а) Результат кластеризации синтезом, с жадным алгоритмом в качестве начального разбиения; (Ь) результат работы ГА для подграфов, полученных с помощью синтеза, с жадным алгоритмом в качестве начального разбиения
На рис. 10, 11 из графиков видно, что синтез приближает значения целевых функций для всех кластеров к среднему значению (ЛудБуп), с некоторым отклонением е — как один из параметров критерия качества (1). В данной реализации £=100, с последующим увеличением порога, если алгоритм долго не сходится. На рис. 10
Рис. 10. Результаты синтеза с K-means в качестве начального разбиения
Рис. 11. Результаты синтеза с жадным алгоритмом в качестве начального разбиения
разница между максимальным и минимальным значениями целевой функции оказалась меньше £=100, а на рис. 11 близко к е. Это значит, что критерий качества (1) выполняется, но сходимость алгоритма сильно зависит от начального разбиения. По рис. 10, 11 можно наблюдать численную разницу между начальным разбиением (значения справа) и после реализации алгоритма синтеза (значения слева).
Заключение
В работе рассмотрены алгоритмы кластеризации графов, а также их применение для задач ДО на графах на примере задачи для k коммивояжеров. Рассмотрены основные алгоритмы решения ЗК и некоторые их модификации. На основе теоретических результатов разработана программная реализация следующих алгоритмов кластеризации: иерархический алгоритм, K-means и жадный алгоритм с различными модификациями. Был реализован генетический алгоритм для решения ЗК, а также синтез алгоритмов кластеризации и решения ЗК с нахождением оптимальных центров.
Основной задачей работы было нахождение оптимальных кластеров или подграфов искомого графа с учетом равномерного распределения маршрутов коммивояжеров по кластерам. В результате продемонстрировано отличие между разбиением графа на кластеры (с сохранением искомых центров в этих кластерах) и нахождением оптимальных центров для дальнейшей кластеризации с ними. Для поиска оптимальных по отношению к задаче k коммивояжеров подграфов был разработан синтез алгоритмов кластеризации и решения задач ДО и реализован на примере ЗК для k агентов. Суть метода заключается в механизме «перебрасывания» вершин из более крупных кластеров в более мелкие, до тех пор, пока не будет выполнено условие сходимости, целевая функция которого зависит от длины путей коммивояжеров. Предусмотрены различные варианты этого механизма, включая транзитную передачу вершин через кластеры, находящиеся между крупными и мелкими кластерами, для того чтобы результирующие кластеры не потеряли компактность и не создавали пересечений в дальнейшем поиске оптимального маршрута.
Описок литературы
1. Ахо, А. В. Структуры данных и алгоритмы / А. В. Ахо, Д.Е. Хопкрофт, Д.Д. Ульман. - M., СПб, Киев: Вильямс, 2000. - 384 с.
AHO, A., HOPKROFT, J. and ULLMAN, J. (2000) Data structures and algorithms. Moscow: Vilyams.
2. Борознов, В. О. Исследование решения задачи коммивояжера // Вестн. Астра-хан. гос. техн. ун-та. Сер. управление, вычислительная техника и информатика. - 2009, № 2. - C. 147-151.
BOROZNOZ, V. O. (2009) Research of the Task Solution. Bulletin of the Astrakhan State Technical University. A series of management, computer technology and informatics. 2. p. 147-151.
3. Воронцов, К. В. Лекции по алгоритмам кластеризации и многомерного шкалирования // [Электронный ресурс]. — Режим доступа: http://www.ccas.ru/voron/download/Clustering.pdf
VORONTSOV, K. V. (2007) Lectures on algorithms for clustering and multidimensional scaling. [Online] Available from: http://www.ccas.ru/voron/download/Clustering.pdf
4. Германчук, М. С. Использование дополнительной информации в задачах дискретной оптимизации типа многих коммивояжеров // Таврический вестник информатики и математики. — 2016, № 2(33). — C. 68-82.
GERMANCHUK, M. S. (2016) Information Exploration for Discrete Optimization Problems such as Multiple Traveling Salesman Problems. Taurida Journal of Computer Science Theory and Mathematics. 4. p. 68-82.
5. Германчук, М. С., Козлова, М. Г., Пивовар, А. Е.Многоагентный подход к решению задач коммивояжера // Математика, информатика, компьютерные науки, моделирование, образование: сб. науч. трудов научно-практической конференции МИКМ0-2017 и Таврической научной конференции студентов и молодых специалистов по математике и информатике / Под ред. В. А. Лукьяненко. — Симферополь: ИП Корниенко А. А., 2017. — С. 114-119.
GERMANCHUK, M. S. (2017) Multi-agent approach to the solution of the traveling salesman's problems. Mathematics, computer science, computer science, modeling, education. p. 114-119.
6. Германчук, М. С., Козлова, М. Г. Задача реоптимизации сети // Математика, информатика, компьютерные науки, моделирование, образование: сб. науч. трудов научно-практической конференции МИКМ0-2017 и Таврической научной конференции студентов и молодых специалистов по математике и информатике / Под ред. В. А. Лукьяненко. — Симферополь: ИП Корниенко А. А., 2017. — С. 109-113.
GERMANCHUK, M. S. (2017) Network reoptimization task. Mathematics, computer science, computer science, modeling, education. p. 109-113.
7. Гипотеза компактности // MachineLearning.ru [Электронный ресурс]. — Режим доступа:
http://www.machinelearning.ru/wiki/index.php?title=Гипотеза_компактности
MachineLearning.ru. (2011) The compactness hypothesis. [Online] Available from: http://www.machinelearning.ru/wiki/index.php?title=Гипотеза_компактности.
8. Гладков, Л. А. Генетические алгоритмы / Л. А. Гладков, В. В. Курейчик,
B. М. Курейчик. — M.: ФИЗМАТЛИТ, 2006. — 320 с.
GLADKOV, L. A., KUREYCHIK, V. V. and KUREYCHIK, V. M. (2006) Genetic algorithms. Moscow: FIZMATLIT.
9. Гудман, С. Введение в разработку и анализ алгоритмов / С. Гудман,
C. Хидетниеми. — M.: Мир, 1981. — 368 с.
GOODMAN, S., HIDETMIEMY, S. (1981) Introduction to algorithm design and analysis. Moscow: Mir.
10. Емельянов, В. В. Теория и практика эволюционного моделирования / В. В. Емельянов, В. В. Курейчик, В. М. Курейчик. — M.: ФИЗМАТЛИТ, 2003. — 432 с.
EMELIANOV, V. V., KUREYCHIK, V. V. and KUREYCHIK, V. M. (2003) Theory and practice of evolutionary modeling. Moscow: FIZMATLIT.
11. Канцедал, С. А., Костикова, М. В.Динамическое программирование для задачи коммивояжера // Автоматизированные системы управления и приборы автоматики. — 2014. — С. 15-20
KANCEDAL, S. A., KOSTIKOVA, M. V. (2014) Dynamic programming for traveling salesman problem. Automated control systems and automation devices. . p. 15-20.
12. Князь, Д. В. Методы кластеризации многомерных статистических данных // Молодежь и наука: сборник материалов Х Юбилейной Всероссийской научно-технической конференции студентов, аспирантов и молодых ученых с международным участием, посвященной 80-летию образования Красноярского края / Отв. ред. О. А. Краев — Красноярск: Сиб. федер. ун-т, 2014 // [Электронный ресурс]. — Режим доступа:
conf.sfu-kras.ru/sites/mn2014/pdf/d02/s13/s13_007.pdf
KNYAZ, D. V. (2014) Methods clustering high-dimensional statistics. [Online] Available from: conf.sfu-kras.ru/sites/mn2014/pdf/d02/s13/s13_007.pdf
13. Куприянова, Н. И. Концептуальная модель кластеризации данных // Известия ЮФУ. Технические науки. — 2012, № 4 (129). — C. 256-260.
KUPRIYANOVA, N. I. (2012) Conceptual model of data clustering. Bulletin of the Southern Federal University. 4(129). p. 256-260.
14. Курейчик, В. М., Родзин С. И. Эволюционные алгоритмы: генетическое программирование // Известия РАН. Теория и Системы Управления. — 2002, № 1. — C. 127-137.
KUREYCHIK, V. M., RODZIN S. I. (2002) Evolutionary algorithms: genetic programming. Bulletin of The Russian Academy Of Sciences. Theory and management systems. 1. p. 127-137.
15. Курейчик, В. М. Поисковая адаптация: теория и практика / В. М. Курейчик, Б. К. Лебедев, О. В. Лебедев. — M.: ФИЗМАТЛИТ, 2006. — 272 с.
KUREYCHIK, V. M., LEBEDEV, B. K. and LEBEDEV, O. V. (2006) Search adaptation: theory and practice. Moscow: FIZMATLIT.
16. Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. — M.: Горячая линия — Телеком, 2006. — 452 c.
RUTKOVSKAYA, D., PILINSKIY, M. and RUTKOVSKIY, L. (2006) Neural networks, genetic algorithms and fuzzy systems. Moscow: Goryachya liniya — Telekom.
17. Силин, И., Панов, М.Обзор и экспериментальное сравнение алгоритмов кластеризации графов // Сборник трудов 39-й междисциплинарной школы-конференции ИППИ РАН «Информационные технологии и системы 2015». — М.: ИППИ РАН. — С. 1042-1059.
SILIN, I., PANOV M. (2015) Review and experimental comparison of graph clustering algorithms. Proceedings of the 39th interdisciplinary school-conference of "Information technologies and systems 2015". p. 1042-1059.
18. Узарашвили, В. М., Германчук, М. С.Взаимодействие интеллектуальных агентов в решении сетевых задач. Обзор подходов // Математика, информатика, компьютерные науки, моделирование, образование: сб. науч. трудов научно-практической конференции МИКМ0-2017 и Таврической научной конференции студентов и молодых специалистов по математике и информатике / Под ред. В. А. Лукьяненко. — Симферополь: ИП Корниенко А. А., 2017. — С. 172-177.
UZARASHVILIV. M., GERMANCHUK, M. S. (2017) Interaction of intelligent agents in solving network problems. Overview of approaches. Mathematics, computer science, computer science, modeling, education. p. 172-177.
19. Штовба, С. Д.Муравьиные алгоритмы // Exponenta Pro. Математика в приложениях, 2003. — №4. — С.70-75.
SHTOVBA S. D. (2003) Ant Algorithm. Exponenta Pro. Mathematics in applications. 4. p. 70-75.
20. CATHERINE A., JAMES G. M. (2003) Finding the number of clusters in a data set: An information theoretic approach. Journal of the American Statistical Association. Vol.98. p. 450-763.
21. FENG Y., WANG Z. (2011) Ant Colony Optimization for Image Segmentation. Ant Colony Optimization — Methods and Applications. p. 263-286.
22. FOWLKES С., BELONGIE S. (2001) Efficient Spatiotemporal Grouping Using the Nystrom Method. Computer Vision and Pattern Recognition. — Proceedings of the IEEE Computer Society Conference. Vol. 1. p. 231-238.
23. GALUNM., SHARON E., BRANDT A., BASRIY R. (2003) Texture Segmentation by Multiscale Aggregation of Filter Responses and Shape Elements. Proceedings of IEEE conference on Computer vision. Vol. 1. p. 716-723.
24. GHAMISI P., COUCEIRO M. S., FERREIRA M. F., KUMAR L. (2012) An Efficient Method for Segmentation of Remote Sensing Images Based on Darwinian Particle Swarm Optimization. Proc. of the IEEE Int. Geoscience and Remote Sensing Symposium - Remote Sensing for a Dynamic Earth (IGARSS'2012). p. 20-28.
25. GHAMISI P., COUCEIRO M. S., MARTINS M. L., BENEDIKTSSON J. A. (2013) Multilevel Image Segmentation Based on Fractional-Order Darwinian Particle Swarm Optimization. IEEE Transactions on Geoscience and Remote Sensing. p. 1-13.
26. GOLDBERG D. E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley. 405 p.
27. HARTIGAN J. A., WOND M. A. (1979) Algorithm AS 136: A K-Means Clustering Algorithm. Journal of the Royal Statistical Society. Series C28(1). p. 100-108.
28. HATAMLOUA A., ABDULLAHB S., NEZAMABADIH. (2012) A combined approach for clustering based on K-means and gravitational search algorithms. Swarm and Evolutionary Computations. Vol. 6. p. 47-52.
29. KEUCHEL J., SCHNORR C. (2003) Efficient Graph Cuts for Unsupervised Image Segmentation using Probabilistic Sampling and SVD-based Approximation. Third
International Workshop on statistical and computational theories of Vision. p. 120128.
30. LAPTIK R., NAVAKAUSKAS D. (2007) Application of Ant Colony Optimization for Image Segmentation. Elektronika ir Elektrotechnika. Vol. 8(80). p. 13-18.
31. LEE Z-J., SU S-F., LEE C-Y., HUNG Y-S. (2003) A heuristic genetic algorithm for solving resource allocation problems. Knowledge and Information Systems. Vol. 4, N4. p. 503-511.
32. NORHARYATI A., NOOR E. A, SAADIAH Y., NOORHAYATI M. N.
A Review of Bio-inspired Algorithms as Image Processing Techniques. http://www.academia.edu/3378857/A_Review_of_Bio-inspired_Algorithms_as_Image_processing_Techniques
33. POLIR., LANGDON W. B. and MCPHEE N. F. (2008) A Field Guide to Genetic Programming. Lulu Enterprises, UK. 252 p.
34. RAMOS V., MUGEF. (2000) Image Colour Segmentation by Genetic Algorithms. Cornel University Labrary. [Online] arXiv Database . p. 1-5. Available from: https://arxiv.org/ftp/cs/papers/0412/0412087.pdf. [Accessed: 20th December 2017].
35. SAATCHI S. and HUNG C. (2007) Swarm Intelligence and Image Segmentation. Swarm Intelligence, Focus on Ant and Particle Swarm Optimization. Vol. 1. p. 163178.
36. SHARON E., BRANDT A., BASRIY R. (2000) Fast Multiscale Image Segmentation. Proc. of IEEE conf. on Computer vision and pattern recognition. Vol. 1. p. 70-77.
37. SHI J., MALIK J. (2000) Normalized Cuts and Image Segmentation. Journal IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 22. Issue 8. p. 888905.
38. VEKSLER O. (2000) Image Segmentation by Nested Cuts. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. p. 339-344.
39. YUAN X., ZOURIDAKIS G., SITU N. (2008) Automatic Segmentation of Skin Lesion Images Using Evolution Strategies. Biomedical Signal Processing and Control. Vol. 3. Issue 3. p. 220-228.