Научная статья на тему 'Построение распределенного алгоритма поиска структурных различий в категориях изоморфизма'

Построение распределенного алгоритма поиска структурных различий в категориях изоморфизма Текст научной статьи по специальности «Математика»

CC BY
72
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИЗОМОРФИЗМ ПОДГРАФОВ / СРАВНЕНИЕ ГРАФОВ / ОБЪЕКТЫ СЛОЖНОЙ СТРУКТУРЫ / ПОИСК СТРУКТУРНЫХ РАЗЛИЧИЙ / WEB-ГРАФЫ / ISOMORPHISM OF SUBGRAPHS / COMPARISON OF GRAPHS / OBJECTS OF COMPLEX STRUCTURE / SEARCH FOR STRUCTURAL DIFFERENCES / WEB-GRAPHS

Аннотация научной статьи по математике, автор научной работы — Воробьева М.С., Воробьев А.М., Егоров Ю.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Воробьева М.С., Воробьев А.М., Егоров Ю.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CONSTRUCTION OF DISTRIBUTED ALGORITHM FOR SEARCH FOR STRUCTURAL DIFFERENCES IN ISOMORPHISM CATEGORIES

The main goal of this work is to develop a distributed algorithm for solution of the problem of search for structural differences in graphs from the point of view of isomorphism, and to show the application of the algorithm on the example of search for structural differences in web-graphs. The problem of search for differences in graphs is formulated as a result, the algorithm for structural differences searching is described as well, and finally the experiment was conducted, confirming the resource structures are important for progression.

Текст научной работы на тему «Построение распределенного алгоритма поиска структурных различий в категориях изоморфизма»

DOI: https://doi.org/10.23670/IRJ.2017.58.137 Воробьева М.С.1, Воробьев А.М.2, Егоров Ю.А.3

1 Кандидат технических наук, доцент, 2аспирант, 3магистрант, Тюменский государственный университет ПОСТРОЕНИЕ РАСПРЕДЕЛЕННОГО АЛГОРИТМА ПОИСКА СТРУКТУРНЫХ РАЗЛИЧИЙ

В КАТЕГОРИЯХ ИЗОМОРФИЗМА

Аннотация

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

Ключевые слова: Изоморфизм подграфов, сравнение графов, объекты сложной структуры, поиск структурных различий, web-графы.

Vorobyova M.S.1, Vorobyov A.M.2, Egorov Yu.A.3

1PhD in Engineering, Associate Professor, postgraduate student, 3master's degree student,

Tyumen State University

CONSTRUCTION OF DISTRIBUTED ALGORITHM FOR SEARCH FOR STRUCTURAL DIFFERENCES IN

ISOMORPHISM CATEGORIES

Abstract

The main goal of this work is to develop a distributed algorithm for solution of the problem of search for structural differences in graphs from the point of view of isomorphism, and to show the application of the algorithm on the example of search for structural differences in web-graphs. The problem of search for differences in graphs is formulated as a result, the algorithm for structural differences searching is described as well, and finally the experiment was conducted, confirming the resource structures are important for progression.

Keywords: Isomorphism of subgraphs, comparison of graphs, objects of complex structure, search for structural differences, web-graphs.

По различным оценкам основная доля сети Интернет - 60-90% - приходит на интернет-ресурсы через поисковые системы, такие как Google, Яндекс и Baidu. С ростом конкуренции на интернет-площадках поисковые системы с каждым годом ужесточают требования к интернет-ресурсам: поисковые системы отслеживают тысячи факторов, на основании которых формируется поисковая выдача. Постоянная разработка и внедрение новых алгоритмов ранжирования обязывают владельцев интернет-ресурсов уделять особое внимание множеству факторов ранжирования.

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

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

Пусть даны объекты сложной структуры и , где каждый объект представляет собой граф , где -

множество вершин, Es - множество ребер графа. Каждая вершина vs Е Vs является HTML-страницей и имеет кортеж признаков (gi (vs) ,д2 (vs) , ...,дп(vs) ), где gt (vs) - характеристика HTML-страницы. Es = [e£v \Link(u,v)} -множество ребер графа, где - это функция перехода от страницы к странице .

Необходимо провести сравнение графов и и найти граф такой, что:

1) - множество вершин графа , соответствующих условиям:

• Вершина vs Е Vs не имеет соответствующей вершины в графе Т;

• Вершина vs Е Vs имеет различные значения соответствующих признаков дt ( vs) и дt (vT) с соответствующей вершиной ;

2) - множество ребер графа , не имеющих соответствующих ребер в графе .

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

