pyphi.cost.AnalysisEstimate#

class pyphi.cost.AnalysisEstimate(n_units, state_space_size, compute, system_partitions, specified_state_evaluations, mechanisms, purview_evaluations, mechanism_partition_sweeps, relations_closed_form, possible_distinctions, possible_relations, capped)[source]#

Bases: Displayable, ToPandasMixin

The workload of a single-system analysis, before running it.

Work axes are counted by driving the analysis’s own enumeration machinery under the active configuration. None marks an axis outside the estimate’s scope: excluded by compute, not applicable under the active configuration, or not reached before the work budget (capped=True).

Variables:
  • n_units (int) – Number of units in the candidate system.

  • state_space_size (int) – Product of the candidate units’ alphabet sizes — the scale of one repertoire evaluation. Reported as a weight, never multiplied into the counts.

  • compute (str) – "full", "sia", "ces", or "distinctions".

  • system_partitions (int or None) – Partitions the system irreducibility analysis sweeps, under the active system partition scheme. Counted for a "ces" analysis, whose cause-effect structure embeds a system irreducibility analysis.

  • specified_state_evaluations (int or None) – Forward-repertoire evaluations the specified-state search performs (Albantakis et al. 2023, Eqs. 12-13). The search maximizes intrinsic information over the whole system as both mechanism and purview, so it evaluates one repertoire per system state per direction: twice the state space, each evaluation over an array of that same size. Unlike the other axes this one grows with the size of the system rather than of any mechanism. Counted for a "sia", "ces", or full analysis. A "distinctions" analysis performs no search, though filtering those distinctions for congruence (distinctions() with congruent=True) performs one.

  • mechanisms (int or None) – Candidate mechanisms: 2ⁿ − 1 for n units.

  • purview_evaluations (int or None) – Connectivity-pruned (mechanism, direction, purview) triples — the repertoire-computation axis.

  • mechanism_partition_sweeps (int or None) – Mechanism partitions summed over all counted triples, under the active mechanism partition scheme — the dominant cost of unfolding a cause-effect structure.

  • relations_closed_form (bool or None) – Whether the active relation backend computes relations in closed form (ANALYTICAL) rather than by enumeration (CONCRETE). None when relations are outside the estimate’s scope.

  • possible_distinctions (int or None) – Candidate distinctions (2ⁿ − 1) — the size ceiling of the cause-effect structure. Present only for binary units.

  • possible_relations (int or None) – Candidate relations (2^(2ⁿ−1) − 1) — the size ceiling of the relation set, and the enumeration worst case when relations_closed_form is False. Present only for binary units.

  • capped (bool) – The counting walk hit its work budget; walked counts are lower bounds (rendered with a ≥ qualifier) and axes never reached are None.

Parameters:
  • n_units (int)

  • state_space_size (int)

  • compute (str)

  • system_partitions (int | None)

  • specified_state_evaluations (int | None)

  • mechanisms (int | None)

  • purview_evaluations (int | None)

  • mechanism_partition_sweeps (int | None)

  • relations_closed_form (bool | None)

  • possible_distinctions (int | None)

  • possible_relations (int | None)

  • capped (bool)

Notes

For an estimate made under an earlier version of IIT (see Reproduce results from earlier versions of IIT): IIT 3.0 has no specified state and its cause-effect structure is the bare set of distinctions, so under it specified_state_evaluations, relations_closed_form, possible_distinctions, and possible_relations are None, and system_partitions is not counted for a "ces" analysis.

property distinction_units: int | None#

Work units on the distinction axis, or None if not counted.

The weighted sum mechanism_workloads() charges — purview evaluations at PURVIEW_EVALUATION_UNITS each plus every mechanism partition — so runtime_seconds() applies to it. The system-partition axis is excluded: its cost per partition has not been calibrated against this unit.