4
$\begingroup$

I'm working through the Qiskit textbook right now, and wanted to complete part 1 of exercise 3.4, which asks me to use qiskit to produce the Bell state:

$$\frac{|01\rangle + |10\rangle}{\sqrt{2}}$$

which is equivalent to

$$\begin{bmatrix} 0 \\ \frac{1}{\sqrt2} \\ \frac{1}{\sqrt2}\\ 0 \end{bmatrix}. $$

When you apply a CNOT to this, we get:

$$\begin{bmatrix} 0 \\ 0 \\ \frac{1}{\sqrt2}\\ \frac{1}{\sqrt2} \end{bmatrix}$$

Which is just $|1\rangle\otimes |+\rangle$. However, I can't figure out how to set my qubits up in the right way.

Any tips on how to use qiskit to get that last matrix?

$\endgroup$
5
$\begingroup$

The circuit to prepare the state $|\psi \rangle = \dfrac{|01\rangle + |10\rangle}{\sqrt{2}} $ is as follows:

     ┌───┐          
q_0: ┤ H ├──■───────
     └───┘┌─┴─┐┌───┐
q_1: ─────┤ X ├┤ X ├
          └───┘└───┘

This can be written in matrix notation as:

\begin{align} U &= (I \otimes X)\cdot CNOT \cdot (H\otimes I) \\ &= \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \otimes \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix} \cdot \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0\end{pmatrix} \cdot \dfrac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \otimes \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \\ &= \begin{pmatrix} 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0\end{pmatrix} \cdot \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0\end{pmatrix} \cdot \dfrac{1}{\sqrt{2}} \begin{pmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0\\ 0 & 1 & 0 & 1\end{pmatrix} \\ &= \dfrac{1}{\sqrt{2}}\begin{pmatrix} 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 1 & 0 & -1 & 0\\ 0 & 1 & 0 & -1 \end{pmatrix} \end{align}

And $$ U |00\rangle =\dfrac{1}{\sqrt{2}}\begin{pmatrix} 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & 0 \\ 1 & 0 & -1 & 0\\ 0 & 1 & 0 & -1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \dfrac{1}{\sqrt{2}} \begin{pmatrix} 0 \\ 1 \\ 1 \\ 0 \end{pmatrix} = \dfrac{|01\rangle + |10\rangle}{\sqrt{2}} $$

If you want to generate this circuit with qiskit you can do it as follows:

from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit

qreg_q = QuantumRegister(2, 'q')
creg_c = ClassicalRegister(2, 'c')
circuit = QuantumCircuit(qreg_q, creg_c)

circuit.h(qreg_q[0])
circuit.cx(qreg_q[0], qreg_q[1])
circuit.x(qreg_q[1])
$\endgroup$
6
  • $\begingroup$ Cheers for that @KAJ226! I wanted to clear something up about the convention that qiskit uses. Do operations translate from right to left, top to bottom? For example, you placed $𝐼⊗𝑋$ first, which is the rightmost set of qubit values. Additionally, you wrote the identity matrix first, which is $q_1$'s value. Is that the right way of thinking about this? I've been going from the left to the right. $\endgroup$ Feb 4 at 3:10
  • $\begingroup$ It also looks like the convention is inconsistent with qiskit. $\endgroup$ Feb 4 at 3:22
  • $\begingroup$ The reason it is in the order $(I \otimes X)\cdot CNOT \cdot (H\otimes I)$ is because you multiply this to the state $|\psi \rangle = |00\rangle$ from the left. That is: $U |\psi \rangle = (I \otimes X)\cdot CNOT \cdot (H\otimes I) |00 \rangle $ and hence the operation $ (H\otimes I) |00 \rangle $ get done first. Follow by $CNOT$ then follow by $ (I \otimes X)$. Now, it is good to note that qiskit uses little-endian for both classical bit ordering and qubit ordering. So the state $|0001\rangle$ would be $|1000\rangle$ in qiskit. $\endgroup$
    – KAJ226
    Feb 4 at 4:06
  • $\begingroup$ That almost answers everything. The last thing I'm confused about is the order that tensor product takes. In this case, qiskit would say ($q_0 ⊗ q_1$), right? $\endgroup$ Feb 4 at 4:11
  • $\begingroup$ it reads backward. $\endgroup$
    – KAJ226
    Feb 4 at 6:14
2
$\begingroup$

To provide general answer, Bell states are prepared with circuit described by matrix $CNOT(H \otimes I)$. Which Bell state is returned depends on input to the circuit:

  • input $|00\rangle$ returns $\frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)$
  • input $|01\rangle$ returns $\frac{1}{\sqrt{2}}(|01\rangle + |10\rangle)$
  • input $|10\rangle$ returns $\frac{1}{\sqrt{2}}(|00\rangle - |11\rangle)$
  • input $|11\rangle$ returns $\frac{1}{\sqrt{2}}(|01\rangle - |10\rangle)$

Clearly, value of the second input qubit specifies whether both output qubits will be same (the second input qubit is $|0\rangle$) or opposite (the second input qubit is $|1\rangle$). The first qubit specifies a phase - when the qubit is $|0\rangle$, the phase is 0, when it is $|1\rangle$, the phase is $\pi$ ($\mathrm{e^{i\pi}}=-1$).

Concerning the input, to obtain for example $|01\rangle$, put $X$ gate on second qubit and then apply the circuit for Bell state. Similarly for other inputs.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.