14个不稳定版本 (4个破坏性更新)
0.5.0-alpha | 2022年12月1日 |
---|---|
0.4.4 | 2022年11月21日 |
0.4.2 | 2022年8月2日 |
0.4.1 | 2022年5月1日 |
0.3.0 | 2021年7月19日 |
#288 in 数学
用于qvnt-i
2.5MB
5K SLoC
QVNT
高级量子计算模拟器,用Rust编写
特性
- 能够模拟多达64个量子比特。具有4-16 Gb RAM的普通机器能够模拟26-28个量子比特,这对于几个研究案例来说足够了;
- 一套1-或2量子比特操作来构建自己的量子线路;
- 量子操作经过测试和调试,以确保使用安全;
- 使用Rayon库的多线程加速线路执行;
- 复杂的量子寄存器操作:两个寄存器的张量积以及量子比特到寄存器的别名,以简化与寄存器的交互。
用法
将以下行添加到您的Cargo.toml文件中以使用QVNTcrate
[dependencies]
qvnt = { version = "0.4.2", features = ["multi-thread"] }
量子寄存器和算子由位掩码控制。其中的每个位将对特定的量子比特起作用。
use qvnt::prelude::*;
// Create quantum register with 10 qubits
let mut q_reg = QReg::new(10);
// or with initial state, where 5th, 6th and 7th qubits are already in state |1>.
let mut q_reg = QReg::with_state(10, 0b0011100000);
// Create qft (Quantum Fourier Transform) operation, acting on first 5 qubits in q_reg.
let op = op::qft(0b0000011111);
// Apply created operation
q_reg.apply(&op);
// Measure and write first 3 qubit, which leads to collapse of q_reg wave function.
// Measured variable will contain one of the following values:
// 0b000, 0b001, 0b010, 0b011, 0b100, 0b101, 0b110, 0b111
let measured = q_reg.measure_mask(0b0000000111);
您可以使用VReg来简化操作定义
use qvnt::prelude::*;
let mut q_reg = QReg::new(10);
let q = q_reg.get_vreg();
// Crate Hadamard operator, that act on odd qubits.
let op = op::h(q[1] | q[3] | q[5] | q[7] | q[9]);
// This is equivalent to op::h(0b0101010101);
实现的操作
- 泡利X、Y和Z算子;
- Z的平方和四次方根 - S和T算子;
- 相位移算子 - phi;
- 1量子比特旋转算子 - rx、ry和rz;
- 2量子比特旋转算子,即伊辛耦合门 - rxx、ryy和rzz;
- SWAP、iSWAP算子和它们的平方根;
- 量子傅里叶变换和Hadamard变换;
- 通用U1、U2和U3算子;
所有算子都有逆版本,通过.dgr()
方法访问
use qvnt::prelude::*;
let usual_op = op::s(0b1);
// Inverse S operator
let inverse_op = op::s(0b1).dgr();
此外,所有这些运算符都可以通过使用 .c(...)
方法转换为受控运算符
use qvnt::prelude::*;
let usual_op = op::x(0b001);
// NOT gate, controlled by 2 qubits, aka CCNOT gate, aka Toffoli gate
let controlled_op = op::x(0b001).c(0b110).unwrap();
由于受控运算符可能与运算符的掩码重叠,因此需要解包。例如,此代码将导致 panic
use qvnt::prelude::*;
let _ = op::x(0b001).c(0b001).unwrap();
许可证
在 MIT 许可证 下授权