PaddlePaddle / Quantum

Other
567 stars 176 forks source link

【PaddlePaddle Hackathon】80 多量子比特独立系统的 Bloch 球展示 #16

Open Quleaf opened 2 years ago

Quleaf commented 2 years ago

(此 ISSUE 为 PaddlePaddle Hackathon 活动的任务 ISSUE,更多详见PaddlePaddle Hackathon

Paddle Quantum(量桨)是基于百度飞桨开发的量子机器学习工具集,支持量子神经网络的搭建与训练,提供易用的量子机器学习开发套件与量子优化、量子化学等前沿量子应用工具集,使得百度飞桨也因此成为国内首个支持量子机器学习的深度学习框架。

【任务说明】

Bloch 球是一个可以直观地展示单量子比特状态的工具。对于单比特量子态,若其是纯态,则对应了 Bloch 球面上的点,若其是混合态,则对应了 Bloch 球内部的点。对于多个比特的量子态,则不能直接套用单比特量子的 Bloch 球功能,而是需要借助密度矩阵求偏迹等知识来结合实现。这个任务中,你需要实现多比特量子态的 Bloch 球展现。

任务要求

  1. 实现输入多量子比特的态矢量或者密度矩阵,输出对应的多量子比特的 Bloch 球展示的函数
  2. 子图个数应该能够根据输入而改变
  3. 求偏迹过程可以使用量桨内置的函数

功能定位:对 paddle_quantum.utils.plot_state_in_bloch_sphere 函数进行功能扩展。

函数输入:多量子比特的量子态的状态向量或者密度矩阵(类型为 paddle.Tensornumpy.ndarray);要绘制的量子比特序号以及顺序,默认为 None,表示全部绘制。

函数输出:对应的 Bloch 球示意图。

实现内容:应支持 n (n>=1) 个量子比特的输入。若输入为单量子比特,其效果应与传统 Bloch 球相符合。若输入为多量子比特,其效果应该与总系统对应于某个量子比特的子系统相符合。

【提交内容】

  1. 项目PR到 Quantum
  2. 相关技术文档
  3. 项目单测文件

【技术要求】