55#ifndef ORTOOLS_ROUTING_PARSERS_CARP_PARSER_H_
56#define ORTOOLS_ROUTING_PARSERS_CARP_PARSER_H_
63#include "absl/strings/string_view.h"
64#include "absl/types/span.h"
80 bool LoadFile(absl::string_view file_name);
83 const std::string&
name()
const {
return name_; }
85 const std::string&
comment()
const {
return comment_; }
87 int64_t
depot()
const {
return depot_; }
98 return number_of_edges_with_servicing_;
103 return number_of_edges_without_servicing_;
109 return servicing_demands_;
113 return traversing_costs_;
123 CHECK(traversing_costs_.contains(edge))
124 <<
"Unknown edge: " << edge.
tail() <<
" - " << edge.
head();
125 return traversing_costs_.at(edge);
133 return servicing_demands_.contains(edge);
143 <<
"Unknown edge: " << edge.
tail() <<
" - " << edge.
head();
144 return servicing_demands_.at(edge);
155 ARCS_WITHOUT_SERVICING,
160 bool ParseFile(absl::string_view file_name);
161 bool ParseMetadataLine(absl::Span<const std::string> words);
162 bool ParseEdge(std::string_view line,
bool with_servicing);
170 std::string comment_;
171 int64_t number_of_nodes_;
172 int64_t number_of_edges_with_servicing_;
173 int64_t number_of_edges_without_servicing_;
174 int64_t total_servicing_cost_;
int64_t NumberOfVehicles() const
const gtl::linked_hash_map< Edge, int64_t > & traversing_costs() const
int64_t GetServicing(Edge edge) const
CarpParser(const CarpParser &)=delete
const std::string & name() const
const std::string & comment() const
const gtl::linked_hash_map< Edge, int64_t > & servicing_demands() const
int64_t NumberOfEdgesWithServicing() const
int64_t NumberOfEdges() const
int64_t TotalServicingCost() const
bool LoadFile(absl::string_view file_name)
int64_t HasServicingNeed(Edge edge) const
int64_t NumberOfEdgesWithoutServicing() const
int64_t HasServicingNeed(int64_t tail, int64_t head) const
const CarpParser & operator=(const CarpParser &)=delete
int64_t GetServicing(int64_t tail, int64_t head) const
int64_t GetTraversingCost(Edge edge) const
int64_t GetTraversingCost(int64_t tail, int64_t head) const
int64_t NumberOfNodes() const