Deterministic unordered finite tree automaton without epsilon transitions. Accepts regular tree languages.
More...
|
| UnorderedDFTA () |
| Creates a new instance of the automaton. More...
|
|
| UnorderedDFTA (ext::set< StateType > states, ext::set< common::ranked_symbol< SymbolType > > inputAlphabet, ext::set< StateType > finalStates) |
| Creates a new instance of the automaton with a concrete set of states, input alphabet, and a set of final states. More...
|
|
const ext::set< StateType > & | getStates () const & |
|
ext::set< StateType > && | getStates () && |
|
bool | addState (StateType state) |
|
void | setStates (ext::set< StateType > states) |
|
void | removeState (const StateType &state) |
|
const ext::set< StateType > & | getFinalStates () const & |
|
ext::set< StateType > && | getFinalStates () && |
|
bool | addFinalState (StateType state) |
|
void | setFinalStates (ext::set< StateType > states) |
|
void | removeFinalState (const StateType &state) |
|
const ext::set< common::ranked_symbol< SymbolType > > & | getInputAlphabet () const & |
|
ext::set< common::ranked_symbol< SymbolType > > && | getInputAlphabet () && |
|
bool | addInputSymbol (common::ranked_symbol< SymbolType > symbol) |
|
void | addInputSymbols (ext::set< common::ranked_symbol< SymbolType > > symbols) |
|
void | setInputAlphabet (ext::set< common::ranked_symbol< SymbolType > > symbols) |
|
void | removeInputSymbol (const common::ranked_symbol< SymbolType > &symbol) |
|
bool | addTransition (common::ranked_symbol< SymbolType > symbol, ext::multiset< StateType > prevStates, StateType next) |
| Add a transition to the automaton. More...
|
|
bool | removeTransition (const common::ranked_symbol< SymbolType > &symbol, const ext::multiset< StateType > &states, const StateType &next) |
| Removes a transition from the automaton. More...
|
|
const ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::multiset< StateType > >, StateType > & | getTransitions () const & |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::multiset< StateType > >, StateType > && | getTransitions () && |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::multiset< StateType > >, StateType > | getTransitionsToState (const StateType &q) const |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::multiset< StateType > >, StateType > | getTransitionsFromState (const StateType &q) const |
|
auto | operator<=> (const UnorderedDFTA &other) const |
|
bool | operator== (const UnorderedDFTA &other) const |
|
void | accessComponent () |
|
template<class SymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::UnorderedDFTA< SymbolTypeT, StateTypeT >
Deterministic unordered finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition is similar to classical definition of finite automata. A = (Q, \Sigma, \delta, F), Q (States) = nonempty finite set of states, \Sigma (TerminalAlphabet) = finite set of terminal ranked symbols - having this empty won't let automaton do much though,
- the alphabet may be partitioned based on the arity of symbols into \Sigma_n, where n is the arity. \delta = transition function of the form \cup^n(Q) \times \Sigma_n -> Q, where \cup^n(Q) is a multiset of states, F (FinalStates) = set of final states
Elements of the \delta mapping must meet following criteria. The size of the state list must equal the rank of the ranked symbol.
Note that target state of a transition is required. This class is used to store minimal, total, ... variants of deterministic finite tree automata.
- Template Parameters
-
SymbolTypeT | used for the symbol part of the ranked symbol |
StateTypeT | used to the states, and the initial state of the automaton. |