This repo aims at collecting various annealing algorithms for future use. Each algorithm should ideally consist of:
- A brief description of the algorithm that explains the main idea
- Notes, including strengths/weaknesses analysis and, preferably, executable code
- Questions
- References
Some of the algorithms that are planned to be curated:
- Simulated Annealing (SA)
- Simulated Quantum Annealing (SQA)
- Thermodynamic Simulated Annealing (TSA)
- Digital Annealing (DA)
- Momentum Annealing (MA)
- Simulated Bifurcation Machine (SBM)
- Parallel Tempering (PT)
Notes:
- To investigate the inner workings of each algorithm beyond treating them as blackboxes, it is paramount for us to have access to the runtime states, energies and parameters. Therefore, a piece of working (not necessarily high-performing) code that is easily modifiable is very important for every algorithm.
- To benchmark the performance of each algorithm, (i) Number Partitioning and (ii) Max-Cut problems are the most suitable for the rich literatures and natural mapping to Ising (QUBO) formulation. For the best practices behind comparing optimization algorithms, see: https://doi.org/10.1007/s11081-017-9366-1.
- Data sets for Max-Cut: http://biqmac.uni-klu.ac.at/biqmaclib.html
- Shall we wish to study the dynamics of state evolution in a black box annealer, we can "quench" the system by abruptly lowering the temperature to 0 in the middle of annealing, provided that we have control over the full annealing process.