#quantum-simulator #quantum-circuit #quantum-simulation #quantum #simulator #circuit #state

bra_ket

一个多线程电路模型量子模拟器,用于状态向量和密度矩阵

5 个版本

0.1.4 2023 年 9 月 19 日
0.1.3 2022 年 6 月 21 日
0.1.2 2022 年 6 月 12 日
0.1.1 2022 年 6 月 4 日
0.1.0 2022 年 6 月 4 日

#136 in 科学

MITLGPL-3.0

50KB
1K SLoC

Rust 量子模拟器

GitHub Workflow Status

Rust logo

这是一个基于 Rust 的量子模拟器,它为状态向量和密度矩阵模拟提供相同的接口。它使用 Rayon 库完全并行化。该项目是作为 Rust 编程和量子比特模拟的学习练习开发的。

功能

  • 使用状态向量或密度矩阵表示模拟量子电路。
  • 支持常见的量子门和操作。
  • 并行模拟,以提高多核处理器上的性能。
  • 用户友好的界面,用于定义和运行量子电路。

安装

要使用此量子模拟器,您需要在您的系统上安装 Rust 和 Cargo(Rust 的包管理器)。如果您还没有安装 Rust,可以从官方网站下载:Rust 安装。然后将其添加到您的 Cargo.toml

[dependencies]
bra_ket = "0.1.3"

请确保将 "0.1.2" 替换为您要使用的版本的实际版本号。

然后,在您的 Rust 代码中

use bra_ket::*;
fn main() {

    // creating the quantum program 
    let mut program = Program::new();
    program.h(0);
    program.cnot(0, 1);
    program.cnot(0, 2);

    // drawing the program 
    program.draw();

    // creating a three qubit state vector / density matrix to hold the quantum state
    let mut state_vector = StateVector::new(3);
    let mut density_matrix = DensityMatrix::new(3);

    // running the program to evolve the state vector from its 
    //initial state of |000> to (1 / SQRT_2) *(|000> + |111>)
    program.run(&mut state_vector);
    program.run(&mut density_matrix);

    // printing the final state vector / density matrix
    println!("state vector \n{}", state_vector);
    println!("density matrix \n{}", density_matrix);
}

此代码在状态向量和密度矩阵表示中生成 GHZ 状态(1 / SQRT_2)*(|000> + |111>)。

文档

有关详细文档和示例,请参阅官方文档

示例

本节简要概述了此量子模拟器项目 examples 文件夹中包含的示例文件。这些示例演示了如何使用量子模拟器模拟各种量子算法和电路。您可以在 examples 文件夹中找到每个示例的完整源代码。

1. ghz_state.rs

  • 描述:此示例演示了使用量子电路创建格林伯格-霍恩-蔡林格 (GHZ) 状态。GHZ 状态是一种纠缠的量子状态,在量子信息理论中起着至关重要的作用。

  • 用法:要从项目根目录运行此示例,请执行以下命令

    cargo run --example ghz_state
    

2. qft.rs

  • 描述:量子傅里叶变换(QFT)是一种量子算法,可以高效地计算量子状态的离散傅里叶变换。本示例演示了如何使用量子模拟器实现QFT。

  • 用法:要从项目根目录运行此示例,请执行以下命令

    cargo run --example qft
    

3. shors.rs

  • 描述:Shor算法是一种量子算法,可以高效地分解大数。本示例展示了如何使用量子模拟器实现Shor算法。

  • 用法:要从项目根目录运行此示例,请执行以下命令

    cargo run --example shors
    

4. vge.rs

  • 描述:变分量子本征求解器(VQE)是一种量子算法,用于求解量子系统的基态能量。本示例演示了如何使用量子模拟器对H2进行VQE计算,计算基态能量并绘制能量景观。

  • 用法:要从项目根目录运行此示例,请执行以下命令

    cargo run --example vqe
    

这些示例文件为使用Rust量子模拟器进行量子算法和电路实验提供了一个起点。您可以修改和扩展它们,以探索不同的量子计算概念和应用。

贡献

此项目作为学习练习而开发,但欢迎贡献!如果您想贡献,请

  1. Fork存储库。
  2. 为您的功能或错误修复创建一个新分支。
  3. 进行更改并确保它们通过现有的测试。
  4. 如有必要,添加新的测试。
  5. 创建拉取请求以提交您的更改。

许可证

本项目采用MIT许可证 - 详细内容请参阅LICENSE文件。

致谢

  • 感谢Rust社区创建了优秀的语言和生态系统。
  • 本项目的灵感来源于量子计算和量子电路仿真领域。

祝您量子计算愉快!🌌🔬🧬

依赖项

~9–18MB
~244K SLoC