Abstract
Parity games are infinite-round two-player games played on directed graphs whose nodes are labeled with priorities. The winner of a play is determined by the smallest priority (even or odd) that is encountered infinitely often along the play. In the last two decades, several algorithms for solving parity games have been proposed and implemented in PGSolver, a platform written in OCaml. PGSolver includes the Zielonka’s recursive algorithm (RE, for short) which is known to be the best performing one over random games. Notably, several attempts have been carried out with the aim of improving the performance of RE in PGSolver, but with small advances in practice. In this work, we deeply revisit the implementation of RE by dealing with the use of specific data structures and programming languages such as Scala, Java, C++, and Go. Our empirical evaluation shows that these choices are successful, gaining up to three orders of magnitude in running time over the classic version of the algorithm implemented in PGSolver.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Aminof, B., Kupferman, O., Murano, A.: Improved model checking of hierarchical systems. Inf. Comput. 210, 68–86 (2012)
Aminof, B., Malvone, V., Murano, A., Rubin, S.: Graded modalities in strategy logic. Inf Comput. 261(Part), 634–649 (2018)
Antonik, A., Charlton, N., Huth, M: Polynomial-time under-approximation of winning regions in parity games. ENTCS 225, 115–139 (2009)
Arcucci, R., Marotta, U., Murano, A., Sorrentino, L.: Parallel parity games: a multicore attractor for the zielonka recursive algorithm. In: ICCS 2017, pp 525–534 (2017)
Barringer, H., Havelund, K: TraceContract: A Scala DSL for Trace Analysis. Springer, Berlin (2011)
Bejeck, B.: Getting Started with Google Guava. Packt Publishing, Burmingham (2013)
Benerecetti, M., Dell’Erba, D., Mogavero, F.: Solving parity games via priority promotion. In: CAV 2016, pp 270–290 (2016)
Berger, E. D., Zorn, B. G., McKinley, K. S.: OOPSLA 2002: reconsidering custom memory allocation. SIGPLAN Not. 48(4S), 46–57 (2013)
Berwanger, D.: Admissibility in infinite games. In: STACS 2007, pp 188–199 (2007)
Boker, U., Lehtinen, K.: FSTTCS 2018, Ahmedabad, India, pp 21:1–21:22 (2018)
Calude, C. S., Jain, S., Khoussainov, B., Li, W., Stephan, F.: Deciding parity games in quasipolynomial time. In: STOC 2017, pp 252–263 (2017)
Cermák, P., Lomuscio, A., Murano, A.: Verifying and synthesising multi-agent systems against one-goal strategy logic specifications. In: AAAI 2015, pp 2038–2044 (2015)
Chatterjee, K., Jurdzinski, M., Henzinger, T. A.: Quantitative stochastic parity games. In: SODA, vol. 2004, pp 121–130 (2004)
Chatterjee, K., Henzinger, T. A., Jurdzinski, M.: Mean-payoff parity games. In: LICS 2005, pp 178–187 (2005)
Chatterjee, K., Doyen, L., Henzinger, T. A., Raskin, J-F: Generalized mean-payoff and energy games. In: FSTTCS 2010, pp 505–516 (2010)
Clarke, E. M., Emerson, EA: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: LP 1981, pp 52–71 (1981)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (2002)
Daviaud, L., Jurdzinski, M., Lazic, R.: A pseudo-quasi-polynomial algorithm for mean-payoff parity games. In: LICS 2018, pp 325–334 (2018)
Di Stasio, A., Murano, A., Prignano, V., Sorrentino, L.: Solving parity games in scala. In: FACS 2014, pp 145–161 (2014)
Di Stasio, A., Murano, A., Perelli, G., Vardi, M. Y.: Solving parity games using an automata-based algorithm. In: CIAA 2016, pp 64–76 (2016)
Di Stasio, A., Murano, A., Vardi, M. Y.: Solving parity games: explicit vs symbolic. In: CIAA 2018, pp 159–172 (2018)
Emerson, E. A., Jutla, C.: Tree automata, μ-calculus and determinacy. In: FOCS, vol. 1991, pp 368–377 (1991)
Fearnley, J., Jain, S., Schewe, S., Stephan, F., Wojtczak, D.: An ordered approach to solving parity games in quasi polynomial time and quasi linear space. In: SPIN 2017, pp 112–121 (2017)
Friedmann, O., Lange, M.: The PGSolver collection of parity game solvers. University of Munich (2009)
Friedmann, O., Lange, M.: Solving parity games in practice. In: ATVA 2009, pp 182–196 (2009)
Gay, D., Aiken, A.: Memory Management with Explicit Regions, vol 33. ACM (1998)
Hoffmann, P., Luttenberger, M.: Solving parity games on the GPU. In: ATVA 2013, pp 455–459 (2013)
Hundt, R.: Loop recognition in c++/java/go/scala. In: Proceedings of Scala Days (2011)
Jurdzinski, M.: Deciding the winner in parity games is in UP ∩ co-Up. Inf. Process. Lett. 68(3), 119–124 (1998)
Jurdzinski, M: Small progress measures for solving parity games. In: STACS 2000, pp 290–301 (2000)
Jurdzinski, M., Lazic, R.: Succinct progress measures for solving parity games. In: LICS 2017, pp 1–9 (2017)
Jurdzinski, M., Paterson, M., Zwick, U.: A deterministic subexponential algorithm for solving parity games. SIAM J. Comput. 38(4), 1519–1532 (2008)
Keiren, J. J. A.: Benchmarks for parity games. In: FSEN 2015, pp 127–142 (2015)
Kozen, D.: Results on the propositional μ-calculus. TCS 27(3), 333–354 (1983)
Kupferman, O., Vardi, M. Y., Wolper, P.: An automata theoretic approach to branching-time model checking. J. ACM 47(2), 312–360 (2000)
Kupferman, O., Vardi, M., Wolper, P.: Module checking. Inf. Comput. 164(2), 322–344 (2001)
Lehtinen, K.: A modal μ perspective on solving parity games in quasi-polynomial time. In: LICS 2018, pp 639–648 (2018)
Malvone, V., Murano, A., Sorrentino, L.: Concurrent multi-player parity games. In: AAMAS 2016, pp 689–697 (2016)
McNaughton, R.: Infinite games played on finite graphs. Ann. Pure Appl. Logic 65(2), 149–184 (1993)
Mogavero, F., Murano, A., Sorrentino, L.: On promptness in parity games. Fundam. Inform. 139(3), 277–305 (2015)
Odersky, M., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., Zenger, M., et al.: An overview of the scala programming language (2004)
Odersky, M., Spoon, L., Venners, M.: Programming in Scala. Artima Inc (2008)
Queille, J. P., Sifakis, J: Specification and verification of concurrent programs in Cesar. In: SP 1982, pp 337–351 (1982)
Schewe, S.: Solving Parity Games in Big Steps. In: FSTTCS 2007, pp 449–460 (2007)
Thomas, W.: Automata on infinite objects. In: Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics (B), pp 133–192 (1990)
Thomas, W.: Facets of synthesis: revisiting church’s problem. In: FOSSACS 2009, pp 1–14 (2009)
van Dijk, T.: Attracting tangles to solve parity games. In: CAV 2018, pp 198–215 (2018)
van Dijk, T.: Oink: an implementation and evaluation of modern parity game solvers. In: TACAS 2018, pp 291–308 (2018)
Verver, M.: Practical improvements to parity game solving. Master’s thesis, University of Twente (2013)
Vöge, J., Jurdzinski, M: A discrete strategy improvement algorithm for solving parity games. In: CAV 2000, pp 202–215 (2000)
Wilke, T.: Alternating tree automata, parity games, and modal μ-calculus. Bull. Belg. Math. Soc. Simon Stevin 8(2), 359 (2001)
Zielonka, W.: Infinite games on finitely coloured graphs with applications to automata on infinite trees. Theor. Comput. Sci. 200(1-2), 135–183 (1998)
Funding
Open access funding provided by Università degli Studi di Roma La Sapienza within the CRUI-CARE Agreement.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Di Stasio, A., Murano, A., Prignano, V. et al. Improving parity games in practice. Ann Math Artif Intell 89, 551–574 (2021). https://doi.org/10.1007/s10472-020-09721-3
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10472-020-09721-3