class InstanceNode : public Node

InstanceNodes are the key building block of object-oriented Bayesian networks and influence diagrams

Inheritance:


Public Methods

Class* getClass() throw(ExceptionHugin)
Get the class, from which this instance was derived
void setInput(Node* input, Node* node) throw(ExceptionHugin)
Bind an existing node to an input node in an instance
void unsetInput(Node* input) throw(ExceptionHugin)
Removes a binding to the input node given
Node* getInput(Node* input) throw(ExceptionHugin)
Returns the node, which is bound to the given input
Node* getOutput(Node* output) throw(ExceptionHugin)
Returns the output clone from the instance for the given output node frin the class

Inherited from Node:

Public Methods

void addParent(DiscreteChanceNode *parent) throw(HAPI::ExceptionHugin)
std::string getAttribute(std::string& key) const throw(HAPI::ExceptionHugin)
virtual Category getCategory() throw()
Domain* getDomain() const throw(HAPI::ExceptionHugin)
JunctionTree* getJunctionTree() const throw(HAPI::ExceptionHugin)
virtual Kind getKind() throw(ExceptionHugin)
std::string getLabel() const throw(HAPI::ExceptionHugin)
Model* getModel() throw(HAPI::ExceptionHugin)
std::string getName() const throw(HAPI::ExceptionHugin)
NodeList getParents() const throw(HAPI::ExceptionHugin)
std::pair <long, long> getPosition() const throw(HAPI::ExceptionHugin)
void* getUserData() throw(HAPI::ExceptionHugin)
Constraint getEdgeConstraint( Node *bNode )
void setEdgeConstraint( Node *bNode, Constraint C )
void generateTable() throw(HAPI::ExceptionHugin )
std::vector <Attribute*> Node::getAttributes() throw(HAPI::ExceptionHugin )
void removeParent(DiscreteChanceNode *parent) throw(HAPI::ExceptionHugin)
void setAttribute(std::string& key, std::string& value) throw(HAPI::ExceptionHugin)
void setLabel(char* label) throw(HAPI::ExceptionHugin)
void setLabel(std::string& label) throw(HAPI::ExceptionHugin)
void setName(char *name) throw(HAPI::ExceptionHugin)
void setName(std::string& name) throw(HAPI::ExceptionHugin)
void setPosition(long x, long y) throw(HAPI::ExceptionHugin)
void setPosition(std::pair<long, long> pos) throw(HAPI::ExceptionHugin)
void setUserData(void *) throw(HAPI::ExceptionHugin)
Domain* getHomeDomain() const throw(ExceptionHugin)
Class* getHomeClass() const throw(ExceptionHugin)
void addToInputs() throw(ExceptionHugin)
void addToOutputs() throw(ExceptionHugin)
void removeFromInputs() throw(ExceptionHugin)
void removeFromOutputs() throw(ExceptionHugin)
Node* getInstance() throw(ExceptionHugin)
Node* getMaster() throw(ExceptionHugin)
NodeList getSource() throw(ExceptionHugin)

Documentation

InstanceNodes are the key building block of object-oriented Bayesian networks and influence diagrams.

An InstanceNode represents an instance of a Class (i.e., a Bayesian network or an influence diagram). In other words, an instance node represents a subnetwork. The Class of which InstanceNodes exist in other Classes can itself contain InstanceNodes, whereby an object-oriented network can be viewed as a hierarchical description of a problem domain. Describing a network in a hierarchical fashion often makes the network much less cluttered, and thus provides a much better means of communicating ideas among knowledge engineers and users.

As systems often are composed of collections of identical or similar components, models of systems often contain repetitive patterns. The notion of InstanceNodes makes it very easy to construct multiple identical instances of a network fragment.

An InstanceNode is connected to other nodes via its <it>interface nodes</it>, which are the input Nodes and the output Nodes of the Class of which the InstanceNode is an instance. Chance nodes and decision nodes of the encapsulating Class (i.e., network) as well as output nodes of InstanceNodes of the encapsulating Class can be bound to input nodes of an InstanceNode.

As the output nodes of an InstanceNode can be parents of non-InstanceNodes, these output nodes are represented in the "home Class" of the InstanceNode as clones of the output nodes of the "instance Class" of the InstanceNode. Therefore, the output nodes of InstanceNodes are sometimes referred to as "output clones".

Class* getClass() throw(ExceptionHugin)
Get the class, from which this instance was derived

void setInput(Node* input, Node* node) throw(ExceptionHugin)
Bind an existing node to an input node in an instance
Parameters:
input - The input node in the instance which is to be bound.
node - The node which is bound to the input node.

void unsetInput(Node* input) throw(ExceptionHugin)
Removes a binding to the input node given
Parameters:
input - The input node in the instance, which must be unbound

Node* getInput(Node* input) throw(ExceptionHugin)
Returns the node, which is bound to the given input
Parameters:
input - The input node in the instance, whose bound node is returned.

Node* getOutput(Node* output) throw(ExceptionHugin)
Returns the output clone from the instance for the given output node frin the class
Parameters:
output - An output node from a class, whose output clone, from an instance, is returned.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de