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 cirqA notebook containing the implementation of the Quantum Gates using cirq