coco::work_node Class Reference
[Search Graph]

Work node, which is passed to the inference engines. More...

#include <search_node.h>

Inheritance diagram for coco::work_node:

Inheritance graph
[legend]
Collaboration diagram for coco::work_node:

Collaboration graph
[legend]

List of all members.

Classes

class  constraint_iterator_base
 The base class for work_node::constraint_iterator and work_node::constraint_const_iterator. More...

Public Types

typedef
constraint_iterator_base
< expression_walker, const
std::vector< expression_walker >
*, const std::vector
< expression_walker > &, const
expression_walker *, const
expression_walker
&, std::vector
< expression_walker >
::const_iterator > 
constraint_const_iterator
typedef
constraint_iterator_base
< expression_walker,
std::vector< expression_walker >
*, std::vector
< expression_walker >
&, expression_walker
*, expression_walker
&, std::vector
< expression_walker >
::iterator > 
constraint_iterator
typedef uint32_t transaction_number

Public Member Functions

transaction_number get_transaction_number ()
void init_cnumbers ()
void reset_node_ranges ()
void make_node_ranges (bool keep_old_ranges)
void make_node_order ()
double compute_log_volume (const std::vector< interval > &_r) const
void set_globalinfo ()
 work_node (const work_node &__w)
 work_node (const full_node &__f, const std::list< delta_id > &__de, vdbl::viewdbase *vdbf=NULL)
 work_node (const search_node_id &_i, const vdbl::userid &_dui, gptr< model > &__m, gptr< vdbl::database > &__d, const std::vector< annotation > &__an, const std::list< delta_id > &__de, gptr< search_node > *_gm, search_node_relation snr=snr_worknode, vdbl::viewdbase *vdbf=NULL)
virtual ~work_node ()
const modelget_model () const
modelget_model ()
work_node_contextget_work_node_context ()
const work_node_contextget_work_node_context () const
vdbl::viewdbase & get_viewdbase ()
const vdbl::viewdbase & get_viewdbase () const
vdbl::viewdbase & get_fullviewdbase ()
const vdbl::viewdbase & get_fullviewdbase () const
delta get_delta (const delta_id &_id)
const deltaget_delta (const delta_id &_id) const
certificate get_certificate (const delta_id &_id)
const certificateget_certificate (const delta_id &_id) const
double log_volume () const
double gain () const
const datamapglobal_info () const
double reset_gain ()
work_nodeoperator= (const work_node &__w)
work_nodeoperator= (const full_node &__f)
bool is_delta () const
unsigned int n_annotations () const
const annotationget_annotation (unsigned int i) const
const std::vector< annotation > & get_annotations () const
const vdbl::database * get_database () const
modelget_model_ptr () const
vdbl::database * get_database_ptr () const
vdbl::userid get_dbuserid () const
gptr< search_node > * global_model () const
gptr< vdbl::database > * database () const
search_node_id get_id () const
void set_id (const search_node_id &i)
vdbl::rowid get_rowid () const
void set_rowid (const vdbl::rowid &i)
void keep (const annotation &_an)
void keep (const std::vector< annotation > &_anv)
void unkeep (const annotation &_an)
void unkeep (const std::vector< annotation > &_anv)
Methods for accessing model parts
The methods of this section are used to extract or access parts of the model with specific properties, e.g., extract the linear part of the model, access only the polynomial constraints,... In all these methods the type of the expressions is specified using type values from e_expression_type and their combination.
See also:
e_expression_type


model get (unsigned int __type)
 Retrieve a subpart of a model.
constraint_const_iterator get_begin (unsigned int __type) const
 Get an iterator to (read only) access constraints of a specified type.
constraint_const_iterator get_end (unsigned int __type) const
 Get an iterator pointing past the constraints of a specified type.
constraint_iterator get_begin (unsigned int __type)
 Get an iterator to access constraints of a specified type.
constraint_iterator get_end (unsigned int __type)
 Get an iterator pointing past the constraints of a specified type.