множество всех матриц перестановок для графов и , где каждая матрица перестановок представляет собой биекцию между вершинами графов. Асимптотическая сложность составляет О (N м М) , где N - количество вершин в графе , - количество вершин в графе .

Алгоритм был разработан для модели акторов и включает в себя:

• управляющий актор, порождающий конечное количество вычислительных акторов и управляющий списком заданий;

• вычислительные акторы могут отправлять управляющему актору новые задания и запрашивать задания на выполнение

• актор вывода, осуществляющий формирование и обработку конечного результата.

Задание, которое выполняется вычислительным актором, представляет собой кортеж из двух элементов:

1) промежуточная матрица перестановок Р, которая потенциально может быть искомой матрицей перестановок, удовлетворяющей условию Ms = РМТРТ;

2) К - номер строки матрицы Р, которую необходимо заполнить.

Управляющий актор инициализирует решение задачи, управляет списком заданий и пулом акторов, завершает решение задачи.

Инициализация осуществляется с помощью функции start (М 1 ,М2 ,Workers_count) , где М 1 - матрица смежности графа S, М2 - матрица смежности графа Т, Workers_count - количество потоков, которые необходимы для решения задачи. Данная функция осуществляет создание первого задания {Р, 0 } , где Р - матрица перестановок, регистрацию глобального имени актора (s e r ve r), создание вычислительных акторов.

Функция Iooр (Wor ker s,T asks,Worker s_count) получает и обрабатывает сообщения, где Wor ker s - список вычислительных акторов, запросивших новое задание, - список заданий, ожидающих выполнения,

- количество вычислительных акторов. Форматы сообщений, которые принимает актор и вызовы функций, осуществляются при получении сообщений (Таблица 1).

Таблица 1 - Сообщения, принимаемые управляющим актором

Формат сообщения Описание

{take task, Wpid} Запрос от вычислительного актора на получение задания, где Wpid - адрес, по которому нужно отправить задание. Вызывает функцию зепй^азк, после -функцию 1о ор

{new task, Newp, K} Запрос от вычислительного актора на добавление задания в список, где Newp -одна из матриц перестановок для обработки, K - строка Newp для заполнения. Вызывает функцию айй^азк, после - функцию 1оор

Выдачу заданий вычислительным акторам осуществляет функция

s en d_ tas k (Wo r ke rs , Tas ks , Wp i d , W o rk e r s_c o un t) , где Workers - список акторов, ожидающих новое задание; Tasks -список заданий; Wpid - адрес, по которому нужно отправить новое задание; - общее количество

вычислительных потоков. Данная функция выбирает одно из трех поведений в зависимости от входных данных:

1) если список заданий, ожидающих обработку, пуст, управляющий актор добавляет вычислительный актор в список ожидающих новое задание;

2) если список заданий, ожидающих обработку, пуст, и все вычислительные акторы ожидают нового задания, значит, все задания выполнены, и управляющий актор вызывает функцию завершения решения;

3) если список заданий не пуст, первое задание из списка заданий отправляется запросившему актору.

Функция send_task возвращает Nworkers - новый список акторов, ожидающих новое задание и Ntasks - новый

список заданий.

Функция , где Workers - список акторов, ожидающих новое задание; Tasks -

список заданий; Р - матрица перестановок, полученная от вычислительного актора; К - номер строки матрицы Р, который необходимо заполнить, добавляет задания в очередь и реализует одно из двух поведений в зависимости от входных данных:

1) если список акторов, ожидающих задание не пуст, новое задание разу же отправляется первому актору из списка, минуя список заданий;

2) если список акторов, ожидающих задание пуст, новое задание записывается в начало списка заданий.

Функция возвращает Nworkers - новый список акторов, ожидающих новое задание; Ntasks - новый список

заданий.

Терминарция работы алгоритма осуществляется с функцией , где Workers - список акторов,

ожидающих новое задание, выполняя которую, актор отправляет всем ожидающим акторам сообщение о том, что задача решена и завершает работу управляющего актора.

Вычислительный актор, выполняющий поиск матриц перестановок, осуществляет следующие функции: инициализации, получения задания, поиска матрицы перестановок.

Функция инициализации получает исходные данные и вызывает функцию , где -

матрица смежности графа S, М2 - матрица смежности графа T.

Функция получения задания take_task (М 1 ,М2) (М 1 - матрица смежности графа S, М2 - матрица смежности графа T) отправляет управляющему актору запрос на получение нового задания и ожидает ответа. Дальнейшее поведение, которое выбирает актор, зависит от ответа управляющего актора. Форматы сообщений и поведение при их обработке представлены в таблице 2.

