Classiq Library 开源项目教程
1、项目介绍
Classiq Library 是最大的量子算法和应用集合,是探索量子计算软件的最佳方式。该项目欢迎社区贡献,旨在为量子计算领域提供丰富的资源和工具。Classiq Library 包含了多种量子函数、算法、应用和教程,适用于不同的量子计算场景。
2、项目快速启动
安装
Classiq 提供了两种使用方式:通过 GUI 平台和通过 Python SDK。
通过 GUI 平台
无需安装,直接访问 Classiq 平台 并按照示例进行操作。
通过 Python SDK
使用 Python SDK 需要安装 classiq 包:
pip install classiq
请注意,最新的 Classiq SDK 尚不支持 Python 3.12,请参考 Issue #17。
运行示例
Classiq Library 提供了两种类型的示例:.qmod 文件和 .ipynb 文件。
使用 .qmod 文件
将 .qmod 文件上传到 Classiq 平台的 Synthesis 标签页中。
使用 .ipynb 文件
在 JupyterLab 中打开 .ipynb 文件进行查看和运行。
示例代码
以下是一个简单的量子电路示例,包含一个量子比特和一个 X 门:
from classiq import *
NUM_QUBITS = 1
@qfunc
def main(res: Output[QBit]):
allocate(NUM_QUBITS, res)
X(res)
model = create_model(main)
quantum_program = synthesize(model)
show(quantum_program)
result = execute(quantum_program)
print(result[0].value.parsed_counts) # 输出结果
3、应用案例和最佳实践
初始化 $\ket[-]$ 状态
@qfunc
def prep_minus(out: Output[QBit]) -> None:
allocate(1, out)
X(out)
H(out)
Deutsch-Jozsa 算法部分
@qfunc
def deutsch_jozsa(predicate: QCallable[QNum, QBit], x: QNum) -> None:
hadamard_transform(x)
my_oracle(predicate=lambda x, y: predicate(x, y), target=x)
hadamard_transform(x)
QML 编码器部分
@qfunc
def angle_encoding(exe_params: CArray[CReal], qbv: Output[QArray[QBit]]) -> None:
allocate(exe_params.len, qbv)
repeat(count=exe_params.len, iteration=lambda index: RY(pi * exe_params[index], qbv[index]))
4、典型生态项目
Classiq 平台
Classiq 平台是一个强大的量子计算开发环境,提供了丰富的工具和资源,帮助开发者创建和运行量子程序。
Classiq Python SDK
Classiq Python SDK 是一个用于与 Classiq 平台交互的 Python 接口,提供了丰富的 API 和功能,支持开发者通过编程方式创建和运行量子程序。
其他生态项目
- IBM Quantum: 支持在 IBM 量子计算平台上运行 Classiq 生成的量子程序。
- Amazon Braket: 支持在 Amazon Braket 平台上运行 Classiq 生成的量子程序。
- Azure Quantum: 支持在 Azure Quantum 平台上运行 Classiq 生成的量子程序。
- Nvidia: 支持在 Nvidia 平台上运行 Classiq 生成的量子程序。
通过这些生态项目,Classiq Library 能够与多种量子计算平台和工具集成,提供更广泛的应用场景和解决方案。
1660

被折叠的 条评论
为什么被折叠?



