Stochastic Gács–Körner Common Information

The stochastic Gács–Körner common information [KASK22] is the maximum \(I(X_i ; Z)\) over stochastic variables \(Z\) satisfying \(p(Z \mid X_i) = p(Z \mid X_j)\) for all jointly occurring \((X_i, X_j)\). It relaxes the deterministic common variable of the Gács-Körner Common Information.

In [1]: from dit.multivariate import stochastic_gk_common_information

In [2]: from dit.example_dists import Xor

In [3]: stochastic_gk_common_information(Xor(), niter=4)
Out[3]: 5.336324428506729e-05

API

stochastic_gk_common_information(dist, rvs=None, crvs=None, niter=None, maxiter=1000, polish=1e-06, bound=None)[source]

Compute the stochastic Gacs-Korner common information of dist. This is the maximum I(X_i; Z) over stochastic variables Z satisfying p(Z|X_i) = p(Z|X_j) for all jointly occurring (X_i, X_j). When Z is restricted to deterministic functions, this recovers the classical Gacs-Korner common information.

Parameters:
  • dist (Distribution) – The distribution from which the stochastic Gacs-Korner common information is computed.

  • rvs (list, None) – A list of lists. Each inner list specifies the indexes of the random variables used to calculate the common information. If None, then it is calculated over all random variables, which is equivalent to passing rvs=dist.rvs.

  • crvs (list, None) – A single list of indexes specifying the random variables to condition on. If None, then no variables are conditioned on.

Returns:

SGK – The stochastic Gacs-Korner common information.

Return type:

float