TSE Complexity
The Tononi-Sporns-Edelmans (TSE) complexity [TSE94] is a complexity measure for distributions. It is designed so that it maximized by distributions where small subsets of random variables are loosely coupled but the overall distribution is tightly coupled.
Two distributions which might be considered tightly coupled are the “giant bit” and the “parity” distributions:
In [1]: from dit.multivariate import tse_complexity
In [2]: from dit.example_dists import Xor
In [3]: d1 = Xor()
In [4]: tse_complexity(d1)
Out[4]: 1.0
In [5]: d2 = dit.Distribution(['000', '111'], [1/2, 1/2])
In [6]: tse_complexity(d2)
Out[6]: 1.0
The TSE Complexity assigns them both a value of \(1.0\) bits, which is the maximal value the TSE takes over trivariate, binary alphabet distributions.
API
- tse_complexity(dist, rvs=None, crvs=None)[source]
Calculates the TSE complexity.
- Parameters:
dist (Distribution) – The distribution from which the TSE complexity is calculated.
rvs (list, None) – The indexes of the random variable used to calculate the TSE complexity between. If None, then the TSE complexity is calculated over all random variables.
crvs (list, None) – The indexes of the random variables to condition on. If None, then no variables are condition on.
- Returns:
TSE – The TSE complexity.
- Return type:
- Raises:
ditException – Raised if dist is not a joint distribution or if rvs or crvs contain non-existant random variables.