update examples

This commit is contained in:
Corentin Le Molgat
2021-04-02 14:58:16 +02:00
parent 7a4f8e242c
commit baf02eca7e
33 changed files with 381 additions and 380 deletions

View File

@@ -86,7 +86,7 @@ ABSL_FLAG(std::string, params, "", "Sat parameters.");
namespace operations_research {
namespace sat {
// ---------- Data and Data Generation ----------
static const int64 kDisconnectedDistance = -1LL;
static const int64_t kDisconnectedDistance = -1LL;
// ----- Data -----
// Contains problem data. It assumes capacities are symmetrical:
@@ -440,7 +440,7 @@ class NetworkRoutingSolver {
return num_paths;
}
void AddArcData(int64 source, int64 destination, int arc_id) {
void AddArcData(int64_t source, int64_t destination, int arc_id) {
arcs_data_.push_back({source, destination, arc_id});
}
@@ -488,9 +488,9 @@ class NetworkRoutingSolver {
return total_demand;
}
int64 InitShortestPaths(const NetworkRoutingData& data) {
int64_t InitShortestPaths(const NetworkRoutingData& data) {
const int num_demands = data.num_demands();
int64 total_cumulated_traffic = 0;
int64_t total_cumulated_traffic = 0;
all_min_path_lengths_.clear();
std::vector<int> paths;
for (int demand_index = 0; demand_index < num_demands; ++demand_index) {
@@ -537,7 +537,7 @@ class NetworkRoutingSolver {
InitArcInfo(data);
const int total_demand = InitDemandInfo(data);
const int64 total_cumulated_traffic = InitShortestPaths(data);
const int64_t total_cumulated_traffic = InitShortestPaths(data);
const int num_paths = InitPaths(data, extra_hops, max_paths);
// ----- Report Problem Sizes -----
@@ -554,7 +554,7 @@ class NetworkRoutingSolver {
// ----- Callback for Dijkstra Shortest Path -----
int64 HasArc(int i, int j) {
int64_t HasArc(int i, int j) {
if (capacity_[i][j] > 0) {
return 1;
} else {
@@ -564,7 +564,7 @@ class NetworkRoutingSolver {
// ----- Main Solve routine -----
int64 Solve() {
int64_t Solve() {
LOG(INFO) << "Solving model";
const int num_demands = demands_array_.size();
const int num_arcs = count_arcs();
@@ -582,7 +582,7 @@ class NetworkRoutingSolver {
TableConstraint path_ct =
cp_model.AddAllowedAssignments(path_vars[demand_index]);
for (const auto& one_path : all_paths_[demand_index]) {
std::vector<int64> tuple(count_arcs(), 0);
std::vector<int64_t> tuple(count_arcs(), 0);
for (const int arc : one_path) {
tuple[arc] = 1;
}
@@ -593,9 +593,9 @@ class NetworkRoutingSolver {
std::vector<IntVar> traffic_vars(num_arcs);
std::vector<IntVar> normalized_traffic_vars(num_arcs);
std::vector<BoolVar> comfortable_traffic_vars(num_arcs);
int64 max_normalized_traffic = 0;
int64_t max_normalized_traffic = 0;
for (int arc_index = 0; arc_index < num_arcs; ++arc_index) {
int64 sum_of_traffic = 0;
int64_t sum_of_traffic = 0;
LinearExpr traffic_expr;
for (int i = 0; i < path_vars.size(); ++i) {
sum_of_traffic += demands_array_[i].traffic;
@@ -606,7 +606,7 @@ class NetworkRoutingSolver {
traffic_vars[arc_index] = traffic_var;
cp_model.AddEquality(traffic_expr, traffic_var);
const int64 capacity = arc_capacity_[arc_index];
const int64_t capacity = arc_capacity_[arc_index];
IntVar scaled_traffic =
cp_model.NewIntVar(Domain(0, sum_of_traffic * 1000));
cp_model.AddEquality(LinearExpr::ScalProd({traffic_var}, {1000}),
@@ -619,8 +619,8 @@ class NetworkRoutingSolver {
cp_model.NewConstant(capacity));
normalized_traffic_vars[arc_index] = normalized_traffic;
const BoolVar comfort = cp_model.NewBoolVar();
const int64 safe_capacity =
static_cast<int64>(capacity * absl::GetFlag(FLAGS_comfort_zone));
const int64_t safe_capacity =
static_cast<int64_t>(capacity * absl::GetFlag(FLAGS_comfort_zone));
cp_model.AddGreaterThan(traffic_var, safe_capacity)
.OnlyEnforceIf(comfort);
cp_model.AddLessOrEqual(traffic_var, safe_capacity)
@@ -668,11 +668,11 @@ class NetworkRoutingSolver {
private:
int count_arcs() const { return arcs_data_.size() / 2; }
std::vector<std::vector<int64>> arcs_data_;
std::vector<std::vector<int64_t>> arcs_data_;
std::vector<int> arc_capacity_;
std::vector<Demand> demands_array_;
int num_nodes_;
std::vector<int64> all_min_path_lengths_;
std::vector<int64_t> all_min_path_lengths_;
std::vector<std::vector<int>> capacity_;
std::vector<std::vector<OnePath>> all_paths_;
};