pyphi.landscape#

Continuous-parameter analysis of IIT quantities over substrate space.

Every quantity PyPhi computes is a function of the substrate’s parameters (connection weights, TPM entries). This module evaluates those functions along one parameter axis: landscape_section() computes a system irreducibility analysis at every point of a 1-D grid and returns a tidy table that tracks not only φ but the identity of every discrete selection behind it (MIP partition, specified cause and effect states) and the selection margins; perturb() estimates local derivatives at a single point by central finite differences.

The φ landscape is piecewise-smooth: within a region where every selection picks the same winner (a selection regime), φ is a smooth function of the parameters, but the reported φₛ can jump where the MIP or a specified state switches. The regime column and LandscapeSection.boundaries locate those switches; Perturbation.same_regime flags a derivative estimate that straddles one. Because the raw φₛ jumps at MIP switches while the normalized value stays continuous, signed_phi and signed_normalized_phi are the better-behaved quantities for numerical work — the positive-part clamp makes phi exactly flat wherever the raw integration is negative.

A parameter axis is any callable mapping a float to a Substrate; weight_axis() builds one for the common case of varying a single connection weight of a build_substrate() substrate.

Functions

landscape_section(builder, state, grid, *[, ...])

Evaluate the system irreducibility analysis along a parameter grid.

perturb(builder, state, theta, *[, h, ...])

Estimate the local derivative of an IIT quantity at one point.

weight_axis(unit_functions, weights, index, ...)

Return a parameter axis varying one weight of a generated substrate.

Classes

LandscapeSection(df, sias, skipped)

A 1-D section of the φ landscape along one parameter axis.

Perturbation(theta, h, quantity, value, ...)

Local finite-difference behavior of one quantity at one point.