#纠错 #量子计算 #量子纠错 #模拟 #可视化

bin+lib qecp

面向表面码研究的量子纠错游乐场

10 个版本

0.2.5 2024年5月28日
0.2.4 2023年10月16日
0.2.2 2023年4月30日
0.1.9 2022年11月9日
0.1.6 2022年6月22日

#116 in 科学


fusion-blossom 中使用

MIT 许可证

1MB
22K SLoC

Rust 17K SLoC // 0.1% comments Python 3K SLoC // 0.2% comments JavaScript 2.5K SLoC // 0.0% comments Shell 14 SLoC // 0.4% comments

QEC-Playground

探索量子纠错(QEC),主要针对表面码的研究工具。

[错误] 我们正在编写此项目的文档,请在正式发布(1.0.0)之前等待。

安装

有关详细说明,请参阅QEC-Playground 文档:安装。以下是一个简短的示例。

# Download the Blossom V Library [Optional]
wget -c https://pub.ist.ac.at/~vnk/software/blossom5-v2.05.src.tar.gz -O - | tar -xz
cp -r blossom5-v2.05.src/* backend/blossomV/
rm -r blossom5-v2.05.src

# Install the Python Dependencies [Optional]
sudo apt install python3 python3-pip
pip3 install networkx

# Install the Rust Toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.bashrc  # this will add `~/.cargo/bin` to path
cd backend/rust/
cargo build --release
cd ../../

命令行界面

有关详细说明,请参阅QEC-Playground 文档:CLI。以下是一个简短的示例用例。

backend/rust/ 文件夹下运行 cargo run --release -- --help 以获取后端程序提供的所有命令。选项 --help 打印出此命令的信息,这有助于查找子命令以及了解每个选项的目的。以下是一个示例输出。

QECPlayground 0.1.6
Yue Wu <yue.wu@yale.edu>, Namitha Liyanage (namitha.liyanage@yale.edu)
Quantum Error Correction Playground

USAGE:
    qecp <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    fpga_generator    fpga_generator
    help              Print this message or the help of the given subcommand(s)
    server            HTTP server for decoding information
    test              testing features
    tool              tools

要运行模拟以基准测试解码器的逻辑错误率,请运行 cargo run --release -- tool benchmark --help。以下是一个示例输出。

qecp-tool-benchmark 0.1.6
benchmark surface code decoders

USAGE:
    qecp tool benchmark [OPTIONS] <dis> <nms> <ps>

ARGS:
    <dis>    [di1,di2,di3,...,din] code distance of vertical axis
    <nms>    [nm1,nm2,nm3,...,nmn] number of noisy measurement rounds, must have exactly the
             same length as `dis`; note that a perfect measurement is always capped at the end,
             so to simulate a single round of perfect measurement you should set this to 0
    <ps>     [p1,p2,p3,...,pm] p = px + py + pz unless noise model has special interpretation of
             this value

OPTIONS:
        --bias_eta <bias_eta>
            bias_eta = pz / (px + py) and px = py, px + py + pz = p. default to 1/2, which means px
            = pz = py [default: 0.5]
        ......

例如,要测试代码距离为3的标准CSS表面码,使用默认解码器(MWPM解码器),仅在数据量子位上(即完美的稳定器测量)使用退极化物理错误率3%、2%和1%,请运行

cargo run --release -- tool benchmark [3] [0] [3e-2,2e-2,1e-2]

以下是一个示例结果。

format: <p> <di> <nm> <total_repeats> <qec_failed> <error_rate> <dj> <confidence_interval_95_percent> <pe>
0.03 3 0 567712 10000 0.01761456513161603 3 1.9e-2 0
0.02 3 0 1255440 10000 0.007965334862677627 3 2.0e-2 0
0.01 3 0 4705331 10000 0.002125248999485902 3 2.0e-2 0

变更日志

请参阅CHANGELOG.md

贡献者

Yue Wu ([email protected]): 实现3D GUI。设计和实现交互式教程。提出并实现朴素解码器。实现MWPM解码器。实现表面码的不同变体和不同的解码器(请参阅2020.11.8 - 2022.3.20的变更日志)。此存储库的主要开发者和维护者。

陈国军:CPSC 559课程项目合作者:设计GUI。设计和实现基于机器学习的权重优化MWPM解码器。

Liyanage Namitha Godawatte:实现近似MWPM解码器和FPGA相关功能。

何尼尔:将库绑定到Python。

归属

在研究中使用QEC-Playground时,请引用

TODO: arXiv link for related papers (probably the fusion blossom paper)

依赖项

~20–33MB
~578K SLoC