unsigned int n (unsigned int __type) const
bool global_info (basic_alltype &b, const std::string &i) const
bool global_info (basic_alltype &b, const char *i) const
basic_alltype global_info (const std::string &i) const
basic_alltype global_info (const char *i) const

Public Attributes

std::list< delta_iddeltas
std::list< delta_id >::iterator deltanew_it
std::set< search_node_idparents_in_graph
std::map< delta_id, undeltaundeltas
vdbl::standard_table * dtable
vdbl::tableid dtable_id
vdbl::standard_table * gitable
vdbl::tableid gitable_id
work_node_contextwnc
vdbl::viewdbase * __vdb
vdbl::viewdbase * __vdbf
std::map< transaction_number,
std::list< std::vector< delta > > > 
proposed_splits
std::map< delta_id,
transaction_number
split_delta_ids
std::vector< annotation_ann
Additional data needed in the solution process
These members keep data which is needed in the solution process to aid the various inference engines.

std::vector< intervalnode_ranges
std::vector< unsigned int > node_order
bool infeasible
double log_vol
double gain_factor
datamap globalinfo

Protected Member Functions

search_node_relation parent_relation () const

Protected Attributes

gptr< model > * _m
gptr< search_node > * __global_model
gptr< vdbl::database > * __dbase
vdbl::userid _dbuser
search_node_relation _snr
search_node_id _id
std::vector< annotation_keep
vdbl::rowid _rid

Friends

class delta
class undelta
class certificate
class wnc_hook_base
work_node operator+ (const work_node &_w, const delta_id &_d)
 Add one delta to a work node.
work_node operator- (const work_node &_w, const delta_id &_d)
 Remove one delta from a work node.
work_nodeoperator+= (work_node &_w, const delta_id &_d)
 Add one delta to a work node.
work_nodeoperator-= (work_node &_w, const delta_id &_d)
 Remove one delta from a work node.
template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node operator+ (const work_node &_w, const _Ctr< delta_id, _Al > &_d)
 Add a number of deltas to a work node.
template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node operator- (const work_node &_w, const _Ctr< delta_id, _Al > &_d)
 Remove a number of deltas from a work node.
template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_nodeoperator+= (work_node &_w, const _Ctr< delta_id, _Al > &_d)
 Add a number of deltas to a work node.
template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_nodeoperator-= (work_node &_w, const _Ctr< delta_id, _Al > &_d)
 Remove a number of deltas from a work node.
class delta_base
class certificate_base
class dag_delta
class dag_undelta
class search_graph


Detailed Description

This is class of nodes, an enhanced full node, which is constructed, whenever a search focus is set to a specific search node in the search graph. It stores a complete model along with all annotations, a fair amount of additional information (including some caches) and the undelta information for all deltas, which had to be applied to construct that work node from the closest full node ancestor in the search graph.

Definition at line 417 of file search_node.h.


Member Typedef Documentation

This type defines a special const iterator, which iterates through all constraints of a specified type.

See also:
get_begin

Definition at line 425 of file search_node.h.

This type defines a special iterator, which iterates through all constraints of a specified type.

See also:
get_begin

Definition at line 439 of file search_node.h.

The transaction numbers are used for keeping track of split deltas, whose contents are stored in the proposed_splits member locally in the work node.

Definition at line 511 of file search_node.h.


Constructor & Destructor Documentation

coco::work_node::work_node ( const work_node __w  )  [inline]

Standard Copy Constructor

Definition at line 100 of file search_node.hpp.

coco::work_node::work_node ( const full_node __f,
const std::list< delta_id > &  __de,
vdbl::viewdbase *  vdbf = NULL 
)

Expansion Constructor from full_node

Definition at line 192 of file search_node.cc.

coco::work_node::work_node ( const search_node_id _i,
const vdbl::userid &  _dui,
gptr< model > &  __m,
gptr< vdbl::database > &  __d,
const std::vector< annotation > &  __an,
const std::list< delta_id > &  __de,
gptr< search_node > *  _gm,
search_node_relation  snr = snr_worknode,
vdbl::viewdbase *  vdbf = NULL 
)

