spot  1.2.6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
spot::postprocessor Class Reference

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

#include <tgbaalgos/postproc.hh>

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

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 tgbarun (const tgba *input_disown, const ltl::formula *f)
 Return the optimized automaton and delete input_disown. More...
 

Protected Member Functions

const tgbado_simul (const tgba *input, int opt)
 
const tgbado_ba_simul (const tgba *input, int opt)
 
const tgbado_degen (const tgba *input)
 

Protected Attributes

output_type type_
 
int pref_
 
optimization_level level_
 
bool degen_reset_
 
bool degen_order_
 
int degen_cache_
 
bool degen_lskip_
 
int simul_
 
int simul_limit_
 
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 = 0)

Construct a postprocessor.

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

Member Function Documentation

const tgba* spot::postprocessor::run ( const tgba input_disown,
const ltl::formula f 
)

Return the optimized automaton and delete input_disown.


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 Sat Dec 6 2014 12:28:44 for spot by doxygen 1.8.4