peguerosdc / unfolding_benchmark

Comparison of different Data Unfolding algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unfolding benchmark

Comparison of the following data unfolding algorithms applied to a High-Energy physics case:

  • Simulated Quantum Annealing: this algorithm is from the paper arXiv:1908.08519 and the implementation is adapted (after some refactoring) from its computational appendix /rdisipio/quantum_unfolding but using /shinmorino/sqaod as the simulator.

  • Simulated Annealing: this algorithm is based on the same idea as quantum annealing, but samples are taken from a classical Boltzmann distribution (hence it's not "quantum"). D-Wave's implementation is used as found in /dwavesystems/dimod.

  • SVD: this algorithm based on "Singular Value Decomposition" is proposed at arXiv:1112.2226 and the implementation is taken from ROOT's TSVDUnfold.

Additionaly, the Quantum Annealing algorithm can be run on real D-Wave's quantum computers (as adapted from the original code) and on AWS's backends.

Installation

All python dependencies are listed in requirements.txt so running pip install requirements.txt should be enough (if you find some are missing, please create an issue so I can include them). For details on what is required for each algorithm, please visit the corresponding repositories.

Additionally, to run the Simulated Quantum Annealing algorithm, follow sqaod's installation guide (or build it from source) as some C dependencies are required. Also, to run the SVD algorithm, follow the installation instructions at ROOT's website.

If you want to run the algorithms on a D-Wave's QPU, please follow the configuration instructions of the Ocean SDK. Instructions to use AWS backends can be found on the Amazon's documentation, but a brief summary is provided below.

Setting up AWS backends

  1. Create an AWS account

  2. Create an IAM user with AmazonBraketFullAccess according to "Managing access to Amazon Braket".

  3. Set up boto3:

    3.1. Perform the installation pip install boto3

    3.2. Create the configuration files with the access and secret keys of the user created in step 2.

  4. Install the amazon-braket-sdk: pip install amazon-braket-sdk

  5. Create an S3 bucket with a folder to store the results of the experiments.

  6. Test the amazon-braket-sdk with the test circuit in the "Usage" section using the S3 bucket created in step 5.

License

Licensed under the MIT License.

About

Comparison of different Data Unfolding algorithms

License:MIT License


Languages

Language:Jupyter Notebook 98.0%Language:Python 2.0%