Skip to content

Latest commit

 

History

History
36 lines (20 loc) · 2.72 KB

README.md

File metadata and controls

36 lines (20 loc) · 2.72 KB

A repository for the ISO on Quantum Programming. The goal of the project was to implement several gates while respecting the complexity constraints.

Abstract

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.

Gates implementation

Loading from QRAM

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 .

Separating quantum states according to a threshold

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.

Installation

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

Repository contents

The project report

A notebook containing the implementation of the Quantum Gates using cirq

The slides used for presenting this project