Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
8d71879
🎨 adjusted evaluations
nquetschlich Apr 14, 2023
528af87
🎨 improved evaluations
nquetschlich Apr 17, 2023
d56a2c1
🐛 adjusted the factors
nquetschlich Apr 17, 2023
f513b66
🎨 falsely also the mixer layer got multiplied with a factor, this is …
nquetschlich Apr 17, 2023
f9a4354
🎨 readjusted the notebooks
nquetschlich Apr 19, 2023
cae22ed
🚨
nquetschlich Apr 19, 2023
57859f4
Adds Satellite Mission Planning Problem Solver (#32)
nquetschlich Apr 24, 2023
381b10e
🎨 improved code structure
nquetschlich Apr 24, 2023
39ed755
🎨 made the evaluation more consistent
nquetschlich Apr 24, 2023
c2783b1
🎨 renamed the notebook for consistency
nquetschlich Apr 24, 2023
22029b0
🎨 restructured notebooks
nquetschlich Apr 24, 2023
fd7b5ff
🐛 fixed missing factor
nquetschlich Apr 24, 2023
40b3388
🎨 improved notebooks and plots
nquetschlich Apr 24, 2023
f907a20
🎨 new results
nquetschlich Apr 24, 2023
2fe40cb
🎨 added new used results for the paper
nquetschlich Apr 26, 2023
d07f3fd
🎨 made variable naming more consistent
nquetschlich Apr 26, 2023
4ff73ad
🎨 improved variable naming
nquetschlich Apr 26, 2023
9a0bb72
🎨 adjusted the notebook structure
nquetschlich May 4, 2023
f1283e6
🎨 pre-commit fixes
pre-commit-ci[bot] May 4, 2023
6e59ce2
💡 adjusted the readme
nquetschlich May 4, 2023
03a066b
🚚 renamed notebooks
nquetschlich May 4, 2023
95c4c6b
🚚 renamed notebooks
nquetschlich May 4, 2023
24b012b
🍱 added an image file
nquetschlich May 4, 2023
e8f9180
Merge remote-tracking branch 'origin/qce_improvements' into qce_impro…
nquetschlich May 4, 2023
e0021a4
🎨 pre-commit fixes
pre-commit-ci[bot] May 4, 2023
6d9c260
🚨
nquetschlich May 4, 2023
cda9613
Merge remote-tracking branch 'origin/qce_improvements' into qce_impro…
nquetschlich May 4, 2023
e500dd9
🚨
nquetschlich May 4, 2023
6cd5148
🎨 pre-commit fixes
pre-commit-ci[bot] May 4, 2023
68de7c9
🎨 moved result csv files and adjusted evaluation notebooks
nquetschlich May 5, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,4 @@ repos:
- python_tsp
- networkx
- mqt.ddsim
- pytest
49 changes: 41 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ In the current implementation, two case studies are conducted:
1. A SAT Problem: Constraint Satisfaction Problem
2. A Graph-based Optimization Problem: Travelling Salesman Problem

# A SAT Problem: Constraint Satisfaction Problem
## A SAT Problem: Constraint Satisfaction Problem

This exemplary implementation can be found in the [CSP_example.ipynb](src/mqt/problemsolver/csp_example.ipynb) Jupyter notebook.
This exemplary implementation can be found in the [CSP_example.ipynb](notebooks/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`:

<p align="center">
Expand All @@ -40,9 +40,9 @@ Here, the solution to a Kakuro riddle with a 2x2 grid can be solved for arbitrar

MQT ProblemSolver will return valid values to `a`, `b`, `c`, and `d` if a solution exists.

# A Graph-based Optimization Problem: Travelling Salesman Problem
## A Graph-based Optimization Problem: Travelling Salesman Problem

This exemplary implementation can be found in the [TSP_example.ipynb](src/mqt/problemsolver/tsp_example.ipynb) Jupyter notebook.
This exemplary implementation can be found in the [TSP_example.ipynb](notebooks/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.

<p align="center">
Expand All @@ -51,6 +51,33 @@ Here, the solution to a Travelling Salesman Problem with 4 cities can be solved

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 to-be-captured locations which their assigned value.

<p align="center">
<img src="img/satellite_mission_planning_problem.png" height=200px>
</p>

# Pre-Compilation

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 problems---each of which requires
a new compilation run thus far.

Pre-compilation 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 general-purpose 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 pre-compilation module that can be used to precompile QAOA circuits
for the MaxCut problem.

# Usage

MQT ProblemSolver is available via [PyPI](https://pypi.org/project/mqt.problemsolver/):
Expand All @@ -66,12 +93,18 @@ MQT ProblemSolver is available via [PyPI](https://pypi.org/project/mqt.problemso
├── src
│ └── mqt
│ └── problemsolver
│ └── csp.py
│ │ └── csp.py
│ │ └── tsp.py
│ └── satelitesolver
│ │ └── ...
│ └── precompilation
│ └── ...
└── notebooks
│ └── problemsolver
│ └── csp_example.ipynb
│ └── tsp.py
│ └── tsp_example.ipynb
└── tests
└── ...
└── satellitesolver
└── satellitesolver_example.ipynb
```

# References
Expand Down
Loading