tpm
¶
Functions for manipulating transition probability matrices.
- pyphi.tpm.tpm_indices(tpm)¶
Return the indices of nodes in the TPM.
- pyphi.tpm.is_deterministic(tpm)¶
Return whether the TPM is deterministic.
- pyphi.tpm.is_state_by_state(tpm)¶
Return
True
iftpm
is in state-by-state form, otherwiseFalse
.
- pyphi.tpm.condition_tpm(tpm, fixed_nodes, state)¶
Return a TPM conditioned on the given fixed node indices, whose states are fixed according to the given state-tuple.
The dimensions of the new TPM that correspond to the fixed nodes are collapsed onto their state, making those dimensions singletons suitable for broadcasting. The number of dimensions of the conditioned TPM will be the same as the unconditioned TPM.
- pyphi.tpm.expand_tpm(tpm)¶
Broadcast a state-by-node TPM so that singleton dimensions are expanded over the full network.
- pyphi.tpm.marginalize_out(node_indices, tpm)¶
Marginalize out nodes from a TPM.
- Parameters
node_indices (list[int]) – The indices of nodes to be marginalized out.
tpm (np.ndarray) – The TPM to marginalize the node out of.
- Returns
A TPM with the same number of dimensions, with the nodes marginalized out.
- Return type
np.ndarray
- pyphi.tpm.infer_edge(tpm, a, b, contexts)¶
Infer the presence or absence of an edge from node A to node B.
Let \(S\) be the set of all nodes in a network. Let \(A' = S - \{A\}\). We call the state of \(A'\) the context \(C\) of \(A\). There is an edge from \(A\) to \(B\) if there exists any context \(C(A)\) such that \(\Pr(B \mid C(A), A = 0) \neq \Pr(B \mid C(A), A = 1)\).
- Parameters
tpm (np.ndarray) – The TPM in state-by-node, multidimensional form.
a (int) – The index of the putative source node.
b (int) – The index of the putative sink node.
- Returns
True
if the edge \(A \rightarrow B\) exists,False
otherwise.- Return type
bool
- pyphi.tpm.infer_cm(tpm)¶
Infer the connectivity matrix associated with a state-by-node TPM in multidimensional form.
- pyphi.tpm.reconstitute_tpm(subsystem)¶
Reconstitute the TPM of a subsystem using the individual node TPMs.
- pyphi.tpm.simulate(tpm, initial_state, timesteps, rng)¶
Simulate the dynamics of a system.
Generates a sequence of states using the TPM and a random number generator.
- Parameters
tpm (np.ndarray) – TPM to simulate.
initial_state (int) – The initial state of the simulation.
timesteps (int) – The number of timesteps to simulate.
rng (np.random.Generator) – The random number generator to use.
- Returns
a list of (decimally-indexed) states.
- Return type
list