Fast Potts Models in Python¶
PottsPlayground is a Python package for constructing and simulating combinatorial optimization problems represented as Potts Models. It’s purpose is twofold: providing an easily readable interface for constructing Potts models, and providing a fast C++/CUDA backend for annealing or sampling from models.
Several example combinatorial problems are built-in, ranging from simple graph coloring to logic element placement for Ice40 FPGAs. There are also methods for converting any Potts model into an Ising model, and for creating minor-embedded representations of Ising models.
- Getting Started
- Potts Model Constructor
PottsModelPottsModel.AddBias()PottsModel.AddKernel()PottsModel.AddSpins()PottsModel.AddWeight()PottsModel.Compile()PottsModel.EnergyBands()PottsModel.EvalCost()PottsModel.EvalDDE()PottsModel.EvalDE()PottsModel.EvalPE()PottsModel.GetSpinBias()PottsModel.GetSpinFromState()PottsModel.IndexOf()PottsModel.InitKernelManager()PottsModel.ListSpins()PottsModel.PinSpin()PottsModel.SetBias()PottsModel.SetSpinInState()PottsModel.SpinSize()PottsModel.TotalWeight()PottsModel.__init__()
- Built-in Tasks
- Model Converters
- Running a Model
- Annealing Schedules
- Weight Kernels