Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Attributes | List of all members
CbcStrongInfo Struct Reference

Abstract base class for `objects'. More...

#include <CbcObject.hpp>

+ Collaboration diagram for CbcStrongInfo:

Public Attributes

CbcBranchingObjectpossibleBranch
 
double upMovement
 
double downMovement
 
int numIntInfeasUp
 
int numObjInfeasUp
 
bool finishedUp
 
int numItersUp
 
int numIntInfeasDown
 
int numObjInfeasDown
 
bool finishedDown
 
int numItersDown
 
int objectNumber
 
int fix
 

Detailed Description

Abstract base class for `objects'.

It now just has stuff that OsiObject does not have

The branching model used in Cbc is based on the idea of an object. In the abstract, an object is something that has a feasible region, can be evaluated for infeasibility, can be branched on (i.e., there's some constructive action to be taken to move toward feasibility), and allows comparison of the effect of branching.

This class (CbcObject) is the base class for an object. To round out the branching model, the class CbcBranchingObject describes how to perform a branch, and the class CbcBranchDecision describes how to compare two CbcBranchingObjects.

To create a new type of object you need to provide three methods: #infeasibility(), #feasibleRegion(), and #createCbcBranch(), described below.

This base class is primarily virtual to allow for any form of structure. Any form of discontinuity is allowed.

Todo:
The notion that all branches are binary (two arms) is wired into the implementation of CbcObject, CbcBranchingObject, and CbcBranchDecision. Changing this will require a moderate amount of recoding.

Definition at line 51 of file CbcObject.hpp.

Member Data Documentation

CbcBranchingObject* CbcStrongInfo::possibleBranch

Definition at line 52 of file CbcObject.hpp.

double CbcStrongInfo::upMovement

Definition at line 53 of file CbcObject.hpp.

double CbcStrongInfo::downMovement

Definition at line 54 of file CbcObject.hpp.

int CbcStrongInfo::numIntInfeasUp

Definition at line 55 of file CbcObject.hpp.

int CbcStrongInfo::numObjInfeasUp

Definition at line 56 of file CbcObject.hpp.

bool CbcStrongInfo::finishedUp

Definition at line 57 of file CbcObject.hpp.

int CbcStrongInfo::numItersUp

Definition at line 58 of file CbcObject.hpp.

int CbcStrongInfo::numIntInfeasDown

Definition at line 59 of file CbcObject.hpp.

int CbcStrongInfo::numObjInfeasDown

Definition at line 60 of file CbcObject.hpp.

bool CbcStrongInfo::finishedDown

Definition at line 61 of file CbcObject.hpp.

int CbcStrongInfo::numItersDown

Definition at line 62 of file CbcObject.hpp.

int CbcStrongInfo::objectNumber

Definition at line 63 of file CbcObject.hpp.

int CbcStrongInfo::fix

Definition at line 64 of file CbcObject.hpp.


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