Таблица 2 - Сообщения, принимаемые вычислительным актором

Формат сообщения Описание

{run, {P, K}} Ответ от управляющего актора, инициализирующий выполнение нового задания, где P - матрица перестановок, K - строка матрицы перестановок для заполнения. Вызывает функцию Ъ аск&аск

{close} Ответ от управляющего актора, сигнализирующий о том, что задача решена. Вызывает функцию ех 1 завершающую работу актора

Функция поиска матрицы перестановок Ъ а с к & а с к (М 1 , М 2, Р, К) выполняет следующие этапы:

a. если К > т, то Р - искомая матрица перестановок, актор отправляет актору вывода полученный результат и запрашивает у управляющего актора новое задание;

b. иначе, для каждого ркI выполняем следующее: • рк I = 1 , остальные элементы -й строки равны 0;

задание, содержащее полученную матрицу и К + 1 - номер следующей строки, которую необходимо заполнить;

а управляющему актору отправляется запрос на получение нового задания.

Параметрами функции являются: матрица смежности М1 графа 5, матрица смежности М2 графа Т, промежуточная матрица перестановок Р, К - номер строки, которую необходимо заполнить в матрице Р. Актор вывода получает найденные матрицы перестановок от вычислительных акторов и осуществляет их сохранение в массив и вывод результата.

В результате тестирования работы алгоритма поиска структурных различий было выявлено три типа результатов сравнения двух графов.

Результат 1 типа: Алгоритм вернул одну матрицу перестановок (рис.1). Между вершинами графов 5 и Т существует единственное взаимнооднозначное соответствие: объекты имеют одинаковую структуру, значит, первый уровень соответствия выполнен, и сравнивать необходимо внутренние характеристики каждого ребра и вершины графа, т.е. показатели конкретных страниц и ссылок между страницами сайта.

Результат 2 типа: Алгоритм вернул несколько матриц перестановок (рис.2). В данном случае из нескольких матриц перестановок нужно выбрать одну, наиболее релевантную исследуемому графу. Для того чтобы правильно определить релевантную структуру, для каждой вершины задается параметр , который позволяет однозначно сопоставить вершины графов 5 и Т. Как только всем вершинам находится однозначное соответствие, можно утверждать, что найдена матрица перестановок , противном случае, если не удается найти матрицу , переходим к случаю 3.

Результат 3 типа: Матрица перестановок не найдена (рис.3). В этом случае, для соответствующей вершины с параметрами исследуемого графа применяются функция или функция , которые представляют

собой объединение, добавление, удаления соответствующей вершины графа, таким образом, чтобы привести структуру исследуемого графа Т к виду эталонного графа 5.

