scholarly journals Проверка изоморфности двух графов и поиск изоморфных подграфов: подход, основанный на анализе максимально протяженных неразветвляющихся путей / Maximal non-branching paths approach to solve (sub)graph isomorphism problem

Author(s):  
Сергей Черноухов

Предложен подход к решению проблемы проверки изоморфности двух графов исходя из анализа их максимально протяженных неразветвляющихся путей. На его основе предлагается подход и алгоритм решения частного случая задачи поиска в некотором графе A всех подграфов, изоморфных заданному графу B (а именно, поиск только «вписанных» подграфов), а также определяется само понятие «вписанного» подграфа. «Вписанным» подграфом графа A здесь называется такой его подграф, который может быть «приклеен» к другим частям графа A только за счет ребер, инцидентных лишь граничным вершинам его (подграфа) неразветвляющихся путей максимальной длины (при этом граф A может содержать и иные компоненты связности). Решение частного случая задачи поиска «вписанных» подграфов обобщается для поиска в графе A всех подграфов, изоморфных данному графу-образцу B. Для этого вместо рассмотрения их максимально протяженных неразветвляющихся путей необходимо рассматривать все их ребра. Предложенные подход и алгоритм применимы: (1) как для ориентированных, так и для неориентированных графов, (2) для графов, содержащих более одной компоненты связности/ сильной связности, (3) для графов, содержащих кратные (множественные) ребра и петли. ----------- An approach based on maximal non-branching paths analysis to solve graph isomorphism problem is introduced. An algorithm to solve the particular case of the problem of finding in a some graph A all subgraphs that are isomorphic to given graph B is proposed (only “inscribed” subgraphs can be found this way, not all of them). Here we shall name a subgraph of some given graph A as "inscribed" if (1) this subgraph is "glued" to other parts of A only by edges that connected to those vertices of this subgraph that are begin/ end ones of any max-length non-branching path of it, or (2) this subgraph is a separate connected component of the graph A. The proposed algorithm of finding “inscribed” subgraphs is expanded to solve a whole problem of finding all (not only “inscribed”) subgraphs of a graph A that are isomorphic to given template graph B. To do so one should consider all edges of these graphs instead of their max-length non-branching paths. These proposed approach and algorithm may be implemented to: (1) directed or undirected graphs, (2) graphs that have more than one connected components/ strongly connected components, (3) graphs that contain multiple edges and multiple loops.

2004 ◽  
Vol 11 (12) ◽  
Author(s):  
Olivier Danvy ◽  
Ulrik P. Schultz

Lambda-lifting is a program transformation that is used in compilers, partial evaluators, and program transformers. In this article, we show how to reduce its complexity from cubic time to quadratic time, and we present a flow-sensitive lambda-lifter that also works in quadratic time. <br /> <br />Lambda-lifting transforms a block-structured program into a set of recursive equations, one for each local function in the source program. Each equation carries extra parameters to account for the free variables of the corresponding local function <em>and of all its callees</em>. It is the search for these extra parameters that yields the cubic factor in the traditional formulation of lambda-lifting, which is due to Johnsson. This search is carried out by computing a transitive closure. <br /> <br />To reduce the complexity of lambda-lifting, we partition the call graph of the source program into strongly connected components, based on the simple observation that <em>all functions in each component need the same extra parameters and thus a transitive closure is not needed</em>. We therefore simplify the search for extra parameters by treating each strongly connected component instead of each function as a unit, thereby reducing the time complexity of lambda-lifting from O(n^3) to O(n^2), where n is the size of the program. <br /> <br />Since a lambda-lifter can output programs of size O(n^2), our algorithm is asympotically optimal.


2003 ◽  
Vol 10 (26) ◽  
Author(s):  
Olivier Danvy ◽  
Ulrik P. Schultz

Lambda-lifting is a program transformation used in compilers and in partial evaluators and that operates in cubic time. In this article, we show how to reduce this complexity to quadratic time, and we present a flow-sensitive lambda-lifter that also works in quadratic time.<br /> <br />Lambda-lifting transforms a block-structured program into a set of recursive equations, one for each local function in the source program. Each equation carries extra parameters to account for the free variables of the corresponding local function <em>and of all its callees</em>. It is the search for these extra parameters that yields the cubic factor in the traditional formulation of lambda-lifting, which is due to Johnsson. This search is carried out by a transitive closure.<br /> <br />Instead, we partition the call graph of the source program into strongly connected components, based on the simple observation that <em>all functions in each component need the same extra parameters and thus a transitive closure is not needed</em>. We therefore simplify the search for extra parameters by treating each strongly connected component instead of each function as a unit, thereby reducing the time complexity of lambda-lifting from O(n^3 log n) to O(n^2 log n), where n is the size of the program.<br /> <br />Since a lambda-lifter can output programs of size O(n^2), we believe that our algorithm is close to optimal.


2002 ◽  
Vol Vol. 5 ◽  
Author(s):  
Elias Dahlhaus ◽  
Jens Gustedt ◽  
Ross M. Mcconnell

Special issue: Graph Decompositions International audience A complementation operation on a vertex of a digraph changes all outgoing arcs into non-arcs, and outgoing non-arcs into arcs. This defines an equivalence relation where two digraphs are equivalent if one can be obtained from the other by a sequence of such operations. We show that given an adjacency-list representation of a digraph G, many fundamental graph algorithms can be carried out on any member G' of G's equivalence class in O(n+m) time, where m is the number of arcs in G, not the number of arcs in G' . This may have advantages when G' is much larger than G. We use this to generalize to digraphs a simple O(n + m log n) algorithm of McConnell and Spinrad for finding the modular decomposition of undirected graphs. A key step is finding the strongly-connected components of a digraph F in G's equivalence class, where F may have ~(m log n) arcs.


