Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломы / Диплом окончательный.docx
Скачиваний:
112
Добавлен:
30.03.2015
Размер:
1.64 Mб
Скачать

2 Разработка алгоритма генератора графа с нппс с возможностью калибровки по коэффициенту кластеризации

В данном разделе происходит обзор разработанного алгоритма.

Первый параграф данного раздела посвящён описанию алгоритма генерации графа с НППС с возможностью калибровки по коэффициенту кластеризации. Здесь приводится его схема и её объяснение. Также приведён пример интерпретации алгоритма.

Второй параграф описывает модифицированный алгоритм генерации графа с НППС с возможностью калибровки по коэффициенту кластеризации, представлена схема этого алгоритма

Третий параграф демонстрирует результаты запуска данного алгоритма. Представлен результат сравнения разработанного алгоритма с реальной сетью по диаметру и коэффициенту кластеризации.

    1. 2.1 Алгоритм генерации графа с нппс с возможностью калибровки по коэффициенту кластеризации

В классических графах c НППС не оговаривается, к какой именно вершине необходимо присоединить новое ребро при выращивании графа (считается, что это происходит случайно, равновероятно из всех вершин из данного слоя). От способа выбора этой вершины зависят значения структурных характеристик полученного графа, хотя распределение степени связности и остаётся прежним. Поэтому выбор новой вершины обычно зависит от цели моделирования.

В данной работе целью было ускорение существующего алгоритма. Для этого необходимо увеличить количество связанных троек вершин в графе. Такую тройку вершин можно получить, если новую вершину присоединять к уже смежным вершинам графа.

Рассмотрим модифицированный алгоритм генерации графа с НППС [17]. Ниже представлено словесное описание разработанного алгоритма калибровки моделей БС по коэффициенту кластеризации.

Начало

G – генерируемый граф, изначально является небольшим графом-затравкой.

Цикл по добавляемым вершинам n = 1, …, N

Разыгрывается случайное число ребер rk

Цикл по добавляемым вершинам c новой вершиной ребер k = 1, rk

1. Вначале каждое из rk новых ребер в соответствии с ускоренным алгоритмом генерации графа ПС [3] выбирает вершину для присоединения своего свободного конца с вершиной из множества вершин с заданной степенью связности 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, присоединение рёбер повторяется для последующей вершины. Когда перебор произошёл по всем разыгранным вершинам, алгоритм прекращается.

Представленный алгоритм можно интерпретировать следующим образом. Пусть существует некая группа людей, которая представлена в виде графа. Некоторые люди внутри этой группы знают друг друга («знакомство» двух людей является ребром в этом графе). Присоединение новой вершины к графу сравнимо с попаданием ещё одного человека в этот коллектив. Причем он старается присоединиться хотя бы к одной паре, которая знает друг друга. Таким образом, образуется новый треугольник (человек влился в коллектив). Далее алгоритм повторяется с уже другим человеком (вершиной).

Соседние файлы в папке Дипломы