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

The class for variables of a Mathematical Programming (MP) model. More...

#include <linear_solver.h>

Public Member Functions

 MPVariable (const MPVariable &)=delete
 This type is neither copyable nor movable.
 
MPVariableoperator= (const MPVariable &)=delete
 
const std::string & name () const
 Returns the name of the variable.
 
void SetInteger (bool integer)
 Sets the integrality requirement of the variable.
 
bool integer () const
 Returns the integrality requirement of the variable.
 
double solution_value () const
 --— MPVariable --—
 
int index () const
 Returns the index of the variable in the MPSolver::variables_.
 
double lb () const
 Returns the lower bound.
 
double ub () const
 Returns the upper bound.
 
void SetLB (double lb)
 Sets the lower bound.
 
void SetUB (double ub)
 Sets the upper bound.
 
void SetBounds (double lb, double ub)
 Sets both the lower and upper bounds.
 
double unrounded_solution_value () const
 
double reduced_cost () const
 
MPSolver::BasisStatus basis_status () const
 
int branching_priority () const
 
void SetBranchingPriority (int priority)
 

Protected Member Functions

 MPVariable (int index, double lb, double ub, bool integer, const std::string &name, MPSolverInterface *const interface_in)
 
void set_solution_value (double value)
 
void set_reduced_cost (double reduced_cost)
 

Friends

class MPSolver
 
class MPSolverInterface
 
class CBCInterface
 
class CLPInterface
 
class GLPKInterface
 
class SCIPInterface
 
class SLMInterface
 
class GurobiInterface
 
class CplexInterface
 
class XpressInterface
 
class GLOPInterface
 
class MPVariableSolutionValueTest
 
class BopInterface
 
class SatInterface
 
class PdlpInterface
 
class HighsInterface
 
class KnapsackInterface
 

Detailed Description

The class for variables of a Mathematical Programming (MP) model.

Definition at line 1152 of file linear_solver.h.

Constructor & Destructor Documentation

◆ MPVariable() [1/2]

operations_research::MPVariable::MPVariable ( const MPVariable & )
delete

This type is neither copyable nor movable.

◆ MPVariable() [2/2]

operations_research::MPVariable::MPVariable ( int index,
double lb,
double ub,
bool integer,
const std::string & name,
MPSolverInterface *const interface_in )
inlineprotected

Constructor. A variable points to a single MPSolverInterface that is specified in the constructor. A variable cannot belong to several models.

Definition at line 1253 of file linear_solver.h.

Member Function Documentation

◆ basis_status()

MPSolver::BasisStatus operations_research::MPVariable::basis_status ( ) const

Advanced usage: returns the basis status of the variable in the current solution (only available for continuous problems).

See also
MPSolver::BasisStatus.

This is done lazily as this method is expected to be rarely used.

Definition at line 310 of file linear_solver.cc.

◆ branching_priority()

int operations_research::MPVariable::branching_priority ( ) const
inline

Advanced usage: Certain MIP solvers (e.g. Gurobi or SCIP) allow you to set a per-variable priority for determining which variable to branch on.

A value of 0 is treated as default, and is equivalent to not setting the branching priority. The solver looks first to branch on fractional variables in higher priority levels. As of 2019-05, only Gurobi and SCIP support setting branching priority; all other solvers will simply ignore this annotation.

Definition at line 1228 of file linear_solver.h.

◆ index()

int operations_research::MPVariable::index ( ) const
inline

Returns the index of the variable in the MPSolver::variables_.

Definition at line 1179 of file linear_solver.h.

◆ integer()

bool operations_research::MPVariable::integer ( ) const
inline

Returns the integrality requirement of the variable.

Definition at line 1167 of file linear_solver.h.

◆ lb()

double operations_research::MPVariable::lb ( ) const
inline

Returns the lower bound.

Definition at line 1182 of file linear_solver.h.

◆ name()

const std::string & operations_research::MPVariable::name ( ) const
inline

Returns the name of the variable.

Definition at line 1161 of file linear_solver.h.

◆ operator=()

MPVariable & operations_research::MPVariable::operator= ( const MPVariable & )
delete

◆ reduced_cost()

double operations_research::MPVariable::reduced_cost ( ) const

