Represents a node in a network. Each node has a unique index, its position in the network’s list of nodes.
Node(tpm, cm, index, state, label)¶
A node in a subsystem.
- tpm (np.ndarray) – The TPM of the subsystem.
- cm (np.ndarray) – The CM of the subsystem.
- index (int) – The node’s index in the network.
- state (int) – The state of this node.
- label (str) – An optional label for the node.
np.ndarray – The node TPM is an array with shape 2^(n_inputs)-by-2 matrix, where node.tpm[i][j] gives the marginal probability that the node is in state j at t+1 if the state of its inputs is i at t. If the node is a single element with a cut selfloop, (i.e. it has no inputs), the tpm is simply its unconstrained effect repertoire.
The TPM of this node containing only the ‘OFF’ probabilities.
The TPM of this node containing only the ‘ON’ probabilities.
The set of nodes with connections to this node.
The set of nodes this node has connections to.
Return whether this node equals the other object.
Two nodes are equal if they belong to the same subsystem and have the same index (their TPMs must be the same in that case, so this method doesn’t need to check TPM equality).
Labels are for display only, so two equal nodes may have different labels.
Return a JSON-serializable representation.
Default label for a node.
Default labels for serveral nodes.
generate_nodes(tpm, cm, network_state, labels=None)¶
Nodeobjects for a subsystem.
- tpm (np.ndarray) – The system’s TPM
- cm (np.ndarray) – The corresponding CM.
- network_state (tuple) – The state of the network.
labels (tuple[str]) – Textual labels for each node.
The nodes of the system.
Broadcast a node TPM over the full network.
This is different from broadcasting the TPM of a full system since the last dimension (containing the state of the node) contains only the probability of this node being on, rather than the probabilities for each node.