440 research outputs found
Solving Parity Games in Scala
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
Improving parity games in practice
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
Benchmarks for Parity Games (extended version)
We propose a benchmark suite for parity games that includes all benchmarks
that have been used in the literature, and make it available online. We give an
overview of the parity games, including a description of how they have been
generated. We also describe structural properties of parity games, and using
these properties we show that our benchmarks are representative. With this work
we provide a starting point for further experimentation with parity games.Comment: The corresponding tool and benchmarks are available from
https://github.com/jkeiren/paritygame-generator. This is an extended version
of the paper that has been accepted for FSEN 201
Parity games : descriptive complexity and algorithms for new solvers
Parity games are 2-person, 0-sum, graph-based, and determined games
that form an important foundational concept in formal methods (see e.g.,
[Zie98]), and their exact computational complexity has been an open problem
for over twenty years now.
In this thesis, we study algorithms that solve parity games in that they
determine which nodes are won by which player, and where such decisions
are supported with winning strategies. We modify and so improve a known
algorithm but also propose new algorithmic approaches to solving parity
games and to understanding their descriptive complexity.
For all of our contributions, we write our own custom frameworks, in the
Scala programming language, to perform tailored experiments and empirical
studies to demonstrate and support our theoretical findings.
First, we improve on one of the solver algorithms, based on small progress
measures [Jur00], by use of concurrency. We show that, for many parity
games, it is possible to deliver extra performance using this technique in a
multi-core environment.
Second, we design algorithms to reduce the computational complexity
of parity games, and create implementations to observe and evaluate the
behaviours of these reductions in our experimental settings. The measure
Rabin index, arising from the design of the said algorithm, is shown to be a
new descriptive complexity for parity games.
Finally, we define a new family of attractors and derive new parity game solvers from them. Although these new solvers are “partial”, in that they
do not solve all parity games completely, our experiments show that they do
solve a set of benchmark games (i.e., games with known structures) designed
to stress test solvers from PGSolver toolkit [FL10] completely, and some of
these partial solvers deliver favourable performance against a known high
performance solver in many circumstances
The Rabin index of parity games
We study the descriptive complexity of parity games by taking into account
the coloring of their game graphs whilst ignoring their ownership structure.
Colored game graphs are identified if they determine the same winning regions
and strategies, for all ownership structures of nodes. The Rabin index of a
parity game is the minimum of the maximal color taken over all equivalent
coloring functions. We show that deciding whether the Rabin index is at least k
is in PTIME for k=1 but NP-hard for all fixed k > 1. We present an EXPTIME
algorithm that computes the Rabin index by simplifying its input coloring
function. When replacing simple cycle with cycle detection in that algorithm,
its output over-approximates the Rabin index in polynomial time. Experimental
results show that this approximation yields good values in practice.Comment: In Proceedings GandALF 2013, arXiv:1307.416
parallel parity games a multicore attractor for the zielonka recursive algorithm
Abstract Parity games are abstract infinite-duration two-player games, widely studied in computer science. Several solution algorithms have been proposed and also implemented in the community tool of choice called PGSolver, which has declared the Zielonka Recursive (ZR) algorithm the best performing on randomly generated games. With the aim of scaling and solving wider classes of parity games, several improvements and optimizations have been proposed over the existing algorithms. However, no one has yet explored the benefit of using the full computational power of which even common modern multicore processors are capable of. This is even more surprisingly by considering that most of the advanced algorithms in PGSolver are sequential. In this paper we introduce and implement, on a multicore architecture, a parallel version of the Attractor algorithm, that is the main kernel of the ZR algorithm. This choice follows our investigation that more of the 99% of the execution time of the ZR algorithm is spent in this module. We provide testing on graphs up to 20K nodes generated through PGSolver and we discuss performance analysis in terms of strong and weak scaling
Winning Cores in Parity Games
We introduce the novel notion of winning cores in parity games and develop a
deterministic polynomial-time under-approximation algorithm for solving parity
games based on winning core approximation. Underlying this algorithm are a
number properties about winning cores which are interesting in their own right.
In particular, we show that the winning core and the winning region for a
player in a parity game are equivalently empty. Moreover, the winning core
contains all fatal attractors but is not necessarily a dominion itself.
Experimental results are very positive both with respect to quality of
approximation and running time. It outperforms existing state-of-the-art
algorithms significantly on most benchmarks
LNCS
We present the tool Quasy, a quantitative synthesis tool. Quasy takes qualitative and quantitative specifications and automatically constructs a system that satisfies the qualitative specification and optimizes the quantitative specification, if such a system exists. The user can choose between a system that satisfies and optimizes the specifications (a) under all possible environment behaviors or (b) under the most-likely environment behaviors given as a probability distribution on the possible input sequences. Quasy solves these two quantitative synthesis problems by reduction to instances of 2-player games and Markov Decision Processes (MDPs) with quantitative winning objectives. Quasy can also be seen as a game solver for quantitative games. Most notable, it can solve lexicographic mean-payoff games with 2 players, MDPs with mean-payoff objectives, and ergodic MDPs with mean-payoff parity objectives
Fatal Attractors in Parity Games: Building Blocks for Partial Solvers
Attractors in parity games are a technical device for solving "alternating"
reachability of given node sets. A well known solver of parity games -
Zielonka's algorithm - uses such attractor computations recursively. We here
propose new forms of attractors that are monotone in that they are aware of
specific static patterns of colors encountered in reaching a given node set in
alternating fashion. Then we demonstrate how these new forms of attractors can
be embedded within greatest fixed-point computations to design solvers of
parity games that run in polynomial time but are partial in that they may not
decide the winning status of all nodes in the input game.
Experimental results show that our partial solvers completely solve
benchmarks that were constructed to challenge existing full solvers. Our
partial solvers also have encouraging run times in practice. For one partial
solver we prove that its run-time is at most cubic in the number of nodes in
the parity game, that its output game is independent of the order in which
monotone attractors are computed, and that it solves all Buechi games and weak
games.
We then define and study a transformation that converts partial solvers into
more precise partial solvers, and we prove that this transformation is sound
under very reasonable conditions on the input partial solvers. Noting that one
of our partial solvers meets these conditions, we apply its transformation on
1.6 million randomly generated games and so experimentally validate that the
transformation can be very effective in increasing the precision of partial
solvers
IST Austria Technical Report
Gist is a tool that (a) solves the qualitative analysis problem of turn-based probabilistic games with ω-regular objectives; and (b) synthesizes reasonable environment assumptions for synthesis of unrealizable specifications. Our tool provides efficient implementations of several reduction based techniques to solve turn-based probabilistic games, and uses the analysis of turn-based probabilistic games for synthesizing environment assumptions for unrealizable specifications
- …