twaalgos: Implement dt*a_sat_minimize_incr(...) functions

* python/spot/__init__.py: Add 'incr' boolean argument.
* spot/twaalgos/dtbasat.cc: Implement dtba_sat_minimize_incr(...).
* spot/twaalgos/dtbasat.hh: Declare it.
* spot/twaalgos/dtwasat.cc: Implement dtwa_sat_minimize_incr(...) and
deal with options.
* spot/twaalgos/dtwasat.hh: Declare it.
* spot/twaalgos/postproc.cc: Add option --sat-minimize=incr.
* spot/twaalgos/postproc.hh: Add incr parameter.
* tests/core/satmin.test: Add tests for incremental version.
Update expected result.
* tests/core/satmin2.test: Add tests for incremental version.
* tests/python/satmin.py: Add tests for incremental version.
This commit is contained in:
Alexandre GBAGUIDI AISSE 2016-09-20 11:58:24 +02:00
parent 9acd7370b2
commit ee17c2dee4
10 changed files with 1051 additions and 26 deletions

View file

@ -65,4 +65,20 @@ namespace spot
dtba_sat_minimize_dichotomy(const const_twa_graph_ptr& a,
bool state_based = false,
int max_states = -1);
/// \brief Attempt to minimize a det. TBA with a SAT solver.
///
/// This acts like dtba_sat_synthetize() and obtains a first minimized
/// automaton. Then, incrementally, it encodes the deletion of one state
/// and solves it as many time as param value.
/// If param >= 0, this process is fully repeated until the minimal automaton
/// is found. Otherwise, it continues to delete states one by one
/// incrementally until the minimal automaton is found.
///
/// If no smaller TBA exist, this returns a null pointer.
SPOT_API twa_graph_ptr
dtba_sat_minimize_incr(const const_twa_graph_ptr& a,
bool state_based = false,
int max_states = -1,
int param = 2);
}