linear_solver: fixup

This commit is contained in:
Corentin Le Molgat
2025-11-12 15:48:48 +01:00
parent 785fd8fde0
commit e7e9e0c166
6 changed files with 19 additions and 19 deletions

View File

@@ -866,9 +866,9 @@ class MPSolver {
static int64_t global_num_constraints();
/// @deprecated Use TimeLimit() and SetTimeLimit(absl::Duration) instead.
/// @note These deprecated functions used the convention `time_limit = 0`
/// to mean "no limit", which now corresponds
/// `to time_limit_ = InfiniteDuration()`.
/// @note These deprecated functions used the convention `time_limit = 0` to
/// mean "no limit", which now corresponds to
/// `time_limit_ = InfiniteDuration()`.
int64_t time_limit() const {
return time_limit_ == absl::InfiniteDuration()
? 0

View File

@@ -32,9 +32,9 @@
namespace operations_research {
::absl::Status Convert(const CapacityPlanningInstance& request,
::absl::Status Convert(const routing::CapacityPlanningInstance& request,
CapacityPlanningProblem* problem) {
const NetworkTopology& topology = request.topology();
const routing::NetworkTopology& topology = request.topology();
const int num_arcs = topology.from_node_size();
CHECK_EQ(num_arcs, topology.to_node_size());
CHECK_EQ(num_arcs, topology.variable_cost_size());
@@ -51,7 +51,7 @@ namespace operations_research {
}
const int num_nodes = problem->graph.num_nodes();
problem->demands_at_node_per_commodity.resize(num_nodes);
const Commodities& commodities = request.commodities();
const routing::Commodities& commodities = request.commodities();
const int num_commodities = commodities.from_node_size();
problem->num_commodities = num_commodities;
CHECK_EQ(commodities.to_node_size(), num_commodities);

View File

@@ -19,7 +19,6 @@
#include "ortools/graph/graph.h"
#include "ortools/linear_solver/linear_solver.h"
#include "ortools/linear_solver/samples/network_design_ilph.h"
#include "ortools/routing/parsers/capacity_planning.pb.h"
// An implementation of the algorithm described in "An Efficient Matheuristic
@@ -51,7 +50,7 @@ struct CapacityPlanningProblem {
// Converts a CapacityPlanningInstance to a CapacityPlanningProblem, which is
// easier to use for modeling using MIPs.
::absl::Status Convert(const CapacityPlanningInstance& request,
::absl::Status Convert(const routing::CapacityPlanningInstance& request,
CapacityPlanningProblem* problem);
struct CapacityPlanningParameters {

View File

@@ -25,17 +25,17 @@
#include "ortools/routing/parsers/capacity_planning.pb.h"
#include "ortools/routing/parsers/dow_parser.h"
ABSL_FLAG(std::string, input, "", "File path of the problem.");
DEFINE_string(input, "", "File path of the problem.");
using operations_research::MPSolver;
int main(int argc, char* argv[]) {
InitGoogle(argv[0], &argc, &argv, true);
absl::SetStderrThreshold(absl::LogSeverityAtLeast::kInfo);
operations_research::CapacityPlanningInstance request;
operations_research::routing::CapacityPlanningInstance request;
operations_research::CapacityPlanningProblem problem;
::absl::Status status =
operations_research::ReadFile(absl::GetFlag(FLAGS_input), &request);
::absl::Status status = operations_research::routing::ReadFile(
absl::GetFlag(FLAGS_input), &request);
CHECK_OK(status);
LOG(INFO) << "File was read.";
status = operations_research::Convert(request, &problem);

View File

@@ -23,16 +23,16 @@
#include "ortools/routing/parsers/capacity_planning.pb.h"
#include "ortools/routing/parsers/dow_parser.h"
namespace operations_research {
namespace operations_research::routing {
namespace {
TEST(ProtoToProblemTest, TransformC33) {
CapacityPlanningInstance request;
::absl::Status status =
ReadFile(file::JoinPathRespectAbsolute(
::testing::SrcDir(), "operations_research_data/",
"MULTICOM_FIXED_CHARGE_NETWORK_DESIGN/C/c33.dow"),
&request);
::absl::Status status = ReadFile(
file::JoinPathRespectAbsolute(
::testing::SrcDir(), "google3/third_party/operations_research_data/",
"MULTICOM_FIXED_CHARGE_NETWORK_DESIGN/C/c33.dow"),
&request);
EXPECT_OK(status);
CapacityPlanningProblem problem;
status = Convert(request, &problem);
@@ -107,4 +107,4 @@ TEST(IlphTest, SolveEmptyProto) {
}
} // namespace
} // namespace operations_research
} // namespace operations_research::routing

View File

@@ -243,6 +243,7 @@ void StiglerDiet() {
// [START variables]
std::vector<MPVariable*> foods;
const double infinity = solver->infinity();
foods.reserve(data.size());
for (const Commodity& commodity : data) {
foods.push_back(solver->MakeNumVar(0.0, infinity, commodity.name));
}