Experiments with ZDD Mapper

These experiments were included in "Using ZDDs in the mapping of quantum circuits." This paper was presented at Quantum Physics and Logic (QPL) 2019.

Dependencies

pyquil version 2.0.0
qiskit version 0.7.0
quilc version 1.0.2
qvm version 1.0.1
tweedledum commit c334fa05655a34210f58037b89803da5c0bf773b (https://github.com/knsmith/tweedledum ; zddmapper branch)

Running the experiments

Once Tweedledum is installed successfully, files from this directory should be placed into the examples folder. Next, run "cmake -DTWEEDLEDUM_EXAMPLES=TRUE .." within the build folder. Finally, navigate back to the examples folder and run "python run_benchmarks.py" to produce ZDD mapped benchmarks in the form of .quil and .qasm specifications.

Benchmarks

The benchmarks originate from the Feynman circuit analysis tool (https://github.com/meamy/feynman) and were originally specified as .qc files. The .qc files contained here were generated by using the "phasefold" pass of the Feynman toolkit. Then, the python script dotQC2QUIL.py converted the benchmarks into .quil specifications so that they can be used as input to run_zddmap.cpp.