#include <opensub.h>
Inheritance diagram for ABA_OPENSUB:
Public Member Functions | |
ABA_OPENSUB (ABA_MASTER *master) | |
The constructor does not initialize the member dualBound_ since this can only be done if we know the sense of the objective function which is normally unknown when the constructor of the class ABA_MASTER is called which again calls this constructor. | |
int | number () const |
bool | empty () const |
double | dualBound () const |
Private Member Functions | |
ABA_SUB * | select () |
Selects a subproblem according to the strategy in master and removes it from the list of open subproblems. | |
void | insert (ABA_SUB *sub) |
void | remove (ABA_SUB *sub) |
void | prune () |
void | updateDualBound () |
Updates the member dualBound_ according to the dual bounds of the subproblems contained in this set. | |
ABA_OPENSUB (const ABA_OPENSUB &rhs) | |
const ABA_OPENSUB & | operator= (const ABA_OPENSUB &rhs) |
Private Attributes | |
ABA_MASTER * | master_ |
ABA_DLIST< ABA_SUB * > | list_ |
int | n_ |
double | dualBound_ |
Friends | |
class | ABA_SUB |
class | ABA_MASTER |
Definition at line 50 of file opensub.h.
ABA_OPENSUB::ABA_OPENSUB | ( | ABA_MASTER * | master | ) |
The constructor does not initialize the member dualBound_ since this can only be done if we know the sense of the objective function which is normally unknown when the constructor of the class ABA_MASTER is called which again calls this constructor.
master | A pointer to the corresponding master of the optimization. |
ABA_OPENSUB::ABA_OPENSUB | ( | const ABA_OPENSUB & | rhs | ) | [private] |
int ABA_OPENSUB::number | ( | ) | const [inline] |
bool ABA_OPENSUB::empty | ( | ) | const [inline] |
double ABA_OPENSUB::dualBound | ( | ) | const |
ABA_SUB* ABA_OPENSUB::select | ( | ) | [private] |
Selects a subproblem according to the strategy in master and removes it from the list of open subproblems.
The function select() scans the list of open subproblems, and selects the subproblem with highest priority from the set of open subproblems. Dormant subproblems are ignored if possible.
void ABA_OPENSUB::insert | ( | ABA_SUB * | sub | ) | [private] |
Adds a subproblem to the set of open subproblems.
sub | The subproblem that is inserted. |
void ABA_OPENSUB::remove | ( | ABA_SUB * | sub | ) | [private] |
Removes subproblem from the set of open subproblems.
sub | The subproblem that is removed. |
void ABA_OPENSUB::prune | ( | ) | [private] |
Removes all elements from the set of opens subproblems.
void ABA_OPENSUB::updateDualBound | ( | ) | [private] |
Updates the member dualBound_ according to the dual bounds of the subproblems contained in this set.
const ABA_OPENSUB& ABA_OPENSUB::operator= | ( | const ABA_OPENSUB & | rhs | ) | [private] |
friend class ABA_MASTER [friend] |
ABA_MASTER* ABA_OPENSUB::master_ [private] |
ABA_DLIST<ABA_SUB*> ABA_OPENSUB::list_ [private] |
int ABA_OPENSUB::n_ [private] |
double ABA_OPENSUB::dualBound_ [private] |