This constructor generates a new work node (a standalone worknode by default) with search_node_id i and search_node_relation __snr. The parameter __m is used to specify the full model, while the parameters _gm, __d, and _dui initialize the global model, search database, and the database user id, respectively. The vector of annotations is initialized by parameter __an, and the list of delta ids is set to __de.

Definition at line 162 of file search_node.cc.

coco::work_node::~work_node (  )  [inline, virtual]

Standard Destructor

Definition at line 135 of file search_node.hpp.


Member Function Documentation

double coco::work_node::compute_log_volume ( const std::vector< interval > &  _r  )  const

This method computes a finite approximation to the logarithmic volume of the box determined by the range vector _r. Note that _r is a range vector, i.e. it contains a range for every node in the DAG and is indexed by node numbers and not by variable numbers.

Definition at line 271 of file search_node.cc.

gptr<vdbl::database>* coco::search_node::database (  )  const [inline, inherited]

This is the accessor method for the search database.

Definition at line 164 of file search_node.h.

double coco::work_node::gain (  )  const [inline]

This method returns the current gain_factor of the work_node.

Definition at line 755 of file search_node.h.

model coco::work_node::get ( unsigned int  __type  )  [inline]

The get function returns a subpart of the model, which only consists of objective function and constraints of the specified type __type. usage e.g.:

 get(ex_bounds|ex_linear|ex_quadratic)
for a full quadratic model, equivalent:
 get(ex_atmquad)
Bug:
The get function is not yet properly implemented.

Definition at line 653 of file search_node.h.

const annotation& coco::full_node::get_annotation ( unsigned int  i  )  const [inline, inherited]

A call to this method returns a const reference to the ith annotation.

Definition at line 369 of file search_node.h.

const std::vector<annotation>& coco::full_node::get_annotations (  )  const [inline, inherited]

A call to this method returns a const reference to the whole vector of annotations.

Definition at line 374 of file search_node.h.

work_node::constraint_iterator coco::work_node::get_begin ( unsigned int  __type  )  [inline]

The get_begin() function returns a constraint_iterator pointing to the first constraint of type __type. The iterator then can be used to iterate through all such constraints. Usage e.g.:

    constraint_iterator b = get_begin(ex_linear);
    while(b != get_end(ex_linear))
    {
        do_something(*b);
        ++b;
    }
to iterate through all linear constraints, which are not bound constraints.

Definition at line 153 of file search_node.hpp.

work_node::constraint_const_iterator coco::work_node::get_begin ( unsigned int  __type  )  const [inline]

The get_begin() function returns a constraint_const_iterator pointing to the first constraint of type __type. The iterator then can be used to iterate through all such constraints. Usage e.g.:

    constraint_const_iterator b = get_begin(ex_linear);
    while(b != get_end(ex_linear))
    {
        do_something_const(*b);
        ++b;
    }
to iterate through all linear constraints, which are not bound constraints.

Definition at line 138 of file search_node.hpp.

const certificate & coco::work_node::get_certificate ( const delta_id _id  )  const [inline]

This method returns a const reference to the certificate associated to the delta with delta_id _id.

Definition at line 479 of file search_node.hpp.

certificate coco::work_node::get_certificate ( const delta_id _id  )  [inline]

This method returns the certificate associated to the delta with delta_id _id.

Definition at line 455 of file search_node.hpp.

const vdbl::database* coco::full_node::get_database (  )  const [inline, inherited]

This method returns a const pointer pointing to a locally stored copy of the search database.

Bug:
This method needs to be replaced, once the COCONUT environment really gets distributed.

Definition at line 385 of file search_node.h.

vdbl::database* coco::full_node::get_database_ptr (  )  const [inline, inherited]

This method returns a const pointer pointing to a locally stored copy of the search database.

Bug:
This method needs to be replaced, once the COCONUT environment really gets distributed.

Definition at line 396 of file search_node.h.

vdbl::userid coco::search_node::get_dbuserid (  )  const [inline, inherited]