• если выполняется условие 5к к(Мс) = 5к п(Р) Мн ( 5кп , то актор отправляет управляющему актору новое

7-/

1 -» а

2 -> Ь

3 -» с 9 -> к

4

10 -> I

5 -» е И

Рис. 1 - Результат работы алгоритма (1 тип)

1 Ь 2 с З^е 4 ^д 5 a 7^/ 8 h

1 a 3^/ б^с 8 ^ g

Рис. 2 - Результат работы алгоритма (2 тип)

Для реализации алгоритма поиска структурных различий разработано приложение на языке Erlang. В качестве данных для эксперимента использованы данные интернет-ресурсов, связность которых не контролировалась. Уровень вложенности доменов исследуемых сайтов варьировался от 2 до 4, количество страниц, исходя из предоставленной карты сайта, составляло не более 1000.

Для анализа подбиралось случайное ключевое слово, по которому проходил отбор сайта, находящегося на первой позиции в поисковых системах Яндекс и Google и рассматривался как эталон. Эксперимент проводился с целью проверки, является ли параметр «структура интернет-сайта» необходимым при ранжировании в поисковой системе.

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

По каждой фразе из заданного блока были взяты интернет-сайты, не попавшие в выдачу поисковиков на первое место. Каждый из таких сайтов и являлся исследуемым. Таким образом, каждый исследуемый сайт сравнивался с эталонным по ключевому запросу, и каждое сравнение было отнесено к одному из типов нахождения изоморфизма.

По данной тематике было проведено 135 сравнений, из которых 25 дали результат первого типа, 34 - результат второго типа и 76 - результат третьего типа. Причем 80% изоморфизмам по 1 типу было определено в первых трех строчках выдачи, что подтверждает гипотезу о факторе ранжирования по структуре.

Список литературы / References

1. Воробьев, А. М. Интеллектуальный анализ и кластеризация WEB данных / А. М. Воробьев // Математическое и информационное моделирование: сборник научных трудов. - Тюмень: Издательство ТюмГУ - 2014. - №14. - 313 с.

2. Егоров, Ю. А. Модификация алгоритма Ульмана для многопроцессорных систем / Ю. А. Егоров // Материалы XVII Всероссийской конференции молодых ученых по математическому моделированию и информационным технологиям. - 2016. - С. 86-87.

3. Ullmann J. R. An Algorithm for Subgraph Isomorphism Problem /J. R. Ulmann. - Journal of the Association for Computing Machinery. - 1976. - VoI 23(1). - P. 31-42.

4. Cordella L.P. A (sub)graph isomorphism algorithm for matching large graphs / L.P. Cordella, P. Foggia, C. Sansone // IEEE Transactions on Pattern Analysis and Machine Intelligence. - 2004. - vol. 26. - P. 1367-1372.

Список литературы на английском языке / References in English

1. Vorobjoev, A. M. Intellektual'nyj analiz i klasterizacija WEB dannyh [Web data clustering and data mining] / A. M. Vorobjev // Matematicheskoe i informacionnoe modelirovanie: sbornik nauchnyh trudov [Math and information modeling: scientific papers collection]. - Tyumen: Izdatelstvo TGU - 2014. - Vol. 14. - 313 p. [in Russian].

2. Egorov, Ju. A. Modifikacija algoritma Ul'mana dlja mnogoprocessornyh sistem [Ullmann algorithm improvement for multiprocessor systems] / Ju. A. Egorov // Materialy XVII Vserossijskoj konferencii molodyh uchenyh po matematicheskomu modelirovaniju i informacionnym tehnologijam [Materials of the XVII all-Russian conference of young scientists on mathematical modeling and information technologies]. - 2016. - P. 86-87. [in Russian].

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Ullmann J. R. An Algorithm for Subgraph Isomorphism Problem /J. R. Ulmann. - Journal of the Association for Computing Machinery. - 1976. - VoI 23(1). - P. 31-42.

4. Cordella L.P. A (sub)graph isomorphism algorithm for matching large graphs / L.P. Cordella, P. Foggia, C. Sansone // IEEE Transactions on Pattern Analysis and Machine Intelligence. - 2004. - vol. 26. - P. 1367-1372.

DOI: https://doi.org/10.23670/IRJ.2017.58.157 Воронов В.А.1, Мартыненко Я.В.2

1ORCID: 0000-0002-4105-0739, кандидат технических наук,

2ORCID: 0000-0001-7978-4423, студент, ФБГОУ ВО «Санкт-Петербургский горный университет» СРАВНИТЕЛЬНЫЙ АНАЛИЗ ОДНОФАЗНОГО И ДВУХФАЗНОГО РЕЖИМОВ ТРАНСПОРТИРОВКИ ПРИРОДНОГО ГАЗА ПО ТРУБОПРОВОДНЫМ СИСТЕМАМ

Аннотация

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

Ключевые слова: сжиженный природный газ (СПГ), трубопроводный транспорт СПГ, двухфазные потоки, криогенные трубопроводы, дисперсно-кольцевой режим.

Voronov V.A.1, Martynenko Ya.V.2

1ORCID: 0000-0002-4105-0739, PhD in Engineering,

2ORCID: 0000-0001-7978-4423, Student, FSFEE for Higher Education St. Petersburg Mining University THE COMPARATIVE ANALYSIS OF SINGLE-PHASE AND TWO-PHASE REGIMES OF NATURAL GAS

TRANSPORTATION BY PIPELINE SYSTEMS

Abstract

The analysis of pipeline systems for natural gas transportation in the liquefied and gas-air states is conducted in the paper. Based on technological parameters influencing the economic efficiency of LNG transfer via pipelines, the use of the liquid phase as an alternative to traditional pipeline transport has been confirmed. The classification of experimentally established transportation modes of two-phase flows is considered. The results of theoretical studies of two-phase systems for pumping natural gas are given, and their applicability is proved. Based on the results obtained the conclusion is drawn on the need to develop normative documentation and methods for the design, construction and operation of LNG pipeline transport.

Keywords: liquefied natural gas (LNG), LNG pipeline transport, two-phase flows, cryogenic pipelines, annular-dispersed flow.

Для энергетической системы мира СПГ - динамически развивающаяся отрасль. Мировое потребление сжиженного природного газа растет на 10 % в год, а газовоздушного вида топлива - только на 2,4%. Так, согласно прогнозам экспертов Международного газового союза (МГС), доля СПГ к 2030 году может составить около 42% от общего потребления природного газа (рисунок 1).

i Надоели баннеры? Вы всегда можете отключить рекламу.