# AbcBranchDefaultDecision Class Reference

Branching decision default class. More...

`#include <AbcBranchActual.h>`

Inheritance diagram for AbcBranchDefaultDecision:
[legend]
Collaboration diagram for AbcBranchDefaultDecision:
[legend]

List of all members.

## Public Member Functions
| AbcBranchDefaultDecision ()
| AbcBranchDefaultDecision (const AbcBranchDefaultDecision &)
virtual | ~AbcBranchDefaultDecision ()
virtual AbcBranchDecision * | clone () const
| Clone.
virtual void | initialize (AbcModel *model)
| Initialize, e.g. before the start of branch selection at a node.
virtual int | betterBranch (int thisOne, int bestSoFar, double changeUp, int numInfUp, double changeDn, int numInfDn)
| Compare two branching objects.
## Private Member Functions
AbcBranchDefaultDecision & | operator= (const AbcBranchDefaultDecision &rhs)
| Illegal Assignment operator.
## Private Attributes
AbcModel * | model_
| data Point to the model
double | bestCriterion_
| "best" so far
double | bestChangeUp_
| Change up for best.
int | bestNumberUp_
| Number of infeasibilities for up.
double | bestChangeDown_
| Change down for best.
int | bestNumberDown_
| Number of infeasibilities for down.
int | bestObject_
| Index of the best branching integer variable.

## Detailed Description

Branching decision default class.

This class implements a simple default algorithm (betterBranch()) for choosing a branching variable.

Definition at line 38 of file AbcBranchActual.h.

## Constructor & Destructor Documentation

AbcBranchDefaultDecision::AbcBranchDefaultDecision | ( |  | ) |

AbcBranchDefaultDecision::AbcBranchDefaultDecision | ( | const AbcBranchDefaultDecision & |  | ) |

virtual AbcBranchDefaultDecision::~AbcBranchDefaultDecision | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual AbcBranchDecision* AbcBranchDefaultDecision::clone | ( |  | ) | const`[virtual]`

Clone.

Implements AbcBranchDecision.

virtual void AbcBranchDefaultDecision::initialize | ( | AbcModel * | model | ) | `[virtual]`

Initialize, e.g. before the start of branch selection at a node.

Implements AbcBranchDecision.

virtual int AbcBranchDefaultDecision::betterBranch | ( | int | thisOne,
|  | int | bestSoFar,
|  | double | changeUp,
|  | int | numInfUp,
|  | double | changeDn,
|  | int | numInfDn |
| ) |  |  | `[virtual]`

Compare two branching objects.

Return nonzero if `thisOne` is better than `bestSoFar`.

The routine compares branches using the values supplied in `numInfUp` and `numInfDn` until a solution is found by search, after which it uses the values supplied in `changeUp` and `changeDn`. The best branching object seen so far and the associated parameter values are remembered in the `AbcBranchDefaultDecision` object. The nonzero return value is +1 if the up branch is preferred, -1 if the down branch is preferred.

As the names imply, the assumption is that the values supplied for `numInfUp` and `numInfDn` will be the number of infeasibilities reported by the branching object, and `changeUp` and `changeDn` will be the estimated change in objective. Other measures can be used if desired.

Because an `AbcBranchDefaultDecision` object remembers the current best branching candidate (bestObject_) as well as the values used in the comparison, the parameter `bestSoFar` is redundant, hence unused.

Implements AbcBranchDecision.

AbcBranchDefaultDecision& AbcBranchDefaultDecision::operator= | ( | const AbcBranchDefaultDecision & | rhs | ) | `[private]`

Illegal Assignment operator.

Reimplemented from AbcBranchDecision.

## Member Data Documentation

AbcModel* AbcBranchDefaultDecision::model_`[private]`

data Point to the model

Definition at line 89 of file AbcBranchActual.h.

double AbcBranchDefaultDecision::bestCriterion_`[private]`

"best" so far

Definition at line 92 of file AbcBranchActual.h.

double AbcBranchDefaultDecision::bestChangeUp_`[private]`

Change up for best.

Definition at line 95 of file AbcBranchActual.h.

int AbcBranchDefaultDecision::bestNumberUp_`[private]`

Number of infeasibilities for up.

Definition at line 98 of file AbcBranchActual.h.

double AbcBranchDefaultDecision::bestChangeDown_`[private]`

Change down for best.

Definition at line 101 of file AbcBranchActual.h.

int AbcBranchDefaultDecision::bestNumberDown_`[private]`

Number of infeasibilities for down.

Definition at line 104 of file AbcBranchActual.h.

int AbcBranchDefaultDecision::bestObject_`[private]`

Index of the best branching integer variable.

Definition at line 107 of file AbcBranchActual.h.

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

- /home/coin/svn-release/Alps-1.4.8/Alps/examples/Abc/AbcBranchActual.h