QPanda量子计算编程
上QQ阅读APP看书,第一时间看更新

1.2.7 基于量子信息的IF与WHILE

1.2.6小节介绍的是“量子信息、经典控制”,那么有没有“量子信息、量子控制”呢?对IF而言,答案是有的。定义“量子信息、量子控制”过程是一组量子比特的操作,它是由另一组量子比特的值决定的。一个简单的例子就是CNOT门。对而言,是否执行NOT门是由的值决定的。基于量子信息的IF 的性质如下。第一,这种控制可以叠加。如果判断变量本身处于叠加态,那么操作比特也会出现执行/不执行量子逻辑门这两种分支,由此可判断变量和操作比特之间会形成纠缠态。第二,控制变量和操作比特之间不能共享量子比特,即中的控制比特和目标比特一定不能相同。

基于量子信息的IF在实际的量子算法中使用得比较少,因此大部分量子软件开发包都没有加入这个功能。在Shor算法和其他基于布尔运算的线路中会采用这个思想(如对是否求模的判断),但实际中,一般是利用CNOT门的组合来实现。目前,WHILE还没有合适的定义,因为量子信息不确定,那么很有可能会在WHILE 中产生无法停机的分支。以经典控制的QWhile为例,如果控制变量是1量子比特,那么每次都会有一个概率使得这个循环继续下去。因此,为了执行这个序列,就需要无限长的操作序列,这导致从物理上无法定义这种操作。