Skip to main content

QSL - Quantum Search Language: Full-stack quantum computing framework with simulator, algorithms (QFT/Shor/QAOA/VQE), QML, hardware backends (IBM/AWS), AI scientist, and self-evolving meta-system

Project description

🚀 QSL — Quantum Search Language v0.6.0

用一句话描述你想解决什么问题,剩下的交给量子计算。

Python License Tests Version PyPI


✨ 特性总览

一个 全栈量子计算框架,从声明式量子搜索到AI驱动的量子科学家:

层级 模块 功能
1️⃣ 量子门 & 算法 50+ 量子门 · QFT · Shor 量子相位估计 · QAOA · VQE (parameter-shift)
2️⃣ 量子机器学习 向量化 QuantumLayer · QNN · 量子核 · QSVM · 可微 QGAN (Straight-Through)
3️⃣ 后端 & 编译器 高性能模拟器 · IBM/AWS 真机 · 门融合 · 布局映射 · 零噪声外推
4️⃣ AI 量子科学家 自然语言→量子程序 · 自主智能体 · 假设检验 · 自动发现
5️⃣ 元系统 & 网络 遗传电路搜索 · 量子定理证明 (Grover) · 分布式节点 · 量子区块链

🆕 0.6.0 新特性

  • QuantumCircuit 电路层:参数化门 · decompose() 受控门递归分解 · transpile() 多级优化 · control() / power() / inverse() 电路变换 · 40+ 标准门
  • OpenQASM 互通:QASM 2.0 导入导出 · QASM 3.0 导出
  • 跨框架转换器to_qiskit() / from_qiskit() / to_cirq()
  • matplotlib 可视化:电路图 · Bloch 球 · 城市图 · Q 球 · 直方图
  • 噪声模拟NoiseModel + execute_density() 密度矩阵含噪演化 · cupy GPU 后端开关 · expectation() 免采样期望值
  • LLMProvider 多模型:OpenAI / DeepSeek / Kimi / 通义 / Ollama · 规则路由表 + 中文参数抽取 + 缺参追问
  • 自动验证器:智能体结果自动验证 · 失败自动重规划 · 结构化 AgentReport
  • 10 个中文演示:覆盖 Grover / Shor / VQE / QAOA / QML 端到端示例

AI 功能开箱即用(零 SDK 时自动回退规则引擎),推荐 DeepSeek 或 Kimi:

# 任选其一设置 API Key
export DEEPSEEK_API_KEY="sk-..."      # DeepSeek
export MOONSHOT_API_KEY="sk-..."      # Kimi (Moonshot)

# 显式指定提供商(可选,默认自动探测)
export QSL_LLM=deepseek               # 或 kimi / openai / qwen / ollama
export QSL_LLM_MODEL=deepseek-chat    # 可选,覆盖默认模型

详见 CHANGELOG.md


🎯 5 秒上手

from qsl import QSLProgram, compile_and_run

# 声明你想找什么:解一个 3-SAT 问题
program = QSLProgram(
    name="3-SAT",
    n_qubits=3,
    premises=["x0 | ~x1", "x1 | x2", "~x0 | ~x2"],
    shots=10
)
result = compile_and_run(program)
print(result.get_solutions())  # → [3, 4] 即 |011⟩ 和 |100⟩

不需要懂量子力学。 框架会自动编译最优量子电路并执行。


📦 核心功能演示

🔢 Shor 算法 — 整数因子分解

from qsl import ShorSolver

# 量子相位估计实现周期查找 (支持超过旧12-qubit阈值)
solver = ShorSolver(21, max_control_qubits=12)
factors = solver.factor()
print(f"21 = {' × '.join(map(str, factors))}")  # → 21 = 3 × 7

🧬 VQE — 分子基态能量计算

from qsl import VQE
import numpy as np

# 计算氢分子 H₂ 基态能量 (parameter-shift 梯度)
vqe = VQE(4, VQE.h2_hamiltonian(), n_layers=2)
energy, ground_state = vqe.optimize(maxiter=100)
print(f"H₂ ground energy: {energy:.4f} Hartree")

📊 QAOA — 组合优化 (MaxCut / 投资组合)

from qsl import QAOA
import numpy as np

# MaxCut 问题
adj = np.array([[0,1,0],[1,0,1],[0,1,0]])
Q = QAOA.maxcut_cost_matrix(adj)
qaoa = QAOA(3, Q, p=2, encoding="qubo")
params, cost = qaoa.optimize()
bitstring, value = qaoa.get_optimal_bitstring()

🔍 Grover — 布尔表达式量子搜索

from qsl import GroverSearch, solve_sat
from qsl.core.parser import parse_bool

# 直接从布尔表达式构建量子 Oracle (无经典枚举!)
expr = parse_bool("x0 & x1 & ~x2")
grover = GroverSearch(n_qubits=4, verbose=False)
result = grover.search_expressions([expr], num_solutions=1)

