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

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

CC BY
383
62
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛНЫЙ ИНВАРИАНТ ГРАФА / ИЗОМОРФИЗМ ГРАФОВ / ИНТЕГРАЛЬНЫЙ ОПИСАТЕЛЬ СТРУКТУРЫ / АБСТРАКТНАЯ СТРУКТУРА ГРАФА / ОБЛАСТЬ ИНТЕГРАЦИИ КОДОВ / ПОЛИНОМИАЛЬНОСТЬ АЛГОРИТМА / COMPLETE GRAPH INVARIANT / GRAPH ISOMORPHISM / INTEGRAL STRUCTURE DESCRIPTOR / ABSTRACT GRAPH STRUCTURE / CODE INTEGRATION AREA / POLYNOMIAL ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Погребной Владимир Кириллович, Погребной Андрей Владимирович

Актуальность исследования заключается в том, что проблема поиска полного инварианта графа и полиномиального алгоритма его вычисления остаётся нерешенной. Цель работы состоит в нахождении полного инварианта обыкновенного графа на основе интегрального описателя абстрактной структуры и в разработке эффективного алгоритма вычисления полного инварианта. Методы исследования базируются на теории графов и теории интеграции кодов структурных различий в абстрактных структурах графов. В результате исследований предложен алгоритм решения одной из наиболее сложных задач теории графов – вычисление полного инварианта графа. Алгоритм основан на методах свободной и зависимой интеграции кодов структурных различий в графе и характеризуется простотой, эффективностью, и имеет полиномиальную оценку предельного объема вычислений. Полный инвариант представлен в виде вектора интегральных описателей вершин абстрактной структуры графа и содержит информацию для формирования подстановки изоморфизма. На языке

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

Java разработано программное средство GraphISD, реализующее предложенный алгоритм. Приведены примеры вычисления полных инвариантов при свободной и зависимой интеграции.The relevance of the research is caused by the unsolved problem of searching for the complete graph invariant and polynomial algorithm for its computing. The aim of the research is in determining the complete invariant of an ordinary graph on the basis of integral descriptor of abstract structure and in developing the efficient algorithm for computing the complete invariant. The techniques of the research are based on the graph theory and the theory of structural differences code integration in abstract graph structures. The authors have proposed the algorithm for solving one of the most complex problems of graph theory. It is the computation of complete graph invariant. The algorithm is based on the methods of free and dependent integration of structural differences codes in a graph; it is characterized by simplicity, efficiency and it has polynomial estimation of the limiting amount of computation. The complete invariant is represented in the form of a vector of integral descriptor for graph abstract structure vertices and contains information for forming isomorphism substitution. Using Java the GraphISD software was developed implementing the proposed algorithm. The paper introduces the examples of computing the complete invariants at free and dependent integration.

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

УДК 519.171.1

ПОЛИНОМИАЛЬНЫЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ПОЛНОГО ИНВАРИАНТА ГРАФА НА ОСНОВЕ ИНТЕГРАЛЬНОГО ОПИСАТЕЛЯ СТРУКТУРЫ

В.К. Погребной, Ан.В. Погребной

Томский политехнический университет E-mail: [email protected]

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

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

Методы исследования базируются на теории графов и теории интеграции кодов структурных различий в абстрактных структурах графов.

В результате исследований предложен алгоритм решения одной из наиболее сложных задач теории графов - вычисление полного инварианта графа. Алгоритм основан на методах свободной и зависимой интеграции кодов структурных различий в графе и характеризуется простотой, эффективностью, и имеет полиномиальную оценку предельного объема вычислений. Полный инвариант представлен в виде вектора интегральных описателей вершин абстрактной структуры графа и содержит информацию для формирования подстановки изоморфизма. На языке Java разработано программное средство GraphlSD, реализующее предложенный алгоритм. Приведены примеры вычисления полных инвариантов при свободной и зависимой интеграции.

Ключевые слова:

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

Содержательная формулировка проблемы

В теории графов под инвариантом понимают некоторую количественную меру, которая характеризует структуру графа и не зависит от нумерации его вершин [1]. Например, упорядоченный по возрастанию или убыванию вектор значений степеней вершин графа является его инвариантом. Очевидно, что для двух изоморфных графов О и Н инварианты, сформированные на основе степеней вершин, обозначим их й(О) и Б(Н), совпадают, т. е. 8(О)=Б(Н). К настоящему времени накоплено много типов инвариантов, каждый из которых отражает некоторые особенности структуры графа. Большое число инвариантов (топологических индексов) введено для исследования структуры химических графов [2]. В частности, для взвешенных обыкновенных графов авторами в работе [3] введен ряд инвариантов на основе оценок компактности, а также на основе компактных подграфов.

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

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

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

