Skip to Content

快速开始

概述

本章将引导你在 5 分钟内完成 UnitaryLab 算法库的上手流程。完成后,你将能够:

  • 导入算法类并调用 .run()
  • 查看返回的结果字典
  • 使用 .test() 进行零配置演示
  • 定位保存的线路图和结果文件

运行第一个算法——Grover 搜索

Grover 算法在包含 个条目的无序数据库中以 次查询找到目标。以下示例在 3 量子比特寄存器中搜索状态 '101'

from pathlib import Path from unitarylab_algorithms import GroverAlgorithm algo = GroverAlgorithm() result = algo.run(n=3, target="101") circuit_path = Path(result["circuit_path"]) txt_path = circuit_path.parent / result["plot"][0]["filename"] print(result["status"]) # 'ok' print(result["circuit_path"]) # SVG 线路图的路径 print(txt_path) # 文本结果文件的路径

预期输出:

ok /path/to/grover_algorithm_circuit.svg /path/to/grover_algorithm_result.txt

使用 .test() 快速演示

密码学、基础算法、哈密顿量模拟、线性代数、量子机器学习和态制备等模块普遍提供模块级 .test() 函数,使用内置的合理默认参数调用 .run(),是观察典型输出的最快方式。但并非所有算法都提供该函数——schrodingerization 包下的 3 个偏微分方程算法模块(equation_advectionequation_heatequation_heat2d)均未定义 test()

from unitarylab_algorithms.fundamental_algorithm.grover.algorithm import test test()

test() 会返回结构化结果字典,并在执行过程中通过内部日志把运行状态打印到终端;但它不会把返回的结果字典本身整体打印出来,同时会在本地保存线路图和结果文件。

读取结果字典

cryptologyfundamental_algorithmhamiltonian_simulationlinear_algebraquantum_machine_learningstate_preparation 六个包的算法均继承 algo_base.BaseAlgorithm 并通过 _build_return_dict() 构造返回值,因此返回统一的字典结构:

result = algo.run(n=3, target="101") # 执行状态 print(result['status']) # 成功时为 'ok' # 线路 SVG 图路径 print(result['circuit_path']) # 文本结果文件名 print(result["plot"][0]["filename"])

schrodingerization 包使用独立的基类和手工构造的返回字典,形状与上述结构不同:circuit 是列表而非单个路径,plot 是单个字典而非列表,详见薛定谔化方法章节。

部分算法包含额外字段。例如,Shor 算法会额外返回:

print(result.get('factors')) # 找到的质因数列表

运行 Shor 算法

from unitarylab_algorithms import ShorAlgorithm algo = ShorAlgorithm() result = algo.run(N=15) print(result['status'])

运行 HHL 线性方程求解器

import numpy as np from unitarylab_algorithms import HHLAlgorithm A = np.array([[0.8, 0], [0, 0.4]]) b = np.array([1, 2]) algo = HHLAlgorithm() result = algo.run(A=A, b=b, d=11) print(result['status'])

运行变分量子本征求解器(VQE)

from unitarylab_algorithms import VQEAlgorithm algo = VQEAlgorithm() result = algo.run(n=2, layers=2, max_iter=150) print(result['status'])

下一步

目标前往
一览所有可用算法API 使用总览
密码学算法(Shor、Simon、离散对数)密码学算法
基础量子原语基础量子算法
哈密顿量演化方法哈密顿量模拟
量子硬件上的线性代数线性代数算法
变分与生成模型量子机器学习
量子态制备方法态制备算法
偏微分方程求解器薛定谔化方法
编写自定义算法算法模板指南
最后更新于