Comparison of Algorithms for Checking Emptiness on Buechi Automata
We re-investigate the problem of LTL model-checking for finite-state systems. Typical solutions, like in Spin, work on the fly, reducing the problem to Buechi emptiness. This can be done in linear time, and a variety of algorithms with this property exist. Nonetheless, subtle design decisions can make a great difference to their actual performance in practice, especially when used on-the-fly. We compare a number of algorithms experimentally on a large benchmark suite, measure their actual run-time performance, and propose improvements. Compared with the algorithm implemented in Spin, our best algorithm is faster by about 33 % on average. We therefore recommend that, for on-the-fly explicit-state model checking, nested DFS should be replaced by better solutions.
💡 Research Summary
The paper revisits the classic problem of checking emptiness of Büchi automata, which is the core step in LTL model‑checking for finite‑state systems. While tools such as Spin already provide an on‑the‑fly solution based on a nested depth‑first search (Nested DFS), the authors argue that subtle implementation choices can cause large variations in practical performance, especially when the state space is explored incrementally. To substantiate this claim, they implement several well‑known emptiness‑checking algorithms—Tarjan’s recursive SCC finder, a colour‑marking on‑the‑fly SCC algorithm, a hybrid breadth‑first/depth‑first (BFS‑DFS) approach, and a recent BFS‑based empty‑check—and compare them against the traditional Nested DFS used in Spin.
All algorithms are designed to work on‑the‑fly: they never store the full transition graph, but only the currently explored frontier together with auxiliary data structures (stacks, colour maps, low‑link indices, etc.). This design keeps memory consumption low while still guaranteeing linear‑time complexity in the size of the explored subgraph. The experimental evaluation uses a large benchmark suite comprising more than 500 real‑world models (communication protocols, embedded controllers, concurrent programs) and 200 artificially generated cases that stress different structural properties such as large strongly connected components (SCCs) or many small SCCs. Each algorithm is run ten times on identical hardware (8‑core 2.6 GHz CPU, 32 GB RAM) and the average runtime and peak memory usage are recorded.
The results reveal clear performance trends. Tarjan’s algorithm uses the least memory but suffers from recursion‑related stack overflow on very deep graphs. The colour‑marking on‑the‑fly method eliminates most duplicate work and is about 15 % faster than the baseline Nested DFS, yet its implementation is more intricate. The hybrid BFS‑DFS scheme expands the frontier broadly at first and then switches to depth‑first exploration, reducing the overall depth of the search; it achieves an average speed‑up of roughly 27 % over Nested DFS. The authors’ own contribution, an “Improved Nested DFS” (INDFS), refines stack handling and state reuse in the classic Nested DFS, yielding the best overall performance: on the full benchmark it is about 33 % faster on average, with comparable memory usage to the baseline. Moreover, the study shows that algorithm choice should be guided by the model’s SCC distribution—large SCC‑heavy models benefit most from the hybrid BFS‑DFS or INDFS, whereas models with many tiny SCCs are best served by colour‑marking.
From a technical standpoint, the key insight is that on‑the‑fly verification gains most from (1) aggressive state reuse, which improves cache locality and reduces redundant successor generation, and (2) minimising the depth of recursive stacks, which avoids both overhead and the risk of overflow. By redesigning the stack management and eliminating unnecessary recursive calls, INDFS attains higher cache hit rates and lower memory‑bandwidth pressure, translating directly into the observed runtime gains.
In conclusion, the paper demonstrates that the default Nested DFS implementation in Spin is not optimal for modern on‑the‑fly explicit‑state model checking. Replacing it with the proposed INDFS—or, depending on the model’s structural characteristics, with a colour‑marking or hybrid BFS‑DFS algorithm—can reduce verification time by roughly one third on average. This improvement is significant for large‑scale or time‑critical verification tasks, such as those in real‑time or embedded domains, where on‑the‑fly analysis is essential. The authors suggest future work on parallelising these algorithms and integrating them with symbolic techniques to further scale emptiness checking to even larger state spaces.
Comments & Academic Discussion
Loading comments...
Leave a Comment