spot  1.1.4
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  output_pref { Any, Small, Deterministic }
 
enum  optimization_level { Low, Medium, High }
 

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_
 
output_pref pref_
 
optimization_level level_
 
bool degen_reset_
 
bool degen_order_
 
bool degen_cache_
 
int simul_
 
int simul_limit_
 
int scc_filter_
 
int ba_simul_
 

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

Member Enumeration Documentation

Enumerator
Low 
Medium 
High 
Enumerator
Any 
Small 
Deterministic 
Enumerator
TGBA 
BA 
Monitor 

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::do_ba_simul ( const tgba input,
int  opt 
)
protected
const tgba* spot::postprocessor::do_degen ( const tgba input)
protected
const tgba* spot::postprocessor::do_simul ( const tgba input,
int  opt 
)
protected
const tgba* spot::postprocessor::run ( const tgba input_disown,
const ltl::formula f 
)

Return the optimized automaton and delete input_disown.

void spot::postprocessor::set_level ( optimization_level  level)
inline

References level_.

void spot::postprocessor::set_pref ( output_pref  pref)
inline

References pref_.

Referenced by spot::translator::set_pref().

void spot::postprocessor::set_type ( output_type  type)
inline

References type_.

Referenced by spot::translator::set_type().

Member Data Documentation

int spot::postprocessor::ba_simul_
protected
bool spot::postprocessor::degen_cache_
protected
bool spot::postprocessor::degen_order_
protected
bool spot::postprocessor::degen_reset_
protected
optimization_level spot::postprocessor::level_
protected
output_pref spot::postprocessor::pref_
protected

Referenced by set_pref().

int spot::postprocessor::scc_filter_
protected
int spot::postprocessor::simul_
protected
int spot::postprocessor::simul_limit_
protected
output_type spot::postprocessor::type_
protected

Referenced by set_type().


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 Mon Jul 29 2013 00:27:26 for spot by doxygen 1.8.4