75个版本 (32个稳定版)
1.15.2-alpha.3 | 2024年8月8日 |
---|---|
1.15.2-alpha.1 | 2024年7月25日 |
1.11.0-alpha.2 | 2024年3月28日 |
1.8.0 | 2023年12月8日 |
0.5.1 | 2021年7月29日 |
#13 in 科学
2,848 每月下载量
用于 9 crates
1MB
18K SLoC

qoqo
量子操作量子操作
是的,我们使用了重复
qoqo/roqoqo 是由 HQS Quantum Simulations 开发的一个工具包,用于通过表示量子电路。
roqoqo/qoqo 是什么
- 一个表示量子程序的工具包,包括电路和测量信息
- 一个轻量级的运行时,用于运行量子测量
- 一种序列化量子电路和测量信息的方式
- 一组可选的设备、模拟器和工具包接口(例如 qoqo_quest,qoqo_mock,qoqo_qasm)
roqoqo/qoqo 不是什么
- 将电路转换为特定门集的分解器
- 量子电路优化器
- 量子算法集合
此仓库包含两个组件
- roqoqo:核心Rust库
- qoqo:roqoqo的Python接口
roqoqo
roqoqo提供
- 一个用于表示量子电路的
Circuit
结构体 - 一个用于表示不同测量方法量子程序的
QuantumProgram
枚举 - 表示可以在任何通用量子计算机上执行的(分解)单量子比特、双量子比特、多量子比特和测量操作的结构体
- 表示仅适用于某些硬件、模拟器或为电路添加额外信息的所谓PRAGMA操作的结构体
- 根据操作的性质(例如
Operation
表示所有操作或SingleQubitGateOperation
表示所有作用于单个量子比特的单位操作)对操作进行分组的枚举 - 支持符号变量
- 基于经典寄存器的读出
- 用于评估基于量子计算机后端返回的原始读出数据的可观测测量操作的测量结构体
- 一个定义从qoqo到可以返回测量值的硬件和模拟器的接口标准的
EvaluatingBackend
特质 - 一个定义获取量子计算设备连接信息和噪声模型的标准的
Device
特质 - 通过serde crate支持
Circuit
和QuantumProgram
的序列化和反序列化。
此软件仍处于beta阶段。功能和文档尚未完成,可能会发生破坏性更改。
安装
要在Rust项目中使用roqoqo,只需将以下内容添加到项目的Cargo.toml的[dependencies]
部分:
roqoqo = {version="1.0"}
qoqo
qoqo提供了对底层roqoqo库的Python接口,包括
- 用于表示量子电路的
Circuit
类 - 用于表示量子程序的
QuantumProgram
类 - 表示可以在任何通用量子计算机上执行的(分解)单量子比特、双量子比特、多量子比特和测量操作的类
- 表示仅适用于某些硬件、模拟器或为电路添加额外信息的所谓PRAGMA操作的类
- 支持符号变量
- 基于经典寄存器的读出
- 用于评估基于量子计算机后端返回的原始读出数据的可观测测量操作的测量类
- 电路和测量信息的json序列化和反序列化。通过serde crate的帮助,序列化支持可以轻松扩展到其他目标。
安装
在Linux、macOS和Windows x86上,可以在PyPi上找到预编译包,并通过以下方式安装:
pip install qoqo
如果您的架构没有可用的预构建python wheel,您可以使用rust工具链(例如通过rustup可用)和maturin(也通过pip可用)从源分布安装qoqo。在安装rust工具链和maturin之后,运行上面的相同pip安装命令。在某些情况下,在macOS上可能需要提供特定的链接器参数,如下所示:
# can be necessary on mscOS
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" pip install qoqo
RUSTFLAGS="-C link-arg=-undefined -C link-arg=dynamic_lookup" maturin build -m qoqo/Cargo.toml --release
pip install target/wheels/$NAME_OF_WHEEL
当在Rust项目中使用提供Python接口的qoqo时,请添加
qoqo = {version="1.0", default-features=false}
现在存在一个源分布,但需要安装Rust(版本> 1.47)和maturin(版本{ > = 0.12, < 0.13})才能构建。
示例
由于qoqo提供了对底层roqoqo库的完整Python接口,因此提供了针对Python用户和Rust用户的示例。
有关示例的扩展集合,请参阅extra存储库中的jupyter笔记本qoqo_examples
。qoqo示例需要qoqo_quest和qoqo_mock接口。
- qoqo示例:对于在
python
中的jupyter笔记本,请参阅qoqo_examples/qoqo/。 - roqoqo 示例:可以使用 Rust 编写的 Jupyter 笔记本,可在qoqo_examples/roqoqo/notebooks/中找到。或者,您还可以在qoqo_examples/roqoqo/standalone/中找到纯 Rust 版本的示例。
本项目部分得到 PlanQK 的支持,并部分得到 QSolid 和 PhoQuant 的支持。
贡献
我们欢迎对该项目的贡献。如果您想贡献代码,请查阅 CONTRIBUTE.md 以了解我们的代码贡献指南。
依赖项
~15–23MB
~363K SLoC