spot
1.2.6
|
Wrap TGBA/BA/Monitor post-processing algorithms in an easy interface. More...
#include <tgbaalgos/postproc.hh>
Public Types | |
enum | output_type { TGBA, BA, Monitor } |
enum | { Any = 0, Small = 1, Deterministic = 2, Complete = 4 } |
enum | optimization_level { Low, Medium, High } |
typedef int | output_pref |
Public Member Functions | |
postprocessor (const option_map *opt=0) | |
Construct a postprocessor. More... | |
void | set_type (output_type type) |
void | set_pref (output_pref pref) |
void | set_level (optimization_level level) |
const tgba * | run (const tgba *input_disown, const ltl::formula *f) |
Return the optimized automaton and delete input_disown. More... | |
Protected Member Functions | |
const tgba * | do_simul (const tgba *input, int opt) |
const tgba * | do_ba_simul (const tgba *input, int opt) |
const tgba * | do_degen (const tgba *input) |
Wrap TGBA/BA/Monitor post-processing algorithms in an easy interface.
This class is a shell around scc_filter(), minimize_obligation(), simulation(), iterated_simulations(), and degeneralize(). These different algorithms will be combined depending on the various options set with set_type(), set_pref(), and set_level().
This helps hiding some of the logic required to combine these simplifications efficiently (e.g., there is no point calling degeneralize() or any simulation when minimize_obligation() succeeded.)
Use set_pref() method to specify whether you favor deterministic automata or small automata. If you don't care, less post processing will be done.
The set_level() method lets you set the optimization level. A higher level enables more costly post-processings. For instance pref=Small,level=High will try two different post-processings (one with minimize_obligation(), and one with iterated_simulations()) an keep the smallest result. pref=Small,level=Medium will only try the iterated_simulations() when minimized_obligation failed to produce an automaton smaller than its input. pref=Small,level=Low will only run simulation().
spot::postprocessor::postprocessor | ( | const option_map * | opt = 0 ) |
Construct a postprocessor.
The opt argument can be used to pass extra fine-tuning options used for debugging or benchmarking.
const tgba* spot::postprocessor::run | ( | const tgba * | input_disown, |
const ltl::formula * | f | ||
) |
Return the optimized automaton and delete input_disown.