Skip to content

SECQUOIA/continuous-CIM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This repository contains an implementation of the continuous Coherent Ising Machine (CIM) (or Coherent Continuous Variable Machine) described in Khosravi et al., 2022. In contrast to other reference implementations of the CIM, this implementation is specifically designed to facilitate modular evaluation of different feedback computations. Most of the code resides in the src directory, while the scripts and instances directories contain additional scripts/instances required to replicate the results in:

R. A. Brown, D. Venturelli, M. Pavone, and D. E. Bernal Neira, "Accelerating Continuous Variable Coherent Ising Machines via Momentum"

For the most part, parameters of the dynamical systems follow the notation in Khosravi et al. The main exception is the user-provided opt attribute representing the feedback calculation. Mirroring the PyTorch API, the opt.params_grad attribute will be written with the gradient of the objective, and opt should provide a get_step method (using opt.params_grad and potentially updating the internal state of the optimizer). opt should additionally provide a zero_grad method to reset the gradients in the optimizer. src/optimizers provides reference implementations of stochastic gradient descent, RMSProp, and Adam optimizers (largely derived from their PyTorch implementations).

A notebook is provided in notebooks/demo.ipynb to demonstrate how to configure and run the solver.

Installation

Package dependencies are listed in requirements.txt. We use the python package maggot to log our experiments. Due to version incompatibility, this package may need to be installed from source, with its requirements.txt file edited to remove specific version numbers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published