Разработка и исследование ускоренного алгоритма калибровки моделей больших сетей по коэффициенту кластеризации
Аннотация граф сеть алгоритм калибровка Объектом выполнения данного исследования является разработка ускоренного алгоритма генерации графов по правилу предпочтительного связывания, позволяющего калибровать графы как по распределению степени вершин, так и по коэффициенту кластеризации. В качестве предмета работы была выбрана разработка ускоренного алгоритма калибровки графов с нелинейным правилом… Читать ещё >
Разработка и исследование ускоренного алгоритма калибровки моделей больших сетей по коэффициенту кластеризации (реферат, курсовая, диплом, контрольная)
Бакалаврская работа на тему Разработка и исследование ускоренного алгоритма калибровки моделей больших сетей по коэффициенту кластеризации
Аннотация граф сеть алгоритм калибровка Объектом выполнения данного исследования является разработка ускоренного алгоритма генерации графов по правилу предпочтительного связывания, позволяющего калибровать графы как по распределению степени вершин, так и по коэффициенту кластеризации. В качестве предмета работы была выбрана разработка ускоренного алгоритма калибровки графов с нелинейным правилом предпочтительного связывания по коэффициенту кластеризации. Целью работы является изучение уже существующие алгоритмов калибровки графов по коэффициенту кластеризации, разработка нового алгоритма, его реализация и проведение необходимых испытаний. В ходе выполнения выпускной квалификационной работы была изучена теория случайных графов, основные модели сетей (графы Барабаши-Альберт, Эрдеша-Реньи, Уотса-Строгатса и др.), разработан алгоритм. Также была изучена программная среда R и были проведены необходимые испытания.
В результате исследования было решено ряд задач. Был разработан ускоренный алгоритм калибровки больших сетей по коэффициенту кластеризации. Полученный алгоритм был реализован на языке Java в среде Eclipse. В конце исследования был проведён анализ экспериментальных данных.
Определения, обозначения, сокращения АС — автономная сеть БС — большие сети БСВ — большая случайная величина БСС — большая стохастическая сеть граф БА — граф Барабаши-Альберт граф с НППС — граф с нелинейным правилом предпочтительного связывания ДСВ — дискретная случайная величина
ПС — предпочтительное связывание РСС — распределение степени связности сл.г. — случайный граф
В современном мире можно обнаружить множество различных сетей. Это и биологические сети, сети дорог, телефонные сети, нейронные сети и в том числе сети интернет.
С геометрической точки зрения сеть представляет собой множество одинаковых компонентов — вершин, связанных друг с другом рёбрами, поэтому исследование сетей неразрывно связано с теорией графов. Теория графов возникла в восемнадцатом веке в работе Леонарда Эйлера, чья ранняя работа в основном касалась маленьких графов с высокой степенью регулярности. В двадцатом веке особенно большое внимание уделялось изучению случайных графов. Теория случайных графов широко используется в изучении сложных сетей. Теория случайных графов была представлена Полом Эрдешом и Альфредом Реньи, после того, как Эрдеш открыл, что вероятностные методы часто оказываются полезными в проблемах теории графов.
С развитием технологий, одной из самых больших сетей стала сеть интернет («всемирная паутина», имеющая английскую аббревиатуру WWW — World Wide Web), и значительное внимание стало уделяться её исследованию. К тому же, к этому времени возможности вычислительной техники значительно возросли, позволив обрабатывать большие массивы данных, позволив тем самым строить модели больших сетей и исследовать их.
И действительно, имея мгновенный снимок сети интернет сейчас не сложно представить её в виде графа: каждый отдельный сайт будет вершинной графа, а ссылки между ними будут являться его рёбрами. Однако интернет является постоянно изменяющейся структурой и без исследований нельзя предугадать, как будет выглядеть данная сеть в следующий момент времени. Поэтому последнее время большое внимание стало уделяться моделям графов больших сетей (БС). А в исследовании сети интернет большую роль играют модели сетей на основе случайных графов.
Ранее большие сети рассматривались на основе классического случайного графа, получаемого случайным равномерным распределением. Однако при анализе реальной сети интернет исследователи столкнулись с иным характером распределения степени связности графа. Было выяснено, что распределение вероятностей узлов степени связности обычно подчиняется степенному закону. Случайный граф, удовлетворяющий данному условию, предложили А. Барабаши и Р. Альберт (1999), который строится на основе правила «предпочтительного связывания». Также действующие модели предложили Д. Уаттс и С. Строгатц (1998), М. Ньюман (2000), С. Н. Дороговцев, Дж. Мендес и А. Н. Самухин (2001), К. Купер и А. Фрези (2002), B. Боллобас (2001), Ф. Чанг и Л. Лу (2006), Ю. Лесковец (2006), В. Н. Задорожный (2010). Но, не смотря на большое разнообразие моделей, ни одна из сетей не даёт полного соответствия с реальной сетью. Так было выяснено, что почти все модели отличаются от моделируемых сетей по коэффициенту кластеризации и диаметру графа.
Следует также отметить, что программы для анализа графов и их генерации оказываются весьма медлительными, поскольку приходится генерировать большие графы, состоящие из сотен тысяч вершин и ребер. Поэтому в данной работе используются различные способы ускорения разработанных алгоритмов.
1. Аналитический обзор и постановка задачи
В данном разделе производится обзор существующих методов и по итогам ставится задача исследования.
В первом параграфе этого раздела описаны основные понятия теории сетей. Приводятся их необходимые описания и определения.
Во втором параграфе производится обзор существующих графовых моделей, вводятся понятия случайных графов Барабаши-Альберт, Эрдеша-Реньи, Уаттса-Строгатца, описаны правила их генерации.
В третьем параграфе вводится понятие случайного графа с нелинейным правилом предпочтительного связывания (НППС), который был предложена Задорожным В. Н. в 2010 году.
В четвёртом параграфе обсуждаются алгоритмы ускоренной генерации графов с НППС, калибровки графовых моделей для реализации заданного коэффициента кластеризации.
В конце раздела, исходя из представленной информации, ставится задача данного исследования.
1.1 Структурные характеристики случайных графов
В математической теории графов граф — это совокупность непустого множества вершин и набор пар вершин (связей между вершинами).
Объекты представляются как вершины, или узлы графа, а связи — как дуги, или рёбра. Для разных областей применения виды графов могут различаться направленностью, ограничениями на количество связей и дополнительными данными о вершинах или рёбрах.
Степень связности одной вершины равна количеству рёбер присоединённых к этой вершине. Также часто используется понятие средней степени связности графа. Данное значение можно получить, если поделить число рёбер в графе на число вершин это же графа и умножить на два, поскольку одно ребро связывает два узла.
Большие сети — это сети, содержащие тысячи вершин и связей между ними. Случайный граф (сл.г.) — граф, в которых ребра распределены случайным образом. Случайные графы (сл.г.) имеют ряд важных характеристик. Этими характеристиками обладают как реальные сети, так и их модели. Эти характеристики характеризуют важные свойства сетей, также по ним можно судить насколько точной является та или иная графовая модель сети. Рассмотрим первую характеристику — диаметр графа. Диаметр графа определяет максимальное расстояние (измеряемое в числе ребер) между вершинами в неориентированном графе, полученное в результате анализа расстояний между всеми парами вершин. С понятием диаметра графа связан эффект «Тесного мира», также известный, как правило «шести рукопожатий». Это правило означает, что перебирая круг своих ближайших знакомых, затем людей, знающих наших ближайших знакомых и т. д. любой человек опосредовано знаком с любым другим человеком в мире. Причём, как правило, число элементов в цепи не превышает 6. Другой, не менее важной характеристикой графа является коэффициент кластеризации. Коэффициент кластеризации C в общем случае определяется как утроенное отношение среднего числа n «треугольников» в графе к среднему числу nV «вилок» (число путей длины 2). Калибровка графа позволяет построить модель графа так, чтобы сохранить распределение степени связности (РСС) вершин, путём подбора других параметров, в зависимости от поставленных целей.
1.2 Некоторые модели случайных графов
В данной главе рассматриваются три основных модели случайных графов. Первая модель была предложена в 1999 г. Альбертом Барабаши и Реки Альберт, которые независимо открыли процесс предпочтительного присоединения. Другой рассмотренной моделью является модель Дункана Уаттса и Стивена Строгатца предложенная ими в 1998 г. Ими был обнаружен эффект, названный «тесным миром». Третьей описанной моделью является модель Эрдеша-Реньи для генерации случайных графов. Она была предложена на рубеже 50-х и 60-х годов.
1.2.1 Модель графа Барабаши_Альберт
Модель графа Барабаши — Альберт (граф БА) представляет собой алгоритм генерации случайных безмасштабных сетей с использованием правила предпочтительного связывания (ПС).
Правило предпочтительного связывания говорит, что чем большую степень связности имеет вершина, тем выше вероятность присоединения к ней новых вершин. Если для присоединения выбирать вершину случайным образом, то вероятность выбора определённой вершины будет пропорциональна её степени связности. Данное правило соответствует принципу «богатый становится богаче».
Данный граф выращивается из небольшого графа-затравки, у которого степень связности каждой вершины должны быть не меньше единицы.
Каждая новая вершина присоединяется к уже существующим вершинам с вероятностью пропорциональной степени связности этих вершин. Вероятность pi того, что вершина присоединится к i-ой вершине равна:
(1)
где ki -степень i-ой вершины.
1.2.2 Модель графа Уаттса-Строгатца
Большинство моделей сложных сетей представляют собой численную реализацию графа и генерируются на компьютере. Данная же модель появилась задолго до свободного распространения вычислительной техники.
Д. Уаттс и С. Строгатц обнаружили феномен, характерный для многих реальных сетей, названный эффектом «малого мира».
Модель «малого мира» состоит в том, что перебирая круг своих ближайших знакомых, затем людей, знающих наших ближайших знакомых (но не знающих нас непосредственно), и т. д. легко убедиться в следующем: достаточно проследить за небольшим числом цепочек таких знакомств, чтобы понять, что любой из нас опосредовано знаком с любым членом общества. В этом смысле наш мир является малым, откуда и пошло название этой модели.
Сетевые структуры, соответствующие свойствам малых миров, обладают следующими типичными свойствами: малая средняя длина пути относительно диаметра сети (что характерно также для случайных сетей) и большой коэффициент кластеризации.
При исследовании этого феномена ими была предложена процедура построения наглядной модели сети, которой присущ этот феномен.
Чтобы построить сеть «малого мира», следует начать с регулярной циклической решётки с N вершинами, каждая из которых соединена с k ближайшими соседями в каждом направлении. Для каждой вершины задаётся 2k связей, где N >> log2 (N) >> 1. Затем каждое ребро пересоединяется со случайной парой вершин с вероятностью p.
При условии p = 0 получается упорядоченная решётка с большим количеством циклов и большими расстояниями, а при условии p > 1 сеть становится случайным графом с короткими расстояниями, и малым количеством циклов.
Данная сеть может иметь три состояния:
? регулярная сеть, каждый узёл которой соединён с четырьмя соседними;
? та же сеть, у которой некоторые «ближние» связи случайным образом заменены более «дальними» (именно в этом случае возникает феномен «малого мира»);
? случайная сеть, в которой количество подобных замен превысило некоторый установленный порог.
На рисунке 1 представлена иллюстрация данной модели.
Рисунок 1 — Модель графа Уаттса-Строгатса [4]
Параметр p в данной модели отвечает за переброс рёбер в случайные положения. Так по рисунку 1 можно увидеть трансформацию из регулярной цепочки в модель «малого мира», а затем в случайный граф.
Компьютерная модель «малого мира» была разработана Уаттсом и Строгатсом несколькими годами позже.
Модель Уаттса-Строгатса представляет собой модель генерации случайного графа, имеющего высокий коэффициент кластеризации вершин и относительно небольшую среднюю длину пути.
1.2.3 Модель графа Эрдеша-Реньи
В теории графов модель Эрдеша — Реньи представляет собой модель для генерации случайного графа с постоянной вероятностью появления ребра между двумя вершинами независимо от других ребер. Согласно данной модели, граф конструируется с помощью соединения пар вершин случайным образом. Каждое ребро включается в граф с вероятностью p независимо для каждой пары вершин. С ростом p от 0 до 1 граф становится все более насыщенным ребрами. При p = 0 имеем пустой граф (граф, не имеющий ребер), при p = 1 — полносвязный граф. При фиксированном количестве вершин в графе вероятность p — единственный входной параметр модели Эрдеша — Реньи.
Простота модели Эрдеша — Реньи случайного графа позволяет получать различные аналитические оценки. Однако стоит отметить, что модель в среднем не воспроизводит такие типичные свойства реальных сетей, как степень вершин, величина коэффициента кластеризации и длины пути. [5]
1.3 Модель графа с НППС
Случайные графы с НППС были впервые предложены В. Н. Задорожным в 2010 году в статье. Данные графы генерируются на основе правила «предпочтительного связывания» (богатый становится богаче). Граф с НППС выращивается из графа-затравки итерационно, путём добавления вершин со случайным числом рёбер r, с заданной функцией предпочтения f ?0, зависящей от степени связности ki вершины. Вероятность pi присоединения свободным концом нового ребра к уже существующей вершине графа зависит от функции предпочтения и вычисляется по формуле (2):
. (2)
Модели графов с НППС в последнее время получили широкое развитие. В работе были найдены эффективные способы генерации графа. В [6, 8] представлены такие способы калибровки графов, которые позволяют при заданном распределении вероятностей r, путём подбора функции предпочтения f (k) генерировать граф с требуемым распределением степени связности вершин.
Но, не смотря на точное совпадение средней степени связности графа, данная модель во многих случаях не может обеспечить достаточно точное совпадение всех остальных структурных характеристик.
1.4 Обзор аналогов
В данном разделе производится небольшой обзор существующих алгоритмов построения графовых моделей и их калибровки.
Рассматриваются алгоритм генерации графа БА и ускоренный метод генерации графа с НППС, а также метод сепарабельной реконфигурации. Представляются графики распределения степени связности графов. Описываются результаты сравнений различных характеристик реальных сетей и графовых моделей.
1.4.1 Ускоренный метод генерации графа БА и графа с НППС
Алгоритм данного метода был представлен в.
Граф БА генерируется из небольшого графа-затравки путём добавления новых вершин с фиксированным числом рёбер m? 1. Свободный конец нового ребра присоединяется в соответствии с формулой (3):
j = 1,…, N, (3)
где N — текущее число вершин в графе.
Из формулы видно, что чем больше степень связности у вершины, тем выше вероятность её выбора.
На рисунке 2 представлена блок схема этого алгоритма.
Рисунок 2 — Схема алгоритма генерации графа БА [9]
Выбор вершин для присоединения может быть выполнен на основе стандартного подхода разыгрывания дискретной случайной величины (ДСВ). Данный подход можно описать так. Пусть задана некоторая система непересекающихся событий {А1, …, Аn}, заключающихся в выборе очередной вершины (всего в графе n вершин). Вероятности выбора вершин события {А1, …, Аn} равны соответственно p1, …, pn, (p1 + p2 + … + pn = 1). При построении алгоритма отрезок [0,1) необходимо разбить на n интервалов длиной p1, …, pn, и отслеживать попадание сгенерированного значения большой случайной величины (БСВ) z в соответствующий интервал. Программная реализация данного алгоритма в была названа БА_ДСВ (m, N, G).
В генератор БА_ДСВ (m, N, G) передаётся параметр m, определяющий число рёбер, добавляемых на каждом шаге, и число вершин N в генерируемом графе. При генерации передаётся также граф-затравка G, содержащий M вершин (M? N).
На каждом шаге генерации добавляется новая вершина vi (M? i < N) c m рёбрами. Добавления m рёбер являются независимыми событиями, поэтому каждая следующая выбранная для присоединения вершина добавляется в специальный список lst, пока не будут выбраны все m вершин. После выбора всех m вершин (выход из цикла) в граф G «одновременно» добавляются m новых рёбер e = (vi, vlst[h]), между добавленной вершиной vi и вершинами из списка vlst[h] (p = 1, …, m). Далее список lst очищается, и алгоритм переходит к очередному шагу добавления новой вершины, пока не будут добавлены все (N — M) вершин. Основная трудоёмкость рассмотренного алгоритма заключается в количестве итераций при выборе вершины для присоединения, поскольку в исследуемых сетях таких вершин сотни тысяч. Среднее число итераций при выборе вершин в графе, содержащем n вершин при условии, что степени вершин при их переборе распределены случайно, равно n / 2. Данный алгоритм можно ускорить, если разбить всё его множество вершин на отдельные слои. Слой — это подмножество вершин, которые имеют одинаковую степень связности.
После того, как всё множество вершин разбито на слои, происходит выбор новой вершины для присоединения. Сначала случайным образом выбирается номер слоя, а затем из этого слоя равновероятно выбирается вершина. Схема данного алгоритма представлена на рисунке 3.
Основная трудоёмкость данного алгоритма заключается в количестве итераций, которые необходимо выполнить для выбора слоя вершин. Количество итераций зависит от числа вершин в графе: чем больше граф, тем труднее выполнить данный алгоритм.
Генерация графа БА размером 100 тыс. вершин базовым алгоритмом занимает около трёх часов.
На рисунке 4 представлены графики распределения степени связности графов, выращенных на калиброванных генераторах. Эти степени хорошо согласуются с эмпирическими вероятностями степеней. Данные генераторы можно рассматривать и как результаты идентификации сетей предпочтительного связывания.
Рисунок 3 — Схема алгоритма ускоренного метода генерации графа БА и графа с НППС [10]
Рисунок 4 — РСС (слева на право: РСС калиброванного графа и сети автономных систем интернет; РСС калиброванного графа и сети маршрутизаторов интернет; РСС калиброванного графа и сети участия актёров в общих фильмах) [6]
Первый график на рисунке 4 характеризует качество идентификации сети автономных систем интернет по данным (число узлов и рёбер равны соответственно N = 22 963, R = 48 436).
Второй график на данном рисунке характеризует качество идентификации сети маршрутизаторов интернет по данным (N = 124 651, R = 207 214). Параметры генератора:, ,, ,
.
Последний график характеризует идентификацию сети участия актеров в общих фильмах (N = 511 416 — без изолированных узлов, R = 1 463 331). Два соответствующих актерам узла связаны ребром, если эти актеры снимались в одном фильме. Здесь, численно фиксированы, и при k > 10 общая формула весов имеет вид .
Однако соответствие по РСС сети и ее модели не означает, что эти структуру соответствуют по другим структурным характеристикам, а модель является адекватной. Так на IV региональной научно-практической конференции был представлен доклад [14], в котором особое внимание уделялось исследованию диаметра сл.г. В данной работе был проведён следующий эксперимент. Было выбрано 7 реальных сетей с уже известными параметрами. Для каждой из этих сетей было построено несколько различных модели сл.г. и подсчитан диаметр, как реальной сети, так и моделей. Длина выборки равнялась 10. Результаты этого эксперимента представлены в таблице 1.
Из этой таблицы видно, что среднее значение диаметра графа БА практически совпадает только в двух случаях, в двух других случаях диаметр графа БА меньше диаметра реальной сети почти в два раза. В модели графа Эрдеша-Реньи для сети автономных систем диаметр модели меньше почти в четыре раза. Диаметр графа в моделях Уаттса-Строгантца при p = 0 имеет чрезмерно большое значение и совершенно не соответствует диаметру реальных сетей. Что касается графа с НППС, то тут значения диаметра в целом получаются значительно меньше.
Таблица 1 — Сравнение диаметра у реальных сетей и их моделей
Имя сети | Вершины | Рёбра | Диаметр сети | БА | Граф Эрдеша-Реньи | Граф Уаттса-Строгатца | НППС | ||||||
max | min | ср. | max | min | ср. | p=0 | p=1 | ||||||
USAir97 | |||||||||||||
PGPgiantcomp | |||||||||||||
P2p-Gnutella31 | |||||||||||||
Oregon2_1 052 | |||||||||||||
My_polBlog | |||||||||||||
myAs | |||||||||||||
Email-Enron | |||||||||||||
Таким образом, из таблицы 1 можно сделать вывод, что ни одна из моделей не соответствует реальным сетям по такой важной характеристики как диаметр графа.
В работе производится исследование соответствия графовых моделей и их сетей на количество подграфов в виде квадрата. Квадратом назван подграф из четырёх вершин и четырёх рёбер, связанных в кольцо.
Данные, полученные в [15], показывают, что при одинаковом числе узлов N и ребер E, число квадратов в графах БА, конфигурационных графах, графах с НППС оказывается значительно меньше, чем в реальных сетях. Эти данные представлены ниже в таблице 2.
Конфигурационная модель генерации графа БА описана в. Её можно представить следующим образом.
Пусть дано распределение Pk степени связности N вершин.
1. Помечаем степенями связности ki все N вершин Map i, ki> (i = 1, N).
2. Рисуем «хвосты рёбер» в соответствии с полученными числами ki.
3. Распределяем «хвосты ребер» на пары случайно равновероятно, формируя ребра между вершинами.
Таблица 2 — Число квадратов в реальных сетях (n?реал), в графе БА (n?графБА), в конфигурационной модели (n?конф.м.), в графе с НППС (n?графНППС)
Название сети | Характеристики сетей | Теоретические величины | ||||||
N | E | n?реал | m | n?графБА | n?конф.м. | n?графНППС | ||
Сеть маршрутизаторов | ||||||||
Сеть пользователей программы PGP | ||||||||
Сеть автономных систем Интернет | ||||||||
Сеть адресов электронной почты | ||||||||
Из таблицы 2 видно, что модель графа БА содержит наименьшее число квадратов и наиболее сильно отличается от числа квадратов в реальных сетях. Число квадратов в конфигурационной модели в разы больше, но всё же достаточно. Наибольшим числом квадратов обладает граф с НППС, однако их всё равно на порядки меньше, чем в реальных сетях.
С помощью программы предложенной в не трудно рассчитать значения коэффициента кластеризации в сетях и их графовых моделях. Так в таблице 3 приводятся данные расчёта коэффициента кластеризации сети автономных систем интернет и её моделей. Графа БА сгенерирован с параметров средней степени связности m = 2. Граф с НППС был откалиброванным по заданному эмпирическому РСС. Количество вершин в данных моделях случайных графов соответствует числу узлов в реальной сети автономных систем: 22 963 узла.
Таблица 3 _ Расчеты коэффициента кластеризации в различных сетях
Имя сети | Значение коэффициента кластеризации | |
Сеть автономных систем | 0.1 124 | |
Граф БА | 0,63 | |
Граф с НППС | 0.502 | |
Из таблицы 3 можно увидеть, что значение коэффициента кластеризации в модели графа БА отличается от значения коэффициента кластеризации в реальной сети на несколько порядков. Граф, сгенерированный в соответствии с НППС, имеет намного большее значение коэффициента кластеризации. Однако, несмотря на то, что значение параметра значительно увеличилось, оно всё равно отличается от значения этого же параметра в реальной сети более чем в два раза.
В работе приведены данные об исследовании других реальных сетей и сравнении их с моделью графа БА по коэффициенту кластеризации. Также было установлено, что в реальных сетях эта структурная характеристика на порядки больше её показателя в графах БА. Результаты данного исследования представлены в таблице 4.
Таблица 4 — Коэффициент кластеризации в реальных сетях (С?реал) и в графе БА (С?графБАтеор) [10]
Название сети | Характеристики сетей | Теоретические величины | С?реал / С?графБАтеор | ||||
N | E | С?реал | m | С?графБАтеор | |||
Сеть маршрутизаторов | 0,3 863 | 0,185 | 20,86 609 994 | ||||
Сеть пользователей программы PGP | 0,37 802 | 0,232 | 163,688 118 | ||||
Сеть автономных систем Интернет | 0,1 146 | 0,76 | 14,93 567 203 | ||||
Сеть адресов электронной почты | 0,8 531 | 0,342 | 24,9 348 154 | ||||
Сеть ссылок веб-страниц (GOOGLE) | 0,5 523 | 0,11 | 503,4 293 618 | ||||
Сеть товаров интернет-магазина Amazon | 0,23 608 | 0,24 | 1001,232 022 | ||||
По таблице 4 видно, что хотя модель графа БА выращивалась для того же количества вершин N и с тем же параметром средней степени связности m значения коэффициента кластеризации в графе БА в некоторых случаях меньше на несколько порядков.
1.4.2 Метод сепарабельной реконфигурации по коэффициенту кластеризации
В исследовании для решения проблемы заниженного коэффициента кластеризации в графовых моделях сетей предлагается алгоритм сепарабельной реконфигурации по коэффициенту кластеризации. Сепарабельной реконфигурацией называется такое изменение структуры графа путём перераспределения рёбер, при котором не изменяется РСС вершин. Данный метод предполагает увеличение числа «треугольников» в графе. Иллюстрация этого алгоритма представлена на рисунке 5.
Рисунок 5 — Иллюстрация метода сепарабельной реконфигурации [10]
Для увеличения числа «треугольников» в графе циклически необходимое число раз используется следующая процедура.
1. Случайно выбираем ребро R, не входящее в треугольник. Определяем степени связности l и m вершин, инцидентных R.
2. Случайно выбираем вершину a и среди смежных ей вершин отыскиваем две несвязные вершины b и c. Если таких нет, возвращаемся к 2.
3. Определяем степени связности i и j вершин b и c соответственно. Ребро R переносим — ставим его между найденными вершина b и c. В результате этой операции количество вершин со степенями связности l, m, i, j уменьшается, а колличество вершин со степенями l — 1, m — 1, i + 1, j + 1 увеличивается (вследствие чего изменяется РСС).
4. Компенсируем изменение РСС:
? выбираем случайное ребро (отличное от R) со степенями связности i + 1, j + 1;
? находим случайные вершины со степенями связности l — 1, m — 1;
? перенося выбранное ребро, соединяем найденные вершины.
Данный метод позволяет изменять коэффициент кластеризации, сохраняя РСС. Одним из недостатков данного метода является то, что необходимо хранить ссылки на слои вершин в специальной структуре данных. На основе этого метода был разработан новый алгоритм, представленный в этой работе.
Предложенный метод реконфигурации графа позволяет изменять его коэффициент кластеризации на несколько порядков и при этом сохранять его РСС.
Иллюстрация работы этого метода представлена на рисунке 6.
Рисунок 6 — Иллюстрация метода сепарабельной реконфигурации [10]
На рисунке 2а представлен граф БА, а на рисунке 2б представлен этот же граф БА, но уже после сепарабельной реконфигурации.
1.5 Выводы из аналитического обзора и постановка задачи ВКР
Во время анализа предметной области было выявлено следующее.
1. Модель классического случайного графа (графа Эрдеша-Реньи) плохо воспроизводит некоторые свойства реальных сетей (степени вершин, величину коэффициента кластеризации и длины пути).
2. В 1999 году был предложен случайный граф Барабаши-Альберт (граф БА). Графы БА по своим структурным свойствам оказались более адекватными моделями реальных сетей, чем графы Эрдеша-Реньи.
3. Эффект «тесного мира» был обнаружен при исследовании реальных сетей и характеризует собой «правило шести рукопожатий» т. е. перебирая круг своих ближайших знакомых, затем людей, знающих наших ближайших знакомых и т. д. любой человек опосредовано знаком с любым другим человеком в мире. Причём, как правило, число элементов в цепи не превышает 6.
4. Графы БА имеют небольшую среднюю длину пути между вершинами и таким образом также демонстрируют собой эффект «тесного мира».
5. В 2010 модель графа БА было обобщена в виде модели графов с НППС.
6. Графы с НППС позволяют генерировать графовые модели с заданным РСС вершин, путём подбора нужной функции предпочтения.
7. Существующие модели сл.г. обычно имеют значительное отличие от реальных сетей по диаметру и частоте появления подграфов.
8. Как правило, для графов НППС коэффициенты кластеризации в среднем меньше коэффициентов кластеризации в реальной сети.
9. Единственным методом калибровки графов по коэффициенту кластеризации является метод сепарабельной реконфигурации графа, но этот метод нарушает структуру, сформированную в результате применения графа с НППС.
10. При генерации графов с НППС конкретно не оговаривается, с какой вершиной нужно соединять новое ребро. Различные способы выбора данной вершины позволяют изменять структурные характеристики графа.
Таким образом, можно сформулировать задачи, которые необходимо выполнить в данной работе.
1. Разработка нового ускоренного алгоритма калибровки по коэффициенту кластеризации.
2. Программная реализация полученного алгоритма в системе моделирования Simbigraph.
2. Разработка алгоритма генератора графа с НППС с возможностью калибровки по коэффициенту кластеризации
В данном разделе происходит обзор разработанного алгоритма.
Первый параграф данного раздела посвящён описанию алгоритма генерации графа с НППС с возможностью калибровки по коэффициенту кластеризации. Здесь приводится его схема и её объяснение. Так же приведён пример интерпретации алгоритма.
Второй параграф описывает модифицированный алгоритм генерации графа с НППС с возможностью калибровки по коэффициенту кластеризации, представлена схема этого алгоритма
Третий параграф демонстрирует результаты запуска данного алгоритма. Представлен результат сравнения разработанного алгоритма с реальной сетью по диаметру и коэффициенту кластеризации.
2.1 Алгоритм генерации графа с НППС с возможностью калибровки по коэффициенту кластеризации
В классических графах c НППС не оговаривается, к какой именно вершине необходимо присоединить новое ребро при выращивании графа (считается, что это происходит случайно, равновероятно из всех вершин из данного слоя). От способа выбора этой вершины зависят значения структурных характеристик полученного графа, хотя распределение степени связности и остаётся прежним. Поэтому выбор новой вершины обычно зависит от цели моделирования.
В данной работе целью было ускорение существующего алгоритма. Для этого необходимо увеличить количество связанных троек вершин в графе. Такую тройку вершин можно получить, если новую вершину присоединять к уже смежным вершинам графа.
Рассмотрим модифицированный алгоритм генерации графа с НППС. Ниже представлено словесное описание разработанного алгоритма калибровки моделей БС по коэффициенту кластеризации.
Начало
G — генерируемый граф, изначально является небольшим графом-затравкой.
Цикл по добавляемым вершинам n = 1, …, N
Разыгрывается случайное число ребер rk
Цикл по добавляемым вершинам c новой вершиной ребер k = 1, rk
1. Вначале каждое из rk новых ребер в соответствии с ускоренным алгоритмом генерации графа ПС выбирает вершину для присоединения своего свободного конца с вершиной из множества вершин с заданной степенью связности i (слоя) по правилу ,
j = 1, K, где K — число слоев в G
2. Затем, если (rk > 1) выполняется процедура случайного (равновероятного) выбора ребра e в графе G, связывающего вершины из выбранных слоев. К смежным к ребру е вершинам присоединяется 2 из r новых ребер, образуя гарантированный треугольник из вершин
3. Остальные (rk — 2) ребра выбирают вершины из соответствующих слоев равновероятно.
4. Добавляется вершин и rk ребер
Конец цикла по rk
Конец цикла по n
Конец алгоритма
Схема данного алгоритма представлена на рисунке 7.
Рисунок 7 — Схема ускоренного алгоритма
Вначале задаётся случайное число рёбер r для присоединения и G — граф-затравка. Потом происходит перебор по всем вершинам, которые необходимо присоединить. Присоединяется новая вершина NewNode и разыгрывается число рёбер, по которому в дальнейшем происходит перебор. Далее, внутри этого цикла, сравнивается текущее значение счётчика j и цифры 2.
При j < 2 разыгрывается первый слой k1 по правилу ПС и происходит возврат в цикл. При j = 2 разыгрывается второй слой k2 по правилу ПС. Из начального графа G, исходя из ранее полученных значений k1 и k2, выбирается ребро е. К концам этого ребра и присоединяется новая вершина и происходит возврат в цикл. Если же j > 2, то для присоединения выбирается произвольная вершина.
Когда счётчик j становится равным r, присоединение рёбер повторяется для последующей вершины. Когда перебор произошёл по всем разыгранным вершинам, алгоритм прекращается.
Представленный алгоритм можно интерпретировать следующим образом. Пусть существует некая группа людей, которая представлена в виде графа. Некоторые люди внутри этой группы знают друг друга («знакомство» двух людей является ребром в этом графе). Присоединение новой вершины к графу сравнимо с попаданием ещё одного человека в этот коллектив. Причем он старается присоединиться хотя бы к одной паре, которая знает друг друга. Таким образом, образуется новый треугольник (человек влился в коллектив). Далее алгоритм повторяется с уже другим человеком (вершиной).
2.2 Модификация разработанного алгоритма
Нужно посчитать среднее число пропусков при получении треугольника на одной итерации в обоих алгоритмов. и сделать вывод, что алгоритм с …
Модификация данного алгоритма состоит в следующем. Для того чтобы вычислить куда присоединять новую вершину, происходит анализ пар вершин. Если выбранная пара вершин из списка уже является инцидентной, то новая вершина просто добавляется к ним, тем самым образуя треугольник. Если же инцидентные вершины не найдены, то новая вершина присоединяется случайным образом.
Схема данного алгоритма представлена на рисунке 8.
Вначале задаётся случайное число рёбер r для присоединения и G — граф-затравка. Потом происходит перебор по всем вершинам, которые необходимо присоединить. Присоединяется новая вершина NewNode и разыгрывается число рёбер, по которому в дальнейшем происходит перебор.
Перебор по рёбрам осуществляется в цикле, счётчик j которого может принимать значения от 1 до r/2, потому что происходит обработка именно пар вершин. Разыгрываются слои kj и kj + [r/2] по ППС. Через Map из начального графа G происходит выбор ребра l. Если такое ребро было найдено, тогда вершины v1 и v2 являются инцидентными. Если же такого ребра найдено не было, тогда вершины v1 и v2 выбираются случайным образом из слоёв kj и kj + [r/2]. Новая вершина соединяется с вершинами v1 и v2 и происходит повторение всех эти действий для последующего ребра.
Рисунок 8 — Модификация ускоренного алгоритма
По завершению этого цикла происходит проверка. Если изначально разыгранное число рёбер является нечётным числом, то оставшееся ребро присоединяется к случайной вершине из слоя kr от вершины NewNode.
Когда перебор произошёл по всем разыгранным вершинам, алгоритм прекращается.
2.3 Демонстрация работы алгоритма
Для демонстрации работы данного алгоритма была взята сеть автономных сетей Интернет, мгновенный снимок которой был получен в 2006 году на проекте Oregon RouteViews. Данные об этой сети были взяты из.
По данным этой реальной сети были построены модели графов с НППС и модели с использованием предложенного алгоритма.
В данной работе особый интерес представляли такие характеристики графа как его диаметр и коэффициент кластеризации. Поэтому в таблице 5 представлены характеристики графа именно по этим структурным характеристикам сл.г.
Из полученных результатов можно сделать вывод, что данный алгоритм увеличивает коэффициент кластеризации и диаметр, то есть приближает характеристики моделей к характеристикам реальных сетей.
Полученные результаты говорят о том, что данный алгоритм выполняет поставленные задачи.
Коэффициент кластеризации и диаметр графа взяты как среднее из 100 значений. Данные параметры моделей считались в пакете R.
Таблица 5 — Сравнение диаметра графа и коэффициента кластеризации в различных моделях сети автономных систем
Сеть | Коэффициент кластеризации | Диаметр графа | |
Мгновенный снимок сети Автономных систем | 0.111 464 | ||
Граф БА, m = 2 | 0.8 704 | 9.13 | |
Граф БА, m = 2, с модифицированным правилом выбором вершин | 0.938 698 | 14.19 | |
Граф ПС с распределением ребер в приращении rk = {0/0.0, 1/0.3 509 441, 2/0.427 474 478, 3/0.82 815 651, 4/0.38 862 743, 5/0.99 902 998} | 0.32 301 | 8.81 | |
Граф ПС с распределением ребер в приращении rk ={0/0.0, 1/0.442 421 898, 2/0.457 278 271, 3/0, 0.33 445 638, 4/0.1 771 394, 5/0.9 795 921, 6/0.5 440 743, 7/0.3 764 738, 8/0.143 948, 9/0.1 057 483, 10/0.1 174 982, 11/0.129 248, 12/0.1 409 978, 13/0.23 764 444} | 0.45 669 | 9.07 | |
Граф ПС с распределением ребер в приращении rk = {0/0.0, 1/0.3 509 441, 2/0.427 474 478, 3/0.82 815 651, 4/0.38 862 743, 5/0.99 902 998}. Используется модифицированное правило выбора вершин. | 0.90 506 | 11.97 | |
Первый столбец таблицы 5 представляет собой описание характеризуемой сети. Вначале идёт реальная сеть. Именно данные из этой строки являются образцом для сравнения.
Граф БА со средней степенью связности равной двум, это модель, построенная полностью по правилу построения графа БА.
Далее данный граф строился с применением разработанного алгоритма.
Последующие сети — это графы с НППС с различным распределением рёбер в приращении. Были получены разные графы путём изменения функции предпочтения. В фигурных скобках указанно, какое количество рёбер с какой вероятностью будет присоединяться.
3. Аспекты программной реализации в системе имитационного моделирования Simbigraph
На рисунке 1 представлена диаграмма, сгенерированная для пакета, содержащего Проекции системы Simbigraph. Интерфейс Projection отвечает за конкретное представление структуры взаимодействия, с которым работает система. Это Проекции для работы с сетевыми структурами, генерируемыми в результате триангуляции Делоне (TriangulationDelaneyProjection), для работы с решетками (Lattice2D, Lattice3D), графами Кроннекера (KronnekerGraphProjection), графами предпочтительного связывания (ProjGraphPA) и другими типами случайных графов (NetworkProjection).
Рисунок 1. Диаграмма классов (пакет projection) в системы Simbigraph, сгенерированная в среде разработки BlueJ
Разработанный алгоритм можно внедрить как отдельный тип генератора в проекцию ProjGraphPA или путем модификации ProjGraphPA, с заменой используемого генератора графов предпочтительного связывания на новый генератор, который использует калибровку по коэффициенту кластеризации, а в остальном работает как оригинальный генератор. Был выбран 2-й вариант.
На рис. 2 представлена диаграмма классов пакета generators, в котором содержатся классы основных генераторов графов в системе Simbigraph.
Рисунок 2. Диаграмма классов Simbigraph пакета generators
Класс GeneratorClastPA, который реализует алгоритм генерации графа представлен на рис. 3. Интерфейс Factory передается в конструктор класса GeneratorClastPA и используется для создания узлов и ребер. Интерфейс Map используется для хранения значений пар смежных узлов, со степенями связности, которые хранятся в объектах класса Para.
Рисунок 3. Диаграмма классов Simbigraph для разработанного класса
Правило предпочтительного связывания инкапсулируется в реализациях интерфейса PrefferentialAttachment. Пример правила предпочтительного связывания для реализации линейного правила представлено ниже.
class prefRule implements PrefferentialAttachment {
public double f (int k) {
return k;
}
}
Заключение
В ходе написания выпускной квалификационной работы были получены следующие результаты.
1. Проведено исследование существующих моделей построения графов с НППС.
Использование графов с НППС позволяет генерировать графовые модели с заранее заданным распределением степени связности вершин, это достигается с помощью подбора функции предпочтения, и распределения случайного числа ребер в приращении.
Случайные графы с НППС генерируются итерационно из графа-затравки, на основе формулы (2).
где pi — вероятность присоединения свободным концом нового ребра к уже существующей вершине графа;
r — случайное число рёбер;
f — функция предпочтения (f? 0);
ki, kj — степени связности вершин.
За последнее время были найдены эффективные способы генерации графов с НППС и методы их калибровки, которые позволяют выращивать граф с требуемым распределением степени связности вершин.
Так же был рассмотрен ускоренный метод генерации графа БА и графа с НППС. Он также выращивается из небольшого графа путём добавления фиксированного числа рёбер, на основе формулы (3)
j = 1,…, N,
где P (ki) — вероятность присоединения свободным концом нового ребра к уже существующей вершине графа;
N — текущее число вершин в графе.
Выбор новой вершины зависит только от того, по каким структурным характеристикам будем изучаться данная модель.
2. Исследован метод сепарабельной калибровки
Данный метод изменяет структура графа путём перераспределения рёбер, при этом распределение степени связности вершин не изменяется.
Недостатком данного метода является то, что при генерации нарушается структура, полученная в результате применения графа с НППС.
3. Предложены два алгоритма генерации графов с НППС с калибровкой по коэффициенту кластеризации.
3.1. Алгоритм с гарантированным появлением хотя бы одного треугольника при присоединении новой вершины.
3.2. Алгоритм с разбиением вершин для присоединения на пары, из которых производится поиск двух связных вершин (что обеспечивает образование треугольника при присоединении).
4. Разработанный алгоритм был реализован на языке Java для системы моделирования Simbigraph.
5. Разработанный алгоритм был представлен на V Всероссийской научно-практической конференции студентов, аспирантов, работников образования и промышленности в 2013 и был напечатан в сборнике.
Список использованных источников
1 Граф (математика) // ru.wikipedia.org: Википедия — свободная энциклопедия. URL: http://ru.wikipedia.org/wiki/Граф_(математика) (дата обращения 26.05.2013)
2 Albert R., Barabasi A. Statistical mechanics of complex networks // Rev. Mod. Phys. 2002. V. 74 P. 47−97
3 Олемской А. И. Статистика сложных сетей (обзор) / А. И. Олемской, И. А. Олемской // «Вiсник СумДУ». — 2006. — № 6 (90). — С.21−47
4 Автоматическая обработка текстов на естественном языке и компьютерная лингвистика: учебн. пособие / Большакова Е. И., Клышинский Э. С., Ландэ Д. В., Носков А. А., Пескова О. В., Ягунова Е. В. — М.: МИЭМ, 2011. — 272 с.
5 Т. А. Леванова, М. А. Комаров, Е. Ю. Кадина, Г. В. Осипов Структуры последовательной активности в нейронных сетях со случайными связями // Вестник Нижегородского университета им. Н. И. Лобачевского. — 2010. — № 2 (1). — С. 131−139
6 Задорожный В. Н. Случайные графы с нелинейным правилом предпочтительного связывания // Проблемы управления. — 2010. — № 6. — С. 2−11.
7 Юдин Е. Б. Генерация случайных графов предпочтительного связывания // Омский научный вестник. — 2010. — № 2 (90). — С. 7−13.
8 Задорожный, В.Н., Юдин, Е. Б. Структурные свойства безмасштабного графа Барабаши-Альберт // Автоматика и телемеханика. — 2012. — № 4. — С. 131−150.
9 Задорожный, В.Н., Юдин, Е. Б. Точная теория графа Барабаши-Альберт // Омский научный вестник. — 2009. — № 3 (83). — С.13−19
10 Юдин Е. Б. Методы структурной идентификации стохастических сетей и генерации случайных графов в задачах моделирования сложных систем: Дис. на соискание учёной степени канд. техн. наук. — Омск., 2012. — С. 47−65
11 Данные о сетях [Электронный ресурс]. — Режим доступа: http://vlado.fmf.uni-lj.si/pub/networks/data/, свободный. — Загл. с экрана. — Яз. англ.
12 Структура сети маршрутизаторов Интернет (2006 г.). URL: http://www.cise.ufl.edu/ research/sparse/mat/Pajek/internet.mat (дата обращения: 01.09.2009).
13 Структура сети участия актёров в общих фильмах. URL: http://www.nd.edu/~networks/resources/actor/actor.dat.gz (дата обращения: 03.02.2010).
14 Задорожный В. Н., Юдин Е. Б., Овчинникова Е. В., Ганеева М. И. Сравнение случайных графов с моделями сетей по диаметру // материалы IV регион. науч.-практ. конф (Омск, 2012). — ОмГТУ; 2012. — С. 100−101
15 Задорожный В. Н., Бояршинов К. Н. Структурные характеристики графов: коэффициенты кластеризации // материалы IV регион. науч.-практ. конф (Омск, 2012). — ОмГТУ; 2012. — С. 91−93
16 Юдин Е. Б., Ганеева М. И. Расчёт коэффициента кластеризации для присоединения в графай предпочтительного связывания // материалы V Всерос. науч.-практ. конф. студентов, аспирантов, работников образования и пром-сти (Омск, 23−26 апр. 2013 г.). — ОмГТУ; 2013. — С. 92−95
17 Юдин Е. Б., Овчинникова Е. В. О выборе вершины для присоединения в графах предпочтительного связывания // материалы V Всерос. науч.-практ. конф. студентов, аспирантов, работников образования и пром-сти (Омск, 23−26 апр. 2013 г.). — ОмГТУ; 2013. — С. 95−97
18 Сеть автономных систем Интернет, воссозданная на основе BGP таблиц URL: http://www-personal.umich.edu/~mejn/netdata/as-22july06.zip (дата обращения: 01.09.2009).