61 const std::vector<NodeIndex>& starts,
62 const std::vector<NodeIndex>& ends);
65 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);
68 int num_nodes()
const {
return num_nodes_; }
70 int num_vehicles()
const {
return num_vehicles_; }
75 return vehicle_to_start_[vehicle];
77 int64_t GetEndIndex(
int vehicle)
const {
return vehicle_to_end_[vehicle]; }
83 DCHECK_GE(node.value(), 0);
84 DCHECK_LT(node.value(), node_to_index_.size());
85 return node_to_index_[node];
88 std::vector<int64_t> NodesToIndices(
89 const std::vector<NodeIndex>& nodes)
const;
92 NodeIndex IndexToNode(int64_t index)
const {
94 DCHECK_LT(index, index_to_node_.size());
95 return index_to_node_[index];
98 std::vector<NodeIndex> IndicesToNodes(
99 absl::Span<const int64_t> indices)
const;
103 int num_unique_depots()
const {
return num_unique_depots_; }
104 std::vector<NodeIndex> GetIndexToNodeMap()
const {
return index_to_node_; }
109 const std::vector<std::pair<NodeIndex, NodeIndex> >& starts_ends);
111 std::vector<NodeIndex> index_to_node_;
113 std::vector<int64_t> vehicle_to_start_;
114 std::vector<int64_t> vehicle_to_end_;
117 int num_unique_depots_;