Date of this Version
We introduce the problem of compressing partially ordered strings: given string σ ∈ Σ* and a binary independence relation I over Σ how can we compactly represent an input if the decompressor is allowed to reconstruct any string that can be obtained from σ by repeatedly swapping adjacent independent symbols? Such partially ordered strings are also known as Mazurkiewicz traces, and naturally model executions of concurrent programs. Compression techniques have been applied with much success to sequential program traces not only to store them compactly but to discover important profiling patterns within them. For compression to achieve similar aims for concurrent program traces we should exploit the extra freedom provided by the independence relation. Many popular string comrpession schemes are grammar-based schemes that produce a small context-free grammar generating uniquely the given string. We consider three classes of strategies for compression of partially-ordered strings: (i) we adapt grammar-based schemes by rewriting the input string σ into an "equivalent" one before applying grammar-based string compression, (ii) we present the input by a collection of projections before applying (i) to each projection, and (iii) we combine (i) and (ii) with relabeling of symbols. We present some natural algorithms for each of these strategies, and present some experimental evidence that the extra freedom does enable extra compression. We also prove that a strategy of projecting the string onto each pair of dependent symbols can indeed lead to exponentially more succinct representations compared with only rewriting, and is within a factor of |Σ|2 of the optimal strategy for combining projections with rewriting.
Date Posted: 15 November 2005