11,914 research outputs found
Solving parity games in big steps
This article proposes a new algorithm that improves the complexity bound for solving parity games. Our approach combines McNaughton's iterated fixed point algorithm with a preprocessing step, which is called prior to every recursive call. The preprocessing uses ranking functions similar to Jurdzifiski's, but with a restricted co-domain, to determine all winning regions smaller than a predefined parameter. The combination of the preprocessing step with the recursive call guarantees that McNaughton's algorithm proceeds in big steps, whose size is bounded from below by the chosen parameter. Higher parameters lead to smaller call trees, but they also result in an expensive preprocessing step. An optimal parameter balances the cost of the recursive call and the preprocessing step, resulting in an improvement of the known upper bound for solving parity games from O (m (2n/c)(1/2c))to approximately O (m (6e(1) ((6) over bar) n/c(2))(1/3c) )
Improved Algorithms for Parity and Streett objectives
The computation of the winning set for parity objectives and for Streett
objectives in graphs as well as in game graphs are central problems in
computer-aided verification, with application to the verification of closed
systems with strong fairness conditions, the verification of open systems,
checking interface compatibility, well-formedness of specifications, and the
synthesis of reactive systems. We show how to compute the winning set on
vertices for (1) parity-3 (aka one-pair Streett) objectives in game graphs in
time and for (2) k-pair Streett objectives in graphs in time
. For both problems this gives faster algorithms for dense
graphs and represents the first improvement in asymptotic running time in 15
years
A Multi-Core Solver for Parity Games
We describe a parallel algorithm for solving parity games,\ud
with applications in, e.g., modal mu-calculus model\ud
checking with arbitrary alternations, and (branching) bisimulation\ud
checking. The algorithm is based on Jurdzinski's Small Progress\ud
Measures. Actually, this is a class of algorithms, depending on\ud
a selection heuristics.\ud
\ud
Our algorithm operates lock-free, and mostly wait-free (except for\ud
infrequent termination detection), and thus allows maximum\ud
parallelism. Additionally, we conserve memory by avoiding storage\ud
of predecessor edges for the parity graph through strictly\ud
forward-looking heuristics.\ud
\ud
We evaluate our multi-core implementation's behaviour on parity games\ud
obtained from mu-calculus model checking problems for a set of\ud
communication protocols, randomly generated problem instances, and\ud
parametric problem instances from the literature.\ud
\u
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
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
Robust Exponential Worst Cases for Divide-et-Impera Algorithms for Parity Games
The McNaughton-Zielonka divide et impera algorithm is the simplest and most
flexible approach available in the literature for determining the winner in a
parity game. Despite its theoretical worst-case complexity and the negative
reputation as a poorly effective algorithm in practice, it has been shown to
rank among the best techniques for the solution of such games. Also, it proved
to be resistant to a lower bound attack, even more than the strategy
improvements approaches, and only recently a family of games on which the
algorithm requires exponential time has been provided by Friedmann. An easy
analysis of this family shows that a simple memoization technique can help the
algorithm solve the family in polynomial time. The same result can also be
achieved by exploiting an approach based on the dominion-decomposition
techniques proposed in the literature. These observations raise the question
whether a suitable combination of dynamic programming and game-decomposition
techniques can improve on the exponential worst case of the original algorithm.
In this paper we answer this question negatively, by providing a robustly
exponential worst case, showing that no intertwining of the above mentioned
techniques can help mitigating the exponential nature of the divide et impera
approaches.Comment: In Proceedings GandALF 2017, arXiv:1709.0176
Zielonka's Recursive Algorithm: dull, weak and solitaire games and tighter bounds
Dull, weak and nested solitaire games are important classes of parity games,
capturing, among others, alternation-free mu-calculus and ECTL* model checking
problems. These classes can be solved in polynomial time using dedicated
algorithms. We investigate the complexity of Zielonka's Recursive algorithm for
solving these special games, showing that the algorithm runs in O(d (n + m)) on
weak games, and, somewhat surprisingly, that it requires exponential time to
solve dull games and (nested) solitaire games. For the latter classes, we
provide a family of games G, allowing us to establish a lower bound of 2^(n/3).
We show that an optimisation of Zielonka's algorithm permits solving games from
all three classes in polynomial time. Moreover, we show that there is a family
of (non-special) games M that permits us to establish a lower bound of 2^(n/3),
improving on the previous lower bound for the algorithm.Comment: In Proceedings GandALF 2013, arXiv:1307.416
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
Synthesising Strategy Improvement and Recursive Algorithms for Solving 2.5 Player Parity Games
2.5 player parity games combine the challenges posed by 2.5 player
reachability games and the qualitative analysis of parity games. These two
types of problems are best approached with different types of algorithms:
strategy improvement algorithms for 2.5 player reachability games and recursive
algorithms for the qualitative analysis of parity games. We present a method
that - in contrast to existing techniques - tackles both aspects with the best
suited approach and works exclusively on the 2.5 player game itself. The
resulting technique is powerful enough to handle games with several million
states
Symmetric Strategy Improvement
Symmetry is inherent in the definition of most of the two-player zero-sum
games, including parity, mean-payoff, and discounted-payoff games. It is
therefore quite surprising that no symmetric analysis techniques for these
games exist. We develop a novel symmetric strategy improvement algorithm where,
in each iteration, the strategies of both players are improved simultaneously.
We show that symmetric strategy improvement defies Friedmann's traps, which
shook the belief in the potential of classic strategy improvement to be
polynomial
- âŠ