Skip to content

beitom/experimental-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

QED Data

Data to reproduce results and figures in

@misc{ginsberg2025quantumerrordetectionearly,
      title={Quantum Error Detection For Early Term Fault-Tolerant Quantum Algorithms}, 
      author={Tom Ginsberg and Vyom Patel},
      year={2025},
      eprint={2503.10790},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2503.10790}, 
}

Data Card

# prob - probability of success for this instance of grovers algorithm
# k_grover - number of logical qubits in the grover operator
# rounds - number of rounds of grovers algorithm (marker diffusion iterations)
# syndrome_op_count - number of syndrome operations in the circuit
# p - depolarizing noise used in the simulation
# shots - number of shots used in the simulation
# syndrome_op_count - about of logical operations between syndrome rounds (if the circuit is compiled with the [[n, n-2, 2]] code)
# ops - total number of operations in the circuit (after compilation)
# depth - total depth of the circuit
# logical_op_count - number of logical operations in the original circuit 
# syndrome_count - number of syndrome operations inserted by the compiler
# syndrome_policy - policy used by the compiler to insert syndrome operations
# simulator - simulator used to run the circuit {encoded (uses QED compiler), unencoded (baseline logical circuit)}

Guide

  1. Download the data
wget https://github.com/beitom/experimental-data/raw/refs/heads/main/qed-data.json
  1. Load Data
import pandas as pd
import seaborn as sns

df = pd.read_json('qed-data.json')
encoded = df[df.simulator == 'encoded'] # select data from error detection experiments
  1. Examples
  • Plot sucess probability vs syndrome count see https://arxiv.org/pdf/2503.10790 fig 4

     sns.lineplot(
        encoded.query('k_grover == 4 and rounds == 2'),
        x='syndrome_op_count',
        y='prob'
    ) 
    image
  • Compare compiled vs uncompiled simulations to see break even noise level

    sns.lineplot(
      encoded.query('k_grover == 4 and rounds == 2'),
      x='p',
      y='prob',
      label='compiled'
    )
    
    sns.lineplot(
        df[df.simulator == 'unencoded'].query('k_grover == 4 and rounds == 2'),
        x='p',
        y='prob',
        label='bare'
    )
    image
  • Select only runs compiled using the optimal syndrome count

    opt = encoded.query('k_grover == 4 and rounds == 2').groupby('syndrome_op_count').agg({'prob': 'mean'}).idxmax().item()
    sns.lineplot(
        encoded.query(f'k_grover == 4 and rounds == 2 and syndrome_op_count == {opt}'),
        x='p',
        y='prob',
        label='compiled'
    )
    sns.lineplot(
        df[df.simulator == 'unencoded'].query('k_grover == 4 and rounds == 2'),
        x='p',
        y='prob',
        label='bare'
    )
    image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published