17 #ifndef AWALI_ALGOS_MIN_QUOTIENT_HH
18 #define AWALI_ALGOS_MIN_QUOTIENT_HH
28 template <
typename Aut>
30 bool keep_history=
true)
32 std::vector<std::vector<state_t> > equiv;
33 std::vector<std::list<state_t> > equil;
37 return merge(aut, equiv, keep_history);
40 return merge(aut, equil, keep_history);
42 raise(
"Quotient algo is either MOORE or HOPCROFT");
47 template <
typename Aut>
49 bool keep_history=
true)
51 std::vector<std::vector<state_t> > equiv;
52 std::vector<std::list<state_t> > equil;
56 return merge(aut, equiv, keep_history);
59 return merge(aut, equil, keep_history);
61 raise(
"Quotient algo is either MOORE or HOPCROFT");
65 template <
typename Aut>
69 return minimize(aut, algo, keep_history);
quotient_algo_t
The different algorithms for computing the minimal quotient.
Definition: enums.hh:64
@ HOPCROFT
Definition: enums.hh:66
@ MOORE
Definition: enums.hh:65
auto merge(const Aut &a, std::vector< StateList > &classes, bool keep_history=true) -> Aut
Definition: merge.hh:123
Aut minimize(const Aut &aut, quotient_algo_t algo=MOORE, bool keep_history=true)
Definition: min_quotient.hh:48
void moore_det(const Aut &aut, std::vector< std::vector< state_t > > &states_in_part)
Moore algorithm for the minimization of deterministic Boolean automata (DFA), not necessarily complet...
Definition: congruence_det.hh:143
Aut min_quotient(const Aut &aut, quotient_algo_t algo=MOORE, bool keep_history=true)
Definition: min_quotient.hh:29
Aut min_quotient_det(const Aut &aut, quotient_algo_t algo=MOORE, bool keep_history=true)
Definition: min_quotient.hh:66
unsigned moore_quotient(const Aut &aut, std::vector< std::vector< state_t > > &states_in_part)
Definition: moore_quotient.hh:57
unsigned hopcroft_quotient(const Aut &aut, std::vector< std::list< state_t > > &states_in_part, bool cancellative=false)
Definition: hopcroft_quotient.hh:84
Main namespace of Awali.
Definition: ato.hh:22