Abstract
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 compression 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 represent 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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Booch, G., Jacobson, I., Rumbaugh, J.: Unified Modeling Language User Guide. Addison Wesley, Reading (1997)
Ball, T., Larus, J.: Using paths to measure, explain, and enhance program behavior. IEEE Computer 33(7), 57–65 (2000)
Charikar, M., Lehman, E., Liu, D., Panigrahy, R., Prabhakaran, M., Rasala, A., Sahai, A., Shelat, A.: Approximating the smallest grammar: Kolmogorov complexity in natural models. In: Proceedings of the 34th ACM Symposium on Theory of Computing, pp. 792–801 (2002)
Cori, R., Perrin, D.: Sur la Reconnaissabilite dans les monoides partiellement commutatifs libres. R.A.I.R.O.-Informatique Thorique et Applications 19, 21–32 (1985)
Diekert, V., Metivier, Y.: Partial commutation and traces. In: Handbook of Formal Languages: Beyond Words, pp. 457–534. Springer, Heidelberg (1997)
Engelfriet, J.: Context-free graph grammars. In: Rozenberg, G., Salomaa, A. (eds.) Handbook of Formal Languages, vol. 3. Springer, Heidelberg (1997)
Goel, A., Roychoudhury, A., Mitra, T.: Compactly representing parallel program executions. In: Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming (2003)
Holzmann, G.J.: The model checker SPIN. IEEE Transactions on Software Engineering 23(5), 279–295 (1997)
Kieffer, J., Yang, E.: Grammar-based codes: a new class of universal lossless source codes. IEEE Transactions on Information Theory 46, 737–754 (2000)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21, 558–565 (1978)
Larus, J.: Whole program paths. In: Proceedings of the ACM Conference on Programming Languages Design and Implementation, pp. 259–269 (1999)
Lehman, E., Shelat, A.: Approximation algorithms for grammar-based compression. In: Proceedings of the 13th ACM-SIAM Symposium on Discrete Algorithms, pp. 205–212 (2002)
Mazurkiewicz, A.: Trace theory. In: Brauer, W., Reisig, W., Rozenberg, G. (eds.) APN 1986. LNCS, vol. 255, pp. 279–324. Springer, Heidelberg (1987)
Nevill-Manning, C., Witten, I.: Identifying hierarchical structure in sequences: A linear-time algorithm. Journal of Artificial Intelligence Research 7, 67–82 (1997)
Pratt, V.R.: Modeling concurrency with partial orders. International Journal of Parallel Programming 15(1) (1986)
Savari, S.: Concurrent processes and interchange entropy. In: IEEE Int. Symp. on Information Theory (2003) (to appear)
Savari, S.: On compressing interchange classes of events in a concurrent system. In: IEEE Data Compression Conference (2003)
Storer, J., Szymanski, T.G.: Data compression via textual substitution. Journal of the ACM 29, 928–951 (1982)
Ziv, J., Lempel, A.: A universal algorithm for sequential data compression. IEEE Transactions on Information Theory 23(3), 337–343 (1977)
Ziv, J., Lempel, A.: Compression of individual sequences via variablerate coding. IEEE Transactions on Information Theory 24(5), 530–536 (1978)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Alur, R., Chaudhuri, S., Etessami, K., Guha, S., Yannakakis, M. (2003). Compression of Partially Ordered Strings. In: Amadio, R., Lugiez, D. (eds) CONCUR 2003 - Concurrency Theory. CONCUR 2003. Lecture Notes in Computer Science, vol 2761. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45187-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-45187-7_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40753-9
Online ISBN: 978-3-540-45187-7
eBook Packages: Springer Book Archive