2002 ◽  
Vol 9 (30) ◽  
Author(s):  
Olivier Danvy ◽  
Ulrik P. Schultz

Lambda-lifting is a program transformation used in compilers and in partial evaluators and that operates in cubic time. In this article, we show how to reduce this complexity to quadratic time.<br /> <br /> Lambda-lifting transforms a block-structured program into a set of recursive equations, one for each local function in the source program. Each equation carries extra parameters to account for the free variables of the corresponding local function and of all its callees. It is the search for these extra parameters that yields the cubic factor in the traditional formulation of lambda-lifting, which is due to Johnsson. This search is carried out by a transitive closure.<br /> <br />Instead, we partition the call graph of the source program into strongly connected components, based on the simple observation that all functions in each component need the same extra parameters and thus a transitive closure is not needed. We therefore simplify the search for extra parameters by treating each strongly connected component instead of each function as a unit, thereby reducing the time complexity of lambda-lifting from O(n^3 log n) to O(n^2 log n), where n is the size of the program. <br /><br />Since a lambda-filter can output programs of size O(n^2), we believe that our algorithm is close to optimal.<br /><br />Superseded by (BRICS-RS-03-26 and) BRICS-RS-04-12.


2020 ◽  
Vol 27 (1) ◽  
pp. 86-94
Author(s):  
Vladimir Vasilyevich Vasilchikov

In this paper, we offer an efficient parallel algorithm for solving the Graph Isomorphism Problem. Our goal is to construct a suitable vertex substitution or to prove the absence of such. The problem is solved for undirected graphs without loops and multiple edges, it is assumed that the graphs can be disconnected. ‘e question of the existence or absence of an algorithm for solving this problem with polynomial complexity is currently open. Therefore, as for any time-consuming task, the question arises of accelerating its solution by parallelizing the algorithm. We used the RPM ParLib library developed by the author as the main tool to program the algorithm. This library allows us to develop effective applications for parallel computing on a local network in the .NET Framework. Such applications have the ability to generate parallel branches of computation directly during program execution and dynamically redistribute work between computing modules. Any language with support for the .NET Framework can be used as a programming language in conjunction with this library. For our experiments, we developed some C# applications using this library. The main purpose of these experiments was to study the acceleration achieved by recursive-parallel computing. Specially generated random regular graphs with varying degrees of vertices were used as initial data. A detailed description of the algorithm and its testing, as well as the results obtained, are also given in the paper.


2020 ◽  
Vol 12 (1) ◽  
Author(s):  
Jördis-Ann Schüler ◽  
Steffen Rechner ◽  
Matthias Müller-Hannemann

AbstractAn important task in cheminformatics is to test whether two molecules are equivalent with respect to their 2D structure. Mathematically, this amounts to solving the graph isomorphism problem for labelled graphs. In this paper, we present an approach which exploits chemical properties and the local neighbourhood of atoms to define highly distinctive node labels. These characteristic labels are the key for clever partitioning molecules into molecule equivalence classes and an effective equivalence test. Based on extensive computational experiments, we show that our algorithm is significantly faster than existing implementations within , and . We provide our Java implementation as an easy-to-use, open-source package (via GitHub) which is compatible with . It fully supports the distinction of different isotopes and molecules with radicals.


2021 ◽  
Vol 64 (5) ◽  
pp. 98-105
Author(s):  
Martin Grohe ◽  
Daniel Neuen

We investigate the interplay between the graph isomorphism problem, logical definability, and structural graph theory on a rich family of dense graph classes: graph classes of bounded rank width. We prove that the combinatorial Weisfeiler-Leman algorithm of dimension (3 k + 4) is a complete isomorphism test for the class of all graphs of rank width at most k. A consequence of our result is the first polynomial time canonization algorithm for graphs of bounded rank width. Our second main result addresses an open problem in descriptive complexity theory: we show that fixed-point logic with counting expresses precisely the polynomial time properties of graphs of bounded rank width.


2021 ◽  
Vol 1 ◽  
pp. 122-133
Author(s):  
Alexey V. Oletsky ◽  
◽  
Mikhail F. Makhno ◽  
◽  

A problem of automated assessing of students’ study projects is regarded. A heuristic algorithm based on fuzzy estimating of projects and on pairwise comparisons among them is proposed. For improving adequacy and naturalness of grades, an approach based on introducing a parameter named relaxation parameter was suggested in the paper. This enables to reduce the spread between maximum and minimum values of projects in comparison with the one in the standard scale suggested by T. Saati. Reasonable values of this parameter were selected experimentally. For estimating the best alternative, a center of mass of a fuzzy max-min composition should be calculated. An estimation algorithm for a case of non-transitive preferences based on getting strongly connected components and on pairwise comparisons between them is also suggested. In this case, relaxation parameters should be chosen separately for each subtask. So the combined technique of evaluating alternatives proposed in the paper depends of the following parameters: relaxation parameters for pairwise comparisons matrices within each strongly connected components; relaxation parameter for pairwise comparisons matrices among strongly connected components; membership function for describing the best alternative.


Sign in / Sign up

Export Citation Format

Share Document