This is the accessor method for the database user id.

Definition at line 158 of file search_node.h.

const delta & coco::work_node::get_delta ( const delta_id _id  )  const [inline]

This method returns a const reference to the delta with delta_id _id.

Definition at line 439 of file search_node.hpp.

delta coco::work_node::get_delta ( const delta_id _id  )  [inline]

This method returns the delta with delta_id _id.

Definition at line 423 of file search_node.hpp.

work_node::constraint_iterator coco::work_node::get_end ( unsigned int  __type  )  [inline]

The get_end() function returns a constraint_iterator pointing after the last constraint of type __type. The iterator then can be used to stop the iterating process through all such constraints at the end. Usage e.g.:

    constraint_iterator b = get_begin(ex_linear);
    while(b != get_end(ex_linear))
    {
        do_something(*b);
        ++b;
    }
to iterate through all linear constraints, which are not bound constraints.

Definition at line 160 of file search_node.hpp.

work_node::constraint_const_iterator coco::work_node::get_end ( unsigned int  __type  )  const [inline]

The get_end() function returns a constraint_const_iterator pointing after the last constraint of type __type. The iterator then can be used to stop the iterating process through all such constraints at the end. Usage e.g.:

    constraint_const_iterator b = get_begin(ex_linear);
    while(b != get_end(ex_linear))
    {
        do_something_const(*b);
        ++b;
    }
to iterate through all linear constraints, which are not bound constraints.

Definition at line 146 of file search_node.hpp.

const vdbl::viewdbase& coco::work_node::get_fullviewdbase (  )  const [inline]

This method returns the actual full view database.

Definition at line 633 of file search_node.h.

vdbl::viewdbase& coco::work_node::get_fullviewdbase (  )  [inline]

This method returns the actual full view database.

Definition at line 630 of file search_node.h.

search_node_id coco::search_node::get_id (  )  const [inline, inherited]

This is the accessor method for the search node id of this node.

Definition at line 167 of file search_node.h.

model* coco::work_node::get_model (  )  [inline]

This method returns a const pointer pointing to a locally stored copy of the model stored in this full node.

Definition at line 614 of file search_node.h.

const model* coco::work_node::get_model (  )  const [inline]

This method returns a const pointer pointing to a locally stored copy of the model stored in this full node.

Reimplemented from coco::full_node.

Definition at line 610 of file search_node.h.

model* coco::full_node::get_model_ptr (  )  const [inline, inherited]

This method returns a pointer pointing to a locally stored copy of the model stored in this full node.

Definition at line 390 of file search_node.h.

vdbl::rowid coco::search_node::get_rowid (  )  const [inline, inherited]

This is the accessor method for the row id of this node.

Definition at line 173 of file search_node.h.

transaction_number coco::work_node::get_transaction_number (  )  [inline]

This method returns a unique transaction number for split deltas.

Definition at line 521 of file search_node.h.

const vdbl::viewdbase& coco::work_node::get_viewdbase (  )  const [inline]

This method returns the actual view database.

Definition at line 627 of file search_node.h.

vdbl::viewdbase& coco::work_node::get_viewdbase (  )  [inline]

This method returns the actual view database.

Definition at line 624 of file search_node.h.

const work_node_context* coco::work_node::get_work_node_context (  )  const [inline]

This method returns the actual work node context

Definition at line 621 of file search_node.h.

work_node_context* coco::work_node::get_work_node_context (  )  [inline]

This method returns the actual work node context

Definition at line 618 of file search_node.h.

basic_alltype coco::work_node::global_info ( const char *  i  )  const [inline]

This method returns the entry with name i in the global data used by the algorithm. See globalinfo.

Definition at line 772 of file search_node.h.

basic_alltype coco::work_node::global_info ( const std::string &  i  )  const

This method returns the entry with name i in the global data used by the algorithm. See globalinfo.

Definition at line 333 of file search_node.cc.

bool coco::work_node::global_info ( basic_alltype b,
const char *  i 
) const [inline]