В статье предлагается изменить подход к решению данной проблемы, отойти от поиска полного инварианта в виде некоторой количественной меры и сосредоточиться на получении полного инварианта на основе интегрального описателя структуры (Integral Structure Descriptor - ISD), используя для этого метод интеграции структурных различий (метод ISD), изложенный в [4].

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

Полный инвариант, вычисленный с помощью метода ISD, зависит от используемой при формировании числовых кодов системы кодирования, которая в [4] названа областью интеграции кодов. Поэтому для сравнения полных инвариантов графов G и H необходимо, чтобы коды ISD были получены относительно одной области интеграции. В этом случае равенство полных инвариантов гарантирует изоморфизм графов G и H.

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

Учитывая, что класс содержит изоморфные графы, любой из них, например граф G, может представлять данный класс. В этом случае класс обозначается как G(S). Для графа G, как представителя класса G(S) определяется полный инвариант P(G), который в последующем рассматривается в роли образа (эталона) при поиске других графов из множества M(S), относящихся к классу G(S). Следуя концепции предложенного в [4] метода ISD, в ходе определения P(G) формируется область интеграции кодов WG(S), которая наряду с P(G) применяется в качестве эталона и устанавливает правила кодирования структурных различий для графов класса G(S). Тогда полный инвариант PG(H) графа H из множества M(S), вычисленный в соответствии с системой кодирования области WG(S), можно сравнивать с P(G). Если при этом Pg(h)=P(G), то граф H изоморфен графу G и, следовательно, принадлежит классу G(S).

Формирование области интеграции Wg(5)

и определение полного инварианта P(G)

Для задания множества графов можно использовать любые тривиально вычисляемые инварианты, например упомянутый выше степенной инвариант S. Все графы, у которых этот инвариант совпадает, образуют соответствующие множества M(S). Будем считать, что степенной инвариант в виде вектора S задан и определяет множество связных обыкновенных графов M(S). В множестве M(S) произвольно выберем один из графов, например G, который будет представлять класс G(S). Формирование области интеграции WG(S) для класса графов G(S), представленного графом G со степенным инвариантом S, производится с применением метода свободной интеграции кодов структурных различий [4]. Граф G=(E,U) представим матрицей смежности вершин A=||aJ„x„, atj=1, если вершины et и e связаны ребром иф atj=0, в противном случае.

Введём n-мерный вектор Dk={d1k}, элементы dk которого будут соответствовать кодовым числам интегральных описателей вершин et на k-м шаге интеграции кодов структурных различий графа G. Если значение элемента d * в векторе Dk встречается один раз, т. е. не повторяется, то такой элемент будем обозначать d*. На шаге k=0 все элементы d° вектора D° принимаются равными 1. Метод свободной интеграции последовательно выполняет преобразования вектора D* в ^^до тех пор, пока

на некотором шаге к не будет получен вектор Бк+1=Б, у которого все элементы йк+1 окажутся обозначены как й1*к+1. Используемая при этом система кодирования оформляется в виде области интеграции Же(5) для класса О(Б), представляемого графом Є.

Алгоритм свободной интеграции для формирования области Же(й) и определения полного инварианта Р(Є) включает следующие операции.

1. Используя операцию попарного произведения элементов двух векторов, обозначим её символом ®, для каждой вектор-строки Аі (вектор-столбца А) выполним А®Б^ІБк)=(аі1й1к,аі2й2к,...,аіайк). Данная операция не выполняется для А^ которым соответствуют элементы й*, внесённые в вектор Бк как виртуальные различия (см. п. 3). Нулевые значения элементов вектора 2(0к) исключаются, а множество ненулевых упорядочивается по возрастанию значений и обозначается £к. В результате имеем совокупность множеств Zk={Zk}.

2. Кодовые числа й*, помеченные в Бк как виртуальные различия, переносятся в Бк+1 без изменения значений. Далее для множеств ZkєZk назначаются кодовые числа йк+\ которые включаются в вектор Бк+1. Выбор кодового числа йк+1 при очередном назначении осуществляется из общего множества чисел ї=(1,2,...,п). Назначение кодовых чисел выполняется таким образом, чтобы разные множества Zk получили разные кодовые числа йк+\ т. е.

У(2к, 2)) с гк [(2) * 1)) & (І * ])] ^ (й) +1 * й) +1).

Для этого последовательно анализируется каждое множество ZikєZk. Если Zk совпадает с одним из множеств ZkєZk, для которого уже назначен код йк+\ то множеству Zk назначается код йк+1=йк+1. Если Zk отличается от множеств Zk с назначенными кодами йк+1, то множеству Zk назначается код йк+1 по правилу:

ё]+1 = тіп(I \ I(Бк+1)). (1)

Здесь ї(Бк+1) - множество элементов йк+1 внесённых ранее в вектор Бк+1 на данном шаге интеграции. Код йк+1 заносится в вектор Бк+1 и анализ очередного множества Zk повторяется. Процесс заканчивается, когда всем Zk будут назначены коды йк+1. Множество кодовых чисел в векторе Бк+1 обозначим ї(Бк+1).

