
Figure 1
Example of a fully connected pairwise Ising model with positive and negative couplings. Each spin si (circle) can take one of two states (black or white, corresponding to –1 and 1) and is connected to every other spin in the system with a positive (red) or negative (blue) coupling. These states could describe the on-off patterns of firing in neurons, the orientation of spins in a material, or if each spin is no longer binary the arrangement of letters in a word (a Potts model).

Figure 2
Brief summary of ConIII architecture. The principal modules are solvers.py, samplers.py, and utils.py. The module solvers.py contains classes based on Solver that each implement a different algorithm for solving the relevant inverse maxent problem accessible through the method Solver.solve(). The samplers.py module contains the Metropolis algorithm for Monte Carlo Markov Chain sampling and will support other samplers in future versions (gray font) including Wolff sampling, Swendsen-Wang sampling, and parallel tempering. The utils.py module contains supporting functions for the other modules such as the few examples listed. ConIII’s modularized structure ensures that contributed algorithms can be appended independently of existing code.
