https://github.com/njroussel/simulatedannealing
A C++ implementation of simulated annealing for the Ising perceptron.
https://github.com/njroussel/simulatedannealing
annealing cpp eigen jupyter mcmc mcmc-sampler pybind11 python
Last synced: 3 months ago
JSON representation
A C++ implementation of simulated annealing for the Ising perceptron.
- Host: GitHub
- URL: https://github.com/njroussel/simulatedannealing
- Owner: njroussel
- Created: 2017-12-01T14:40:54.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-21T08:56:04.000Z (over 7 years ago)
- Last Synced: 2025-01-20T00:31:32.862Z (5 months ago)
- Topics: annealing, cpp, eigen, jupyter, mcmc, mcmc-sampler, pybind11, python
- Language: Jupyter Notebook
- Homepage:
- Size: 10.4 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MCAA mini-project
## Table of Contents :
* [About](#about)
* [Documentation](#documentation)
* [Setup](#setup)
* [Building](#building)
* [Running](#running)## About ##
This repository contains the code for the [Markov Chains and Algorithimic Applications](http://ipgold.epfl.ch/~leveque/Markov_Chains/) 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](http://eigen.tuxfamily.org/index.php?title=Main_Page) for all linear algebra related operations.
This is then built into a shared library which is accessible as Python module thanks to [Pybind11](https://github.com/pybind/pybind11).
Finally a [Jupyter Notebook](http://jupyter.org/) is used to run the previous Python code.### Building
On a Linux or equivalent system using gcc, you can simply:
```
git clone [email protected]: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.