Osi 0.108.12
Loading...
Searching...
No Matches
OsiSOS Class Reference

Define Special Ordered Sets of type 1 and 2. More...

#include <OsiBranchingObject.hpp>

Inheritance diagram for OsiSOS:
Collaboration diagram for OsiSOS:

Public Member Functions

 OsiSOS ()
 OsiSOS (const OsiSolverInterface *solver, int numberMembers, const int *which, const double *weights, int type=1)
 Useful constructor - which are indices and weights are also given.
 OsiSOS (const OsiSOS &)
virtual OsiObject * clone () const
 Clone.
OsiSOSoperator= (const OsiSOS &rhs)
virtual ~OsiSOS ()
virtual double infeasibility (const OsiBranchingInformation *info, int &whichWay) const
 Infeasibility - large is 0.5.
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Set bounds to fix the variable at the current (integer) value.
virtual OsiBranchingObjectcreateBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
 Creates a branching object.
virtual double upEstimate () const
 Return "up" estimate (default 1.0e-5).
virtual double downEstimate () const
 Return "down" estimate (default 1.0e-5).
virtual void resetSequenceEtc (int numberColumns, const int *originalColumns)
 Redoes data when sequence numbers change.
int numberMembers () const
 Number of members.
const int * members () const
 Members (indices in range 0 ... numberColumns-1).
int sosType () const
 SOS type.
int setType () const
 SOS type.
const double * weights () const
 Array of weights.
virtual bool canDoHeuristics () const
 Return true if object can take part in normal heuristics.
void setIntegerValued (bool yesNo)
 Set whether set is integer valued or not.
virtual bool canHandleShadowPrices () const
 Return true if knows how to deal with Pseudo Shadow Prices.
void setNumberMembers (int value)
 Set number of members.
int * mutableMembers () const
 Members (indices in range 0 ... numberColumns-1).
void setSosType (int value)
 Set SOS type.
double * mutableWeights () const
 Array of weights.
Public Member Functions inherited from OsiObject2
 OsiObject2 ()
 Default Constructor.
 OsiObject2 (const OsiObject2 &)
 Copy constructor.
OsiObject2operator= (const OsiObject2 &rhs)
 Assignment operator.
virtual ~OsiObject2 ()
 Destructor.
void setPreferredWay (int value)
 Set preferred way of branching - -1 off, 0 down, 1 up (for 2-way).
virtual int preferredWay () const
 Get preferred way of branching - -1 off, 0 down, 1 up (for 2-way).

Protected Attributes

int * members_
 data
double * weights_
 Weights.
int numberMembers_
 Number of members.
int sosType_
 SOS type.
bool integerValued_
 Whether integer valued.
Protected Attributes inherited from OsiObject2
int preferredWay_
 Preferred way of branching - -1 off, 0 down, 1 up (for 2-way).
double otherInfeasibility_
 "Infeasibility" on other way

Detailed Description

Define Special Ordered Sets of type 1 and 2.

These do not have to be integer - so do not appear in lists of integers.

which_ points columns of matrix

Definition at line 728 of file OsiBranchingObject.hpp.

Constructor & Destructor Documentation

◆ OsiSOS() [1/3]

OsiSOS::OsiSOS ( )

◆ OsiSOS() [2/3]

OsiSOS::OsiSOS ( const OsiSolverInterface * solver,
int numberMembers,
const int * which,
const double * weights,
int type = 1 )

Useful constructor - which are indices and weights are also given.

If null then 0,1,2.. type is SOS type

◆ OsiSOS() [3/3]

OsiSOS::OsiSOS ( const OsiSOS & )

◆ ~OsiSOS()

virtual OsiSOS::~OsiSOS ( )
virtual

Member Function Documentation

◆ clone()

virtual OsiObject * OsiSOS::clone ( ) const
virtual

Clone.

◆ operator=()

OsiSOS & OsiSOS::operator= ( const OsiSOS & rhs)

◆ infeasibility()

virtual double OsiSOS::infeasibility ( const OsiBranchingInformation * info,
int & whichWay ) const
virtual