🤖 量子机器学习层

from qsl import QuantumLayer
import torch

# 完全向量化的 PyTorch 层 (无 Python for 循环)
layer = QuantumLayer(n_qubits=4, n_features=4, encoding="angle")
x = torch.randn(8, 4)  # batch of 8
out = layer(x)          # shape: (8, 4) — 可端到端训练

🛠 安装

# 核心 (仅依赖 numpy, ~100KB)
pip install qsl-quantum

# 量子算法 (scipy)
pip install qsl-quantum[algorithms]

# 量子机器学习 (torch, scikit-learn)
pip install qsl-quantum[qml]

# 真实量子硬件
pip install qsl-quantum[ibm]      # IBM Quantum
pip install qsl-quantum[aws]      # AWS Braket

# 全部依赖
pip install qsl-quantum[full]

⚠️ 导入时会提示未安装 SDK 的后端不可用,本地模拟器始终可用。


📁 项目结构

qsl/
├── core/           量子态 · 布尔解析器 · Grover (真正量子Oracle)
├── compiler/       DSL · 编译器 · 门融合/交换 · 错误缓解
├── backends/       模拟器 · IBM · AWS Braket · 自动选择
├── algorithms/     QFT · Shor (量子相位估计) · QAOA · VQE (parameter-shift)
├── qml/            QuantumLayer (向量化) · QNN · QSVM · QGAN (可微)
├── ai/             LLM 翻译器 · 量子智能体 · 假设检验
├── pipelines/      药物发现 · 密码分析 · 投资组合优化 (真正QAOA)
├── meta/           遗传电路搜索 · 量子定理证明 (Grover)
├── network/        分布式节点 · 量子区块链
└── utils/          异常体系 · 输入验证
tests/              398 个单元测试

✅ 运行测试

pip install -e ".[dev]"
pytest tests/ -v
# ======= 398 passed in ~9s =======

🔬 v0.5.0 重大修复 (相比 v0.4.1)

问题 修复
Grover Oracle 经典全枚举 2ⁿ 态 ✅ 从布尔表达式直接构建量子电路
Shor >12 qubit 退回经典 ✅ 正确量子相位估计 + 逆QFT
QuantumLayer Python for 循环 ✅ 全部改为 numpy/torch 批量运算
QGAN torch.bernoulli 不可微 ✅ Straight-Through Estimator
DensityMatrix 转 list-of-lists ✅ 全程保持 numpy ndarray
药物发现随机哈密顿量 ✅ 支持 OpenFermion+PySCF 真实计算
IBM 后端经典枚举Oracle ✅ 量子Oracle电路构建
投资组合经典线性求解 ✅ 逐点运行QAOA生成前沿
VQE 有限差分梯度 O(n_params×2ⁿ) ✅ Parameter-shift 规则
定理证明器经典枚举 ✅ Grover 量子搜索证明空间
QFT apply/matrix 不一致 ✅ 受控相位门逻辑修正
DensityMatrix amplitude damping 仅作用于 qubit 0 ✅ 所有qubit循环施加
QAOA Ising/QUBO 编码不匹配 ✅ 统一变量转换
QuantumLayer CNOT 优先级bug ✅ 运算符逻辑修正
解析器不支持下划线开头变量 _ 标识符支持
kron 遮蔽 numpy.kron ✅ 重命名为 kronecker_prod
VQE 非H₂分子静默替换 ✅ 明确报错提示
IBM JobStatus 路径问题 ✅ try/except 兼容Qiskit 1.0+

👤 作者

宋梓铭 · Gitee · 15011462616@163.com


📄 许可证

MIT License — 可自由使用、修改、分发。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qsl_quantum-0.6.0.tar.gz (243.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qsl_quantum-0.6.0-py3-none-any.whl (209.2 kB view details)

Uploaded Python 3

File details

Details for the file qsl_quantum-0.6.0.tar.gz.

File metadata

  • Download URL: qsl_quantum-0.6.0.tar.gz
  • Upload date:
  • Size: 243.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for qsl_quantum-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ba4fe827b61b8f9b4e15cc5ac2e7a36bc3bc2a6aedb78c4e8f6b51294c7aed8f
MD5 3f6f96ef30b803b5811ae63a30e8374a
BLAKE2b-256 e462d6c46515ab7e37c366338639a69e3035e4f93ffd717c7cf521fe32d2abd6

See more details on using hashes here.

File details

Details for the file qsl_quantum-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: qsl_quantum-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 209.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for qsl_quantum-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dbfc9fe23b7b98862925d655abfda52201af3547f2fab1bf59aa91e71b02dfb3
MD5 36ef4a9d8a0aaf8caa63da8dcf6491a5
BLAKE2b-256 845cf8f588f203f9478fa5d68a89c3bbda24b15b6c1cf34733e549f83bc1c709

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page