# Basic UsageΒΆ

Let’s make a simple 3-node network and compute its $$\Phi$$.

To make a network, we need a TPM, current state, past state, and optionally a connectivity matrix. The TPM can be in more than one form; see the documentation for pyphi.network. Here we’ll use the 2-dimensional state-by-node form.

>>> import pyphi
>>> import numpy as np
>>> tpm = np.array([[0, 0, 0], [0, 0, 1], [1, 0, 1], [1, 0, 0], [1, 1, 0],
...                 [1, 1, 1], [1, 1, 1], [1, 1, 0]])


The current and past states should be $$n$$-tuples, where $$n$$ is the number of nodes in the network, where the $$i^{\textrm{th}}$$ element is the state of the $$i^{\textrm{th}}$$ node in the network.

>>> current_state = (1, 0, 0)
>>> past_state = (1, 1, 0)


The connectivity matrix is a square matrix such that the $$i,j^{\textrm{th}}$$ entry is 1 if there is a connection from node $$i$$ to node $$j$$, and 0 otherwise.

>>> cm = np.array([[0, 0, 1], [1, 0, 1], [1, 1, 0]])


Now we construct the network itself with the arguments we just created:

>>> network = pyphi.Network(tpm, current_state, past_state,
...                         connectivity_matrix=cm)


The next step is to define a subsystem for which we want to evaluate $$\Phi$$. To make a subsystem, we need the indices of subset of nodes which should be included in it and the network that the subsystem belongs to.

In this case, we want the $$\Phi$$ of the entire network, so we simply include every node in the network in our subsystem:

>>> subsystem = pyphi.Subsystem(range(network.size), network)


Now we use pyphi.compute.big_phi() function to compute the $$\Phi$$ of our subsystem:

>>> phi = pyphi.compute.big_phi(subsystem)
>>> phi
2.312496


If we want to take a deeper look at the integrated-information-theoretic properties of our network, we can access all the intermediate quantities and structures that are calculated in the course of arriving at a final $$\Phi$$ value by using pyphi.compute.big_mip(). This returns a deeply nested object, BigMip, that contains data about the subsystem’s constellation of concepts, cause and effect repertoires, etc.

>>> mip = pyphi.compute.big_mip(subsystem)


For instance, we can see that this network has 4 concepts:

>>> len(mip.unpartitioned_constellation)
4


The documentation for pyphi.models contains description of these structures.

Note

The network and subsystem discussed here are returned by the pyphi.examples.basic_network() and pyphi.examples.basic_subsystem() functions.