58 template <
class SymbolType,
class StateType >
62 template <
class SymbolType,
class StateType >
66template <
class SymbolType,
class StateType >
76 refactor[transition.first.first].
insert(
std::make_pair(transition.first.second, transition.second));
86 firstNonfinal = &state;
87 toEquivalentStates.
insert(std::pair<StateType, StateType>(state, *firstNonfinal));
91 toEquivalentStates.
insert(std::pair<StateType, StateType>(state, *firstFinal));
95 unsigned prevSize = 0;
98 const StateType& from = toEquivalentStates.find(transition.first)->second;
101 for(
const std::pair<const SymbolType, StateType> & transitionFromState : transition.second)
102 transitionFunction.insert(
std::make_pair(transitionFromState.first, toEquivalentStates.find(transitionFromState.second)->second));
107 res.push_back ( print_progress ( minimizedTransitionFunction) );
109 if (minimizedTransitionFunction.size() == prevSize)
112 prevSize = minimizedTransitionFunction.size();
113 toEquivalentStates.clear();
116 for(
const StateType& target : transition.second)
119 minimizedTransitionFunction.clear();
125#define RESETSS(x) {(x).clear(); (x).str("");}
127template <
class SymbolType,
class StateType >
132 for(
const auto& kv: minimizedTransitionFunction) {
133 for(
const auto& state : kv.second) {
135 for(
const auto& transition : kv.first.second) {
Deterministic finite automaton. Accepts regular languages.
Definition: DFA.h:71
const ext::set< StateType > & getFinalStates() const &
Definition: DFA.h:183
const ext::map< ext::pair< StateType, SymbolType >, StateType > & getTransitions() const &
Definition: DFA.h:473
const ext::set< StateType > & getStates() const &
Definition: DFA.h:134
Definition: MinimizeVerbose.h:46
static ext::vector< ext::map< std::pair< StateType, StateType >, ext::map< SymbolType, StateType > > > minimize(const automaton::DFA< SymbolType, StateType > &dfa)
Definition: MinimizeVerbose.h:67
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
std::pair< iterator, bool > insert(const T &key, const R &value)
Insert variant with explicit key and value parameters.
Definition: map.hpp:118
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64
return res
Definition: MinimizeByPartitioning.h:145
Definition: ToGrammar.h:31
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79