Parity games are two-player games, played on directed graphs, whose nodes are labeled with priorities. Along a play, the maximal priority occurring infinitely often determines the winner. In the last two decades, a variety of algorithms and successive optimizations have been proposed. The majority of them have been implemented in PGSolver, written in OCaml, which has been elected by the community as the de facto platform to solve efficiently parity games as well as evaluate their performance in several specific cases. PGSolver includes the Zielonka Recursive Algorithm that has been shown to perform better than the others in randomly generated games. However, even for arenas with a few thousand of nodes (especially over dense graphs), it requires minutes to solve the corresponding game. In this paper, we deeply revisit the implementation of the recursive algorithm introducing several improvements and making use of Scala Programming Language. These choices have been proved to be very successful, gaining up to two orders of magnitude in running time.

Solving parity games in scala / Di Stasio, Antonio; Murano, Aniello; Vincenzo, Prignano; Sorrentino, Loredana. - 8997:(2015), pp. 145-161. (Intervento presentato al convegno 11th International Symposium on Formal Aspects of Component Software, FACS 2014 tenutosi a Bertinoro, Italia nel Settembre 10-12, 2014) [10.1007/978-3-319-15317-9_9].

Solving parity games in scala

Di Stasio, Antonio;MURANO, ANIELLO;SORRENTINO, LOREDANA
2015

Abstract

Parity games are two-player games, played on directed graphs, whose nodes are labeled with priorities. Along a play, the maximal priority occurring infinitely often determines the winner. In the last two decades, a variety of algorithms and successive optimizations have been proposed. The majority of them have been implemented in PGSolver, written in OCaml, which has been elected by the community as the de facto platform to solve efficiently parity games as well as evaluate their performance in several specific cases. PGSolver includes the Zielonka Recursive Algorithm that has been shown to perform better than the others in randomly generated games. However, even for arenas with a few thousand of nodes (especially over dense graphs), it requires minutes to solve the corresponding game. In this paper, we deeply revisit the implementation of the recursive algorithm introducing several improvements and making use of Scala Programming Language. These choices have been proved to be very successful, gaining up to two orders of magnitude in running time.
2015
978-3-319-15316-2
Solving parity games in scala / Di Stasio, Antonio; Murano, Aniello; Vincenzo, Prignano; Sorrentino, Loredana. - 8997:(2015), pp. 145-161. (Intervento presentato al convegno 11th International Symposium on Formal Aspects of Component Software, FACS 2014 tenutosi a Bertinoro, Italia nel Settembre 10-12, 2014) [10.1007/978-3-319-15317-9_9].
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11588/618932
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 8
  • ???jsp.display-item.citation.isi??? ND
social impact