A hands-on workshop introducing how materials-science optimisation problems can be formulated and solved as QUBO (Quadratic Unconstrained Binary Optimisation) problems.
The tutorial is aimed primarily at researchers and students with a background in:
- quantum computing
- quantum annealing
- optimisation
- Ising/QUBO models
No prior experience in computational materials science is assumed.
The theory behind this tutorial is published here: https://doi.org/10.1063/5.0151346.
If you have questions regarding this tutorial please get in touch with: b.camino@ucl.ac.uk.
This tutorial introduces:
- binary optimisation and QUBO models
- constraints through penalty terms
- graph-based formulations
- classical simulated annealing with
neal - mapping simple atomistic materials problems onto QUBO formulations
The main running example is vacancies in graphene:
- building a graphene model
- constructing adjacency matrices
- defining vacancy variables
- enforcing fixed vacancy concentrations
- adding interaction terms
- solving the resulting QUBO
The tutorial also discusses:
- periodic boundary conditions
- supercells
- defect interactions
- extensions to dopants and alloys
The notebook covers:
- QUBO fundamentals
- Graph partitioning example
- Constraint construction
- Classical annealing with
neal - Vacancies in graphene
- Vacancy interactions
- Visualising periodic systems
- Optional challenge exercises
The notebook is designed to run directly in Google Colab.
- Open the notebook in Colab: https://colab.research.google.com/github/cmc-ucl/qubo-materials-tutorial/blob/main/QUBO_tutorial.ipynb
- Save your own copy: File → Save a copy in Drive
- Run the setup cells at the top of the notebook
- Execute cells sequentially
The notebook installs required packages automatically.
No quantum hardware access is required.
The tutorial can also be run locally using Python 3.
Recommended packages:
pip install pymatgen dimod dwave-neal networkx matplotlib ase
- pymatgen
- ase
- dimod
- dwave-neal
- networkx
- matplotlib
- numpy
The notebook includes exercises on:
- constraint construction
- graph interpretation
- vacancy optimisation
- neighbour interactions
- vacancy clustering
- sampler behaviour
- QUBO → Ising conversion
Most exercises are designed to be completed by modifying small sections of existing code.
By the end of the tutorial, participants should understand how to:
materials problem → binary variables → interaction model → QUBO formulation → sampler/annealer → candidate atomic configurations
The notebook primarily uses the classical simulated annealing sampler neal.
Sections discussing quantum annealers and D-Wave workflows are included for conceptual illustration and optional extension.
This tutorial is intended for educational and research use.