Table of Contents
Fetching ...

Rule-Based Graph Programs Matching the Time Complexity of Imperative Algorithms

Ziad Ismaili Alaoui, Detlef Plump

TL;DR

The paper tackles the challenge that rule-based graph programs in GP 2 typically underperform compared with imperative implementations due to graph-matching costs, especially on unbounded-degree or disconnected graphs. It introduces two compiler-driven data-structure enhancements that enable linear-time matching for core tasks and presents three case studies—recognising connected graphs, recognising acyclic graphs, and implementing Bellman–Ford shortest paths—with formal correctness and time-complexity proofs and empirical validation. The connectedness and acyclicity results achieve linear time on arbitrary input graphs, while the Bellman–Ford implementation attains the imperial-time $O(nm)$ bound, all demonstrated within GP 2’s rule-based paradigm. Together, these contributions close a long-standing gap between rule-based graph programming and imperative performance and point toward broader applicability through a library of advanced data structures.

Abstract

We report on recent advances in rule-based graph programming, which allow us to match the time complexity of some fundamental imperative graph algorithms. In general, achieving the time complexity of graph algorithms implemented in conventional languages using a rule-based graph-transformation language is challenging due to the cost of graph matching. Previous work demonstrated that with rooted rules, certain algorithms can be implemented in the graph programming language GP 2 such that their runtime matches the time complexity of imperative implementations. However, this required input graphs to have a bounded node degree and (for some algorithms) to be connected. In this paper, we overcome these limitations by enhancing the graph data structure generated by the GP 2 compiler and exploiting the new structure in programs. We present three case studies: the first program checks whether input graphs are connected, the second program checks whether input graphs are acyclic, and the third program solves the single-source shortest-paths problem for graphs with integer edge-weights. The first two programs run in linear time on (possibly disconnected) input graphs with arbitrary node degrees. The third program runs in time $O(nm)$ on arbitrary input graphs, matching the time complexity of imperative implementations of the Bellman-Ford algorithm. For each program, we formally prove its correctness and time complexity, and provide runtime experiments on various graph classes.

Rule-Based Graph Programs Matching the Time Complexity of Imperative Algorithms

TL;DR

The paper tackles the challenge that rule-based graph programs in GP 2 typically underperform compared with imperative implementations due to graph-matching costs, especially on unbounded-degree or disconnected graphs. It introduces two compiler-driven data-structure enhancements that enable linear-time matching for core tasks and presents three case studies—recognising connected graphs, recognising acyclic graphs, and implementing Bellman–Ford shortest paths—with formal correctness and time-complexity proofs and empirical validation. The connectedness and acyclicity results achieve linear time on arbitrary input graphs, while the Bellman–Ford implementation attains the imperial-time bound, all demonstrated within GP 2’s rule-based paradigm. Together, these contributions close a long-standing gap between rule-based graph programming and imperative performance and point toward broader applicability through a library of advanced data structures.

Abstract

We report on recent advances in rule-based graph programming, which allow us to match the time complexity of some fundamental imperative graph algorithms. In general, achieving the time complexity of graph algorithms implemented in conventional languages using a rule-based graph-transformation language is challenging due to the cost of graph matching. Previous work demonstrated that with rooted rules, certain algorithms can be implemented in the graph programming language GP 2 such that their runtime matches the time complexity of imperative implementations. However, this required input graphs to have a bounded node degree and (for some algorithms) to be connected. In this paper, we overcome these limitations by enhancing the graph data structure generated by the GP 2 compiler and exploiting the new structure in programs. We present three case studies: the first program checks whether input graphs are connected, the second program checks whether input graphs are acyclic, and the third program solves the single-source shortest-paths problem for graphs with integer edge-weights. The first two programs run in linear time on (possibly disconnected) input graphs with arbitrary node degrees. The third program runs in time on arbitrary input graphs, matching the time complexity of imperative implementations of the Bellman-Ford algorithm. For each program, we formally prove its correctness and time complexity, and provide runtime experiments on various graph classes.
Paper Structure (26 sections, 28 theorems, 2 equations, 39 figures, 1 algorithm)

This paper contains 26 sections, 28 theorems, 2 equations, 39 figures, 1 algorithm.

Key Result

Lemma 3.1

If a match has been found for a rule that does not modify labels, other than possibly changing marks or changing non-host-graph labels to host-graph labels, the resulting graph can be constructed in constant time.

Figures (39)

  • Figure 1: GP 2 computational model.
  • Figure 2: GP 2 label subtype hierarchy.
  • Figure 3: Abstract syntax of GP 2 programs.
  • Figure 4: GP 2 execution pipeline.
  • Figure 5: GP 2 program transitive-closure.
  • ...and 34 more figures

Theorems & Definitions (64)

  • Definition 1: Graph
  • Definition 2: Simple Expression
  • Definition 3: Rule
  • Definition 4: Premorphism
  • Definition 5: Assignment
  • Definition 6: Compatibility
  • Definition 7: Rule Application
  • Lemma 3.1: Constant Time Graph Constructioncampbell2022fast
  • Definition 8: Connectedness
  • Proposition 6.1
  • ...and 54 more