I recently discovered IBM's website where you can write a quantum circuit that acts on a few qubits, simulate it, and have it executed on an actual quantum architecture. (You submit your computation for execution, and you receive an email when it has been processed)
I tried doing writing a simple circuit that plays CHSH with itself when I noticed something: I couldn't write CNOT gates a freely as I wanted. That is, I had 5 qubits, and they could only act on each other as follows:
- 0 -> none
- 1 -> 0
- 2 -> 0 1 4
- 3 -> 2 4
- 4 -> none
They call this topology a bowtie.
What bothered me with this was that there is no loop in the graph of "what qubit can act on another qubit". And their two other architectures (of 5 and 16 qubits) have the exact same issue. They are all directed acyclic graphs,
and that greatly reduces what kind of circuit we can do. An example of something very simple that we cannot do on such architectures is swapping two qubits. EDIT: we may need more gates for the same computation, but we can do the same computations.
On their ibmqx4 manual, they explain that this comes from the fact that:
The IBM Q experience uses the cross-resonance interaction as the basis for the CX-gate. This interaction is stronger when choosing the qubit with higher frequency to be the control qubit, and the lower frequency qubit to be the target, so the frequencies of the qubits determines the direction of the gate.
Do all proposed architectures have the same issue? How strong of an effect is this difference of frequencies (could I at least have somewhat bad CNOT gates in the other direction)? It is hard in general to have loops in quantum architectures, and is there a theoretical reason for it?