A Fast Graph Program for Computing Minimum Spanning Trees

by   Brian Courtehoute, et al.

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.


page 17

page 18


Fast Rule-Based Graph Programs

Implementing graph algorithms efficiently in a rule-based language is ch...

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 ...

Improving the GP 2 Compiler

GP 2 is an experimental programming language based on graph transformati...

The Improved GP 2 Compiler

GP 2 is a rule-based programming language based on graph transformation ...

Efficient Recognition of Graph Languages

Graph transformation is the rule-based modification of graphs, and is a ...

Efficient Graph Rewriting

Graph transformation is the rule-based modification of graphs, and is a ...

An Evolver program for weighted Steiner trees

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