API 使用总览
概述
本页面是 unitarylab_algorithms/ 库的导航指南,汇总了所有可用算法的类名、导入路径、关键参数及 .test() 签名。
本页不是完整的自动生成 API 参考。其目的是帮助你快速定位所需算法并了解调用方式。
BaseAlgorithm——共享基类
所有算法类均继承自 unitarylab_algorithms.algo_base.BaseAlgorithm,每个算法实例都具备以下方法:
| 方法 | 说明 |
|---|---|
.run(*args, **kwargs) | 执行算法,返回 Dict[str, Any] |
.log(message) | 打印消息并追加到内部日志 |
.update_input(input_dict) | 将条目合并到输入参数字典 |
.update_output(output_dict) | 将条目合并到输出信息字典 |
.save_circuit(circuit, name) | 将线路持久化到磁盘,返回文件路径 |
.save_txt() | 将格式化结果写入纯文本文件 |
.format_result_ascii() | 以 ASCII 字符串形式返回最近一次结果 |
按类别的算法索引
密码学
| 类 | 导入路径 | 关键参数 |
|---|---|---|
DiscreteLogAlgorithm | unitarylab_algorithms.cryptology.discrete_log.algorithm | g、y、P |
ShorAlgorithm | unitarylab_algorithms.cryptology.shor.algorithm | N、method、max_retries |
SimonAlgorithm | unitarylab_algorithms.cryptology.simon.algorithm | s |
基础量子算法
| 类 | 导入路径 | 关键参数 |
|---|---|---|
AmplitudeAmplificationAlgorithm | unitarylab_algorithms.fundamental_algorithm.amplitude_amplification.algorithm | U、good_zero_qubits、p、reps |
AmplitudeEstimationAlgorithm | unitarylab_algorithms.fundamental_algorithm.amplitude_estimation.algorithm | U、good_zero_qubits、d |
GroverAlgorithm | unitarylab_algorithms.fundamental_algorithm.grover.algorithm | n、target |
HadamardTestAlgorithm | unitarylab_algorithms.fundamental_algorithm.hadamard_test.algorithm | mode、U、prepare_psi、prepare_phi、imag、shots |
HadamardTransformAlgorithm | unitarylab_algorithms.fundamental_algorithm.hadamard_transform.algorithm | n、mode |
QPEAlgorithm | unitarylab_algorithms.fundamental_algorithm.qpe.algorithm | U、d、prepare_target |
哈密顿量模拟
| 类 | 导入路径 | 关键参数 |
|---|---|---|
CartanDecompositionAlgorithm | unitarylab_algorithms.hamiltonian_simulation.cartan.algorithm | H、t、error |
QDriftAlgorithm | unitarylab_algorithms.hamiltonian_simulation.qdrift.algorithm | H、t、error、steps |
QSPHSAlgorithm | unitarylab_algorithms.hamiltonian_simulation.qsp.algorithm | H、t、error、degree、beta |
TaylorAlgorithm | unitarylab_algorithms.hamiltonian_simulation.taylor.algorithm | H、t、error、degree |
TrotterAlgorithm | unitarylab_algorithms.hamiltonian_simulation.trotter.algorithm | H、t、error、order、steps |
线性代数
| 类 | 导入路径 | 关键参数 |
|---|---|---|
HHLAlgorithm | unitarylab_algorithms.linear_algebra.hhl.algorithm | A、b、d |
LCUAlgorithm | unitarylab_algorithms.linear_algebra.lcu.algorithm | alphas、unitaries、n_sys、initial_state |
QFTAlgorithm | unitarylab_algorithms.linear_algebra.qft.algorithm | n、state、inverse |
QSPAlgorithm | unitarylab_algorithms.linear_algebra.qsp.algorithm | t、d、x |
QSVTLinearSolverAlgorithm | unitarylab_algorithms.linear_algebra.qsvt_qlsa.algorithm | A、b、epsilon |
VQLSAlgorithm | unitarylab_algorithms.linear_algebra.vqls.algorithm | n_qubits、coefficients、max_iterations、tolerance |
量子机器学习
| 类 | 导入路径 | 关键参数 |
|---|---|---|
CVQNNAlgorithm | unitarylab_algorithms.quantum_machine_learning.cvqnn.algorithm | x_train、y_train、n_layers、cutoff、epochs、lr |
QAOAAlgorithm | unitarylab_algorithms.quantum_machine_learning.qaoa.algorithm | edges、n、layers、max_iter |
QCBMAlgorithm | unitarylab_algorithms.quantum_machine_learning.qcbm.algorithm | n、layers、epochs、lr |
VQCAlgorithm | unitarylab_algorithms.quantum_machine_learning.vqc.algorithm | layers、epochs、lr、batch_size |
VQEAlgorithm | unitarylab_algorithms.quantum_machine_learning.vqe.algorithm | n、layers、max_iter、seed、hamiltonian |
薛定谔化(偏微分方程求解器)
| 类 | 导入路径 | 说明 |
|---|---|---|
| 对流方程 | unitarylab_algorithms.schrodingerization.equation_advection.algorithm | 一维线性对流 |
| 热方程(一维) | unitarylab_algorithms.schrodingerization.equation_heat.algorithm | 一维热扩散 |
| 热方程(二维) | unitarylab_algorithms.schrodingerization.equation_heat2d.algorithm | 二维热扩散 |
.test() 快速参考
多数算法模块提供独立的 test() 函数,可用于快速运行默认示例或验证算法是否可用:
# 使用内置默认值运行——无需实例化类
from unitarylab_algorithms.fundamental_algorithm.grover.algorithm import test
test()
from unitarylab_algorithms.cryptology.shor.algorithm import test
test(N=15, method='matrix', max_retries=15)
from unitarylab_algorithms.linear_algebra.hhl.algorithm import test
test(A=[[0.8, 0], [0, 0.4]], b=[1, 2], d=11)
from unitarylab_algorithms.quantum_machine_learning.vqe.algorithm import test
test(n=2, layers=2, max_iter=150)常见使用模式
传入 Circuit 对象
QPE、LCU、振幅放大等算法接受来自 unitarylab 的 Circuit 对象:
from unitarylab.core import Circuit
from unitarylab_algorithms.fundamental_algorithm.qpe.algorithm import QPEAlgorithm
# 构造一个需要估计相位的酉线路
U = Circuit(1)
U.t(0) # T 门的相位为 π/4
algo = QPEAlgorithm()
result = algo.run(U=U, d=4)传入哈密顿量矩阵
哈密顿量模拟算法接受 NumPy 数组或二维 Python 列表:
import numpy as np
from unitarylab_algorithms.hamiltonian_simulation.trotter.algorithm import TrotterAlgorithm
H = np.array([[2, 1], [1, 3]])
algo = TrotterAlgorithm()
result = algo.run(H=H, t=1.0, error=1e-8, order=1, steps=1000)最后更新于