Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::math_opt::XpressSolver Class Reference

#include <xpress_solver.h>

Inheritance diagram for operations_research::math_opt::XpressSolver:
operations_research::math_opt::SolverInterface

Public Member Functions

absl::StatusOr< SolveResultProto > Solve (const SolveParametersProto &parameters, const ModelSolveParametersProto &model_parameters, MessageCallback message_cb, const CallbackRegistrationProto &callback_registration, Callback cb, const SolveInterrupter *interrupter) override
 Solves the optimization problem.
 
absl::StatusOr< bool > Update (const ModelUpdateProto &model_update) override
 Updates the problem (not implemented yet)
 
absl::StatusOr< ComputeInfeasibleSubsystemResultProto > ComputeInfeasibleSubsystem (const SolveParametersProto &parameters, MessageCallback message_cb, const SolveInterrupter *interrupter) override
 Computes the infeasible subsystem (not implemented yet)
 
- Public Member Functions inherited from operations_research::math_opt::SolverInterface
 SolverInterface ()=default
 
 SolverInterface (const SolverInterface &)=delete
 
SolverInterfaceoperator= (const SolverInterface &)=delete
 
virtual ~SolverInterface ()=default
 

Static Public Member Functions

static absl::StatusOr< std::unique_ptr< XpressSolver > > New (const ModelProto &input_model, const SolverInterface::InitArgs &init_args)
 Creates the XPRESS solver and loads the model into it.
 

Additional Inherited Members

- Public Types inherited from operations_research::math_opt::SolverInterface
using MessageCallback = std::function<void(const std::vector<std::string>&)>
 
using Callback
 
using Factory
 

Detailed Description

Interface to FICO XPRESS solver Largely inspired by the Gurobi interface

Definition at line 46 of file xpress_solver.h.

Member Function Documentation

◆ ComputeInfeasibleSubsystem()

absl::StatusOr< ComputeInfeasibleSubsystemResultProto > operations_research::math_opt::XpressSolver::ComputeInfeasibleSubsystem ( const SolveParametersProto & parameters,
MessageCallback message_cb,
const SolveInterrupter * interrupter )
overridevirtual

Computes the infeasible subsystem (not implemented yet)

Implements operations_research::math_opt::SolverInterface.

Definition at line 701 of file xpress_solver.cc.

◆ New()

absl::StatusOr< std::unique_ptr< XpressSolver > > operations_research::math_opt::XpressSolver::New ( const ModelProto & input_model,
const SolverInterface::InitArgs & init_args )
static

Creates the XPRESS solver and loads the model into it.

We can add here extra checks that are not made in ModelIsSupported (for example, if XPRESS does not support multi-objective with quad terms)

Definition at line 72 of file xpress_solver.cc.

◆ Solve()

absl::StatusOr< SolveResultProto > operations_research::math_opt::XpressSolver::Solve ( const SolveParametersProto & parameters,
const ModelSolveParametersProto & model_parameters,
MessageCallback message_cb,
const CallbackRegistrationProto & callback_registration,
Callback cb,
const SolveInterrupter * interrupter )
overridevirtual

Solves the optimization problem.

Check that bounds are not inverted just before solve XPRESS returns "infeasible" when bounds are inverted

Set initial basis

Implements operations_research::math_opt::SolverInterface.

Definition at line 224 of file xpress_solver.cc.

◆ Update()

absl::StatusOr< bool > operations_research::math_opt::XpressSolver::Update ( const ModelUpdateProto & model_update)
overridevirtual

Updates the problem (not implemented yet)

Not implemented yet

Implements operations_research::math_opt::SolverInterface.

Definition at line 694 of file xpress_solver.cc.


The documentation for this class was generated from the following files: