ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION.
TECHNICAL SCIENCES. 2022. No 1
Научная статья
УДК 519.175.1, 621.3.011.712
doi: 10.17213/1560-3644-2022-1-21-30
ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ИНВАРИАНТОВ, ИСПОЛЬЗУЕМЫХ ДЛЯ ПРОВЕРКИ ИЗОМОРФИЗМА ГРАФОВ
А.Н. Иванченко, К.Н. Иванченко, А.Ю. Шайда
Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск, Россия
Аннотация. Рассматриваются вопросы эффективности практического применения различных инвариантов, используемых для проверки графов на изоморфность. Эти инварианты описаны и классифицированы в предыдущих публикациях авторов.
Предложена методика численного исследования эффективности инвариантов с точки зрения таких критериев, как затраты машинного времени на проведение необходимых вычислений и способность инварианта различать неизоморфные графы, выраженную в доле правильно распознанных неизоморфных графов среди заданного множества.
Описана реализация этой методики в виде программного комплекса, позволяющего проводить численные эксперименты на эталонных наборах неизоморфных графов, полученных с помощью известной библиотеки программ NA UTY.
Представлены результаты вычислительных экспериментов с использованием этого комплекса. Путем сопоставительного анализа проведено ранжирование инвариантов по эффективности и показано, что наибольшей различительной способностью обладают «тяжёлые» инварианты, которые требуют больших затрат машинного времени. В то же время различительная способность быстро вычисляемых («лёгких») инвариантов невелика. Практически продемонстрирована идея сокращения временных затрат на обработку больших наборов графов за счет предварительного разбиения исходного набора на классы эквивалентности с помощью «лёгких» инвариантов и последующего применения к каждому классу «тяжёлых» инвариантов.
Ключевые слова: проблема изоморфизма графов, инвариант графа, резистивное расстояние, мультимножество, класс эквивалентности, объектно-ориентированное программирование
Для цитирования: Иванченко А.Н., Иванченко К.Н., Шайда А.Ю. Исследование эффективности инвариантов, используемых для проверки изоморфизма графов // Изв. вузов. Сев.-Кавк. регион. Техн. науки. 2022. № 1. С. 21 - 30. http://dx.doi.org/10.17213/1560-3644-2022-1-21-30
Original article
STUDY ON THE EFFICIENCY OF INVARIANTS USED FOR TESTING GRAPH ISOMORPHISM
A.N. Ivanchenko, K.N. Ivanchenko, A. Yu. Shaida
Platov South-Russian State Polytechnic University (NPI), Novocherkassk, Russia
Abstract. The article discusses the effectiveness of the practical application of various invariants used to check graphs for isomorphism. These invariants are described and classified in previous publications of the authors.
A technique for the numerical study of the effectiveness of invariants is proposed in terms of such criteria as the cost of computer time for performing the necessary calculations and the ability of an invariant to distinguish non-isomorphic graphs, expressed as the proportion of correctly recognized non-isomorphic graphs among a given set.
The implementation of this technique in the form of a software package is described, which makes it possible to carry out numerical experiments on reference sets of non-isomorphic graphs obtained using the well-known NAUTY program library.
© Иванченко А.Н., Иванченко К.Н., Шайда А.Ю. 2022
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION.
TECHNICAL SCIENCES. 2022. No 1
The results of computational experiments using this complex are presented. By means of a comparative analysis, the ranking of invariants by efficiency was carried out and it was shown that "heavy" invariants, which require a lot of computer time, have the greatest distinguishing ability. At the same time, the distinguishing power of quickly calculated ("light") invariants is not great. The idea of reducing the time spent on processing large sets of graphs is practically demonstrated by first splitting the initial set into equivalence classes using "light" invariants and then applying "heavy" invariants to each class.
Keywords: graph isomorphism problem, graph invariant, resistive distance, multiset, equivalence class, object-oriented programming
For citation: Ivanchenko A.N., Ivanchenko K.N., Shaida A.Yu. Study on the Efficiency of Invariants used for Testing Graph Isomorphism. Izv. vuzov. Sev.-Kavk. region. Techn. nauki=Bulletin of Higher Educational Institutions. North Caucasus Region. Technical Sciences. 2022; (1):21 - 30. (In Russ.) http://dx.doi.org/10.17213/1560-3644-2022-1-21-30
Введение
В статье [1] представлена удобная система классификации инвариантов графа и предложен ряд новых инвариантов, основанных на использовании мультимножеств (ММ) [2]. Реализация этих инвариантов в форме программного комплекса (ПК) и обсуждение результатов вычислительных экспериментов, проведённых с помощью этого ПК, являются целью настоящей публикации.
Исследуемыми объектами в статье являются алгоритмы и структуры данных, поддерживающие различные формы представления неориентированных графов и позволяющие выполнять необходимые операции с графами, том числе вычислять их инварианты.
Предметом исследования служат такие характеристики алгоритмов [3], как вычислительная сложность, оцениваемая затратами времени, и способность инварианта надёжно различать неизоморфные графы (будем называть это надёжностью инварианта). Эти характеристики определяются при проведении вычислительных экспериментов на достаточно больших тестовых наборах неизоморфных графов. Такие наборы графов будем называть эталонными множествами и обозначать Р.
Можно провести некоторую аналогию между вычислением инварианта графа и хешированием [4]: инвариант I можно считать хеш-функцией, которая при её применении к графу О возвращает хеш-код 1(0) в форме числового мультимножества. Полный инвариант (если он существует) являлся бы идеальной хеш-функцией, так как на любом множестве Р такой инвариант не приведёт к «коллизии», т.е. к равенству хеш-кодов двух неизоморфных графов. Заметим, что существование полного инварианта для общего случая пока не доказано. «Хороший» (эффективный) инвариант должен удовлетворять двум свойствам: малые затраты времени на его вычисление и минимальное количество «коллизий».
Обозначим Н[ДР)] - множество уникальных хеш-кодов, полученных в результате применения инварианта I к графам из множества Р. Тогда различительную способность (надёжность) инварианта I на множестве Р можно оценить величиной:
q(I (P)) =
H [ I ( P)]| IP "
Если при проведении достаточно большого количества вычислительных экспериментов на различных множествах Р получается q(I(P)) « 1, то такой инвариант I будем называть почти полным. Почти полные инварианты, как будет показано далее, требуют больших вычислительных затрат.
Ещё одна полезная аналогия связана с разбиением заданного множества Р на классы эквивалентности (КЭ) [5]. В качестве отношения, по которому производится разбиение, можно рассматривать инвариант I. Множество всех КЭ заданного множества Р по заданному инварианту I называется фактор-множеством и обозначается как Р/ДР). Заметим, что в один КЭ попадут неизоморфные графы с одинаковыми значениями инварианта I, т.е. графы, неразличимые инвариантом I. В терминах фактор-множеств надёжность инварианта I на множестве Р можно оценивать величиной:
q(I (P)) =
\P /1 (P)|
PI "
Наилучшим будет случай, когда все КЭ содержат ровно по одному графу, т.е. все графы оказались различимы инвариантом I.
Применение факторизации позволяет создавать композиции инвариантов, когда несколько инвариантов последовательно применяются для разбиения множества Р. Например, если задана цепочка инвариантов (II, Ь, .. .Д), то сначала выполняется разбиение множества Р с использо-
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
ванием инварианта h и, если в полученном фактор-множестве некоторые КЭ будут иметь мощность 2 и более, то такие классы подвергаются дальнейшему разбиению с использованием инварианта I2 и т.д. Такой подход позволит сократить общее время, затраченное на обработку множества P, если начинать обработку с «быстрых», но не очень надёжных инвариантов, постепенно подключая более надёжные, но менее быстрые инварианты.
Разработка программного инструментария
Программный комплекс (ПК) для исследования различных инвариантов графов и их композиций создавался по объектно-ориентированной технологии на языке С++ [6]. Общее представление об этом ПК дают следующие описания используемых структур данных, классов и общего алгоритма проведения вычислительного эксперимента.
Структуры данных для представления информации о графах Для формирования эталонных множеств неизоморфных графов использовалась свободно распространяемая программа geng из библиотеки программ NAUTY [7-9]. Эта программа реализует множество функций, в том числе она может генерировать полные множества неизоморфных графов c заданными характеристиками. Для представления неориентированных графов в библиотеке NAUTY используется исключительно компактный формат graph6, в котором граф G представлен символьной строкой, двоичный код которой содержит «развёртку» по столбцам верхней треугольной части его матрицы смежности. Будем называть такое представление графа двоично-символьным (binary-character representation, BCR). Например, граф G, изображённый на рис. 1, а, имеет матрицу смежности A:
А =
/0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 0 0
1 1 0 0
1 0 1 1
4
Ш-
7
а б
Рис. 1. Граф G и его рёберный граф L(G) / Fig. 1. Graph G and its line graph L(G)
Для «упаковки» матрицы смежности в символьную строку по формату graph6 выполняется следующая последовательность преобразований:
- верхняя треугольная часть матрицы A записывается в виде битовой строки; для этого выполняется обход по столбцам, начиная со второго: 000100011011011;
- полученная строка разбивается на 6-битные байты (слева направо); последний байт при необходимости дополняется нулями: (000100) (011011) (011000);
- 6-битные байты преобразуются в 7-битные путём двоичного сложения с байтом 111111: (1000011) (1011010) (1010111); такое сложение гарантирует получение 7-битных ASCII-кодов в диапазоне 63-126, где находятся отображаемые (печатные) символы;
- по кодовой таблице ASCII каждый 7-битный байт заменяется символом: «CZW».
Таким образом, строка символов «CZW» содержит полную информацию о матрице смежности графа G. В завершение к этой строке слева добавляется ещё один символ, представляющий количество вершин графа п. В рассматриваемом примере п =6. В двоичной записи это 000110; после сложения с 111111 получим 1000101, а это символ «E». Таким образом, граф G в формате graph6 имеет вид: «ECZW». Переход от этого представления к матрице смежности выполняется в обратном порядке.
Наряду с матрицей смежности А используют рёберное представление графа в виде последовательности пар чисел, в которой каждая пара представляет ребро графа, а числа - это номера инцидентных вершин. Для рассматриваемого графа G (рис. 1, а) его рёберное представление имеет вид:
(1,4), (1,6), (2,5), (2,6), (3,5), (4,6), (5,6).
Если рёбрам присвоить номера в порядке их перечисления в списке, то можно построить рёберный граф [10] для графа G, показанный на рис. 1, б. Вершины рёберного графа L(G) соответствуют рёбрам исходного графа G, а смежность вершин рёберного графа соответствует смежности рёбер исходного графа. Матрица смежности полученного рёберного графа имеет вид:
/0 1 0 0 0 1 0\
'10 0 10 11*
0 0 0 1 1 0 1
0 110 0 11
0 0 1 0 0 0 1
1 1 0 1 0 0 1 N0111110/
4' =
2
1
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION.
TECHNICAL SCIENCES. 2022. No 1
Заметим, что визуально рёберный граф «крупнее» исходного графа, т.е. имеет больше вершин и рёбер. Если исходный граф имеет n вершин и m рёбер, то его рёберный граф имеет m вершин, а количество рёбер l выражается формулой [10]:
1 "
I = di - т,
i ¡=1
где di - степени вершин исходного графа.
Для хранения информации о графе в памяти компьютера использованы эффективные высокоуровневые структуры данных (СД), предоставляемые стандартной библиотекой языка С++ [6] в виде шаблонных классов forwardlist (одно-связные списки), unorderedset (неупорядоченные множества) и unorderedmap (неупорядоченные ассоциативные массивы). Эти шаблоны обладают широкой функциональностью и обеспечивают достаточно высокое быстродействие программного кода. На их основе сконструированы следующие СД [11]:
• vector<unordered_set<int>> - для представления матрицы смежности;
• unordered_map<pair<int, int>, int, pair_hash> - для рёберного представления размеченного графа (меткой является номер ребра);
• unordered_map<pair<int, int>, double, pair_hash> - для рёберного представления размеченного графа (меткой является «вес» ребра).
В этих СД ребро идентифицируется парой номеров вершин, поэтому ключом является пара целых чисел. Так как ключи должны допускать хеширование, а для шаблонного типаpair<T1, T2> нет стандартной хеш-функции, то был создан собственный шаблонный класс pair_hash с функциональным объектом, реализующим вычисление хеш-кода с помощью операции «сложение по модулю 2». Класс pair_hash использовался для инстанцирования шаблонных map-контейнеров.
Классы для работы с графами
В соответствии с концепцией объектно-ориентированного программирования для работы с неориентированными графами созданы два класса:
• Graph - основной класс, поддерживающий различные формы представления графа и его рёберного графа, в также реализующий алгоритмы вычисления всех инвариантов. В конструктор класса передаётся BCR-представление графа Gstr и тэг (имя) инварианта tag_Inv, который необходимо вычислить;
• GraphR - вспомогательный класс, содержащий открытую функцию EResistance, которая реализует алгоритм вычисления резистив-
ного расстояния между двумя заданными вершинами. Объекты класса GraphR создаются внутри внешней функции Resist на основе матрицы смежности, получаемой от объекта класса Graph.
Класс Graph содержит закрытую функцию Calculatelnvariant, которая реализует один из алгоритмов вычисления инварианта графа в зависимости от получаемого функцией тега инварианта tag_Inv. Эта функция использует вспомогательные внешние функции:
• Deg2 - вычисляет степень 2-го порядка для заданной вершины;
• Clus - вычисляет коэффициент кластеризации для заданной вершины;
• BFSMS - вычисляет геодезические расстояния между вершинами с использованием алгоритма поиска в ширину;
• Resist - вычисляет резистивные расстояния между вершинами [12] с использованием открытой функции E Resistance, предоставляемой классом GraphR.
Вычисление требуемого инварианта происходит в процессе конструирования объекта класса Graph (т.е. графа). Полученное значение инварианта сохраняется в соответствующем закрытом поле объекта; для последующего «извлечения» вычисленных инвариантов класс Graph предоставляет открытые get-функции.
Программная реализация мультимножеств и фактор-множеств
Авторами разработан и реализован на языке С++ шаблонный класс MultiSet для работы с мультимножествами различного вида, в том числе и с «мультимножествами мультимножеств» (сокращённо МММ) [13]. Функциональность данного шаблона позволяет конструировать ММ разного типа, проверять принадлежность элемента мультимножеству, включать в ММ новые элементы, объединять два ММ, выполнять операции сравнения двух ММ («равно», «меньше», «больше»). Операции сравнения реализованы внешними дружественными функциями. Наличие таких операций позволяет использовать мультимножества в качестве ключа ассоциативного массива (map-контейнера) при реализации фактор-множеств.
Используются четыре вида мультимножеств для хранения инвариантов: два «простых» мультимножества со скалярными компонентами int и double и два «композитных» мультимножества с компонентами-мультимножествами. Для упрощения программного кода определены следующие псевдонимы:
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
• using MSI = MultiSet<int>,
• using MSD = MultiSet<double>,
• using MMSI = MultiSet<MSI>,
• using MMSD = MultiSet<MSD>.
С использованием этих псевдонимов сконструированы СД (тар-контейнеры) для хранения разбиений (фактор-множеств). Ключом в контейнерах являются мультимножества, а элементами - классы эквивалентности, содержащие множества графов в BCR-представлении. Классы эквивалентности хранятся в виде односвязных списков:
• тар< MSI, forward_list<string> >,
• тар< MSD, forward_list<string> >,
• тар< MMSI, forward_list<string>,
• тар< MMSD, forward_list<string> >.
Наряду с тар-контейнерами для фактормножеств используются «облегчённые» СД типа «список из списков» - forward_list<forward_list< string», в которых классы эквивалентности хранятся без ключей.
Измерение времени работы программы
Для оценки затрат времени на вычисление инвариантов использована стандартная библиотека С++ chrono [14], которая реализует концепции «интервал времени», «момент времени» и «таймер» с помощью шаблонных классов duration, trne_point и clock. Измерение временных интервалов производилось в миллисекундах, поэтому использовано следующее инстанциро-вание класса duration:
using milliseconds = duration<long long, тШ1>.
В качестве таймера выбран класс steady clock («устойчивые часы»), имеющий статическую функцию now, которая возвращает текущий момент времени в виде объекта trne_point. Обычно само значение trne_point не интересно и на практике используют разность между двумя значениями, представляющую величину отрезка времени между двумя событиями. Если момент наступлении первого события сохранить в переменной start = steady_clock::now(), а момент наступлении второго события - в переменной end = steady_clock::now(), то интервал времени между этими событиями, выраженный в миллисекундах в формате длинного целого, можно получить с помощью выражения
duration_cast<milliseconds>(end - start).count().
Алгоритм вычислительного эксперимента
Ниже представлен алгоритм вычислительного эксперимента на псевдокоде, реализован-
ный в разработанном программном комплексе. Эксперименты проводились со случайными выборками из эталонных множеств неизоморфных графов в BCR-представлении, хранящихся в текстовых файлах. Размер одной выборки и количество выборок задаются параметрами N и M, а локация файла в компьютере (полный путь и имя) задаётся символьной строкой F_loc. Алгоритм выполняет последовательную обработку одной выборки несколькими инвариантами. Последовательность тегов инвариантов задаётся массивом строк Settag. Например, запись {«MMSDV», «MMSResDistV.»} означает, что сначала разбиение проводится с использованием инварианта «Мультимножество мультимножеств степеней вершин», а затем, если необходимо, с использованием инварианта «Мультимножество мультимножеств резистивных расстояний от вершины до всех остальных вершин».
На выходе алгоритма получается среднее значение надёжности композиции инвариантов (q_m) и среднее время обработки одной выборки (t_m). Для вычисления среднего значения надёжности ведётся подсчёт общего количества неразличимых графов (gusum) по всем выборкам, т.е. графов, оказавшихся в классах эквивалентности размером 2 и более после завершения обработки всеми инвариантами из массива Settag.
Структурно алгоритм содержит внешний цикл loop_1 по выборкам, в который вложен цикл loop_2 по элементам массива Set tag. Перед запуском цикла loop_1 формируется эталонное множество графов P путём его чтения из входного файла и обнуляется счётчик gusum.
На вход цикла loop_2 поступает фактормножество Qset, содержащее случайную выборку размером N из P. В начале цикла loop_2 подсчитывается g sum - суммарное количество графов во всех подмножествах множества Qset и обнуляется счётчик c_sum, который будет подсчитывать количество классов эквивалентности фактор-множества на выходе из цикла loop_2.
Затем происходит вход в ещё один вложенный цикл (loop_3), в котором выполняется последовательная обработка классов эквивалентности Eqclass фактор-множества Q set с использованием текущего инварианта с тегом tag_Inv. В цикле loop_3 последовательно выполняются два цикла:
• loop_4, в котором для каждого графа G из множества Eqclass с помощью функции Calculate вычисляется мультимножество I - значение текущего инварианта с тегом tag_Inv; после этого пара (I, G) включается в map-контейнер U. Благодаря своей внутренней логике работы, этот
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
контейнер после завершения цикла будет содержать разбиение множества Eqclass;
• loopв котором из контейнера U выбираются классы эквивалентности мощности 2 и более и записываются в промежуточное фактормножество Qsettmp.
Если по завершению цикла loop_3 множество Q set tmp оказывается пустым, то происходит досрочный выход из цикла loop_2, так как произведено «идеальное» разбиение - все классы эквивалентности содержат по одному графу. В противном случае множество Q set tmp переносится в множество Qset и выполняется очередная итерация цикла loop_2, т.е. выбирается очередной инвариант из цепочки и с его помощью выполняется разбиение каждого из классов эквивалентности, содержащихся в Qset.
После завершения цикла loop_2 подсчиты-вается количество неразличимых графов для текущей выборки и происходит накопление этой величины в счётчике gusum. В завершение работы алгоритма вычисляется среднее по выборкам значение надёжности q_m для композиции инвариантов и среднее значение времени обработки одной выборки t_m.
Experiment(N, M, F loc, Set I) : q_m, t_m
P ^ ввод эталонного множества графов из файла F loc
gu sum ^ 0
for i in [1, M] ^ loop_1
Qset ^ случайная выборка размером N из P for tag_Inv in Set tag ^ loop_2 ts ^ текущее время
g_sum ^ суммарное количествово графов во всех КЭ csum ^ 0; Q set tmp ^ 0
for Eq class in Q set ^ loop_3 U ^ 0
for G in Eq class ^ loop_4 I ^ Calculate(G, tagInv) U ^ (I, G) end loop_4 csum += | U | for u in U ^ loop_5
if | u.second | > 1 Q set tmp ^ u.second end loop_5 end loop_3 tf ^ текущее время t_m += tf - ts
if | Q_set_tmp | = 0 break loop_2 Q_set_in ^ Q set tmp end loop_2
gu sum += g sum - c sum end loop_1
q_m ^ 100 * (1 - gu sum / (M * N)) t m ^ t m / M
Результаты вычислительных экспериментов
Использованные для проведения экспериментов эталонные множества неизоморфных графов c заданными характеристиками были заранее получены и сохранены в текстовых файлах в 5С^-формате с помощью программы geng. Входными данными этой программы являются: количество вершин (n) и рёбер (m) графа G, а также диапазон степеней вершин D = [di,
Как правило, генерируемые программой geng множества графов имеют очень большую мощность даже при малых значениях n и m. В табл. 1 в качестве примера приведены характеристики нескольких эталонных множеств; каждое из множеств P идентифицируется набором параметров в скобках, смысл которых понятен из табл. i.
Таблица 1 / Table 1
Примеры полных множеств неизоморфных графов / Examples of complete sets of non-isomorphic graphs
Множество n m D P\ \P/Imsdv(P)\ Время счёта, мс
P(12,27,2,5) 12 27 Г2, 51 12 507 007 7 1 068 918
P(12,27,3,5) 12 27 [3, 5] 10 542 382 4 897 049
P(12,27,4,5) 12 27 [4, 5] 1 877 692 1 158 676
P(13,18,1,5) 13 18 [1, 51 20 597 891 97 1 448 392
P(13,18,2,5) 13 18 [2, 51 1 354 893 14 96 793
P(13,18,2,6) 13 18 [2, 61 1 534 231 23 111 832
Для оценки затрат времени на проведение экспериментов с множествами графов большого размера (до 20 млн) в табл. 1 приведено время счёта при разбиении этих множеств на классы эквивалентности с использованием самого простого в вычислительном отношении инварианта Ыяву (ММ степеней вершин [1]). Как видно, это время достигало почти 20 мин.
Поэтому были использованы случайные выборки относительно небольшого объёма N из больших эталонных множеств, а для повышения достоверности результатов проводились повторные испытания на М выборках. Для оценки надёжности инвариантов и времени счёта рассчитывались их средние по множеству выборок значения дт и т
В экспериментах использованы эталонные множества Р(12,27,2,5) и Р(13,18,2,6); параметры N и М имели значения 1 000 и 100 соответственно. Для удобства анализа результатов экспериментов все инварианты в форме ММ, описанные в [1], распределены по четырём группам.
Первая группа включает наиболее простые в вычислительном отношении «локальные» инварианты, которые характеризуют ближнее окружение вершины или ребра всего одним числом и
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
из этих чисел составляется ММ, характеризующее граф в целом (в скобках указаны сокращённые обозначения (теги) инвариантов):
- ММ степеней вершин (MSDV);
- ММ степеней второго порядка вершин (MSDV2);
- ММ коэффициентов локальной кластеризации вершин (MSClusV);
- ММ степеней рёбер (MSDE);
- ММ степеней второго порядка рёбер (MSDE2);
- ММ коэффициентов локальной кластеризации рёбер (MSClusE).
Результаты экспериментов с «локальными» инвариантами приведены в табл. 2. Анализ результатов позволяет сделать следующие выводы:
1. Надёжность инвариантов, вычисляемых для рёберного графа, в среднем выше, чем у инвариантов исходных графов. Это можно объяснить тем обстоятельством, что рёберный граф, как правило, имеет больше вершин и рёбер, чем исходный граф. Но для вычисления таких инвариантов требуется больше времени.
2. Надёжность инвариантов, основанных на вычислении степеней второго порядка и коэффициентов локальной кластеризации вершин (рёбер) выше, чем у простейших инвариантов, основанных на вычислении простых степеней вершин (рёбер).
Таблица 2 / Table 2
Результаты экспериментов с инвариантами первой группы / Results of experiments with invariants of the first group
Вторая группа состоит из инвариантов, характеризующих вершину или ребро не одним числом, а мультимножеством чисел, включающим «локальные» числовые характеристики смежных вершин или рёбер. Мультимножество, составленное из этих ММ (т.е. МММ), будет характеризовать граф в целом:
- МММ степеней смежных вершин (МИБОУ);
- МММ степеней второго порядка смежных вершин (MMSDV2);
- МММ коэффициентов локальной кластеризации смежных вершин (MMSClusV);
- МММ степеней смежных рёбер (MMSDE);
- МММ степеней второго порядка смежных рёбер (MMSDE2);
- МММ коэффициентов локальной кластеризации смежных рёбер (MMSClusE).
Результаты экспериментов с этими МММ-инвариантами приведены в табл. 3. Анализ результатов показывает, что надёжность инвариантов этой группы в целом гораздо выше, чем у инвариантов первой группы; среди них встречаются также инварианты с «абсолютной» надёжностью. Этот факт можно объяснить тем, что МММ-инварианты содержат больше информации о структуре графа, чем простые мультимножества и совпадение значений двух подобных инвариантов для разных графов встречается гораздо реже.
Таблица 3 / Table 3
Результаты экспериментов с инвариантами второй
группы / Results of experiments with invariants __of the second group_
Инвариант P(12,27,2,5) P(13,18,2,6)
Надёжность, % Время счёта, мс Надёжность, % Время счёта, мс
Для исходного графа
MMSDV 60,5 232 97,0 230
MMSDV2 96,3 336 100,0 285
MMSClusV 100,0 308 81,7 227
Для рёберного графа
MMSDE 98,3 707 99,8 432
MMSDE2 100,0 1 353 100,0 578
MMSClusE 100,0 1 010 99,7 477
Третья группа содержит инварианты, основанные на вычислении геодезических расстояний между парами вершин или рёбер графа:
— ММ геодезических эксцентриситетов вершин (МБЕссОвоУ);
— ММ геодезических расстояний между парами вершин (MSGeoDistPV);
— МММ геодезических эксцентриситетов смежных вершин MMSEccGeoV);
— МММ геодезических расстояний от вершины до других вершин (MMSGeoDistV);
— ММ геодезических эксцентриситетов рёбер (MSEccGeoE);
— ММ геодезических расстояний между парами рёбер (MSGeoDistPE);
— МММ геодезических эксцентриситетов смежных рёбер (MMSEccGeoE);
— МММ геодезических расстояний от ребра до других рёбер (MMSGeoDistE).
Инвариант P(12,27,2,5) P(13,18,2,6)
Надёжность, % Время счёта, мс Надёжность, % Время счёта, мс
Для исходного графа
MSDV 0,7 85 2,1 70
MSDV2 8,8 200 66,6 140
MSClusV 8,3 150 35,1 90
Для рёберного графа
MSDE 5,5 440 41,5 210
MSDE2 98,9 900 97,2 350
MSClusE 98,9 603 90,0 251
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
Анализ приведённых в табл. 4 результатов экспериментов для инвариантов этой группы позволяет отметить, что по показателю надёжности их можно сравнить с инвариантами первой группы, но они требуют существенно больших затрат времени на вычисление. Кроме того, имеющиеся в этой группе МММ-инварианты более надёжны, чем ММ-инварианты из этой же группы. «Рекордсменом» является инвариант MMSGeoDistE, но затраты времени на его вычисление весьма велики.
Таблица 4 / Table 4 Результаты экспериментов с инвариантами третьей группы / Results of experiments with invariants
Четвёртая группа содержит наиболее трудоёмкие в вычислительном отношении инварианты, использующие резистивные расстояния между парами вершин (рёбер) графа:
— ММ резистивных эксцентриситетов вершин (MSEccResV);
— ММ резистивных расстояний между парами вершин (MSResDistPV);
— МММ резистивных эксцентриситетов смежных вершин (MMSEccResV);
— МММ резистивных расстояний от вершины до других вершин (MMSResDistV);
— ММ резистивных эксцентриситетов рёбер (MSEccResE);
— ММ резистивных расстояний между парами рёбер (MSResDistPE);
— МММ резистивных эксцентриситетов смежных рёбер (MMSEccResE);
— МММ резистивных расстояний от ребра до других рёбер (MMSResDistE).
Приведённые в табл. 5 результаты экспериментов показали рекордные характеристики надёжности для всех случаев, однако по затратам времени они могут на несколько порядков превышать аналогичный показатель более простых инвариантов, имеющих сопоставимые характеристики по надёжности.
Таблица 5 / Table 5
Результаты экспериментов с инвариантами четвёртой группы / Results of experiments with invariants of the fourth group
Инвариант P(12,27,2,5) P(13,18,2,6)
Надёжность, % Время счёта, мс Надёжность, % Время счёта, мс
Для исходного графа
MSEccResV 100.0 11 816 100.0 8 294
MSResDistPV 100.0 12 262 100.0 7 981
MMSEccResV 100.0 12 889 100.0 8 259
MMSResDistV 100.0 11 799 100.0 8 053
Для рёберного графа
MSEccResE 100.0 441 043 100.0 37 186
MSResDistPE 100.0 424 287 100.0 40 132
MMSEccResE 100.0 421 409 100.0 37 506
MMSResDistE 100.0 423 442 100.0 41 471
Таким образом, применение высоконадёжных инвариантов четвёртой группы для проверки на изоморфность больших множеств графов практически невозможно. В то же время, для задач, требующих такой проверки для двух или нескольких графов, использование этих инвариантов вполне оправдано.
Для проверки больших множеств графов можно предложить подход на основе композиции инвариантов, когда проверка выполняется последовательно несколькими инвариантами: сначала «лёгкими», а затем всё более «тяжёлыми». В табл. 6 приведены результаты экспериментов с использованием композиции из двух инвариантов с теми же эталонными множествами, но с выборками гораздо большего размера (N = 50 000).
Таблица 6 / Table 6
Результаты экспериментов с композицией инвариантов / Results of experiments with the composition of invariants
Инвариант P(12,27,2,5) P(13,18,2,6)
Надёжность, % Время счёта, мс Надёжность, % Время счёта, мс
MMSClusV 99,97 17 180 45,4 12 295
MMSResDistV 100,0 603 835 100,0 405 360
MMSClusV+ MMSResDistV 100,0 17 599 100,0 303 073
Анализ результатов демонстрирует, что при использовании эталонного множества Р(12,27,2,5) предварительное применение относительно «лёгкого» инварианта MMSClusV позволило сократить время работы «тяжёлого» инварианта MMSResDistV с 604 до 18 секунд, т.е. примерно в 34 раза. Однако для множества Р(13,18,2,6) такое сокращение составило только 1,3 раза.
of the third group
Инвариант P(12,27,2,5) P(13,18,2,6)
Надёжность, % Время счёта, мс Надёжность, % Время счёта, мс
Для исходного гра( )а
MSEccGeoV 1,4 221 8.8 208
MSGeoDistPV 1,5 208 35.8 226
MMSEccGeoV 63,0 336 97.9 389
MMSGeoDistV 38,4 288 100.0 351
Для рёберного гра( >а
MSEccGeoE 2,1 876 14.6 430
MSGeoDistPE 23,4 890 91.9 455
MMSEccGeoE 51,4 1 063 99.9 615
MMSGeoDistE 100,0 1 091 100.0 610
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
Выводы
Предложенная методика экспериментального исследования эффективности инвариантов на эталонных множествах неизоморфных графов реализована в виде программного комплекса, построенного по объектно-ориентированной технологии. Центральной идеей экспериментов является процедура разбиения множеств графов на классы эквивалентности по отношению к конкретному инварианту.
Оригинальная реализация шаблонного класса мультимножеств позволила в унифицированной форме запрограммировать алгоритмы для всех ранее описанных авторами инвариантов, а также реализовать операции разбиения множеств с использованием эффективных библиотечных структур данных.
Приведённые в статье результаты численных экспериментов позволили провести сравнительный анализ эффективности инвариантов и дать рекомендации по их практическому использованию.
Дальнейшие исследования могут быть проведены в направлении использования параллельных вычислений для сокращения затрат времени на вычисление инвариантов, основанных на резистивных расстояниях между вершинами графа.
Список источников
1. Иванченко А.Н, Иванченко К.Н. Анализ инвариантов, используемых для тестирования изоморфизма графов и принципы их систематизации // Изв. вузов. Сев.-Кавк. регион. Техн. науки. 2021. № 4. С. 17 - 23.
2. Петровский А.Б. Пространства множеств и мультимножеств. М.: Едиториал УРСС, 2003. 248 с.
3. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ, 3-е изд. М.: «Вильямс», 2013. 1328 с.
4. Кнут Д. Искусство программирования. Т. 3: Сортировка и поиск. М.: «Вильямс», 2007. 824 с.
5. Equivalence class. Available at: <https://en.wikipedia.org /wiki/Equivalence_class> (accessed 15.02.2022).
6. Programming languages - C++. International Standard ISO/IEC 14882:2020(E).
7. McKay B.D., Piperno A. Nauty and Traces. Software distribution web page. Available at: <http://users.cecs.anu.edu.au /~bdm/nauty/> (accessed 15.02.2022).
8. McKay B.D. Practical Graph Isomorphism // Congressus Numerantium, 30 (1981). Р. 45 - 87. Available at: <http://users.cecs.anu.edu.au/~bdm/nauty/pgi.pdf> (accessed 15.02.2022).
9. McKay B. D., Piperno A. Practical Graph Isomorphism, II // J. Symbolic Computation (2013) Vol. 60, p. 94-112. Available at: <https://arxiv.org/pdf1301.1493.pdf> (accessed 15.02.2022).
10. Лекции по теории графов / В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич М.: Наука, 1990. 384 с.
11. Иванченко А.Н. О выборе структур данных для решения задач на графах // Результаты исследований-2019: материалы IV Национальной конф. профессорско-преподавательского состава и научных работников, г. Новочеркасск, 14 мая 2019 г. / Юж.-Рос. гос. политехн. ун-т (НПИ) им. М.И. Платова. 1919. С. 79 - 81.
12. Иванченко А.Н, Иванченко К.Н.Критерий изоморфизма графов на основе резистивного расстояния // Изв. вузов. Сев.-Кавк. регион. Техн. науки. 2020. № 2. С. 13 - 18.
13. Иванченко А.Н., Иванченко К.Н. Использование мультимножеств для реализации векторных инвариантов графов // Результаты исследований-2021: материалы VI Национальной конф. профессорско-преподавательского состава и научных работников, г. Новочеркасск, 17 мая 2021 г. / Юж.-Рос. гос. политехн. ун-т (НПИ) им. М.И. Платова. 2021. С. 7 - 10.
14. Основные концепции библиотеки chrono (C++). Available at: <https://habr.com/ru/post/324984/> (accessed 15.02.2022).
References
1. Ivanchenko A.N., Ivanchenko K.N. Analysis of invariants used for graph isomorphism testing and the principles of their systema-tization. University News. North Caucasian Region. Technical Sciences=Bulletin of Higher Educational Institutions. North Caucasus Region. Technical Sciences. 2021; (4): 17-23. http://dx.doi.org/10.17213/1560-3644-2021-4-17-23/ (In Russ.).
2. Petrovskij A.B. Spaces of sets and multisets. Moscow: Editorial URSS; 2003. 248 p.
3. Cormen Thomas H., Leiserson Charles E., Rivest Ronald L., Clifford Stein. Algorithms: construction and analysis, 3rd. Moscow: «Williams»; 2013. 1328 p.
4. Knuth D.E. The Art of Computer Programming. Vol. 3. Sorting and Searching. Moscow: «Williams»; 2007. 824 p.
5. Equivalence class. Available at: <https://en.wikipedia.org/wiki/Equivalence_class> (accessed 15.02.2022).
6. Programming languages - C++. International Standard ISO/IEC 14882:2020(E).
7. McKay B.D., Piperno A. Nauty and Traces. Software distribution web page. Available at: <http://users.cecs.anu.edu.au/~bdm/nauty/> (accessed 15.02.2022).
8. McKay B.D. Practical Graph Isomorphism. Congressus Numerantium, 30 (1981). Pp. 45-87. Available at: <http://users.cecs.anu.edu.au/~bdm/nauty/pgi.pdf> (accessed 15.02.2022).
9. McKay B. D., Piperno A. Practical Graph Isomorphism, II. J. Symbolic Computation (2013), vol. 60, p. 94-112. Available at: <https://arxiv.org/pdf/1301.1493.pdf> (accessed 15.02.2022).
10. Emelichev V.A., Melnikov O.I., Sarvanov V.I., Tyshkevich R.I. Lectures on graph theory. Moscow, Nauka, 1990. 384 p.
ISSN 1560-3644 BULLETIN OF HIGHER EDUCATIONAL INSTITUTIONS. NORTH CAUCASUS REGION. TECHNICAL SCIENCES. 2022. No 1
11. Ivanchenko A.N. About the choice of data structures for solving problems on graphs. Research results-2019: materials of the IV National Conference of Faculty and Researchers, Novocherkassk, May 14, 2019. Platov South-Russian State Polytechnic University (NPI). - Pp.79-81. (In Russ.).
12. Ivanchenko A.N, Ivanchenko K.N. Graph isomorphism criterion based on resistance distance. University News. North Caucasian Region. Technical Sciences Series=Bulletin of Higher Educational Institutions. North Caucasus Region. Technical Sciences. 2020; (2): 13-18. (In Russ.).
13. Ivanchenko A.N., Ivanchenko K.N. Using multisets to implement vector invariants of graphs. Research results-2021: materials of the VI National Conference of Faculty and Researchers.Novocherkassk: SRSPU (NPI); 2021. Pp. 7-10.
14. Basic concepts of the chrono library (C++). Available at: <https://habr.com/ru/post/324984/> (accessed 15.02.2022).
Сведения об авторах
Иванченко Александр Николаевичя - канд. техн. наук, профессор, зав. кафедрой «Программное обеспечение вычислительной техники», [email protected]
Иванченко Кирилл Николаевич - аспирант, [email protected]
Шайда Алексей Юрьевич - аспирант, кафедра «Программное обеспечение вычислительной техники», [email protected] Information about the authors
Ivanchenko Акха^ег N. - Candidate of Technical Sciences, Professor, Department «Computer Software», [email protected] Ivanchenko Kirill N. - Graduate Student, [email protected]
Shaida Alexey Yu. - Graduate Student, Department «Computer Software», [email protected]
Статья поступила в редакцию/the article was submitted 21.02.2022; одобрена после рецензирования /approved after reviewing 24.02.2022; принята к публикации / acceptedfor publication 28.02.2022.