def __init__(self, name, values, logarithmetic=True): super(DiscreteVariableNode, self).__init__(name) self.values = values self.belief = constant_factor([name], {name: values}, len(values), logarithmetic) self.is_observed = False self.logarithmetic = logarithmetic
def add_neighbor(self, node): self.neighbors[node.name] = node self.incoming_message[node.name] = constant_factor( self.alpha.variables, self.alpha.variable_values, self.alpha.factor_length, self.alpha.logarithmetic) self.outgoing_message[ node.name] = self.alpha - self.incoming_message[node.name] + 1
def init_messages(self): for (name, node) in self.neighbors.iteritems(): self.incoming_message[name] = constant_factor( self.alpha.variables, self.alpha.variable_values, self.alpha.factor_length, self.alpha.logarithmetic) self.outgoing_message[ name] = self.alpha + 1 - self.incoming_message[node.name]
def init_messages(self): for (name, node) in self.neighbors.iteritems(): self.incoming_message[name] = constant_factor( [name], {name: node.values}, len(node.values), self.factor.logarithmetic)
def add_neighbor(self, node, **kwargs): self.neighbors[node.name] = node self.incoming_message[node.name] = constant_factor( [node.name], {node.name: node.values}, len(node.values), self.factor.logarithmetic)