Skip to content

Coherent Ising Machine implementation, simulation, Python codes for MC simulation

Notifications You must be signed in to change notification settings

gautham-umasankar/Ising_model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Ising Machines

This project is about Ising Machines, which are programs/devices which settle naturally to the ground state of a given Ising Hamiltonian:

Many NP-Complete problems like Number Partioning and the Max-cut problem can be reframed into an Ising Hamiltonian which we can optimize. We attempt to create different Ising Machines and benchmark them versus classical heuristic methods like Metropolis Monte-Carlo (MC) Sampling Methods. At present, we are close to creating a Coherent Ising Machine. We have also worked on MC Sampling (Python Code for the Number Partioning (NP-complete) and the Max-cut (NP-Complete) Problems) and an initial attempt at using GPUs for the same.

The details of the Ising Machines/ simulations/ heuristics that have been implemented so far is as follows:

Coherent Ising Machines

The first physical Ising Machine we are implementing is a Coherent Ising Machine. We implement a setup along the lines of the work done in this paper by Bohm. et al.. We use an Opto-Electronic Oscillator (OEO), whose state naturally settles at or very near the optimum solution to the problem. Our Repository contains Python code for our simulation of the experiment. It also contains C-code which was used to program the FPGA used in our experimental setup.

Heuristics based on the Monte Carlo Metropolis Method

Python code was written to simulate the thermodynamics of an Ising Hamiltonian. With different techniques like simulated annealing, we can make the system settle very close to the optimum. More details are within the folders.

About

Coherent Ising Machine implementation, simulation, Python codes for MC simulation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published