Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
440 changes: 337 additions & 103 deletions ACM_Plotting.ipynb

Large diffs are not rendered by default.

330 changes: 330 additions & 0 deletions Examples.ipynb

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,24 @@
## Overview
The code in this repository implements the algorithms and simulations in [Approaches to Constrained Quantum Approximate Optimization](https://arxiv.org/abs/2010.06660). The `ansatz\` directory contains multiple files which implement different variational ansatzes for solving the Maximum Independent Set (MIS) problem. The functions for executing the variational optimizations are in `mis.py`, each different ansatz has its own function and take a target graph as input.

## Getting Started
The code in this repo can be installed as a Python module by following the instructions below. Either Python 3.6 or a newer version should be used. We highly recommend the use of Python virtual environments to simplify the installation experience and reduce the chance of package conflicts.

```bash
git clone https://github.com/teaguetomesh/quantum-constrained-optimization.git
python3 -m venv your_new_venv # create a new Python virtual environment
source your_new_venv/bin/activate # activate that virtual environment
cd quantum-constrained-optimization
pip install -r requirements.txt # install the package dependecies
pip install -e . # install the qcopt package
```

After the `qcopt` package has been installed it can be imported into your Python scripts via:

```python
import qcopt
```

## Citation
If you use the code in this repository, please cite our paper:

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
N14_d3_graphs, G10
Optimal MIS is 6
Optimal MIS:
01010000101011, valid: True
10010000011011, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
N14_d3_graphs, G11
Optimal MIS is 6
Optimal MIS:
00010110011001, valid: True
00100001100111, valid: True
01010110011000, valid: True
01011110001000, valid: True
10100001100110, valid: True
10101001100010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G12
Optimal MIS is 6
Optimal MIS:
00011101000110, valid: True
00011111000010, valid: True
01100000111001, valid: True
10100000111001, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
N14_d3_graphs, G13
Optimal MIS is 6
Optimal MIS:
01110101001000, valid: True
01111101000000, valid: True
10000010010111, valid: True
10000010110011, valid: True
10110100001010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
N14_d3_graphs, G14
Optimal MIS is 6
Optimal MIS:
00101101100001, valid: True
01000010001111, valid: True
01000010011110, valid: True
01010010001110, valid: True
10101100110000, valid: True
10101101100000, valid: True
10110101100000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
N14_d3_graphs, G15
Optimal MIS is 6
Optimal MIS:
00100110011010, valid: True
00100110011100, valid: True
01000110011010, valid: True
01011001100001, valid: True
10001001100101, valid: True
10011001100001, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
N14_d3_graphs, G16
Optimal MIS is 5
Optimal MIS:
00001000001111, valid: True
00001000100111, valid: True
00001010000111, valid: True
00001100001011, valid: True
00001100100011, valid: True
00010101011000, valid: True
00010101110000, valid: True
00100101100001, valid: True
00101000100101, valid: True
00101010000101, valid: True
00101100100001, valid: True
00110101100000, valid: True
01000101011000, valid: True
01001000001110, valid: True
01001000011100, valid: True
01001010000110, valid: True
01001010010100, valid: True
01001100001010, valid: True
01001100011000, valid: True
01101010000100, valid: True
10010001011000, valid: True
10010001110000, valid: True
10010011010000, valid: True
10100001100001, valid: True
10100011000001, valid: True
10110001100000, valid: True
10110011000000, valid: True
11000001011000, valid: True
11000011010000, valid: True
11100011000000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
N14_d3_graphs, G17
Optimal MIS is 6
Optimal MIS:
00001000101111, valid: True
00001001111100, valid: True
00001101110100, valid: True
00110111010000, valid: True
01000001111100, valid: True
01110011010000, valid: True
10001000101011, valid: True
10110010000011, valid: True
10110110000001, valid: True
11110010000010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
N14_d3_graphs, G18
Optimal MIS is 6
Optimal MIS:
00000101101101, valid: True
00100101101100, valid: True
01011010010010, valid: True
01111010010000, valid: True
10000101001101, valid: True
11011000010010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G19
Optimal MIS is 6
Optimal MIS:
00010101000111, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
N14_d3_graphs, G1
Optimal MIS is 6
Optimal MIS:
00101000110011, valid: True
00101000111001, valid: True
00111000111000, valid: True
01100000010111, valid: True
11000011000110, valid: True
11000111000100, valid: True
11010101000100, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G20
Optimal MIS is 6
Optimal MIS:
00110101001010, valid: True
01001000110101, valid: True
01001010100101, valid: True
10110101001000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G21
Optimal MIS is 6
Optimal MIS:
00111110000001, valid: True
00111111000000, valid: True
01000000111110, valid: True
10000000111110, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G22
Optimal MIS is 6
Optimal MIS:
00100001100111, valid: True
01011010011000, valid: True
01011100011000, valid: True
10100001100110, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G23
Optimal MIS is 6
Optimal MIS:
00100100100111, valid: True
00110100100101, valid: True
01001011011000, valid: True
11001010011000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
N14_d3_graphs, G24
Optimal MIS is 6
Optimal MIS:
01011100110000, valid: True
10000010101110, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G25
Optimal MIS is 6
Optimal MIS:
00001111010001, valid: True
00001111011000, valid: True
10110000100110, valid: True
11110000100010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
N14_d3_graphs, G26
Optimal MIS is 6
Optimal MIS:
00101100010011, valid: True
00101100110010, valid: True
00101110110000, valid: True
01001010011100, valid: True
01010011001100, valid: True
11010001001001, valid: True
11010001001100, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
N14_d3_graphs, G27
Optimal MIS is 6
Optimal MIS:
00001011100101, valid: True
01001001011010, valid: True
01010100011010, valid: True
01100100011010, valid: True
01101000011010, valid: True
10000011100101, valid: True
10010010100101, valid: True
10010100100101, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
N14_d3_graphs, G28
Optimal MIS is 6
Optimal MIS:
00100111010010, valid: True
00101110010010, valid: True
01101000110010, valid: True
10010000101101, valid: True
11000000101101, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
N14_d3_graphs, G29
Optimal MIS is 6
Optimal MIS:
00011010110100, valid: True
01011100100010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G2
Optimal MIS is 6
Optimal MIS:
01011010000101, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
N14_d3_graphs, G30
Optimal MIS is 5
Optimal MIS:
00000101011010, valid: True
00000110011100, valid: True
00000111011000, valid: True
00001001011010, valid: True
00010001001011, valid: True
00010001100011, valid: True
00010010001101, valid: True
00010010100101, valid: True
00010011001001, valid: True
00010011100001, valid: True
00011001001010, valid: True
00011001100010, valid: True
00100010100101, valid: True
00100110010100, valid: True
00100110100100, valid: True
01010000100011, valid: True
01010010100001, valid: True
01011000100010, valid: True
01100000100011, valid: True
01100010100001, valid: True
01100100010010, valid: True
01100100100010, valid: True
01100110010000, valid: True
01100110100000, valid: True
01101000010010, valid: True
01101000100010, valid: True
10000100011100, valid: True
10000101011000, valid: True
10001000011100, valid: True
10001001011000, valid: True
10010000001101, valid: True
10010001001001, valid: True
10011000001100, valid: True
10011001001000, valid: True
10100100010100, valid: True
10101000010100, valid: True
11100100010000, valid: True
11101000010000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G31
Optimal MIS is 6
Optimal MIS:
00010001101110, valid: True
00010100101110, valid: True
11101000010001, valid: True
11101010010000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G32
Optimal MIS is 6
Optimal MIS:
11011110000000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
N14_d3_graphs, G33
Optimal MIS is 5
Optimal MIS:
00000110110010, valid: True
00000111010010, valid: True
00001000010111, valid: True
00001000110011, valid: True
00001001010011, valid: True
00001100110010, valid: True
00001101010010, valid: True
00100111000010, valid: True
00100111001000, valid: True
00101000000111, valid: True
00101001000011, valid: True
00101101000010, valid: True
00110010001100, valid: True
00110011001000, valid: True
01001000010101, valid: True
01001000110001, valid: True
01001100110000, valid: True
01011000010100, valid: True
01011000110000, valid: True
01100000001101, valid: True
01101000000101, valid: True
01110000001100, valid: True
01111000000100, valid: True
10000110100010, valid: True
10000110101000, valid: True
10000111000010, valid: True
10000111001000, valid: True
10010010001100, valid: True
10010010101000, valid: True
10010011001000, valid: True
11000000001101, valid: True
11000000101001, valid: True
11000100101000, valid: True
11010000001100, valid: True
11010000101000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G34
Optimal MIS is 6
Optimal MIS:
01010101010010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
N14_d3_graphs, G35
Optimal MIS is 6
Optimal MIS:
01010010000111, valid: True
01011010000101, valid: True
01011010001100, valid: True
01011100000101, valid: True
10100001110010, valid: True
10100001111000, valid: True
10100101110000, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G36
Optimal MIS is 6
Optimal MIS:
00100111000011, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
N14_d3_graphs, G37
Optimal MIS is 6
Optimal MIS:
01000011001101, valid: True
01010011001001, valid: True
01110001001001, valid: True
01110001010001, valid: True
10001100100110, valid: True
10001100110010, valid: True
10001110100100, valid: True
10101000110010, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
N14_d3_graphs, G38
Optimal MIS is 6
Optimal MIS:
01010000110101, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
N14_d3_graphs, G39
Optimal MIS is 6
Optimal MIS:
00001111001001, valid: True
00011111001000, valid: True
11100000110010, valid: True
11100000110100, valid: True
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
N14_d3_graphs, G3
Optimal MIS is 6
Optimal MIS:
01010100101001, valid: True
01110000101001, valid: True
10001001010110, valid: True
10001011010100, valid: True
11110000000110, valid: True
Loading