This method returns the entry with name i in the global data used by the algorithm, setting b. It returns whether extraction was successful. See globalinfo.

Definition at line 765 of file search_node.h.

bool coco::work_node::global_info ( basic_alltype b,
const std::string &  i 
) const

This method returns the entry with name i in the global data used by the algorithm, setting b. It returns whether extraction was successful. See globalinfo.

Definition at line 325 of file search_node.cc.

const datamap& coco::work_node::global_info (  )  const [inline]

This method returns the global data used by the algorithm. See globalinfo.

Definition at line 758 of file search_node.h.

gptr<search_node>* coco::search_node::global_model (  )  const [inline, inherited]

This is the accessor method for the global model.

Definition at line 161 of file search_node.h.

void coco::work_node::init_cnumbers (  ) 

This method computes the cache values n_bds, n_lin, n_quad, n_poly, and n_other and the log volume.

Definition at line 220 of file search_node.cc.

bool coco::full_node::is_delta (  )  const [inline, virtual, inherited]

This method is called to determine whether a search node stores only deltas (delta_node) or a full model (full_node). In case of a full_node it returns false.

Reimplemented from coco::search_node.

Definition at line 361 of file search_node.h.

void coco::search_node::keep ( const std::vector< annotation > &  _anv  )  [inline, inherited]

A call to this method informs the search node to be the keeper of all the annotations in _anv.

Definition at line 184 of file search_node.h.

void coco::search_node::keep ( const annotation _an  )  [inline, inherited]

A call to this method informs the search node to be the keeper of the annotation _an.

Definition at line 180 of file search_node.h.

double coco::work_node::log_volume (  )  const [inline]

This method returns the finite approximation to the logarithmic volume of the work_node.

See also:
log_vol

Definition at line 752 of file search_node.h.

void coco::work_node::make_node_order (  ) 

A call to this method recalculates the node_order for the model DAG stored in the work node.

Definition at line 263 of file search_node.cc.

void coco::work_node::make_node_ranges ( bool  keep_old_ranges  ) 

A call to this method adapts the node_ranges vector to the .

Definition at line 242 of file search_node.cc.

unsigned int coco::work_node::n ( unsigned int  __type  )  const [inline]

This method returns the number of constraints of type __type. Usage, e.g.:

returns the number of linear equality constraints.

Definition at line 513 of file search_node.hpp.

unsigned int coco::full_node::n_annotations (  )  const [inline, inherited]

This method returns the number of annotations stored in this full node.

Definition at line 365 of file search_node.h.

work_node & coco::work_node::operator= ( const full_node __f  )  [inline]

Special Assignment Operator --- be careful when using it!

Reimplemented from coco::full_node.

Definition at line 222 of file search_node.hpp.

work_node & coco::work_node::operator= ( const work_node __w  )  [inline]

Standard Assignment Operator

Definition at line 254 of file search_node.hpp.

search_node_relation coco::search_node::parent_relation (  )  const [inline, protected, inherited]

A call to this method returns the relation of this node to its parent in the search graph.

Definition at line 117 of file search_node.h.

double coco::work_node::reset_gain (  )  [inline]

This method returns the current gain_factor of the work_node and resets it to 1.

Definition at line 777 of file search_node.h.

void coco::work_node::reset_node_ranges (  )  [inline]

This method resets all unused node ranges to $[-\infty,\infty]$.

Definition at line 503 of file search_node.hpp.

void coco::work_node::set_globalinfo (  ) 

This method extracts the information from the ``global info'' table and stores it in the globalinfo cache of the work_node.

Definition at line 299 of file search_node.cc.

void coco::search_node::set_id ( const search_node_id i  )  [inline, inherited]

This is the set method for the search node id of this node.

Definition at line 170 of file search_node.h.

void coco::search_node::set_rowid ( const vdbl::rowid &  i  )  [inline, inherited]

This is the set method for the row id of this node.

Definition at line 176 of file search_node.h.

void coco::search_node::unkeep ( const std::vector< annotation > &  _anv  )  [inline, inherited]

