PySparQ 模拟¶
Quantum-Resource-Estimator 通过 SimulatorVisitor 对接 PySparQ C++ 量子稀疏态模拟器。
基本用法¶
from pyqres import SimulatorVisitor
# 创建模拟器
simulator = SimulatorVisitor()
# 执行操作
operation.traverse(simulator)
PySparQ 集成¶
PySparQ 是 C++ 实现的量子稀疏态模拟器
安装方式:
pip install pysparq或通过pip install -e ".[test]"安装完整依赖PySparQ 是必需依赖,所有测试都需要安装
Primitive 的模拟¶
每个 Primitive 通过 pyqsparse_object() 方法返回 PySparQ 操作对象:
class Hadamard(Primitive):
def pyqsparse_object(self, dagger_ctx=False, controllers_ctx=None):
from pysparq import Hadamard_Int_Full
obj = Hadamard_Int_Full(self.reg)
obj.set_controller(controllers_ctx)
return obj
Grover 搜索模拟¶
使用 grover_search() 执行 Grover 量子搜索:
from pyqres.algorithms.grover import grover_search
memory = [5, 12, 3, 8, 21, 34, 7, 15]
target = 21
best_addr, prob = grover_search(memory, target)
print(f"Found at index {best_addr}, probability {prob:.4f}")
Shor 分解模拟¶
使用 factor() 执行 Shor 量子分解:
from pyqres.algorithms.shor import factor
p, q = factor(15)
print(f"15 = {p} × {q}") # 15 = 3 × 5
QRAM 态制备模拟¶
使用 StatePreparation 制备任意量子态:
from pyqres.algorithms.state_prep import StatePreparation
sp = StatePreparation(qubit_number=3, data_size=8, data_range=4)
sp.set_distribution([1, 2, 3, 4, 5, 6, 7, 8])
print(f"归一化振幅: {sp.get_real_dist()}")
块编码模拟¶
使用 BlockEncodingTridiagonal 对三对角矩阵进行块编码:
from pyqres.algorithms.block_encoding import get_tridiagonal_matrix
alpha = [1.0, 2.0, 3.0]
beta = [0.5, 0.5]
gamma = [0.5, 0.5]
mat = get_tridiagonal_matrix(alpha, beta, gamma)
print(f"矩阵元素: {mat}")