Adding option to solve parity games globally

Parity games have been solved semi-locally so far.
We deduced a strategy for the reachable part of the arena
This lead to some inconsistencies when not all state were
rachable.
Now you can chose to solve parity games truely globally.

* spot/twaalgos/game.cc, spot/twaalgos/game.hh: Here
* tests/python/games.ipynb: Test
This commit is contained in:
Philipp Schlehuber 2023-03-09 22:41:44 +01:00
parent 146942953a
commit e7e23d5ffc
3 changed files with 1258 additions and 60 deletions

View file

@ -70,13 +70,19 @@ namespace spot
/// This computes the winning strategy and winning region using
/// Zielonka's recursive algorithm. \cite zielonka.98.tcs
///
/// By default only a 'local' strategy is computed:
/// Only the part of the arena reachable from the init state is considered.
/// If you want to compute a strategy for ALL states, set
/// \a solve_globally to true
///
/// Also includes some inspiration from Oink.
/// \cite vandijk.18.tacas
///
/// Returns the player winning in the initial state, and sets
/// the state-winner and strategy named properties.
SPOT_API
bool solve_parity_game(const twa_graph_ptr& arena);
bool solve_parity_game(const twa_graph_ptr& arena,
bool solve_globally = false);
/// \ingroup games
/// \brief Solve a safety game.