spot  1.99.7
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members

Wrap TGBA/BA/Monitor post-processing algorithms in an easy interface. More...

#include <spot/twaalgos/postproc.hh>

Inheritance diagram for spot::postprocessor:
Inheritance graph
Collaboration diagram for spot::postprocessor:
Collaboration graph

Public Types

enum  output_type { TGBA, BA, Monitor, Generic }
 
enum  {
  Any = 0, Small = 1, Deterministic = 2, Complete = 4,
  SBAcc = 8, Unambiguous = 16
}
 
enum  optimization_level { Low, Medium, High }
 
typedef int output_pref
 

Public Member Functions

 postprocessor (const option_map *opt=nullptr)
 Construct a postprocessor. More...
 
void set_type (output_type type)
 
void set_pref (output_pref pref)
 
void set_level (optimization_level level)
 
twa_graph_ptr run (twa_graph_ptr input, formula f=nullptr)
 Optimize an automaton. More...
 

Protected Member Functions

twa_graph_ptr do_simul (const twa_graph_ptr &input, int opt)
 
twa_graph_ptr do_sba_simul (const twa_graph_ptr &input, int opt)
 
twa_graph_ptr do_degen (const twa_graph_ptr &input)
 
twa_graph_ptr do_scc_filter (const twa_graph_ptr &a, bool arg)
 
twa_graph_ptr do_scc_filter (const twa_graph_ptr &a)
 

Protected Attributes

output_type type_
 
int pref_
 
optimization_level level_
 
bool degen_reset_
 
bool degen_order_
 
int degen_cache_
 
bool degen_lskip_
 
bool degen_lowinit_
 
int simul_
 
int scc_filter_
 
int ba_simul_
 
bool tba_determinisation_
 
int sat_minimize_
 
int sat_acc_
 
int sat_states_
 
bool state_based_
 
bool wdba_minimize_
 

Detailed Description

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().

Constructor & Destructor Documentation

spot::postprocessor::postprocessor ( const option_map opt = nullptr)

Construct a postprocessor.

The opt argument can be used to pass extra fine-tuning options used for debugging or benchmarking.

Member Function Documentation

twa_graph_ptr spot::postprocessor::run ( twa_graph_ptr  input,
formula  f = nullptr 
)

Optimize an automaton.

The returned automaton might be a new automaton, or an in-place modification of the input automaton.


The documentation for this class was generated from the following file:

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Jan 15 2016 13:01:50 for spot by doxygen 1.8.9.1