3. Выполняется анализ вектора Бк+1. Если шах(ї(Бк+1))>шах(ї(Бк)), то проверяется наличие йк+1, которые в векторе Бк+1 встречаются один раз, и они помечаются кодом Если шах(ї(Бк+1))=шах(ї(Бк)), то в векторе Бк+1 выбирается группа элементов с одинаковыми значениями йк+1 и с минимальным числом элементов в этой группе. Один из элементов в выбранной группе заменяется на элемент йі*+1 по правилу:

4+1 = тах( I (й)+1)) +1. (2)

Далее выполняются действия, как и в случае соблюдения условия шах(ї(Бк+1))>шах(ї(Бк)). Назначение й^1 по правилу (2) можно рассматривать как искусственное внесение в граф виртуального различия.

4. Область интеграции для класса графов О(Б), обозначенную как Же(5), представим совокупностью отдельных записей, сформированных для каждого к-го шага интеграции, в виде:

к = (к,кч): {Пй(2]) ^ й]+1}; {(1к) ^ 4к,+1}. (3)

В записи (3) указывается шаг, равный к или ки, если на к-м шаге интеграции использовалось очередное и-е, и=1,2,...,7, назначение кода й!*+1 по правилу (2). Множество {пй(^к)^йк+1} отражает назначение кода йк+1 по правилу (1), и при этом число множеств Z!‘ с одинаковым кодом й оказалось равным пй. Множество {(^к)^йк*+1} отражает уникальные коды йк+\ назначенные по правилу (1) или (2).

5. Операции 1-4 соответствуют выполнению одного к-го шага свободной интеграции кодов по преобразованию векторов Бк^Бк+1 и к-й записи в область Же(5). Выполнение шагов повторяется для к=0,1,2,...Дк,Дк<п, и заканчивается, когда в векторе Бк+1все элементы окажутся уникальными кодами йк+1. Данный вектор является интегральным описателем структуры (ISD) графа Є и в последующем обозначается как

Б(ф={й,}, і=1,2,.,п.

6. На основе вектора Б(Є) для графа Є вычисляется полный инвариант Р(Є)={Рі(Є)}. С этой целью для каждого й над вектор-строкой Аі графа Є и вектором Б(Є) выполняется операция попарного произведения: Д®Б(С)=Б(С). После исключения из вектора Д(£) нулевых элементов и упорядочения по возрастанию ненулевых значений кодов й получим множество Zi, которое, по существу, является инцидентором ¥(й) вершины абстрактной структуры графа Є, поименованной уникальным кодом й. Запись в виде й1(Е(й1)) принимается в качестве элемента Р(О) вектора Р(Є). Упорядоченная по возрастанию значений кодов й последовательность элементов й (¥(й{)) в п-мер-ном векторе Р(Є) является полным инвариантом Р(б)={йі(¥(й))} графа Є и представляет абстрактную структуру графа, которая не зависит от исходной нумерации его вершин. Последовательность действий при получении

Р(Є) представим в виде:

А ® 0(0) = Ц (О); Ц (О) ^ 2 = ^(й);

й,.(^(й,)) ^ р(О); {р(О)} = Р(О) ^ Р(О). (4)

Заметим, что элементы Р1 (Є) вектора Р(Є) могут содержать только инциденторы ¥(й{), а числовые коды й вершин абстрактной структуры графа Є становятся избыточными, т. к. значения й изменяются от 1 до п и дублируют порядковые номера элементов в векторе Р(Є).

В данном алгоритме коды Бк множествам Zik назначались свободно, можно сказать произвольно, но в рамках заданных правил. Поэтому полу-

ченную систему кодирования, представленную областью WG(S), следует рассматривать как одну из многих возможных систем. При этом проблем с неоднозначностью кодирования здесь не возникает, т. к. система кодирования работает с множеством графов Ы^), замкнутым относительно инварианта S, и для любого графа НеЫ^) проверка наличия полного инварианта РО(Н)=Р(О) осуществляется в зависимости от WО(S). Если найти РО(Н)=Р(О) не удалось, то граф Н потенциально может стать представителем другого класса Н^) с соответствующей областью WH(S). В этом случае принадлежность любого графа Q<EЫ(S)\(О,H) к классам О^) или Н^) будет определяться наличием полного инварианта РО(0 или РН(0, вычисляемого относительно области WО(S) или WH(S).

Проверка наличия полного инварианта Ре(Н)

относительно области 1/Уе(5)

В предыдущем разделе показано, как для графа О из множества Ы^) с помощью метода ISD в условиях свободной интеграции кодов можно получить полный инвариант Р(О) и область WG(S). При наличии WG(S), представляющей класс О^), имеется возможность проверить принадлежность любого из графов Ы^)\О к классу О(S). Очевидно, что граф НеЫ^)\О принадлежит классу О^), если его полный инвариант РО(Н), вычисленный с использованием системы кодирования WG(S), будет равен Р(О). Полный инвариант РО(Н), полученный в системе WG(S) и равный Р(О), помечается индексом О, подчеркивая тем самым зависимое назначение кодов относительно области WG(S). Для проверки наличия у графа Н полного инварианта РО(Н) ниже предлагается алгоритм, использующий метод ISD с зависимой интеграцией кодов.

