Monte Carlo Markov Chain Optimizer

Monte Carlo Markov Chain Optimizer

You define the problem. We do the optimization.

A novel, comprehensive, generic, and extensible Monte Carlo Markov Chain Optimization solution.


NOTE: We are working on MCMC2. All MCMC1 owners will get a free upgrade to the new version once it is released.


Documentation | Discord | Roadmap


Features

  • Supports various MCMC & RJ-MCMC optimizations. It supports seamless switching between different types of optimizers, e.g.,
    • simulated annealing (SA)
    • pareto simulated annealing (PSA)
    • alternating optimization-simulated annealing (AO-SA)
    • alternating optimization-pareto simulated annealing (AO-PSA)
    • and their reversible-jump Markov chain Monte Carlo (RJ-MCMC) versions.
  • Supports two types of weighting modules.
    • Auto weighting (by learning) during the optimization process.
    • Fixed weights specified by the designer.
  • Visual Formula. It supports constructing cost terms by using the visual formula without any coding. Thanks to Odin Inspector. We created a smart suggestion engine that offers the correct type of data for the visual formulas input, which facilitates formula specification.
  • Visual debugging. It supports running the optimizaton process iteratively to allow visual debugging. Each optimization iteration may take one move to modify the solution, followed by a cost evaluation (e.g., by calculating cost terms based on the specified formulas; by performing a simulation). This helps you visually inspect how the optimization process goes and debugs the formulation if needed.
  • Recording system. It allows saving the optimization results and loading them back for further investigations. It supports customized data; you don't even need to write any code for saving and loading.
  • Modularized design.The well-designed and extensible modules are based on the MCMC framework. We provide a set of handy core modules, such as the Dominator, Acceptor (Greedy, Probability Acceptor), Moves, Auto Weights modules, etc. These are standardized modules in MCMC optimization methods. Besides, you can also customize these modules according to specific problem needs.
  • Generic design. Using our generic design framework, you can easily define and solve your optimization problem.
  • Monitors. We provide a set of Monitors to inspect the optmization process in real time.
  • Detailed tutorials. Our framework comes with detailed demos that help you apply our framework easily to solve your optimization problems.
  • Support multiple platforms. Our framework is platform independent and works well on all platforms that run Unity.
  • Exporting as a prefab. Our optimizer is designed to run independently without using any Unity Game Object references. Once you configure the optimizer according to your optimization problem, you can make it as a prefab and apply it to your Unity application without further modifications. The optimizer will automatically hook the items up.
  • Full source code.
  • More...

Guides

Introduction

Quick Start

Modules

Release Notes

Videos


Advanced

Formulas

Custom Formula

Custom Evaluator

Custom Iteration

Custom Movement

Custom Item Parameter

Monitors

Undocumented Handy APIs