coniii.models module

Maximum-entropy model classes.

A Model bundles a Hamiltonian (the energy / observable functions) with a sampler, providing a single object that can evaluate energies and draw samples for a given set of multipliers. The solvers in coniii.solvers construct a model internally; users can also instantiate one directly to sample from a known model.

Public API (see __all__)

Model

Base class outlining the model interface.

Ising (alias PairwiseMaxent)

Pairwise maximum-entropy (Ising) model.

Triplet

Maxent model with third-order interactions.

Potts3

Three-state Potts model.

class coniii.models.Model(multipliers, rng=None, verbose=False)[source]

Bases: object

Basic model class outline.

setup_sampler(sample_method='metropolis', sample_size=1000, sampler_kwargs={})[source]

Instantiate sampler class object. Uses self.rng as the random number generator.

Parameters:
  • sample_method (str, 'metropolis') – ‘metropolis’

  • sample_size (int, 1000)

  • sampler_kwargs (dict, {}) – Kwargs that can be passed into the initialization function for the sampler.

set_rng(rng)[source]

Replace random number generator.

Parameters:

rng (np.random.RandomState)

generate_sample(n_iters, burn_in, multipliers=None, sample_size=None, sample_method=None, parallel=True, generate_kwargs={})[source]

Wrapper around generate_sample() generate_sample_parallel() methods in samplers.

Samples are saved to self.sample.

Parameters:
  • n_iters (int)

  • burn_in (int)

  • multipliers (ndarray, None)

  • sample_size (int, None)

  • sample_method (str, None)

  • parallel (bool, True)

  • generate_kwargs (dict, {})

class coniii.models.Ising(multipliers, rng=None, n_cpus=None, verbose=False)[source]

Bases: Model

Ising model parameterized by fields and couplings.

set_multipliers(multipliers)[source]

Set multipliers to a new value. Need to redefine some functions that rely on copy of self.multipliers.

coniii.models.PairwiseMaxent

alias of Ising

class coniii.models.Triplet(multipliers, rng=None, n_cpus=None, verbose=False)[source]

Bases: Model

Third order maxent model constraining means, pairwise correlations, and triplet correlations.

set_multipliers(multipliers)[source]

Set multipliers to a new value. Need to redefine some functions that rely on copy of self.multipliers.

class coniii.models.Potts3(multipliers, rng=None, n_cpus=None, verbose=False)[source]

Bases: Model

Three-state spin model constraining means and pairwise correlations.

set_multipliers(multipliers)[source]

Set multipliers to a new value. Need to redefine some functions that rely on copy of self.multipliers.