A repository for the ISO on Quantum Programming. The goal of the project was to implement several gates while respecting the complexity constraints.
In this work, we design a generic quantum circuit to implement a recommendation system following the algorithm of Kerenidis and Prakash. This algorithm takes as input a binary matrix which has a good rank- approximation and returns a product recommendation for an user in time .
We discuss the limitations of implementing this algorithm on a real quantum computer and the differences between the high-level description of the algorithm and its low-level implementation. In particular, we discuss the reasons that could improve our design’s complexity in the future.
QRAM is a quantum memory storage structure that allows to create a quantum state associated to an arbitrary unitary real vector. That is, given a vector , we want to define a gate such that where is a quantum state whose amplitudes are coefficients of .
Given , we want to design efficiently the gate such that:
In order to do this, we design an algorithm that allows to compare a quantum state and a real number efficiently.
In order to test out the code in the notebooks, just run the following command to install cirq
and jupyter
. Note that the Python version you are using must be at least 3.6.0.
pip install jupyter cirq
A notebook containing the implementation of the Quantum Gates using cirq