Алгоритм поиска РО(Н) с использованием зависимой интеграции, в сравнении с алгоритмом определения Р(О) на основе свободной интеграции, имеет два существенных отличия. Первое из них - это назначение кодов йк+1 множествам £к в строгом соответствии с системой кодирования WG(S). Второе отличие связано с изменением правила «разрушения» устойчивых групп. Если при свободной интеграции виртуальное различие вводилось для одной (любой) вершины устойчивой группы, то при зависимой интеграции все вершины устойчивой группы последовательно принимаются в качестве претендентов для введения виртуального различия.

Напомним, что при свободной интеграции для введения виртуального различия выбирается устойчивая группа с меньшим числом вершин. Такую группу обозначим £/”(О). Индекс ки, и=1,2,..., V, обозначает и-й порядковый номер к-го шага, на котором вектор Бки(О) содержит устойчивые группы. При зависимой интеграции соответствующую устойчивую группу в векторе Бк°(Н) будем обозначать £/”(Н).

Алгоритм зависимой интеграции для поиска полного инварианта РО(Н) включает следующие операции.

1. Формирование множеств £к={£/} осуществляется в полном соответствии с 1-й операцией алгоритма свободной интеграции.

2. Уникальные коды ё*, соответствующие виртуальным различиям, переносятся в вектор Бк+1(Н). Назначение кодов ёк+1 множествам {£/} производится путём копирования кодов, принятых в к-й строке системы кодирования WG(S). Если соответствие между всеми {£/} и WG(S) достигнуто, а вектор Бк+1(Н)^Б(Н), то относительно Бк+1(Н) выполняются операции 1 и

2. При условии, что Бк+1(Н)=Б(Н), т. е. Бк+1(Н) содержит только ёр1, алгоритм переходит к выполнению операции 4.

Отсутствие соответствия между и WG(S) оз-

начает, что вектор Бк+1(Н) получить не удалось и процесс зависимой интеграции на к-м шаге прерывается. Далее выполняется операция 3.

3. Процесс зависимой интеграции делает «обратный ход». Для этого в цепи переходов от Б°(Н) к Бк(Н) производится поиск вектора Бк(Н) с наибольшим значением индекса и, т. е. последний Бки(Н) в цепи переходов. При этом возможны три ситуации:

а) Вектор Бки(Н) не найден, т. е. обратный ход заканчивается на векторе Б0(Н). Это означает, что граф Н не имеет полного инварианта РО(Н), т. е. не принадлежит классу О^). В этом случае алгоритм заканчивает работу.

б) Вектор Бки(Н) найден, но в устойчивой группе Б/”(Н)=Б/”(О) всем вершинам в^Б(к°(Н) виртуальные различия уже назначались. В этом случае выполнение операции 3 повторяется, т. е. обратный ход продолжается с целью поиска вектора Бк(Н).

в) Вектор Бки(Н) найден и в группе Бёки(Н) имеется вершина в, которой виртуальное различие не назначалось. Вершине в^еБ/”(Н) согласно WG(S) назначается виртуальное различие, и процесс интеграции продолжает работу с вектором Бк(Н), т. е. выполняются операции 1 и 2.

4. Для вектора БО(Н) вычисляется полный инвариант РО(Н). При этом последовательность действий соответствует записи (4), и выполняются они аналогично операции (6) в алгоритме свободной интеграции для графа О. На этом алгоритм заканчивает работу.

С помощью данного алгоритма вычисляется полный инвариант РО(Н) при условии, что он существует для графа Н. Полный инвариант РО(Н) соответствует определенной подстановке изоморфизма графов О и Н. В общем случае для этих графов могут существовать и другие варианты подстановок изоморфизма. Если выделение таких подстановок актуально, то после вычисления РО(Н) следует перейти к операции 3, делая «обратный ход» уже в цепи переходов от Б°(Н) к Б-(Н)=Бо(Н).

Примеры схем поиска полных инвариантов при свободной и зависимой интеграции кодов

структурных различий приведен на рис. 1. На рис. 1, а показана цепь переходов для графа О от вектора Б°(О) до вектора Б(О) и соответствующего полного инварианта Р(О). В цепи выделены только векторы Бки и устойчивые группы £/”(О), выбранные для введения виртуальных различий. Принятая при этом система кодирования отражается в WG(S).

