A Fast Graph Program for Computing Minimum Spanning Trees

12/03/2020
by   Brian Courtehoute, et al.
0

When using graph transformation rules to implement graph algorithms, a challenge is to match the efficiency of programs in conventional languages. To help overcome that challenge, the graph programming language GP 2 features rooted rules which, under mild conditions, can match in constant time on bounded degree graphs. In this paper, we present an efficient GP 2 program for computing minimum spanning trees. We provide empirical performance results as evidence for the program's subquadratic complexity on bounded degree graphs. This is achieved using depth-first search as well as rooted graph transformation. The program is based on Boruvka's algorithm for minimum spanning trees. Our performance results show that the program's time complexity is consistent with that of classical implementations of Boruvka's algorithm, namely O(m log n), where m is the number of edges and n the number of nodes.

READ FULL TEXT

page 17

page 18

12/21/2020

Fast Rule-Based Graph Programs

Implementing graph algorithms efficiently in a rule-based language is ch...
07/06/2020

Non-separating spanning trees and out-branchings in digraphsof independence number 2

A subgraph H= (V, F) of a graph G= (V,E) is non-separating if G-F, that ...
02/07/2020

Improving the GP 2 Compiler

GP 2 is an experimental programming language based on graph transformati...
10/06/2020

The Improved GP 2 Compiler

GP 2 is a rule-based programming language based on graph transformation ...
11/28/2019

Efficient Recognition of Graph Languages

Graph transformation is the rule-based modification of graphs, and is a ...
06/11/2019

Efficient Graph Rewriting

Graph transformation is the rule-based modification of graphs, and is a ...
08/05/2020

An Evolver program for weighted Steiner trees

We present an algorithm to find near-optimal weighted Steiner minimal tr...