|
void | NnetToDirectedGraph (const Nnet &nnet, std::vector< std::vector< int32 > > *graph) |
| This function takes an nnet and turns it to a directed graph on nodes. More...
|
|
void | ComputeGraphTranspose (const std::vector< std::vector< int32 > > &graph, std::vector< std::vector< int32 > > *graph_transpose) |
| Outputs a graph in which the order of arcs is reversed. More...
|
|
void | TarjanSccRecursive (int32 node, const std::vector< std::vector< int32 > > &graph, int32 *global_index, std::vector< TarjanNode > *tarjan_nodes, std::vector< int32 > *tarjan_stack, std::vector< std::vector< int32 > > *sccs) |
|
void | FindSccsTarjan (const std::vector< std::vector< int32 > > &graph, std::vector< std::vector< int32 > > *sccs) |
|
void | FindSccs (const std::vector< std::vector< int32 > > &graph, std::vector< std::vector< int32 > > *sccs) |
| Given a directed graph (where each std::vector<int32> is a list of destination-nodes of arcs coming from the current node), partition it into strongly connected components (i.e. More...
|
|
void | MakeSccGraph (const std::vector< std::vector< int32 > > &graph, const std::vector< std::vector< int32 > > &sccs, std::vector< std::vector< int32 > > *scc_graph) |
| Given a list of sccs of a graph (e.g. More...
|
|
void | ComputeTopSortOrderRecursive (int32 node, const std::vector< std::vector< int32 > > &graph, std::vector< bool > *cycle_detector, std::vector< bool > *is_visited, std::vector< int32 > *reversed_orders) |
|
void | ComputeTopSortOrder (const std::vector< std::vector< int32 > > &graph, std::vector< int32 > *node_to_order) |
| Given an acyclic graph (where each std::vector<int32> is a list of destination-nodes of arcs coming from the current node), compute a topological ordering of the graph nodes. More...
|
|
std::string | PrintGraphToString (const std::vector< std::vector< int32 > > &graph) |
| Prints a graph to a string in a pretty way for human readability, e.g. More...
|
|
void | ComputeNnetComputationEpochs (const Nnet &nnet, std::vector< int32 > *node_to_epoch) |
| This function computes the order in which we need to compute each node in the graph, where each node-index n maps to an epoch-index t = 0, 1, ... More...
|
|
bool | GraphHasCycles (const std::vector< std::vector< int32 > > &graph) |
| This function returns 'true' if the graph represented in 'graph' contains cycles (including cycles where a single node has an arc to itself). More...
|
|