Advanced usage: returns the reduced cost of the variable in the current solution (only available for continuous problems).

Definition at line 301 of file linear_solver.cc.

◆ set_reduced_cost()

void operations_research::MPVariable::set_reduced_cost ( double reduced_cost)
inlineprotected

Definition at line 1265 of file linear_solver.h.

◆ set_solution_value()

void operations_research::MPVariable::set_solution_value ( double value)
inlineprotected

Definition at line 1264 of file linear_solver.h.

◆ SetBounds()

void operations_research::MPVariable::SetBounds ( double lb,
double ub )

Sets both the lower and upper bounds.

Definition at line 322 of file linear_solver.cc.

◆ SetBranchingPriority()

void operations_research::MPVariable::SetBranchingPriority ( int priority)

Definition at line 340 of file linear_solver.cc.

◆ SetInteger()

void operations_research::MPVariable::SetInteger ( bool integer)

Sets the integrality requirement of the variable.

Definition at line 331 of file linear_solver.cc.

◆ SetLB()

void operations_research::MPVariable::SetLB ( double lb)
inline

Sets the lower bound.

Definition at line 1188 of file linear_solver.h.

◆ SetUB()

void operations_research::MPVariable::SetUB ( double ub)
inline

Sets the upper bound.

Definition at line 1191 of file linear_solver.h.

◆ solution_value()

double operations_research::MPVariable::solution_value ( ) const

--— MPVariable --—

Returns the value of the variable in the current solution.

If the variable is integer, then the value will always be an integer (the underlying solver handles floating-point values only, but this function automatically rounds it to the nearest integer; see: man 3 round).

If the underlying solver supports integer variables, and this is an integer variable, we round the solution value (i.e., clients usually expect precise integer values for integer variables).

Definition at line 287 of file linear_solver.cc.

◆ ub()

double operations_research::MPVariable::ub ( ) const
inline

Returns the upper bound.

Definition at line 1185 of file linear_solver.h.

◆ unrounded_solution_value()

double operations_research::MPVariable::unrounded_solution_value ( ) const

Advanced usage: unrounded solution value.

The returned value won't be rounded to the nearest integer even if the variable is integer.

Definition at line 296 of file linear_solver.cc.

Friends And Related Symbol Documentation

◆ BopInterface

friend class BopInterface
friend

Definition at line 1244 of file linear_solver.h.

◆ CBCInterface

friend class CBCInterface
friend

Definition at line 1234 of file linear_solver.h.

◆ CLPInterface

friend class CLPInterface
friend

Definition at line 1235 of file linear_solver.h.

◆ CplexInterface

friend class CplexInterface
friend

Definition at line 1240 of file linear_solver.h.

◆ GLOPInterface

friend class GLOPInterface
friend

Definition at line 1242 of file linear_solver.h.

◆ GLPKInterface

friend class GLPKInterface
friend

Definition at line 1236 of file linear_solver.h.

◆ GurobiInterface

friend class GurobiInterface
friend

Definition at line 1239 of file linear_solver.h.

◆ HighsInterface

friend class HighsInterface
friend

Definition at line 1247 of file linear_solver.h.

◆ KnapsackInterface

friend class KnapsackInterface
friend

Definition at line 1248 of file linear_solver.h.

◆ MPSolver

friend class MPSolver
friend

Definition at line 1232 of file linear_solver.h.

◆ MPSolverInterface

friend class MPSolverInterface
friend

Definition at line 1233 of file linear_solver.h.

◆ MPVariableSolutionValueTest

friend class MPVariableSolutionValueTest
friend

Definition at line 1243 of file linear_solver.h.

◆ PdlpInterface

friend class PdlpInterface
friend

Definition at line 1246 of file linear_solver.h.

◆ SatInterface

friend class SatInterface
friend

Definition at line 1245 of file linear_solver.h.

◆ SCIPInterface

friend class SCIPInterface
friend

Definition at line 1237 of file linear_solver.h.

◆ SLMInterface

friend class SLMInterface
friend

Definition at line 1238 of file linear_solver.h.

◆ XpressInterface

friend class XpressInterface
friend

Definition at line 1241 of file linear_solver.h.


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