75 const std::vector<NodeIndex>& starts,
76 const std::vector<NodeIndex>& ends);
86 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);
89 int num_nodes()
const {
return num_nodes_; }
91 int num_vehicles()
const {
return num_vehicles_; }
96 return vehicle_to_start_[vehicle];
98 int64_t GetEndIndex(
int vehicle)
const {
return vehicle_to_end_[vehicle]; }
104 DCHECK_GE(node.value(), 0);
105 DCHECK_LT(node.value(), node_to_index_.size());
106 return node_to_index_[node];
109 std::vector<int64_t> NodesToIndices(
110 const std::vector<NodeIndex>& nodes)
const;
113 NodeIndex IndexToNode(int64_t index)
const {
115 DCHECK_LT(index, index_to_node_.size());
116 return index_to_node_[index];
119 std::vector<NodeIndex> IndicesToNodes(
120 absl::Span<const int64_t> indices)
const;
124 int num_unique_depots()
const {
return num_unique_depots_; }
125 std::vector<NodeIndex> GetIndexToNodeMap()
const {
return index_to_node_; }
130 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);
132 std::vector<NodeIndex> index_to_node_;
134 std::vector<int64_t> vehicle_to_start_;
135 std::vector<int64_t> vehicle_to_end_;
138 int num_unique_depots_;