14#ifndef OR_TOOLS_MATH_OPT_SOLVERS_PDLP_SOLVER_H_
15#define OR_TOOLS_MATH_OPT_SOLVERS_PDLP_SOLVER_H_
21#include "absl/status/status.h"
22#include "absl/status/statusor.h"
23#include "ortools/pdlp/primal_dual_hybrid_gradient.h"
24#include "ortools/pdlp/quadratic_program.h"
25#include "ortools/pdlp/solvers.pb.h"
26#include "ortools/math_opt/callback.pb.h"
29#include "ortools/math_opt/model.pb.h"
30#include "ortools/math_opt/model_parameters.pb.h"
31#include "ortools/math_opt/model_update.pb.h"
32#include "ortools/math_opt/parameters.pb.h"
33#include "ortools/math_opt/result.pb.h"
41 static absl::StatusOr<std::unique_ptr<SolverInterface>>
New(
44 absl::StatusOr<SolveResultProto>
Solve(
46 const ModelSolveParametersProto& model_parameters,
48 const CallbackRegistrationProto& callback_registration,
Callback cb,
50 absl::Status
Update(
const ModelUpdateProto& model_update)
override;
51 bool CanUpdate(
const ModelUpdateProto& model_update)
override;
54 static std::pair<pdlp::PrimalDualHybridGradientParams,
55 std::vector<std::string>>
61 absl::Status FillSolveResult(
const pdlp::SolverResult& pdlp_result,
62 const ModelSolveParametersProto& model_params,
63 SolveResultProto& result);
bool CanUpdate(const ModelUpdateProto &model_update) override
absl::Status Update(const ModelUpdateProto &model_update) override
static absl::StatusOr< std::unique_ptr< SolverInterface > > New(const ModelProto &model, const InitArgs &init_args)
absl::StatusOr< SolveResultProto > Solve(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, SolveInterrupter *interrupter) override
static std::pair< pdlp::PrimalDualHybridGradientParams, std::vector< std::string > > MergeParameters(const SolveParametersProto ¶meters)
std::function< void(const std::vector< std::string > &)> MessageCallback
std::function< absl::StatusOr< CallbackResultProto >(const CallbackDataProto &)> Callback
Collection of objects used to extend the Constraint Solver library.