njroussel / SimulatedAnnealing

A C++ implementation of simulated annealing for the Ising perceptron.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MCAA mini-project

Table of Contents :

About

This repository contains the code for the Markov Chains and Algorithimic Applications class given at EPFL. In short, it is an implementation of simulated annealing for the Ising perceptron.

Documentation

Code is directly commented, there is no additional documentation. The report and its figures are in the report folder.

Setup

The code base is written in C++ using Eigen for all linear algebra related operations. This is then built into a shared library which is accessible as Python module thanks to Pybind11. Finally a Jupyter Notebook is used to run the previous Python code.

Building

On a Linux or equivalent system using gcc, you can simply:

git clone git@github.com:njroussel/MCAA.git --recursive
pip install ./MCAA

The whole build system uses CMake, it is therefore a requirement for building and running this project.

Note that the Jupyter notebooks will need specific packages which can be installed through pip.

Running

In the python folder, there are several notebooks which contain examples of how to run code. They should already have the cells rendered, you can also simply just run them again if you change their configuration.

About

A C++ implementation of simulated annealing for the Ising perceptron.


Languages

Language:Jupyter Notebook 97.0%Language:C++ 1.8%Language:Python 0.6%Language:TeX 0.6%Language:CMake 0.1%