原标题:阅读 | 【量子计算机】构造置换量子门(续)
上回我们留下了一道构造量子线路的题目,这里先做一下简单回顾。
用尽可能少的 CNOT 和 Toffoli 门来构造一个量子线路,实现以下的置换:
前
后
|000>
|000>
|001>
|010>
|010>
|100>
|011>
|111>
|100>
|001>
|101>
|101>
|110>
|110>
|111>
|011>
读者们构造出来一个实现上述置换,且只含 8 个 CNOT 和 Toffoli 门的线路了吗?这里先不公布答案,咱们先来讲讲解决这道题的一种强力方法。利用这种方法,可以得到下面一些结果:
构造出所有 5040 种如上置换的线路,而且门数一定都是最少;
至多只需要 8 个 CNOT 和 Toffoli 门就可以构造出任意一个如上的置换。
解决方案
我们用图论来对问题进行建模。
为了简便计,我们把下面 8 个量子态:
|000>, |001>, |010>, |011>, |100>, |101>, |110>, |111>
用
1,2,3,4,5,6,7,8
来代表,于是我们可以用 (12345678) 的一个置换代表实现这 8 个量子态的一个置换。比如,上面的题目要求实现的置换可以简单表示为:
(13582674)
再比如,不做任何改变的置换就是
(12345678)
本身。
现在,我们可以用的量子门有下面 9 个,它们和上面的置换表示方法的关系如下。
控制位为第 1 位,目标位为第 2 位的 CNOT 门,简称之为 cn12,如下:
它的作用是将 5 和 7 对调,将 6 和 8 对调;
2. 控制位为第 1 位,目标位为第 3 位的 CNOT 门,简称之为 cn13,如下:
它的作用是将 5 和 6 对调,将 7 和 8 对调;
3. 控制位为第 2 位,目标位为第 3 位的 CNOT 门,简称之为cn23,如下:
它的作用是将 3 和 4 对调,将 7 和 8 对调;
4. 控制位为第 2 位,目标位为第 1 位的 CNOT 门,简称之为 cn21,如下:
它的作用是将 3 和 7 对调,将 4 和 8 对调;
5. 控制位为第 3 位,目标位为第 1 位的 CNOT 门,简称之为 cn31,如下:
它的作用是将 2 和 6 对调,将 4 和 8 对调;
6. 控制位为第 3 位,目标位为第 2 位的 CNOT 门,简称之为 cn32,如下:
它的作用是将 2 和 4 对调,将 6 和 8 对调;
7. 目标位为第 1 位的 Toffoli 门,简称之为 tof1,如下:
它的作用是将 4 和 8 对调;
8. 目标位为第 2 位的 Toffoli 门,简称之为 tof2,如下:
它的作用是将 6 和 8 对调;
9. 目标位为第 3 位的 Toffoli 门,简称之为 tof3,如下:
它的作用是将 7 和 8 对调;
现在,如果我们把任意一种置换看作是一个顶点,从一个置换 A 到另一个置换 B 若可以通过施加 1 个门得到,则说有一条从 A 到 B 的边。
比如,从 (12345678) 出发,施加 tof3 门,得到 (12345687),可以表示为:
这样,我们就定义了一个图的结构,量子态是顶点,量子门是边,量子线路是从 (12345678) 出发到特定顶点的路径。
现在,我们希望能够得到所有 5040 个置换,以及它们对应的线路,而且希望保证得到的量子线路是实现同样置换的线路当中,门数最少的。这里便要用到广度优先搜索算法。
算法的基本思想是:从 (12345678) 出发,首先施加 1 个门,到达 9 个不同的顶点(对应 9 个不同的置换);再从它们出发,增加 1 个门,到达 81 个顶点,去除重复的顶点;以此类推。
比如,画出前面一些顶点和边就像:
这个算法生成的图具有树的结构,根结点是 (12345678),设它处在第 1 层。这棵树的特点是:
第 n 层结点对应的置换最少可以用 n-1 个 CNOT 和 Toffoli 门来实现;
第 n 层包含了所有最少可以用 n-1 个门来实现的置换;
对 n = 1,2,上述两条都是成立的,对更大的 n 可以用归纳法和反证法说明。假设上述论点对于 n = 1, ..., k 成立,则:
假设 k+1 层结点对应的置换可以用少于 k 个门实现,那么这些结点应该出现在 n < k+1 层,矛盾,可见论点 1 成立;
又对任意一个最少可以用 k 个门实现的置换 A,去除它的最后一个门 G,得到一个最少可以用 k-1 个门实现的置换 a,这 a 由假设一定在第 k 层,这样再补回去 G,便知道 A 一定在第 k+1 层,可见论点 2 成立。
由此可见:从根节点 (12345678) 出发,到达任意节点的路径,必是一个实现该置换的线路,而且使用门数最少!
实验
使用 C++ 编写上述算法,跑出来取第 5005 到 5040 的结果截图如下:
其中第 1 列为置换,后面各列是对应的量子线路(门数最少)。
从算法运行结果可以看到,我们不仅得到了文章一开始的题目的解答(见上面截图第 5040 行),而且得到所有 5040 个置换对应的门数最少的量子线路。另外还发现,所有 5040 个置换,至多只要 8 个 CNOT 和 Toffoli 门就可以实现。
答案
我们把上面的结果画出线路图,得到文章一开始的解答:
(答案不唯一)
●●●
回复以下关键词查看相应内容
美赛/数学建模 | 校历| 成绩单/推荐信函
医保/南校门诊 | 毕业/典礼/留言
大学服务中心 |辅导员 | 校车 | 办事(流程)
回复教师姓名可获取相应信息
●●
责任编辑: