Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
OsiBiLinearEquality Class Reference

Define Continuous BiLinear objects for an == bound. More...

#include <CbcLinked.hpp>

+ Inheritance diagram for OsiBiLinearEquality:
+ Collaboration diagram for OsiBiLinearEquality:

Public Member Functions

 OsiBiLinearEquality ()
 
 OsiBiLinearEquality (OsiSolverInterface *solver, int xColumn, int yColumn, int xyRow, double rhs, double xMesh)
 Useful constructor - This Adds in rows and variables to construct Ordered Set for x*y = b So note not const solver. More...
 
 OsiBiLinearEquality (const OsiBiLinearEquality &)
 
virtual OsiObjectclone () const
 Clone. More...
 
OsiBiLinearEqualityoperator= (const OsiBiLinearEquality &rhs)
 
virtual ~OsiBiLinearEquality ()
 
virtual double improvement (const OsiSolverInterface *solver) const
 Possible improvement. More...
 
double newGrid (OsiSolverInterface *solver, int type) const
 change grid if type 0 then use solution and make finer if 1 then back to original returns mesh size More...
 
int numberPoints () const
 Number of points. More...
 
void setNumberPoints (int value)
 
- Public Member Functions inherited from OsiBiLinear
 OsiBiLinear ()
 
 OsiBiLinear (OsiSolverInterface *solver, int xColumn, int yColumn, int xyRow, double coefficient, double xMesh, double yMesh, int numberExistingObjects=0, const OsiObject **objects=NULL)
 Useful constructor - This Adds in rows and variables to construct valid Linked Ordered Set Adds extra constraints to match other x/y So note not const solver. More...
 
 OsiBiLinear (CoinModel *coinModel, int xColumn, int yColumn, int xyRow, double coefficient, double xMesh, double yMesh, int numberExistingObjects=0, const OsiObject **objects=NULL)
 Useful constructor - This Adds in rows and variables to construct valid Linked Ordered Set Adds extra constraints to match other x/y So note not const model. More...
 
 OsiBiLinear (const OsiBiLinear &)
 
OsiBiLinearoperator= (const OsiBiLinear &rhs)
 
virtual ~OsiBiLinear ()
 
virtual double infeasibility (const OsiBranchingInformation *info, int &whichWay) const
 Infeasibility - large is 0.5. More...
 
virtual double feasibleRegion (OsiSolverInterface *solver, const OsiBranchingInformation *info) const
 Set bounds to fix the variable at the current (integer) value. More...
 
virtual OsiBranchingObjectcreateBranch (OsiSolverInterface *solver, const OsiBranchingInformation *info, int way) const
 Creates a branching object. More...
 
virtual void resetSequenceEtc (int numberColumns, const int *originalColumns)
 Redoes data when sequence numbers change. More...
 
virtual double checkInfeasibility (const OsiBranchingInformation *info) const
 
virtual bool canDoHeuristics () const
 Return true if object can take part in normal heuristics. More...
 
virtual bool boundBranch () const
 Return true if branch should only bound variables. More...
 
int xColumn () const
 X column. More...
 
int yColumn () const
 Y column. More...
 
int xRow () const
 X row. More...
 
int yRow () const
 Y row. More...
 
int xyRow () const
 XY row. More...
 
double coefficient () const
 Coefficient. More...
 
void setCoefficient (double value)
 Set coefficient. More...
 
int firstLambda () const
 First lambda (of 4) More...
 
double xSatisfied () const
 X satisfied if less than this away from mesh. More...
 
void setXSatisfied (double value)
 
double ySatisfied () const
 Y satisfied if less than this away from mesh. More...
 
void setYSatisfied (double value)
 
double xOtherSatisfied () const
 X other satisfied if less than this away from mesh. More...
 
void setXOtherSatisfied (double value)
 
double yOtherSatisfied () const
 Y other satisfied if less than this away from mesh. More...
 
void setYOtherSatisfied (double value)
 
double xMeshSize () const
 X meshSize. More...
 
void setXMeshSize (double value)
 
double yMeshSize () const
 Y meshSize. More...
 
void setYMeshSize (double value)
 
double xySatisfied () const
 XY satisfied if two version differ by less than this. More...
 
void setXYSatisfied (double value)
 
void setMeshSizes (const OsiSolverInterface *solver, double x, double y)
 Set sizes and other stuff. More...
 
int branchingStrategy () const
 branching strategy etc bottom 2 bits 0 branch on either, 1 branch on x, 2 branch on y next bit 4 set to say don't update coefficients next bit 8 set to say don't use in feasible region next bit 16 set to say - Always satisfied !! More...
 
void setBranchingStrategy (int value)
 
int boundType () const
 Simple quadratic bound marker. More...
 
void setBoundType (int value)
 
void newBounds (OsiSolverInterface *solver, int way, short xOrY, double separator) const
 Does work of branching. More...
 
int updateCoefficients (const double *lower, const double *upper, double *objective, CoinPackedMatrix *matrix, CoinWarmStartBasis *basis) const
 Updates coefficients - returns number updated. More...
 
double xyCoefficient (const double *solution) const
 Returns true value of single xyRow coefficient. More...
 
void getCoefficients (const OsiSolverInterface *solver, double xB[2], double yB[2], double xybar[4]) const
 Get LU coefficients from matrix. More...
 
double computeLambdas (const double xB[3], const double yB[3], const double xybar[4], double lambda[4]) const
 Compute lambdas (third entry in each .B is current value) (nonzero if bad) More...
 
void addExtraRow (int row, double multiplier)
 Adds in data for extra row with variable coefficients. More...
 
void getPseudoShadow (const OsiBranchingInformation *info)
 Sets infeasibility and other when pseudo shadow prices. More...
 
double getMovement (const OsiBranchingInformation *info)
 Gets sum of movements to correct value. More...
 
- Public Member Functions inherited from OsiObject2
 OsiObject2 ()
 Default Constructor. More...
 
 OsiObject2 (const OsiObject2 &)
 Copy constructor. More...
 
OsiObject2operator= (const OsiObject2 &rhs)
 Assignment operator. More...
 
virtual ~OsiObject2 ()
 Destructor. More...
 
void setPreferredWay (int value)
 Set preferred way of branching - -1 off, 0 down, 1 up (for 2-way) More...
 
virtual int preferredWay () const
 Get preferred way of branching - -1 off, 0 down, 1 up (for 2-way) More...
 
- Public Member Functions inherited from OsiObject
 OsiObject ()
 Default Constructor. More...
 
 OsiObject (const OsiObject &)
 Copy constructor. More...
 
OsiObjectoperator= (const OsiObject &rhs)
 Assignment operator. More...
 
virtual ~OsiObject ()
 Destructor. More...
 
double infeasibility (const OsiSolverInterface *solver, int &whichWay) const
 Infeasibility of the object. More...
 
virtual double feasibleRegion (OsiSolverInterface *solver) const
 For the variable(s) referenced by the object, look at the current solution and set bounds to match the solution. More...
 
virtual bool canMoveToNearest () const
 Return true if object can take part in move to nearest heuristic. More...
 
virtual int columnNumber () const
 Column number if single column object -1 otherwise, Used by heuristics. More...
 
int priority () const
 Return Priority - note 1 is highest priority. More...
 
void setPriority (int priority)
 Set priority. More...
 
virtual bool canHandleShadowPrices () const
 Return true if knows how to deal with Pseudo Shadow Prices. More...
 
int numberWays () const
 Return maximum number of ways branch may have. More...
 
void setNumberWays (int numberWays)
 Set maximum number of ways branch may have. More...
 
void setWhichWay (int way)
 Return preferred way to branch. More...
 
int whichWay () const
 Return current preferred way to branch. More...
 
double infeasibility () const
 Return infeasibility. More...
 
virtual double upEstimate () const
 Return "up" estimate (default 1.0e-5) More...
 
virtual double downEstimate () const
 Return "down" estimate (default 1.0e-5) More...
 
virtual void resetBounds (const OsiSolverInterface *)
 Reset variable bounds to their original values. More...
 
virtual void updateBefore (const OsiObject *)
 Updates stuff like pseudocosts before threads. More...
 
virtual void updateAfter (const OsiObject *, const OsiObject *)
 Updates stuff like pseudocosts after threads finished. More...
 

Protected Attributes

int numberPoints_
 Number of points. More...
 
- Protected Attributes inherited from OsiBiLinear
double coefficient_
 data More...
 
double xMeshSize_
 x mesh More...
 
double yMeshSize_
 y mesh More...
 
double xSatisfied_
 x satisfied if less than this away from mesh More...
 
double ySatisfied_
 y satisfied if less than this away from mesh More...
 
double xOtherSatisfied_
 X other satisfied if less than this away from mesh. More...
 
double yOtherSatisfied_
 Y other satisfied if less than this away from mesh. More...
 
double xySatisfied_
 xy satisfied if less than this away from true More...
 
double xyBranchValue_
 value of x or y to branch about More...
 
int xColumn_
 x column More...
 
int yColumn_
 y column More...
 
int firstLambda_
 First lambda (of 4) More...
 
int branchingStrategy_
 branching strategy etc bottom 2 bits 0 branch on either, 1 branch on x, 2 branch on y next bit 4 set to say don't update coefficients next bit 8 set to say don't use in feasible region next bit 16 set to say - Always satisfied !! More...
 
int boundType_
 Simple quadratic bound marker. More...
 
int xRow_
 x row More...
 
int yRow_
 y row (-1 if x*x) More...
 
int xyRow_
 Output row. More...
 
int convexity_
 Convexity row. More...
 
int numberExtraRows_
 Number of extra rows (coefficients to be modified) More...
 
double * multiplier_
 Multiplier for coefficient on row. More...
 
int * extraRow_
 Row number. More...
 
short chosen_
 Which chosen -1 none, 0 x, 1 y. More...
 
- Protected Attributes inherited from OsiObject2
int preferredWay_
 Preferred way of branching - -1 off, 0 down, 1 up (for 2-way) More...
 
double otherInfeasibility_
 "Infeasibility" on other way More...
 
- Protected Attributes inherited from OsiObject
double infeasibility_
 data More...
 
short whichWay_
 Computed preferred way to branch. More...
 
short numberWays_
 Maximum number of ways on branch. More...
 
int priority_
 Priority. More...
 

Additional Inherited Members

- Protected Member Functions inherited from OsiBiLinear
void computeLambdas (const OsiSolverInterface *solver, double lambda[4]) const
 Compute lambdas if coefficients not changing. More...
 

Detailed Description

Define Continuous BiLinear objects for an == bound.

This models x*y = b where both are continuous

Definition at line 1077 of file CbcLinked.hpp.

Constructor & Destructor Documentation

OsiBiLinearEquality::OsiBiLinearEquality ( )
OsiBiLinearEquality::OsiBiLinearEquality ( OsiSolverInterface solver,
int  xColumn,
int  yColumn,
int  xyRow,
double  rhs,
double  xMesh 
)

Useful constructor - This Adds in rows and variables to construct Ordered Set for x*y = b So note not const solver.

OsiBiLinearEquality::OsiBiLinearEquality ( const OsiBiLinearEquality )
virtual OsiBiLinearEquality::~OsiBiLinearEquality ( )
virtual

Member Function Documentation

virtual OsiObject* OsiBiLinearEquality::clone ( ) const
virtual

Clone.

Reimplemented from OsiBiLinear.

OsiBiLinearEquality& OsiBiLinearEquality::operator= ( const OsiBiLinearEquality rhs)
virtual double OsiBiLinearEquality::improvement ( const OsiSolverInterface solver) const
virtual

Possible improvement.

double OsiBiLinearEquality::newGrid ( OsiSolverInterface solver,
int  type 
) const

change grid if type 0 then use solution and make finer if 1 then back to original returns mesh size

int OsiBiLinearEquality::numberPoints ( ) const
inline

Number of points.

Definition at line 1113 of file CbcLinked.hpp.

void OsiBiLinearEquality::setNumberPoints ( int  value)
inline

Definition at line 1117 of file CbcLinked.hpp.

Member Data Documentation

int OsiBiLinearEquality::numberPoints_
protected

Number of points.

Definition at line 1124 of file CbcLinked.hpp.


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