MQT ProblemSolver  A MQT tool for Solving Problems Using Quantum Computing
Project description
MQT ProblemSolver
MQT ProblemSolver is a framework to utilize quantum computing as a technology for users with little to no quantum computing knowledge. All necessary quantum parts are embedded by domain experts while the interfaces provided are similar to the ones classical solver provide:
When provided with a problem description, MQT ProblemSolver offers a selection of implemented quantum algorithms. The user just has to chose one and all further (quantum) calculation steps are encapsulated within MQT ProblemSolver. After the calculation finished, the respective solution is returned  again in the same format as classical solvers use.
In the current implementation, two case studies are conducted:
 A SAT Problem: Constraint Satisfaction Problem
 A Graphbased Optimization Problem: Travelling Salesman Problem
A SAT Problem: Constraint Satisfaction Problem
This exemplary implementation can be found in the CSP_example.ipynb Jupyter notebook.
Here, the solution to a Kakuro riddle with a 2x2 grid can be solved for arbitrary sums s0
to s3
:
MQT ProblemSolver will return valid values to a
, b
, c
, and d
if a solution exists.
A Graphbased Optimization Problem: Travelling Salesman Problem
This exemplary implementation can be found in the TSP_example.ipynb Jupyter notebook.
Here, the solution to a Travelling Salesman Problem with 4 cities can be solved for arbitrary distances dist_1_2
to dist_3_4
between the cities.
MQT ProblemSolver will return the shortest path visiting all cities as a list.
Satellite Mission Planning Problem
Additional to the two case studies, we provide a more complex example for the satellite mission planning problem. The goal is to maximize the accumulated values of all images taken by the satellite while it is often not possible to take all images since the satellite must rotate and adjust its optics.
In the following example, there are five tobecaptured locations which their assigned value.
PreCompilation
Every quantum computing application must be encoded into a quantum circuit and then compiled for a specific device. This lengthy compilation process is a key bottleneck and intensifies for recurring problemseach of which requires a new compilation run thus far.
Precompilation is a promising approach to overcome this bottleneck. Beginning with a problem class and suitable quantum algorithm, a predictive encoding scheme is applied to encode a representative problem instance into a generalpurpose quantum circuit for that problem class. Once the real problem instance is known, the previously constructed circuit only needs to be adjusted—with (nearly) no compilation necessary.
Following this approach, we provide a precompilation module that can be used to precompile QAOA circuits for the MaxCut problem.
Usage
MQT ProblemSolver is available via PyPI:
(venv) $ pip install mqt.problemsolver
Repository Structure
.
├── src
│ └── mqt
│ └── problemsolver
│ │ └── csp.py
│ │ └── tsp.py
│ └── satelitesolver
│ │ └── ...
│ └── precompilation
│ └── ...
└── notebooks
│ └── problemsolver
│ └── csp_example.ipynb
│ └── tsp_example.ipynb
│ └── satellitesolver
│ └── satellitesolver_example.ipynb
References
In case you are using MQT ProblemSolver in your work, we would be thankful if you referred to it by citing the following publication:
@INPROCEEDINGS{quetschlich2023mqtproblemsolver,
author = {N. Quetschlich and L. Burgholzer and R. Wille},
title = {{Towards an Automated Framework for Realizing Quantum Computing Solutions}},
booktitle = {International Symposium on MultipleValued Logic (ISMVL)},
year = {2023},
}
Project details
Release history Release notifications  RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for mqt.problemsolver0.2.0py3noneany.whl
Algorithm  Hash digest  

SHA256  e46d47c54b42fbcc3b367b6f9222a72aa77b35cc7c4088a3f2967800cb0b91dc 

MD5  73424235b996d0190145381314653119 

BLAKE2b256  37ebd845a98ce9caff4a7f2ab8e55eee528fb9d65cd3e9b34260bca6863404ff 