Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
util.h File Reference
#include <algorithm>
#include <cstdint>
#include <map>
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/btree_map.h"
#include "absl/container/flat_hash_map.h"
#include "absl/container/inlined_vector.h"
#include "absl/types/span.h"
#include "ortools/base/hash.h"
#include "ortools/base/map_util.h"
#include "ortools/graph/connected_components.h"
#include "ortools/graph/graph.h"
#include "ortools/graph/iterators.h"

Go to the source code of this file.

Classes

class  util::UndirectedAdjacencyListsOfDirectedGraph< Graph >
 
class  util::UndirectedAdjacencyListsOfDirectedGraph< Graph >::AdjacencyListIterator
 

Namespaces

namespace  util
 A collections of i/o utilities for the Graph classes in ./graph.h.
 

Functions

template<class Graph >
bool util::GraphHasSelfArcs (const Graph &graph)
 Implementations of the templated methods.
 
template<class Graph >
bool util::GraphHasDuplicateArcs (const Graph &graph)
 
template<class Graph >
bool util::GraphIsSymmetric (const Graph &graph)
 
template<class Graph >
bool util::GraphIsWeaklyConnected (const Graph &graph)
 
template<class Graph >
std::unique_ptr< Graphutil::CopyGraph (const Graph &graph)
 Returns a fresh copy of a given graph.
 
template<class Graph >
std::unique_ptr< Graphutil::RemapGraph (const Graph &graph, absl::Span< const int > new_node_index)
 
template<class Graph >
std::unique_ptr< Graphutil::GetSubgraphOfNodes (const Graph &graph, absl::Span< const int > nodes)
 
template<class Graph >
std::vector< int > util::GetWeaklyConnectedComponents (const Graph &graph)
 
bool util::IsSubsetOf0N (absl::Span< const int > v, int n)
 
bool util::IsValidPermutation (absl::Span< const int > v)
 Returns true iff the given vector is a permutation of [0..size()-1].
 
template<class Graph >
std::unique_ptr< Graphutil::RemoveSelfArcsAndDuplicateArcs (const Graph &graph)
 Returns a copy of "graph", without self-arcs and duplicate arcs.
 
template<class Graph >
void util::RemoveCyclesFromPath (const Graph &graph, std::vector< int > *arc_path)
 
template<class Graph >
bool util::PathHasCycle (const Graph &graph, absl::Span< const int > arc_path)
 Returns true iff the given path contains a cycle.
 
template<class Graph >
std::vector< int > util::ComputeOnePossibleReverseArcMapping (const Graph &graph, bool die_if_not_symmetric)