Awali
Another Weighted Automata library
graph.hh
Go to the documentation of this file.
1 // This file is part of Awali.
2 // Copyright 2016-2022 Sylvain Lombardy, Victor Marsault, Jacques Sakarovitch
3 //
4 // Awali is a free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 
17 #ifndef DYN_MODULES_GRAPH_HH
18 #define DYN_MODULES_GRAPH_HH
19 
20 #include <unordered_map>
21 #include <vector>
22 
24 
25 namespace awali {
26  namespace dyn {
27 
28  struct scc_return_t {
30  std::unordered_map<state_t, unsigned int> scc_of;
31 
33  std::vector<std::vector<state_t>> partition;
34  };
35 
42 
43 
51 
59  std::vector<state_t> scc_of(automaton_t aut, state_t s);
60 
61  }
62 }//end of ns awali::dyn
63 
64 #endif
An automaton_t is essentially a shared pointer to an abstract_automaton_t, but also contains static f...
Definition: automaton.hh:93
std::vector< std::vector< state_t > > partition
Partition of the states into strongly connected components.
Definition: graph.hh:33
std::vector< state_t > scc_of(automaton_t aut, state_t s)
Returns the strongly connected component of a state.
scc_return_t strongly_connected_components(automaton_t aut)
Computes the strongly connected components of an automaton.
unsigned state_t
Type representing automata states; currently simply identifiers of type unsigned, but this might chan...
Definition: typedefs.hh:28
std::unordered_map< state_t, unsigned int > scc_of
Map of states to their strongly connected component.
Definition: graph.hh:30
automaton_t condensation(automaton_t aut)
Computes the condensation of an automaton; it results from reducing each strongly connected component...
Definition: graph.hh:28
Main namespace of Awali.
Definition: ato.hh:22