Схема поиска РО(Н) относительно WG(S) показана на рис. 1, б. Здесь короткие дуги, выходящие из вершин устойчивых групп, указывают, что введенное виртуальное различие не привело к успеху, т. е. возникло несоответствие между и WG(S) и потребовался «обратный ход». Длинные дуги означают, что очередной вектор Бки(Н) или БО(Н) достигнуть удалось.

Рис. 1, в отражает выполнение «обратного хода» для всех неуспешных и успешных продвижений процесса интеграции (короткие и длинные дуги). В данном случае схема отражает перебор всех цепей переходов относительно системы кодирования WG(S). Такой перебор соответствует предельному объему вычислений при поиске интегрального описателя БО(Н) и соответствующего полного инварианта РО(Н). Полиномиальность оценки сложности данного перебора показана в [6] и легко подтверждается примером на рис. 1, в.

Из рис. 1, в следует, что в графе Н относительно WG(S) полный инвариант РО(Н) найден для трёх вариантов подстановок изоморфизма (автоморфизмов), соответствующих интегральным описателям БОа(Н), БДН), БОС(Н). В случае, если граф НгО$), т. е. для него не существует РО(Н)=Р(О), схему поиска РО(Н) с перебором всех цепей, аналогичную рис. 1, в, можно использовать для анализа сходства графов О и Н. Изучение этих возможностей требует отдельных исследований. Некоторые вопросы по проблеме сходства двух графов на основе метода ISD были рассмотрены в работе [5].

Примеры получения области интеграции

и полных инвариантов

Работу алгоритма формирования области интеграции WG(S) и получения полного инварианта Р(О) покажем на примере однородного графа О из класса графов О^) с п=10 и степенью вершин S=3. Для получения полного инварианта однородные графы представляют наибольшую сложность, поэтому в качестве примера выбран граф данного класса. В верхней части рис. 2 представлен граф О в виде матрицы А и процесс получения вектора Б(О) и данных для формирования записей (3) в область интеграции кодов WG(S).

Элементы в множествах £к на рис. 2 не разделены запятыми. В данном случае это не вносит путаницу, т. к. все элементы являются одноразрядными числами. Для получения вектора Б(О)=Бк=8 потребовалось 8 шагов интеграции кодов. Правило (2) применялось дважды - для вектора Б11 (назначен код й;*=2) и для вектора Б82 (назначен код ё26*=8). Область интеграции WG(S) для графов рас-

а

Б0(О)

Б1'{О) [

і

] К1 (О)

Б^{О) Г^ТП К^О) Б3 (О) I »•••! Кк;(О)

Ї

Б(О)ё Р(О)

б

о

Б (О)

Бк' (Н) [

1 1

и »••••!

1

б к2(н) ГуІТІ к

Бкз(н) І іумі Кк/(Н)

Бо(Н)І Ро(Н)

о

Б (О)

Бк' (Н)

I

ІІШЛ

кк( н)

Бк2(н) гу^-адК£сн) К^(н) 14

к Д_ К^^н^ ф(н),_____________________г _

Б ,(н)>4^ СпЦ! >4

БО (н)

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

