24 #include <spot/twa/twagraph.hh>
36 std::vector<power_state>
map_;
53 mutable bool reason_is_states_;
57 unsigned max_edges = ~0U)
58 : max_states_(max_states), max_edges_(max_edges)
77 bool too_many_states = aut->num_states() > max_states_;
78 if (!too_many_states && (aut->num_edges() <= max_edges_))
81 reason_is_states_ = too_many_states;
114 std::vector<unsigned>* accepting_sinks =
nullptr);
120 std::vector<unsigned>* accepting_sinks =
nullptr);
145 unsigned threshold_states = 0,
146 unsigned threshold_cycles = 0);
177 unsigned threshold_states = 0,
178 unsigned threshold_cycles = 0,
Helper object to specify when an algorithm should abort its construction.
Definition: powerset.hh:50
unsigned max_edges() const
Return the maximum number of edges allowed.
Definition: powerset.hh:69
unsigned max_states() const
Return the maximum number of states allowed.
Definition: powerset.hh:63
bool too_large(const const_twa_graph_ptr &aut) const
Check if the automaton exceeds the size limits.
Definition: powerset.hh:75
std::ostream & print_reason(std::ostream &) const
Print the reason why the construction was aborted.
output_aborter(unsigned max_states, unsigned max_edges=~0U)
Construct with max states and max edges limits.
Definition: powerset.hh:56
twa_graph_ptr tgba_powerset(const const_twa_graph_ptr &aut, power_map &pm, bool merge=true, const output_aborter *aborter=nullptr, std::vector< unsigned > *accepting_sinks=nullptr)
Build a deterministic automaton, ignoring acceptance conditions.
std::shared_ptr< twa_graph > twa_graph_ptr
Shared pointer to a mutable twa_graph.
Definition: fwd.hh:44
std::shared_ptr< const twa_graph > const_twa_graph_ptr
Shared pointer to a const twa_graph.
Definition: fwd.hh:38
Definition: automata.hh:26
twa_graph_ptr tba_determinize(const const_twa_graph_ptr &aut, unsigned threshold_states=0, unsigned threshold_cycles=0)
Determinize a TBA using the powerset construction.
twa_graph_ptr tba_determinize_check(const twa_graph_ptr &aut, unsigned threshold_states=0, unsigned threshold_cycles=0, formula f=nullptr, const_twa_graph_ptr neg_aut=nullptr)
Determinize a TBA and make sure it is correct.
Maps each powerset-construction state to the set of original states it represents.
Definition: powerset.hh:33
const power_state & states_of(unsigned s) const
Return the set of NFA states for DFA state s.
Definition: powerset.hh:40
std::set< unsigned > power_state
Set of NFA states in the powerset construction.
Definition: powerset.hh:35
std::vector< power_state > map_
Map from DFA states to NFA state sets.
Definition: powerset.hh:36