Incremental Dead State Detection in Logarithmic Time

01/12/2023
by   Caleb Stanford, et al.
0

Identifying live and dead states in an abstract transition system is a recurring problem in formal verification. However, state-of-the-art graph algorithms for maintaining reachability information incrementally (that is, as states are visited and before the entire state space is explored) assume that new edges can be added from any state at any time, whereas in many applications, outgoing edges are added from each state as it is explored. To formalize the latter situation, we propose guided incremental digraphs (GIDs), incremental graphs which support labeling closed states (states which will not receive further outgoing edges). Our main result is that dead state detection in GIDs is solvable in O(log m) time per edge update for m edges, improving upon O(√(m)) per edge due to Bender, Fineman, Gilbert, and Tarjan (BFGT) for general incremental directed graphs. We introduce two algorithms for GIDs: one establishing the logarithmic time bound, and a second algorithm to explore a lazy heuristics-based approach. To demonstrate applicability, we show how GIDs can be used to lazily decide regular expression constraints in SMT applications. To enable an apples-to-apples experimental comparison, we implemented both algorithms, two naive baselines, and the state-of-the-art BFGT baseline using a common directed graph interface in Rust. Our evaluation shows 110-530x speedups over BFGT for the largest input graphs over a range of graph classes, random graphs, and graphs arising from regular expression benchmarks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/28/2019

Streaming and Batch Algorithms for Truss Decomposition

Truss decomposition is a method used to analyze large sparse graphs in o...
research
10/30/2017

Reachability Preservers: New Extremal Bounds and Approximation Algorithms

In this paper we prove new results about the extremal structure of paths...
research
11/17/2021

Minimum Cuts in Directed Graphs via Partial Sparsification

We give an algorithm to find a minimum cut in an edge-weighted directed ...
research
10/08/2018

An Improved Algorithm for Incremental Cycle Detection and Topological Ordering in Sparse Graphs

We consider the problem of incremental cycle detection and topological o...
research
11/17/2022

Incremental Approximate Maximum Flow in m^1/2+o(1) update time

We show an (1+ϵ)-approximation algorithm for maintaining maximum s-t flo...
research
07/10/2019

Sparse Regular Expression Matching

We present the first algorithm for regular expression matching that can ...
research
01/21/2020

Faster and Enhanced Inclusion-Minimal Cograph Completion

We design two incremental algorithms for computing an inclusion-minimal ...

Please sign up or login with your details

Forgot password? Click here to reset