Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Static Public Member Functions
automaton::simplify::UnreachableStatesRemover Class Reference

#include <UnreachableStatesRemover.h>

Static Public Member Functions

template<class T >
requires isDFA < T > || isNFA < T > || isEpsilonNFA < T > || isCompactNFA < T > || isExtendedNFA < T >
static T remove (const T &fsm)
 
template<class SymbolType , class StateType >
static automaton::MultiInitialStateNFA< SymbolType, StateType > remove (const automaton::MultiInitialStateNFA< SymbolType, StateType > &fsm)
 
template<class T >
requires isDFTA < T > || isNFTA < T >
static T remove (const T &fta)
 
template<class T >
requires isAFDZA < T > || isAFNZA < T >
static T remove (const T &afza)
 

Detailed Description

Algorithm for the removal of unreachable states from a finite automaton and a deterministic finite tree automaton. Unreachable state is a state that is not accessible from the initial state of the automaton by any string.

For a finite automaton, we implement Melichar: Jazyky a překlady, 2.29. For a deterministic finite tree automaton, we implement ???

See also
automaton::simplify::Trim
automaton::simplify::UselessStatesRemover

Member Function Documentation

◆ remove() [1/4]

template<class SymbolType , class StateType >
automaton::MultiInitialStateNFA< SymbolType, StateType > automaton::simplify::UnreachableStatesRemover::remove ( const automaton::MultiInitialStateNFA< SymbolType, StateType > &  fsm)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Template Parameters
SymbolTypeType for input symbols.
StateTypeType for states.
Parameters
fsmautomaton to remove unreachable states from
Returns
fsm without unreachable states
Here is the call graph for this function:

◆ remove() [2/4]

template<class T >
requires isAFDZA < T > || isAFNZA < T >
static T automaton::simplify::UnreachableStatesRemover::remove ( const T &  afza)
static

Removes unreachable states from an arc-factored (non)deterministic z-automaton

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Template Parameters
Ttype of a finite tree automaton
Parameters
afzaautomaton to remove unreachable states from
Returns
afza without unreachable states

◆ remove() [3/4]

template<class T >
requires isDFA < T > || isNFA < T > || isEpsilonNFA < T > || isCompactNFA < T > || isExtendedNFA < T >
T automaton::simplify::UnreachableStatesRemover::remove ( const T &  fsm)
static

Removes unreachable states from a finite automaton.

Template Parameters
Ttype of a finite automaton
Parameters
fsmautomaton to remove unreachable states from
Returns
fsm without unreachable states
Here is the call graph for this function:
Here is the caller graph for this function:

◆ remove() [4/4]

template<class T >
requires isDFTA < T > || isNFTA < T >
static T automaton::simplify::UnreachableStatesRemover::remove ( const T &  fta)
static

Removes unreachable states from a finite tree automaton.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Template Parameters
Ttype of a finite tree automaton
Parameters
ftaautomaton to remove unreachable states from
Returns
fta without unreachable states

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