Quantum error correction: an introduction to toric codes

While playing with the IBM Q experience in some of my recent posts, we have seen that real qubits are subject to geometric restrictions - two-qubit gates cannot involve arbitrary qubits, but only qubits that are in some sense neighbors. This suggests that efficient error correction codes need to tie to the geometry of the … Continue reading Quantum error correction: an introduction to toric codes

Factoring integers on a quantum computer with Qiskit

After all the work done in the previous posts, we are now ready to actually implement Shor's factoring algorithm on a real quantum computer, using once more IBMs Q Experience and the Qiskit framework. First, recall that Shor's algorithm is designed to factor an integer M, with the restriction that M is supposed to be … Continue reading Factoring integers on a quantum computer with Qiskit

Quantum phase estimation – the quantum algorithm Swiss army knife

When you are faced with a problem in linear algebra and have absolutely no idea what to do, an eigenvalue decomposition is the one thing that you would typically try first. In the world of quantum algorithms, the situation is similar - finding the eigenvalues of a matrix is a central building block of many … Continue reading Quantum phase estimation – the quantum algorithm Swiss army knife

Implementing the quantum Fourier transform with Qiskit

The quantum Fourier transform is a key building block of many quantum algorithms, from Shor's factoring algorithm over matrix inversion to quantum phase estimation and simulations. Time to see how this can be implemented with Qiskit. Recall that the quantum Fourier transform (or, depending on conventions, its inverse) is given by $latex |x \rangle \mapsto … Continue reading Implementing the quantum Fourier transform with Qiskit

Running the Deutsch-Jozsa algorithm on IBMs Q experience

In one of the previous posts, we have looked at the basics of the Qiskit package that allows us to create and run quantum algorithms in Python. In this post, we will apply this to model and execute a real quantum algorithm - the Deutsch-Jozsa algorithm. Recall that the Deutsch-Jozsa algorithm is designed to solve … Continue reading Running the Deutsch-Jozsa algorithm on IBMs Q experience

Quantum error correction with stabilizer codes

In our previous discussion of quantum error correction, we have assumed that quantum gates can act on any two physical qubits. In reality, however, this is not true - only nearby qubits and interact, and our error correction needs to take the geometric arrangements of the qubits into account. The link between these geometric constraints … Continue reading Quantum error correction with stabilizer codes