A call to this method informs the search node to no longer be the keeper of all the annotations in _anv.

Definition at line 93 of file search_node.hpp.

void coco::search_node::unkeep ( const annotation _an  )  [inline, inherited]

A call to this method informs the search node to no longer be the keeper of the annotation _an.

Definition at line 82 of file search_node.hpp.


Friends And Related Function Documentation

friend class certificate [friend]

Definition at line 806 of file search_node.h.

friend class certificate_base [friend, inherited]

Definition at line 400 of file search_node.h.

friend class dag_delta [friend, inherited]

Definition at line 401 of file search_node.h.

friend class dag_undelta [friend, inherited]

Definition at line 402 of file search_node.h.

friend class delta [friend]

Definition at line 804 of file search_node.h.

friend class delta_base [friend, inherited]

Definition at line 399 of file search_node.h.

template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node operator+ ( const work_node _w,
const _Ctr< delta_id, _Al > &  _d 
) [friend]

This function adds all the deltas whose delta_ids are in the linear container _d to work_node _w and returns a new work_node having all these deltas applied.

Definition at line 324 of file search_node.hpp.

work_node operator+ ( const work_node _w,
const delta_id _d 
) [friend]

This function adds the delta with delta_id _i to work_node _w and returns a new work_node having the delta applied.

Definition at line 297 of file search_node.hpp.

template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node& operator+= ( work_node _w,
const _Ctr< delta_id, _Al > &  _d 
) [friend]

This function adds the deltas whose delta_ids are in the linear container _d to work_node _w changing it in that process. The function returns _w.

Definition at line 340 of file search_node.hpp.

work_node& operator+= ( work_node _w,
const delta_id _d 
) [friend]

This function adds the delta with delta_id _i to work_node _w changing it in that process. The function returns _w.

Definition at line 310 of file search_node.hpp.

template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node operator- ( const work_node _w,
const _Ctr< delta_id, _Al > &  _d 
) [friend]

This function removes all the deltas whose delta_ids are in the linear container _d from work_node _w and returns a new work_node having all these deltas unapplied.

Definition at line 364 of file search_node.hpp.

work_node operator- ( const work_node _w,
const delta_id _d 
) [friend]

This function removes the delta with delta_id _i from work_node _w and returns a new work_node having the delta unapplied.

Definition at line 35 of file search_node.cc.

template<template< class _Tp, class _TA > class _Ctr, class _Al >
work_node& operator-= ( work_node _w,
const _Ctr< delta_id, _Al > &  _d 
) [friend]

This function removes (unapplies) the deltas whose delta_ids are in the linear container _d from work_node _w changing it in that process. The function returns _w.

Definition at line 382 of file search_node.hpp.

work_node& operator-= ( work_node _w,
const delta_id _d 
) [friend]

This function removes (unapplies) the delta with delta_id _i from work_node _w changing it in that process. The function returns _w.

Definition at line 76 of file search_node.cc.

friend class search_graph [friend, inherited]

Definition at line 195 of file search_node.h.

friend class undelta [friend]

Definition at line 805 of file search_node.h.

friend class wnc_hook_base [friend]

Definition at line 807 of file search_node.h.


Member Data Documentation

gptr<vdbl::database>* coco::search_node::__dbase [protected, inherited]

This is a pointer to a global pointer to the search database associated to this search graph.

Definition at line 96 of file search_node.h.

This is a pointer to a global pointer to the top of the search graph. It is NULL for a standalone node or the top of the graph.

Definition at line 93 of file search_node.h.

vdbl::viewdbase* coco::work_node::__vdb

This is a restricted view to the search database to be used by the inference engines and report modules.

Definition at line 474 of file search_node.h.

vdbl::viewdbase* coco::work_node::__vdbf

This is a full view to the search database to be used by the inference engines and report modules.

Definition at line 477 of file search_node.h.

std::vector<annotation> coco::full_node::_ann [inherited]

This is the vector of annotations active at this full node.

Definition at line 290 of file search_node.h.

