Google OR-Tools: ortools/constraint_solver/routing_index_manager.h Source File

75 const std::vector<NodeIndex>& starts,

76 const std::vector<NodeIndex>& ends);

86 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);

87

88

89 int num_nodes() const { return num_nodes_; }

90

91 int num_vehicles() const { return num_vehicles_; }

92

93 int num_indices() const { return index_to_node_.size(); }

94

96 return vehicle_to_start_[vehicle];

98 int64_t GetEndIndex(int vehicle) const { return vehicle_to_end_[vehicle]; }

102

104 DCHECK_GE(node.value(), 0);

105 DCHECK_LT(node.value(), node_to_index_.size());

106 return node_to_index_[node];

108

109 std::vector<int64_t> NodesToIndices(

110 const std::vector<NodeIndex>& nodes) const;

111

112

113 NodeIndex IndexToNode(int64_t index) const {

114 DCHECK_GE(index, 0);

115 DCHECK_LT(index, index_to_node_.size());

116 return index_to_node_[index];

118

119 std::vector<NodeIndex> IndicesToNodes(

120 absl::Span<const int64_t> indices) const;

121

122

123

124 int num_unique_depots() const { return num_unique_depots_; }

125 std::vector<NodeIndex> GetIndexToNodeMap() const { return index_to_node_; }

126

127 private:

128 void Initialize(

130 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);

131

132 std::vector<NodeIndex> index_to_node_;

134 std::vector<int64_t> vehicle_to_start_;

135 std::vector<int64_t> vehicle_to_end_;

136 int num_nodes_;

137 int num_vehicles_;

138 int num_unique_depots_;

139};

140

141}

142

143#endif