16#ifndef OR_TOOLS_ROUTING_PARSERS_CVRPTW_LIB_H_
17#define OR_TOOLS_ROUTING_PARSERS_CVRPTW_LIB_H_
26#include "absl/types/span.h"
32typedef std::function<int64_t(RoutingNodeIndex, RoutingNodeIndex)>
36int32_t
GetSeed(
bool deterministic);
44 locations_.push_back(Location(x, y));
63 Location(int64_t x, int64_t y);
64 int64_t DistanceTo(
const Location& location)
const;
65 bool IsAtSameLocation(
const Location& location)
const;
68 static int64_t Abs(int64_t value);
74 std::mt19937 randomizer_;
83 bool use_deterministic_seed);
89 std::unique_ptr<int64_t[]> demand_;
92 const bool use_deterministic_seed_;
99 int64_t time_per_demand_unit,
106 const int64_t time_per_demand_unit_;
121 const int64_t stop_time_;
131 const operations_research::RoutingModel&
routing,
133 int64_t max_nodes_per_group, int64_t same_vehicle_cost,
134 absl::Span<const std::string> dimension_names);
int64_t ManhattanDistance(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
void AddRandomLocation(int64_t x_max, int64_t y_max)
int64_t ManhattanTime(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
bool SameLocation(RoutingIndexManager::NodeIndex node1, RoutingIndexManager::NodeIndex node2) const
void AddLocation(int64_t x, int64_t y)
LocationContainer(int64_t speed, bool use_deterministic_seed)
int64_t NegManhattanDistance(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
int64_t SameLocationFromIndex(int64_t node1, int64_t node2) const
int64_t Demand(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
RandomDemand(int size, RoutingIndexManager::NodeIndex depot, bool use_deterministic_seed)
RoutingNodeIndex NodeIndex
ServiceTimePlusTransition(int64_t time_per_demand_unit, operations_research::RoutingNodeEvaluator2 demand, operations_research::RoutingNodeEvaluator2 transition_time)
int64_t Compute(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
StopServiceTimePlusTransition(int64_t stop_time, const LocationContainer &location_container, operations_research::RoutingNodeEvaluator2 transition_time)
int64_t Compute(RoutingIndexManager::NodeIndex from, RoutingIndexManager::NodeIndex to) const
Common utilities for parsing routing instances.
In SWIG mode, we don't want anything besides these top-level includes.
void DisplayPlan(const RoutingIndexManager &manager, const RoutingModel &routing, const operations_research::Assignment &plan, bool use_same_vehicle_costs, int64_t max_nodes_per_group, int64_t same_vehicle_cost, absl::Span< const std::string > dimension_names)
int32_t GetSeed(bool deterministic)
Random seed generator.
std::function< int64_t(RoutingNodeIndex, RoutingNodeIndex)> RoutingNodeEvaluator2
trees with all degrees equal to