/2022_qutech_challenge

MIT iQuHACK 2022 x QuTech Challenge

Primary LanguageJupyter Notebook

iQuHACK22 QuTech Quantum Error Correction Challenge

Project : QEC Bingo Game, by the QuBINGO team

Team members and experience

Experience - Our team is highly diverse in terms of nationalities and education levels. We created a supportive and hard working environment together and everyone did their part as perfect as it can be within 24 hours. Despite being in this extraordinary times where hackathons are conducted remotely with participants all over the globe with different timezones, we still managed to have had productive and insightful discussion together. We are glad we hacked together :)

Demo

something Also see the section How to run the code to play the game? below.

Documentation

  • Presentation Slides
  • Original repository here - for all files/commits
  • Jupyter Notebook about a probability distribution of the error syndromes here

Libraries and tools Used

QEC Preliminaries

The [[5,1,3]] code is a five qubit quantum error correction code (QECC) which uses 9 qubits in total: 5 physical qubits and 4 ancilla qubits. This code encodes one logical qubit and can correct an arbitrary single qubit error, e.g., Pauli-X/Y/Z error on any one of physical qubits.

Below, we see the 1-to-1 mapping of the single-qubit errors to the ancilla syndromes. Image source: Wikipedia.

ex_table

The quantum circuit of the five qubit code with artificially injected X2 is shown below:

ex_circuit

Layout

The basic layout of the game is a 4x4 grid which contains numbers ranging from 0 to 15, i.e., 0000 to 1111 in binary. Those numbers correspond to all possible error syndromes. In the beginning the grid is randomly generated, and each player has a separate grid.

ex_grid

At each turn, a player gives an input, which can be no error (I) or any of the single-qubit Pauli errors (X, Y, Z). The syndrome of a chosen input triggers the cells in the player's respective grid. If the full diagonal or a straight line has been triggered, that player wins. Example below:

ex_grid

Rules of the game

Player A gives input i in the form of a string. Input gets processed and a quantum circuit is constructed with qiskit. The quantum circuit is then sent to quantum-inspire. Quantum-Inspire returns the syndrome, and Player A and B mark their corresponding cell based on the returned syndrome. The above steps are repeated between the Player A and B, until one wins.

What is quantum about this game?

The players are introducing quantum errors whose syndromes are detected by stabiliser generators of a QEC code running on a quantum computer. In this case, we are classically simulating the quantum computer via QX single-node simulator.

How to run the code to play the game?

Clone the repository via git clone https://github.com/Feigenbaum4669/2022_qutech_challenge.git, and edit the cred.txt to include your own Quantum-Inspire credentials. Then, in the root folder, execute the following command in your terminal to run the game:

py main.py

Different variants of the game

It is straightforward to modify the game by choosing other single-qubit gates representing errors, e.g. containing the Hadamard gate. This way the syndromes can be made probabilistic changing the game experience.

Probability heatmap of the syndromes

Separate from the Bingo game, we also visualised the probability heatmap of the 16 possible syndromes using the custom error model outlined in the Jupyter notebook (Syndrome_Heatmap.ipynb). Such a heatmap is shown below and also in the notebook.

We can possibly leverage this heatmap as a means to improve the bot's performance and thereby increasing the game's difficulty, or perhaps even come up with a brand new game idea surrounding this error model.

example_heatmap