QPanda是由本源量子开发的开源量子计算编程框架,它可以用于构建、运行和优化量子算法。QPanda作为本源量子计算系列软件的基础库,OriginIR、Qurator、量子计算服务提供核心部件。
本节向大家介绍数据编码。
调用量子门形成组合的过程中,会频繁需要调用经典数据。
将经典格式编码到量子态是量子计算中的一个重要的预处理环节,主要有2实现方式:
1. 编码到基向量。指将经典数据转化为整数形式后,将其二进制展开以直积态表示;
2. 编码到振幅上。指将经典数据通过量子门操作转化到量子态的振幅。
编码到基向量
对于任给的经典数据,通过追加额外比特,可以将它拆分成不含虚部、负号和小数点的多个非负整数的组合。 因此此处只介绍对于非负整数的编码过程。
注解
复数→实数→非负实数→非负整数复数→实数→非负实数→非负整数
二进制展开:
任给经典非负整数,对其进行二进制展开,每一位二进制数都可以简单绑定到单个量子比特,那么任给不超过N的非负整数,只需要 log2(N)个比特就可以将其绑定到基向量上。
存储比特与索引比特:
对于上限均为N的k个经典数据,需要 log2(N) 个存储量子比特和 log2(k)] 个索引量子比特将其编码到量子态基向量,每个数据均需要 log2(N)个条件非量子门。
考虑到量子比特的特性,当添加了索引比特之后,多个经典数据可以共用存储比特。如图所示,k个经典非负整数数据由二进制展开逐位对应编码到存储比特上,每个经典数据的编码量子门受控于索引比特的一种状态。
编码到振幅
编码到振幅的方式兼容所 有的复数经典数据,但虚部依然需要追加额外比特。 方便起 见,此处只考虑编码实数经典数据。
如图所示,假设某个物理量A由4种属性描述,属性的取值均为实数。于是A的状态可以用归一化的波函数表示,进而A的量子态 |A 可以表示成如公式所示的叠加态。
不妨假设
注解
否则 |A 不是叠加态
记
于是有
进而
直接由此表达式给出RY和受控RY量子门的组合,可以完成对4属性物理A的二比特量子态的编码。
推广到以N个实数刻画的经典数据,将其编码到量子态振幅的所需的量子比特数目为 log2(N),使用的量子门数量为 2log2(N)1
对比两种不同的编码方式,编码到振幅上的方式兼容的数据类型更广,所需量子比特数更低,但不能进行经典数据相关的量子态的量子四则运算。
https://qpanda-tutorial.readthedocs.io/zh/latest/DataEncoding.html#
https://qcode.qubitonline.cn/rostrum/index.html
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.