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 科学
50KB
1K SLoC
Rust 量子模拟器
这是一个基于 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量子模拟器进行量子算法和电路实验提供了一个起点。您可以修改和扩展它们,以探索不同的量子计算概念和应用。
贡献
此项目作为学习练习而开发,但欢迎贡献!如果您想贡献,请
- Fork存储库。
- 为您的功能或错误修复创建一个新分支。
- 进行更改并确保它们通过现有的测试。
- 如有必要,添加新的测试。
- 创建拉取请求以提交您的更改。
许可证
本项目采用MIT许可证 - 详细内容请参阅LICENSE文件。
致谢
- 感谢Rust社区创建了优秀的语言和生态系统。
- 本项目的灵感来源于量子计算和量子电路仿真领域。
祝您量子计算愉快!🌌🔬🧬
依赖项
~9–18MB
~244K SLoC