Counting and Sampling Traces in Regular Languages

Abstract

In this work, we study the problems of counting and sampling Mazurkiewicz traces that a regular language touches. Fix an alphabet and an independence relation I ⊂eq × . The input consists of a regular language L ⊂eq *, given by a finite automaton with m states, and a natural number n (in unary). For the counting problem, the goal is to compute the number of Mazurkiewicz traces (induced by I) that intersect the nth slice Ln = L n, i.e., traces that admit at least one linearization in Ln. For the sampling problem, the goal is to output a trace drawn from a distribution that is approximately uniform over all such traces. These tasks are motivated by bounded model checking with partial-order reduction, where an a priori estimate of the reduced state space is valuable, and by testing methods for concurrent programs that use partial-order-aware random exploration. We first show that the counting problem is #P-hard even when L is accepted by a deterministic automaton, in sharp contrast to counting words of a DFA, which is polynomial-time solvable. We then prove that the problem lies in #P for both NFAs and DFAs, irrespective of whether L is trace-closed. Our main algorithmic contributions are a fully polynomial-time randomized approximation scheme (FPRAS) that, with high probability, approximates the desired count within a prescribed accuracy, and a fully polynomial-time almost uniform sampler (FPAUS) that generates traces whose distribution is provably close to uniform.

0

Turn this paper into a full lesson

ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…