7

I am currently working on a project on a higher version of amplitude amplification and for that we want to store the initial state (which will be some sort of superposition) into a QRAM. Now we want to simulate the working of the algorithm and I am supposed to make a QRAM, but most of the papers which use QRAM as a subroutine have not shown implementation, furthermore the bucket brigade Quantum RAM is actually not able to give out a superposition of Quantum States which have been stored into a QRAM.

Ideally we want the QRAM to work something like this,

$$ \sum_{j=0}^{2^q-1} \alpha_j | \text{adr}_j \rangle|0\rangle \xrightarrow{\text{QRAM}} \sum_{j=0}^{2^q-1}\alpha_j |\text{adr}_j\rangle|m_j\rangle $$

Anyone who has any idea which QRAM will be able to query out a superposition of states stored in memory cells, please provide some reference. Any help is greatly appreciated!!

epelaez
  • 2,875
  • 1
  • 8
  • 31
  • Where is $m_j$ in the input state? The way you've written it, it's like the QRAM is preparing it instead of retrieving it. Did you actually mean to write the input state as $|adr_j\rangle|0\rangle|m_0\rangle|m_1\rangle \dots |m_{2^q-1}\rangle$? – Craig Gidney Sep 30 '21 at 18:17
  • 1
    Also you didn't include the write operation. (If you don't need to write, you want a QROM not a QRAM. QROM is cheaper.) – Craig Gidney Sep 30 '21 at 18:20
  • @CraigGidney So yes I agree that we can use a QROM too, but due to some reason the prof I am working under wants QRAM(perhaps at a later stage we will be modifying the states too). But If you have any ideas how it can be done using QROM, please go aheah. The notation I have used can be seen in a lot of papers(https://arxiv.org/abs/2002.09340 one such paper) and the way I see it is, you input the superposition of address states and a 0 state for output qubit. But once it passes through the QRAM, the address qubits remain the same whereas the memory qubits contain the information in the cell. – Parmeet Singh EP 066 Sep 30 '21 at 18:26
  • Your prof explicitly said QROM was not good enough? It's common for people to use "QRAM" to ambiguously refer to a few different things, including QROM. – Craig Gidney Sep 30 '21 at 18:30
  • I totally get your point. If you have any idea how to query out a superposition of the states stored in QRAM. Please let me know – Parmeet Singh EP 066 Oct 01 '21 at 04:43

1 Answers1

3

If you are looking for implementations of quantum memories, you can find a few in this QRAM library for Q#. I am not quite sure what you mean by the bucket brigade protocol is not able to readout entangled data, but as far as I understand you can do that with bucket brigade (we used it in this example that implements Grover's algorithm with a bucket brigade QRAM).

I agree with Craig, clarifying with your prof whether you need just read operations (QROM) or read/write (QRAM) is important here.