Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
|
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 | |
using automaton::simplify::SymbolType = typedef typename T::SymbolType |
res automaton::simplify::addInputSymbols | ( | dfta. | getInputAlphabet() | ) |
res automaton::simplify::addInputSymbols | ( | nfa. | getInputAlphabet() | ) |
transition first renamingData automaton::simplify::at | ( | transition. | second | ) |
automaton::simplify::for | ( | const auto &q :fsm. | getInitialStates() | ) |
automaton::simplify::for | ( | const auto &transition :dfta. | getTransitions() | ) |
automaton::simplify::for | ( | const auto &transition :fsm. | getTransitions() | ) |
automaton::simplify::for | ( | const auto &transition :fta. | getTransitions() | ) |
automaton::simplify::for | ( | const auto &transition :nfa. | getTransitions() | ) |
automaton::simplify::for | ( | const StateType &q :fsm. | getStates() | ) |
automaton::simplify::for | ( | const StateType &state :dfta. | getFinalStates() | ) |
automaton::simplify::for | ( | const StateType &state :fsm. | getStates() | ) |
automaton::simplify::for | ( | const StateType &state :fta. | getStates() | ) |
automaton::simplify::for | ( | const StateType &state :nfa. | getFinalStates() | ) |
automaton::simplify::if | ( | ! | ext::excludesfsm.getFinalStates().begin(), fsm.getFinalStates().end(), fsm.getInitialStates().begin(), fsm.getInitialStates().end() | ) |
SingleInitialState::ConvertedAutomaton< T > automaton::simplify::res | ( | q0 | ) |
MinimizeByPartitioning::FA< T > automaton::simplify::res | ( | statePartitionMap. | atnfa.getInitialState() | ) |
res automaton::simplify::setFinalStates | ( | fsm. | getFinalStates() | ) |
res automaton::simplify::setInputAlphabet | ( | fsm. | getInputAlphabet() | ) |
result automaton::simplify::setInputAlphabet | ( | fta. | getInputAlphabet() | ) |
res automaton::simplify::setStates | ( | partitions | ) |
unsigned automaton::simplify::counter = 0 |
automaton::simplify::for | ( | const auto &t :fsm. | getTransitions() | ) |
automaton::simplify::q |
StateType automaton::simplify::q0 = common::createUnique ( label::InitialStateLabel::instance < StateType > ( ), fsm.getStates ( ) ) |
ext::map< StateType, unsigned > automaton::simplify::renamingData |
return automaton::simplify::res |
return automaton::simplify::result | ( | renamingData. | atfsm.getInitialState() | ) |
t first t automaton::simplify::second |
const ext::map< StateType, ext::set< StateType > > automaton::simplify::statePartitionMap = partitionMap ( partitions ) |