Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Namespaces | Data Structures | Typedefs | Functions | Variables
automaton::simplify Namespace Reference

Namespaces

namespace  efficient
 

Data Structures

class  EpsilonRemoverIncoming
 
class  EpsilonRemoverOutgoing
 
class  Minimize
 
class  MinimizeBrzozowski
 
class  MinimizeByPartitioning
 
class  MinimizeVerbose
 
class  Normalize
 
class  RemoveUnused
 
class  Rename
 
class  SingleInitialState
 
class  SingleInitialStateEpsilonTransition
 
class  ToArcFactored
 
class  Total
 
class  Trim
 
class  UnreachableStatesRemover
 
class  UselessStatesRemover
 

Typedefs

template<class T >
using SymbolType = typename T::SymbolType
 

Functions

MinimizeByPartitioning::FA< T > res (statePartitionMap.at(nfa.getInitialState()))
 
res setStates (partitions)
 
res addInputSymbols (nfa.getInputAlphabet())
 
 for (const StateType &state :nfa.getFinalStates()) res.addFinalState(statePartitionMap.at(state))
 
 for (const auto &transition :nfa.getTransitions()) res.addTransition(statePartitionMap.at(transition.first.first)
 
transition first statePartitionMap at (transition.second))
 
res addInputSymbols (dfta.getInputAlphabet())
 
 for (const StateType &state :dfta.getFinalStates()) res.addFinalState(statePartitionMap.at(state))
 
 for (const auto &transition :dfta.getTransitions())
 
result setInputAlphabet (fsm.getInputAlphabet())
 
 for (const StateType &state :fsm.getStates()) result.addState(renamingData.at(state))
 
 for (const auto &transition :fsm.getTransitions()) result.addTransition(renamingData.at(transition.first.first)
 
result setInputAlphabet (fta.getInputAlphabet())
 
 for (const StateType &state :fta.getStates()) result.addState(renamingData.at(state))
 
 for (const auto &transition :fta.getTransitions())
 
SingleInitialState::ConvertedAutomaton< T > res (q0)
 
 for (const StateType &q :fsm.getStates()) res.addState(q)
 
res setFinalStates (fsm.getFinalStates())
 
 if (! ext::excludes(fsm.getFinalStates().begin(), fsm.getFinalStates().end(), fsm.getInitialStates().begin(), fsm.getInitialStates().end())) res.addFinalState(q0)
 
 for (const auto &q :fsm.getInitialStates()) res.addTransition(q0
 

Variables

template<class T >
requires isDFTA < T > || isNFTA < T > MinimizeByPartitioning::FTA < T > MinimizeByPartitioning::minimize ( const T & dfta, const ext::set < ext::set < typename T::StateType > > & partitions )
const ext::map< StateType, ext::set< StateType > > statePartitionMap = partitionMap ( partitions )
 
transition first second
 
return res
 
template<class T >
requires isDFTA < T > || isNFTA < T > Rename::RenamedTreeAutomaton < T > Rename::rename ( const T & fta )
unsigned counter = 0
 
ext::map< StateType, unsigned > renamingData
 
for(const StateType &state :fsm.getStates()) renamingData.insert(std Rename::RenamedAutomaton< T > result (renamingData.at(fsm.getInitialState()))
 
template<class T >
StateType q0 = common::createUnique ( label::InitialStateLabel::instance < StateType > ( ), fsm.getStates ( ) )
 
for(const auto &q :fsm.getInitialStates()) for(const auto &kv for (const auto &t :fsm.getTransitions()) res.addTransition(t.first.first
 
 q
 

Typedef Documentation

◆ SymbolType

template<class T >
using automaton::simplify::SymbolType = typedef typename T::SymbolType
Initial value:
{
using StateType = typename T::StateType
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64

Function Documentation

◆ addInputSymbols() [1/2]

res automaton::simplify::addInputSymbols ( dfta.  getInputAlphabet())

◆ addInputSymbols() [2/2]

res automaton::simplify::addInputSymbols ( nfa.  getInputAlphabet())

◆ at()

transition first renamingData automaton::simplify::at ( transition.  second)

◆ for() [1/10]

automaton::simplify::for ( const auto &q :fsm.  getInitialStates())

◆ for() [2/10]

automaton::simplify::for ( const auto &transition :dfta.  getTransitions())

◆ for() [3/10]

automaton::simplify::for ( const auto &transition :fsm.  getTransitions())

◆ for() [4/10]

automaton::simplify::for ( const auto &transition :fta.  getTransitions())

◆ for() [5/10]

automaton::simplify::for ( const auto &transition :nfa.  getTransitions())

◆ for() [6/10]

automaton::simplify::for ( const StateType &q :fsm.  getStates())

◆ for() [7/10]

automaton::simplify::for ( const StateType &state :dfta.  getFinalStates())

◆ for() [8/10]

automaton::simplify::for ( const StateType &state :fsm.  getStates())

◆ for() [9/10]

automaton::simplify::for ( const StateType &state :fta.  getStates())

◆ for() [10/10]

automaton::simplify::for ( const StateType &state :nfa.  getFinalStates())

◆ if()

automaton::simplify::if ( !   ext::excludesfsm.getFinalStates().begin(), fsm.getFinalStates().end(), fsm.getInitialStates().begin(), fsm.getInitialStates().end())

◆ res() [1/2]

SingleInitialState::ConvertedAutomaton< T > automaton::simplify::res ( q0  )

◆ res() [2/2]

MinimizeByPartitioning::FA< T > automaton::simplify::res ( statePartitionMap.  atnfa.getInitialState())

◆ setFinalStates()

res automaton::simplify::setFinalStates ( fsm.  getFinalStates())

◆ setInputAlphabet() [1/2]

res automaton::simplify::setInputAlphabet ( fsm.  getInputAlphabet())

◆ setInputAlphabet() [2/2]

result automaton::simplify::setInputAlphabet ( fta.  getInputAlphabet())

◆ setStates()

res automaton::simplify::setStates ( partitions  )

Variable Documentation

◆ counter

template<class T >
requires isDFTA < T > || isNFTA < T > Rename::RenamedTreeAutomaton < T > Rename::rename ( const T & fta )
unsigned automaton::simplify::counter = 0

◆ for

automaton::simplify::for ( const auto &t :fsm.  getTransitions())

◆ q

automaton::simplify::q

◆ q0

template<class T >
StateType automaton::simplify::q0 = common::createUnique ( label::InitialStateLabel::instance < StateType > ( ), fsm.getStates ( ) )

◆ renamingData

ext::map< StateType, unsigned > automaton::simplify::renamingData

◆ res

return automaton::simplify::res

◆ result

return automaton::simplify::result ( renamingData.  atfsm.getInitialState())

◆ second

t first t automaton::simplify::second

◆ statePartitionMap

template<class T >
requires isDFTA < T > || isNFTA < T > MinimizeByPartitioning::FTA < T > MinimizeByPartitioning::minimize ( const T & dfta, const ext::set < ext::set < typename T::StateType > > & partitions )
const ext::map< StateType, ext::set< StateType > > automaton::simplify::statePartitionMap = partitionMap ( partitions )