regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t > Class Template Reference

#include <AbstractDFAGenerator.hpp>

Inheritance diagram for regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >:

regal::ExhaustiveDFAGenerator< StateLabel_t, Sigma, Automaton_t > regal::RandomDFAGenerator< StateLabel_t, Sigma, Automaton_t > regal::RandomCompleteICDFAGenerator< StateLabel_t, Sigma, Automaton_t > regal::RandomIncompleteICDFAGenerator< StateLabel_t, Sigma, Automaton_t > List of all members.

Public Member Functions

Automaton_t * getDFA ()
int getSize ()

Protected Member Functions

 AbstractDFAGenerator (const int &autSize, const Alphabet< Sigma > &alpha)
void DFAcompletion (int *completion, const int &modifiedPosition, const int &incomplete=0)
bool isACatalanSuit (int *s, const int &incomplete=0)
bool isAValidSetPartition (int *s, const int &incomplete=0)
void setToDFA (int *setPartition, const int &incomplete=0)
void suitToDFA (int *catalan, int *completion, const int &incomplete=0)
void suitToTrie (int *suit, const int &incomplete=0)
virtual ~AbstractDFAGenerator ()

Protected Attributes

Automaton_t * result
DFA_Generator_transition<
StateLabel_t, Sigma > * 
stateQueue
int stateQueueSize

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
class regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >


Constructor & Destructor Documentation

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::AbstractDFAGenerator ( const int &  autSize,
const Alphabet< Sigma > &  alpha 
) [inline, protected]

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
virtual regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::~AbstractDFAGenerator (  )  [inline, protected, virtual]


Member Function Documentation

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
void regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::DFAcompletion ( int *  completion,
const int &  modifiedPosition,
const int &  incomplete = 0 
) [inline, protected]

2nd part of the Bassino-Nicaud Algorithm Complete the automaton, using the completion suit and a trie

Parameters:
suit is one of the 2 Integer lists used to build the automaton
incomplete is an heuristic to transform a complete ICDFA generator into a non-complete one

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
Automaton_t* regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::getDFA (  )  [inline]

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
int regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::getSize (  )  [inline]

Returns the size of the generated automatons

Returns:
the size of the generated automatons

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
bool regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::isACatalanSuit ( int *  s,
const int &  incomplete = 0 
) [inline, protected]

Checks if a generated suit is a catalan suit

Parameters:
s is the suit to test
incomplete is an heuristic to transform a complete ICDFA generator into a non-complete one
Returns:
true if s is a suit of Catalan, false otherwise

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
bool regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::isAValidSetPartition ( int *  s,
const int &  incomplete = 0 
) [inline, protected]

Checks if a generated set partition can be transformed in an automaton

Parameters:
s is the set partition to test
incomplete is an heuristic to transform a complete ICDFA generator into a non-complete one
Returns:
true if s is a valid set partition, false otherwise

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
void regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::setToDFA ( int *  setPartition,
const int &  incomplete = 0 
) [inline, protected]

Bassino-David-Nicaud Algorithm Trandform a set partition directly into an automaton

Parameters:
setPartition is the set partition to tranform
incomplete is an hauristic that allows to genere incomplete automata

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
void regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::suitToDFA ( int *  catalan,
int *  completion,
const int &  incomplete = 0 
) [inline, protected]

Bassino-Nicaud Algorithm Fill the automaton result using the suits

Parameters:
catalan is the Catalan suit used to build the Tree automaton
completion is the suit used to complete the filling

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
void regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::suitToTrie ( int *  suit,
const int &  incomplete = 0 
) [inline, protected]

1st part of the Bassino-Nicaud Algorithm Build up a trie, using the suit

Parameters:
suit is one of the 2 Integer lists used to build the automaton


Member Data Documentation

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
Automaton_t* regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::result [protected]

Value returned by the generator: allocated only once

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
DFA_Generator_transition<StateLabel_t,Sigma>* regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::stateQueue [protected]

template<typename StateLabel_t, typename Sigma, class Automaton_t = AbstractAutomaton<StateLabel_t,Sigma>>
int regal::AbstractDFAGenerator< StateLabel_t, Sigma, Automaton_t >::stateQueueSize [protected]


The documentation for this class was generated from the following file:
Generated on Mon Sep 29 16:33:58 2008 for REGAL by  doxygen 1.5.1