Infeasibility - large is 0.5.

◆ feasibleRegion()

virtual double OsiSOS::feasibleRegion ( OsiSolverInterface * solver,
const OsiBranchingInformation * info ) const
virtual

Set bounds to fix the variable at the current (integer) value.

Given an integer value, set the lower and upper bounds to fix the variable. Returns amount it had to move variable.

◆ createBranch()

virtual OsiBranchingObject * OsiSOS::createBranch ( OsiSolverInterface * solver,
const OsiBranchingInformation * info,
int way ) const
virtual

Creates a branching object.

The preferred direction is set by way, 0 for down, 1 for up.

◆ upEstimate()

virtual double OsiSOS::upEstimate ( ) const
virtual

Return "up" estimate (default 1.0e-5).

◆ downEstimate()

virtual double OsiSOS::downEstimate ( ) const
virtual

Return "down" estimate (default 1.0e-5).

◆ resetSequenceEtc()

virtual void OsiSOS::resetSequenceEtc ( int numberColumns,
const int * originalColumns )
virtual

Redoes data when sequence numbers change.

◆ numberMembers()

int OsiSOS::numberMembers ( ) const
inline

Number of members.

Definition at line 779 of file OsiBranchingObject.hpp.

◆ members()

const int * OsiSOS::members ( ) const
inline

Members (indices in range 0 ... numberColumns-1).

Definition at line 785 of file OsiBranchingObject.hpp.

◆ sosType()

int OsiSOS::sosType ( ) const
inline

SOS type.

Definition at line 791 of file OsiBranchingObject.hpp.

◆ setType()

int OsiSOS::setType ( ) const
inline

SOS type.

Definition at line 797 of file OsiBranchingObject.hpp.

◆ weights()

const double * OsiSOS::weights ( ) const
inline

Array of weights.

Definition at line 803 of file OsiBranchingObject.hpp.

◆ canDoHeuristics()

virtual bool OsiSOS::canDoHeuristics ( ) const
inlinevirtual

Return true if object can take part in normal heuristics.

Definition at line 810 of file OsiBranchingObject.hpp.

◆ setIntegerValued()

void OsiSOS::setIntegerValued ( bool yesNo)
inline

Set whether set is integer valued or not.

Definition at line 815 of file OsiBranchingObject.hpp.

◆ canHandleShadowPrices()

virtual bool OsiSOS::canHandleShadowPrices ( ) const
inlinevirtual

Return true if knows how to deal with Pseudo Shadow Prices.

Definition at line 820 of file OsiBranchingObject.hpp.

◆ setNumberMembers()

void OsiSOS::setNumberMembers ( int value)
inline

Set number of members.

Definition at line 825 of file OsiBranchingObject.hpp.

◆ mutableMembers()

int * OsiSOS::mutableMembers ( ) const
inline

Members (indices in range 0 ... numberColumns-1).

Definition at line 831 of file OsiBranchingObject.hpp.

◆ setSosType()

void OsiSOS::setSosType ( int value)
inline

Set SOS type.

Definition at line 837 of file OsiBranchingObject.hpp.

◆ mutableWeights()

double * OsiSOS::mutableWeights ( ) const
inline

Array of weights.

Definition at line 843 of file OsiBranchingObject.hpp.

Member Data Documentation

◆ members_

int* OsiSOS::members_
protected

data

Members (indices in range 0 ... numberColumns-1)

Definition at line 852 of file OsiBranchingObject.hpp.

◆ weights_

double* OsiSOS::weights_
protected

Weights.

Definition at line 854 of file OsiBranchingObject.hpp.

◆ numberMembers_

int OsiSOS::numberMembers_
protected

Number of members.

Definition at line 857 of file OsiBranchingObject.hpp.

◆ sosType_

int OsiSOS::sosType_
protected

SOS type.

Definition at line 859 of file OsiBranchingObject.hpp.

◆ integerValued_

bool OsiSOS::integerValued_
protected

Whether integer valued.

Definition at line 861 of file OsiBranchingObject.hpp.


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