# AbcTreeNode Class Reference

`#include <AbcTreeNode.h>`

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

List of all members.

## Public Member Functions
| AbcTreeNode ()
| AbcTreeNode (AbcModel *m)
| AbcTreeNode (AbcNodeDesc *&desc)
| ~AbcTreeNode ()
virtual AlpsTreeNode * | createNewTreeNode (AlpsNodeDesc *&desc) const
| The purpose of this function is be able to create the children of a node after branching.
virtual int | process (bool isRoot=false, bool rampUp=false)
| Performing the bounding operation.
int | chooseBranch (AbcModel *model, bool &strongFound)
| Select the branch variable.
virtual std::vector < CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > | branch ()
int | numberUnsatisfied () const
| Get the number of objects unsatisfied at this node.
double | guessedObjectiveValue () const
| Guessed objective value (for solution).
void | setGuessedObjectiveValue (double value)
void | setBranchedOn (int b)
void | setBranchedDir (int d)
void | setBranchedOnValue (double b)
int | getBranchedOn () const
int | getBranchedDir () const
double | getBranchedOnValue () const
virtual AlpsEncoded * | encode () const
| This method should encode the content of the object and return a pointer to the encoded form.
virtual AlpsKnowledge * | decode (AlpsEncoded &) const
| This method should decode and return a pointer to a brand new object, i.e., the method must create a new object on the heap from the decoded data instead of filling up the object for which the method was invoked.
double | getObjValue () const
| Query/set the objective value (could be approximately or not exit) of the node.
void | setObjValue (const double objValue)
| Query/set the objective value (could be approximately or not exit) of the node.
## Private Member Functions
| AbcTreeNode (const AbcTreeNode &)
AbcTreeNode & | operator= (const AbcTreeNode &)
## Private Attributes
int | branchedOn_
| The index of the branching variable.
double | branchedOnVal_
| The solution value (non-integral) of the branching variable.
int | branchedDir_
| Branching direction.
double | guessedObjectiveValue_
| Guessed satisfied Objective value.
int | numberUnsatisfied_
| The number of objects unsatisfied at this node.

## Detailed Description

Definition at line 43 of file AbcTreeNode.h.

## Constructor & Destructor Documentation

AbcTreeNode::AbcTreeNode | ( | const AbcTreeNode & |  | ) | `[private]`

AbcTreeNode::AbcTreeNode | ( |  | ) | `[inline]`

Definition at line 66 of file AbcTreeNode.h.

AbcTreeNode::AbcTreeNode | ( | AbcModel * | m | ) | `[inline]`

Definition at line 78 of file AbcTreeNode.h.

AbcTreeNode::AbcTreeNode | ( | AbcNodeDesc *& | desc | ) | `[inline]`

Definition at line 89 of file AbcTreeNode.h.

AbcTreeNode::~AbcTreeNode | ( |  | ) | `[inline]`

Definition at line 103 of file AbcTreeNode.h.

## Member Function Documentation

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

Reimplemented from AlpsTreeNode.

virtual AlpsTreeNode* AbcTreeNode::createNewTreeNode | ( | AlpsNodeDesc *& | desc | ) | const`[virtual]`

The purpose of this function is be able to create the children of a node after branching.

Implements AlpsTreeNode.

virtual int AbcTreeNode::process | ( | bool | isRoot = `false`,
|  | bool | rampUp = `false` |
| ) |  |  | `[virtual]`

Performing the bounding operation.

int AbcTreeNode::chooseBranch | ( | AbcModel * | model,
|  | bool & | strongFound |
| ) |  |  |

Select the branch variable.

Return value:

- 0: A branching object has been installed
- -1: A monotone object was discovered
- -2: An infeasible object was discovered

double AbcTreeNode::getObjValue | ( |  | ) | const`[inline]`

Query/set the objective value (could be approximately or not exit) of the node.

Definition at line 125 of file AbcTreeNode.h.

void AbcTreeNode::setObjValue | ( | const double | objValue | ) | `[inline]`

Query/set the objective value (could be approximately or not exit) of the node.

Definition at line 126 of file AbcTreeNode.h.

virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> > AbcTreeNode::branch | ( |  | ) | `[virtual]`

int AbcTreeNode::numberUnsatisfied | ( |  | ) | const`[inline]`

Get the number of objects unsatisfied at this node.

Definition at line 133 of file AbcTreeNode.h.

double AbcTreeNode::guessedObjectiveValue | ( |  | ) | const`[inline]`

Guessed objective value (for solution).

Definition at line 137 of file AbcTreeNode.h.

void AbcTreeNode::setGuessedObjectiveValue | ( | double | value | ) | `[inline]`

Definition at line 140 of file AbcTreeNode.h.

void AbcTreeNode::setBranchedOn | ( | int | b | ) | `[inline]`

Definition at line 143 of file AbcTreeNode.h.

void AbcTreeNode::setBranchedDir | ( | int | d | ) | `[inline]`

Definition at line 145 of file AbcTreeNode.h.

void AbcTreeNode::setBranchedOnValue | ( | double | b | ) | `[inline]`

Definition at line 147 of file AbcTreeNode.h.

int AbcTreeNode::getBranchedOn | ( |  | ) | const`[inline]`

Definition at line 149 of file AbcTreeNode.h.

int AbcTreeNode::getBranchedDir | ( |  | ) | const`[inline]`

Definition at line 151 of file AbcTreeNode.h.

double AbcTreeNode::getBranchedOnValue | ( |  | ) | const`[inline]`

Definition at line 153 of file AbcTreeNode.h.

virtual AlpsEncoded* AbcTreeNode::encode | ( |  | ) | const`[virtual]`

This method should encode the content of the object and return a pointer to the encoded form.

NOTE: This default implementation can not be used when the memory of data members is not continously allocated, for example, some data members are pointers, STL set, map, etc.

Reimplemented from AlpsKnowledge.

virtual AlpsKnowledge* AbcTreeNode::decode | ( | AlpsEncoded & | encoded | ) | const`[virtual]`

This method should decode and return a pointer to a brand new object, i.e., the method must create a new object on the heap from the decoded data instead of filling up the object for which the method was invoked.

NOTE: This default implementation can not be used when the memory of data members is not continously allocated, for example, some data members are pointers, STL set, map, etc.

Reimplemented from AlpsKnowledge.

## Member Data Documentation

int AbcTreeNode::branchedOn_`[private]`

The index of the branching variable.

Definition at line 51 of file AbcTreeNode.h.

double AbcTreeNode::branchedOnVal_`[private]`

The solution value (non-integral) of the branching variable.

Definition at line 54 of file AbcTreeNode.h.

int AbcTreeNode::branchedDir_`[private]`

Branching direction.

Definition at line 57 of file AbcTreeNode.h.

double AbcTreeNode::guessedObjectiveValue_`[private]`

Guessed satisfied Objective value.

Definition at line 60 of file AbcTreeNode.h.

int AbcTreeNode::numberUnsatisfied_`[private]`

The number of objects unsatisfied at this node.

Definition at line 63 of file AbcTreeNode.h.

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

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