(н) * ре(Н 4

Л* (Н) ре(Н

Рис. 7. Схемы поиска полных инвариантов при свободной и зависимой интеграции

к;( н)

(н)

в

сматриваемого класса О (5), полученная на примере графа О, имеет следующий вид:

к' = 0: 10(1,1,1) ^1;

к' = 1: 9(1,1,1) ^ 1;(1,1,1) ^ 2*;

к = 2: 3(1,1,2) ^ 1; 6(1,1,1) ^ 3;

к = 3: 2(1,2,3) ^ 1; 4(1,3,3) ^ 3;

2(3,3,3) ^ 4; (2,3,3) ^ 5;

к = 4: 2(1,2,3) ^ 1; 2(1,3,4) ^ 3;

2(3,3,4) ^ 4; (2,3,3) ^ 5; 2(3,4,5) ^ 6;

к = 5: 2(1,2,3) ^ 1; 2(1,4,6) ^ 3; (3,5,4) ^4;

(2.6.6) ^ 5; 2(3,4,5) ^ 6; (4,6,6) ^7; к2 = 6: (1,2,3) ^1; 2(1,4,6) ^3;

(3.3.7) ^ 4; (2,6,6) ^5; 2(3,5,7) ^6;

(4.6.6) ^ 7; (1,2,3) ^ 8*;

к = 7: (4,6,8) ^ 1; (3,3,7) ^ 3; (1,4,6) ^ 4;

(2.3.8) ^ 5; (2,6,6) ^ 6; 2(3,5,7) ^ 7;

(4.6.6) ^ 9;

к = 8: (3,7,8) ^ 1; (1,4,9) ^ 3; (3,5,7) ^4;

(2.4.8) ^5; (2,7,7) ^6; (1,6,9) ^7;

(3.7.7) ^ 9; (4,6,9) ^ 10.

После вычисления согласно (4) вектора Р(0)={й1(¥(й1))}, упорядочения в нём элементов йі(Ґ(й1)) относительно значений кодов ^ получим

полный инвариант графа О в виде: Р(0)=(1(3,7,8), 2(5,6,8), 3(1,4,9), 4(3,5,10), 5(2,4,8), 6(2,7,10), 7(1,6,9), 8(1,2,5), 9(3,7,10), 10(4,6,9)).

Область интеграции не зависит от нумерации вершин и представляет собой иерархическую систему кодирования, которая используется в качестве эталона при выполнении алгоритма зависимой интеграции кодов для всех графов рассматриваемого класса. При этом для графов, изоморфных графу О, этот эталон соблюдается, а для неизоморфных - нет. Покажем это на примере двух графов Н и Q, и определим их принадлежность классу 0(5), представленному графом О. В данном случае назначение кодов в ходе работы алгоритма интеграции должно производиться не по правилам (1) и (2), а в строгом соответствии с системой кодирования области интеграции Ж0(й), полученной ранее для заданного класса О(й).

Для графа Н (средняя часть рис. 2) после назначения по правилу (2) в вектор Б11 кода ^1»=2 уже на 3-м шаге интеграции обнаружилось структурное различие, которое не соответствует записи в Ж0(й). Вторая попытка с назначением оказалась успешной, т. е. процесс интеграции прошел в соответствии с Ж0(й), в том числе и с учётом назначения по правилу (2) кода й26„=8. Полный инвариант Р0(Н), полученный на основе вектора Б0(Н), в соответствии с правилами (4) совпадает с Р(О). Из этого следует, что граф Н изоморфен графу О, а сопоставляя в векторах Б(О) и Б0(Н) коды ^, получим подстановку изоморфизма: 1(3,9), 2(1,2), 3(4,10),

|^1 ОгарНБО □ (Ё)

Размер 1^4 Получить инвариант I Определить изоморфизм I Добавить граф I

1 2 3 4 5 6 7 8 9 10 0 1, 2 3 4 5 бі 7 3

1 1 1 1 111 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2

2 1 1 1 111 1 111 1 112 1 123 1 123 1 123 1 - 8 - 8 - 8

3 1 1 1 111 1 111 1 111 3 133 3 134 3 146 3 146 3 4-68 1 378 1

4 1 1 1 111 1 111 1 111 3 333 4 334 4 334 4 337 4 337 3 149 3

5 1 1 1 111 1 111 1 111 3 133 3 134 3 146 3 146 3 146 4 357 4

6 1 1 1 111 1 111 1 112 1 123 1 123 1 123 1 123 1 238 5 248 5

7 1 1 1 111 1 111 1 112 1 233 5 233 5 266 5 266 5 266 6 277 6

I 8 1 1 1 111 1 111 1 111 3 133 3 345 6 345 6 357 6 357 7 169 7

9 1 1 1 111 1 111 1 111 3 333 4 334 4 466 7 466 7 4-66 9 377 9

| 10 1 1 1 111 1 111 1 111 3 133 3 345 6 345 6 357 6 357 7 469 10

1 2 3 4 5 6 7 8 9 10 0 2 Ь 2 3 4 5 б2 7 3

I 1 1 1 1 111 1 - - 2 - 111 1 112 1 233 5 233 5 266 5 266 5 266 6 277 6

2 1 1 1 111 1 111 1 112 1 233 - - 2 - 2 - 2 - 2 - 2 - 2 - 2

I 3 1 1 1 111 1 111 1 111 3 133 111 1 112 1 123 1 123 1 123 1 - 8 - 8 - 8

4 1 1 1 111 1 111 1 111 3 133 111 1 112 1 123 1 123 1 123 1 123 1 238 5 248 5

5 1 1 1 111 1 111 1 111 3 133 111 1 111 3 133 3 134 3 146 3 146 3 146 4 357 4

6 1 1 1 111 1 111 1 112 1 233 111 1 111 3 133 3 345 6 345 6 357 6 357 7 469 10

7 1 1 1 111 1 111 1 111 3 113 111 1 111 3 333 4 334 4 466 7 466 7 466 9 377 9

8 1 1 1 111 1 111 1 112 1 233 111 1 111 3 133 3 345 6 345 6 357 6 357 7 169 7

9 1 1 1 111 1 111 1 111 3 133 111 1 111 3 133 3 134 3 146 3 146 3 468 1 378 1

I 10 1 1 1 111 1 111 1 111 3 333 111 1 111 3 333 4 334 4 334 4 337 4 337 3 149 3

2 3 4 5 6 7 8 9 10 и '] 2 3 ч 2 1, 2

I 1 1 1 1 111 1 - - 2 - 2 - 111 1 111 3 133 111 1 112 1 233 111 1

I 2 1 1 1 111 1 111 1 111 3 133 3 445 - - 2 - 111 1 112 1 233 111 1

I 3 1 1 1 111 1 111 1 112 1 233 5 233 111 1 112 1 233 - - 2 - 111 1

4 1 1 1 111 1 111 1 111 3 333 4 333 111 1 112 1 233 111 1 111 3 113 -

5 1 1 1 111 1 111 1 112 1 123 1 123 111 1 111 3 333 111 1 111 3 133 111 1

И 6 1 1 1 111 1 111 1 111 3 133 3 144 111 1 111 3 113 111 1 111 3 333 111 1

I 7 1 1 1 111 1 111 1 111 3 333 4 333 111 1 112 1 233 111 1 111 3 133 111 1

8 1 1 1 111 1 111 1 111 3 133 3 345 111 1 111 3 113 111 1 112 1 233 111 1

9 1 1 1 111 1 111 1 111 3 133 3 134 111 1 111 3 133 111 1 111 3 133 111 1

] 10 1 1 1 111 1 111 1 112 1 123 1 123 111 1 111 3 333 111 1 111 3 133 111 1

< I . Ш I ►

Рис. 2. Примеры работы алгоритмов свободной и зависимой интеграции кодов структурных различий

4(5,5), 5(6,4), 6(7,1), 7(8,8), 8(2,3), 9(9,7), 10(10,6). В подстановке перед скобками указаны значения кодов ^£, в скобках на первом месте указан номер вершины графа Є, а на втором - графа Н.

На рис. 3 представлена абстрактная структура графов Є и Н, построенная на основе инциденторов ¥(і), содержащихся в полном инварианте Р(0)=Р&(Н). Вершины данной структуры обозначены кодами с указанием соответствующих пар вершин подстановки.

2(1,2)

Рис. 3. Абстрактная структура графов G и H

Заметим, что на основе полного инварианта может быть построена только абстрактная структура графа, а для установления соответствия между вершинами структуры и вершинами графа необходимо использовать векторы Б(&) и Б&(Н) или Р(&)

и Р&(&).

Для графа Q (нижняя часть рис. 2) попытки получить полный инвариант Р&^)=Р(&) путём интеграции кодов относительно области Ж&(й) не привели к успеху. На рис. 2 приведены 3 попытки назначения кодов й[*=2, Й2*=2, ^3*=2. В первой из них структурные различия обнаружены на шаге &=4, а в двух последних - на шаге &=3. Все последующие попытки назначения кодов й;1=2, і=4,5,...,10 (на рис. 2 не показаны) также не привели к успеху. В частности, для й‘10»=2 структурные различия обнаружились только на шаге й=5. Из этого следует, что у графа Q отсутствует полный инвариант Р&^)=Р&), т. е. граф Q неизоморфен графам & и Н. Для графа Q, как и для графа &, может быть получен инвариант Р^)^Р&) с соответствующей областью интеграции Жв(й). В классе Q(S) поиск графов с полными инвариантами, равными Р^), следует вести относительно области WQ(S).