vdbl::userid coco::search_node::_dbuser [protected, inherited]

This member stores the database user id under which this search is performed. For the in-memory database this is irrelevant.

Definition at line 99 of file search_node.h.

search_node_id coco::search_node::_id [protected, inherited]

This is the unique identifier of this search node.

Definition at line 104 of file search_node.h.

std::vector<annotation> coco::search_node::_keep [protected, inherited]

The _keep member is a list of all those annotations which are kept by this search node. If the node is destroyed all kept annotations are removed from the search database.

Definition at line 108 of file search_node.h.

gptr<model>* coco::full_node::_m [protected, inherited]

This is a pointer to a global pointer to the model kept in this full node.

Definition at line 286 of file search_node.h.

vdbl::rowid coco::search_node::_rid [protected, inherited]

This row id specifies the row in the search info table where the hook information for this search_node is stored

Definition at line 112 of file search_node.h.

This member specifies the relation of the search node to its parent(s) in the search graph.

Definition at line 102 of file search_node.h.

std::list<delta_id>::iterator coco::work_node::deltanew_it

This iterator points to the first 'new' delta of the work_node.

Definition at line 450 of file search_node.h.

This is the list of all deltas, which had to be applied to construct the given work_node. This includes the deltas necessary to extract the search_node to the work_node from the graph, as well as the ``new'' deltas, which have been applied by the solution strategy while the work node was analyzed by various inference engines.

Definition at line 447 of file search_node.h.

vdbl::standard_table* coco::work_node::dtable

This is a pointer to the ``deltas'' table in the search database.

Definition at line 459 of file search_node.h.

This is the table identifier of the ``deltas'' table in the search database.

Definition at line 462 of file search_node.h.

This member keeps an improvement factor (in [0,1]) in bounds sizes since it was last reset.

Definition at line 502 of file search_node.h.

vdbl::standard_table* coco::work_node::gitable

This is a pointer to the ``global info'' table in the search database.

Definition at line 464 of file search_node.h.

This is the table identifier of the ``global info'' table in the search database.

Definition at line 467 of file search_node.h.

This member keeps a cache of the global data used in the algorithm

Definition at line 504 of file search_node.h.

This boolean specifies, whether the problem represented by this work node is known to be infeasible.

Definition at line 495 of file search_node.h.

This member keeps a finite approximation to the logarithmic volume of the box formed by the variable bounds of the original variables.

Definition at line 499 of file search_node.h.

std::vector<unsigned int> coco::work_node::node_order

The node_order vector provides a linear order on the DAG nodes, which is compatible with the DAG structure, i.e., all ancestors of a node are ordered after the node. The vector contains the order as a sequence node numbers of the DAG nodes.

Definition at line 492 of file search_node.h.

The node_ranges vector keeps the current best known ranges of all nodes in the model DAG. The vector is indexed by the node numbers of the DAG nodes.

Definition at line 487 of file search_node.h.

This parameter stores the parents of the work node in the graph

Definition at line 453 of file search_node.h.

std::map<transaction_number,std::list<std::vector<delta> > > coco::work_node::proposed_splits

This member stores all splits which have been proposed by the various inference engines that can be used to calculate possible splits. Every proposed split (being associated with a split_delta) gets assigned a unique transaction number. This is later used for unapplying the split_delta if necessary. Every split is itself a list of vectors of deltas. Every vector of deltas in the list is associated with one child node generated by the split, and the vector of deltas contains all deltas which have to be applied to the work node for constructing the respective child node from the work node.

Definition at line 534 of file search_node.h.

This map connects split_delta delta identifiers with transaction numbers in the proposed_splits map.

Definition at line 537 of file search_node.h.

This map connects delta identifiers of previously applied deltas with their corresponding undelta information.

See also:
undelta

Definition at line 457 of file search_node.h.

This is the work node context corresponding to the current work node.

Definition at line 471 of file search_node.h.


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

Generated on Tue Feb 9 14:49:59 2010 for COCONUT API by  doxygen 1.5.8