Skip to main navigation Skip to search Skip to main content

Fast rule-based graph programs

Graham Campbell, Brian Courtehoute, Detlef Plump

Research output: Contribution to journalArticlepeer-review

Abstract

Implementing graph algorithms efficiently in a rule-based language is challenging because graph pattern matching is expensive. In this paper, we present a number of linear-time implementations of graph algorithms in GP 2, an experimental programming language based on graph transformation rules which aims to facilitate program analysis and verification. We focus on two classes of rule-based graph programs: graph reduction programs which check some graph property, and programs using a depth-first search to test some property or perform an operation such as producing a 2-colouring or a topological sorting. Programs of the first type run in linear time without any constraints on input graphs while programs of the second type require input graphs of bounded degree to run in linear time. Essential for achieving the linear time complexity are so-called rooted rules in GP 2, which, in many situations, can be matched in constant time. For each of our programs, we prove both correctness and complexity, and also give empirical evidence for their runtime.

Original languageEnglish
Article number102727
Number of pages32
JournalScience of Computer Programming
Volume214
Early online date7 Oct 2021
DOIs
Publication statusPublished - 1 Feb 2022
Externally publishedYes

Fingerprint

Dive into the research topics of 'Fast rule-based graph programs'. Together they form a unique fingerprint.

Cite this