Заключение

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

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

Работа выполнена в рамках государственного задания «Наука».

СПИСОК ЛИТЕРАТУРЫ

1. Зыков А.А. Основы теории графов. - М.: Вузовская книга, 2004. - 664 с.

2. Дэмер М., Эммерт-Штрайб Ф., Цой Ю. Р., Вармуза К. Новый функционал информативности для анализа структуры химических графов // Известия Томского политехнического университета. - 2010. - Т. 316. - № 5. - С. 5-11.

3. Погребной Ан.В., Погребной В.К. Инвариант графа на основе компактных подграфов и алгоритм его вычисления // Известия Томского политехнического университета. - 2013. -Т. 322. - №5.- С. 200-204.

4. Погребной В.К. Метод интеграции структурных различий в графовых моделях и его применение для описания структур // Известия Томского политехнического университета. - 2011. -Т. 318. - №5. - С. 10-16.

5. Погребной В.К. Задача определения оценок сходства структур двух графов на основе выделения общих частей // Известия Томского политехнического университета. - 2013. - Т. 322. -№5. - С. 194-199.

6. Погребной В.К., Погребной Ан.В. Исследование полиномиальности метода вычисления интегрального описателя структуры графа // Известия Томского политехнического университета. - 2013. - Т. 323. - № 5. - С. 146-151.

Поступила 03.09.2013 г.

UDC 519.171.1

POLYNOMIAL ALGORITHM OF COMPUTING COMPLETE GRAPH INVARIANT ON THE BASIS OF INTEGRAL STRUCTURE DESCRIPTOR

V.K. Pogrebnoy, An.V. Pogrebnoy Tomsk Polytechnic University

The relevance of the research is caused by the unsolved problem of searching for the complete graph Invariant and polynomial algorithm for its computing. The aim of the research is in determining the complete invariant of an ordinary graph on the basis of integral descriptor of abstract structure and in developing the efficient algorithm for computing the complete invariant. The techniques of the research are based on the graph theory and the theory of structural differences code integration in abstract graph structures. The authors have proposed the algorithm for solving one of the most complex problems of graph theory. It is the computation of complete graph invariant. The algorithm is based on the methods of free and dependent integration of structural differences codes in a graph; it is characterized by simplicity, efficiency and it has polynomial estimation of the limiting amount of computation. The complete invariant is represented in the form of a vector of integral descriptor for graph abstract structure vertices and contains information for forming isomorphism substitution. Using Java the GraphISD software was developed implementing the proposed algorithm. The paper introduces the examples of computing the complete invariants at free and dependent integration.

Key words:

Complete graph invariant, graph isomorphism, integral structure descriptor, abstract graph structure, code integration area, polynomial algorithm.

REFERENCES

1. Zykov A.A. Osnovy teorii grafov [Graph theory bases]. Moscow, Vuzovskaya kniga, 2004. 664 p.

2. Demer M., Emmert-Shtrayb F., Tsoy U.P., Varmuza K. Noviy funktsional informativnosti dlya analiza struktury khimiches-kikh grafov [A new information content functional to analyze the structure of kinetic graphs]. Bulletin of the Tomsk Polytechnic University, 2010, vol. 316, no 5, pp. 5-11.

3. Pogrebnoy An.V., Pogrebnoy V.K., Invariant grafa na osnove kompaktnykh podgrafov i algoritm ego vychisleniya [Graph invariant on the basis of compact subgraph and algorithm for its computation]. Bulletin of the Tomsk Polytechnic University, 2013, vol. 322, no. 5, pp. 200-204.

4. Pogrebnoy V.K. Metod integratsii strukturnikh razlichii v grafo-vykh modelyakh i ego primenenie dlya opisaniya struktur

[Methods of integration of structural differences in graph models t odescribe structures]. Bulktin of the Tomsk Polytechnic University, 2G11, vol. 318, no. 5, pp. 1G-16.

5. Pogrebnoy V.K. Zadacha opredeleniya otsenok skhodstva struk-tur dvukh grafov na osnove vydeleniya obshchikh chastei [The task of estimating the similarity of two graphs structures on the basis of general parts definition]. Bulktin of the Tomsk Polytechnic University, 2G13, vol. 322, no 5, pp. 194-199.

6. Pogrebnoy V.K., Pogrebnoy An.V. Issledovanie polinomialnosti metoda vychisleniya integralnogo opisatelya strukturi grafa [Studying the polynomiality of computation technique for integrated descriptor of graph structure]. Bulktin of the Tomsk Polytechnic University, 2G13, vol. 323, no. 5, pp. хх-хх.

УДК 004.032.24

РАСПАРАЛЛЕЛИВАНИЕ АЛГОРИТМА ВЫДЕЛЕНИЯ ГРАНИЦ ОБЪЕКТОВ НА ОСНОВЕ СТРУКТУРНО-ГРАФИЧЕСКОГО ПРЕДСТАВЛЕНИЯ

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

А.Ю. Демин, В.А. Дорофеев

Томский политехнический университет E-mail: [email protected]

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

Цель работы: Распараллелить алгоритм нахождения границ на аэрофотоснимках с помощью структурно-графической формы. Методы исследования: Обработка растровых изображений в интеллектуальных системах навигации и управления с помощью линейных фильтров. Представление алгоритмов в графовой форме: дерева операторов, блок-схемы, графа потока данных. Проектирование программных средств с помощью средств платформы .Net библиотеки Task Parallel Library.

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

Ключевые слова:

Оператор Собеля, обработка изображений, дерево операторов, граф потока данных, распараллеливание программ.

Введение

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

Использование спутниковых и аэрофотоснимков, изображений, получаемых с беспилотных ле-

тательных аппаратов, позволило в телекоммуникационных технологиях существенно улучшить возможности построения аппаратно-программных комплексов для сопровождения, мониторинга и управления мобильными объектами [2].

Важной задачей при анализе изображений, полученных с различных подвижных и труднодоступных объектов, в том числе со спутников, является проблема распознавания различных объектов, таких как различные водоемы (реки, озера, водохранилища, затопленные территории), площади выгоревших лесов, промышленные и гражданские объекты и т. д. Решение подобных задач актуально при построении ИСНУ для Авиалесоохраны РФ, Россельхознадзора РФ, Росгидромета РФ и гидро-метов стран СНГ, различных служб МЧС и силовых ведомств.

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

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