量子计算机|别高兴太早,研发量子计算机的难度你想象不到( 二 )


为了让大家能理解量子计算的独特之处 , 这里我们举几个高度简化的例子:
现在请你想一个 1 到 10 之间的数字 , 然后用一只手表示出来 。 我们可以用 5 根手指头表示出 1 到 5, 然后用拇指和小指一起伸出来表示 6 , 拇指和食指一起 , 可以表示 8 , 如果表示 10 , 那就攥紧拳头就行了 。
那么 , 请你回答 , 你用一只手 , 每一次到底能表达多少个数字呢?你肯定觉得这根本不是一个问题 , 一只手每次当然只能表达一个数字呗 。 没错 , 一只手在同一时间只能表达一个数字 , 这就是经典计算机存储数据的根本规律 。 计算机比我们的手指头更快 , 但它的一个比特位 , 仍然只能存储一个二进制数 。
但是 , 如果换成量子计算机 , 那表达数字的方式立即就被颠覆了 。 现在 , 请把你刚刚用来表示数字的那只手踹在兜里 , 先别着急拿出来 。 请你想一想 , 你踹在兜里的这只手 , 如果伸出来之后 , 有可能表达出多少种数字呢?答案是 10 种可能 。 但是 , 在你真正把手伸出来表示一个数字之前 , 你的手会比出哪个数字 , 仍然是不确定的 。 这正是量子计算机的存储单元——量子比特的存储方式 。 它储存的不是具体的数据 , 而是所有可能出现的数据的出现概率 。 你也可以理解为 , 你踹在兜里的这只手 , 具有某种不确定性 。 所有你可以用这只手表达的数字 , 全部都叠加在一起了 。 你只用了一只手 , 就存储了 10 个不同的数字 , 每个数字出现的概率都是 10% , 这就是量子比特的威力 。
如果你觉得 , 同时存储 10 个数字 , 算不上什么神奇的事情 , 那是因为我们的一只手只有 5 根手指 , 而且编码的方式也不够好 。 如果我们用二进制来表示数字 ,5 根手指就能同时存储 32 个数字 。 如果同时用两只手 , 那就可以同时存储 1024 个数字了 。 请看 , 这就是量子比特的威力所在 。 同样是 10 根手指 , 使用叠加态会让存储能力提升了足足 1000 倍 , 但它们使用的硬件资源却是完全一样的 。

不仅如此 , 以后每增加一个量子比特 , 存储能力就能再提升一倍 。 按照这个规律增加下去 , 用不了多久 , 我们可以同时存储的数字总量 , 就比全宇宙的原子数还要多了 。

上面咱们说的只是存储问题 。 光有超大的存储能力 , 还不能完全体现出量子计算机的强大来 。 我们再说说 , 量子计算机是怎么进行并行计算的 。

量子计算机的并行计算


任何一次计算 , 都是把已知条件代入公式 , 然后通过计算得到结果 。 经典计算机上的已知条件 , 就是一个一个的确定的数字 。 把确定的数字代入公式 , 当然也只能得到确定的结果 。 一次计算 , 得到一个结果 , 这就是经典计算机的计算模式 。
我们可以再打个比方 , 现在有一个黑盒子 , 左边伸出 1024 根电线头 , 右边也伸出 1024 根电线头 。 现在有人告诉你 , 其实只有一根电线是连通的 , 请问 , 你该如何找到这根连通的电线呢?如果使用经典计算机 , 我们只能一个一个地尝试 。 左边的 1 号线头和右边的 1 号线头试试 , 如果不行 , 就用左边的 1 号线头和右边的 2 号线头再试 , 直到找到答案为止 。 这种方法 , 最不幸的结果 , 就是可能要尝试 1024x1024 次 , 也就是大约 100 万次才能找到答案 。
如果用量子计算机解决这个问题 , 就简单多了 。 刚刚我们说过 , 量子比特的存储 , 所有可能的数字 , 都是叠加在一起存储的 。 那么从 1 到 1024 , 其实就只是一组量子比特而已 。 也就是说 , 只需要一次计算 , 量子计算机就同时把所有的可能都考虑进去了 。 它可以一次性地找到那根连通的电线 。 一次计算 , 量子计算机就通过并行计算 , 实现了 100 万倍的效率提升 。
量子计算机|别高兴太早,研发量子计算机的难度你想象不到
本文图片

图:谷歌的量子处理器
超级强大的存储能力 , 加上只需要算一遍 , 就能得到全部结果的并行处理能力 , 以及每增加一个量子比特 , 能力就能增加一倍的神奇特性 , 让全世界都对量子计算机产生着强烈的期待 。

量子计算的瓶颈


然而理想很丰满 , 现实却是骨感的 。 量子计算机的这些超能力 , 全部都建立在量子效应的基础上 。 量子效应最害怕的一件事情 , 就叫做波函数坍缩 。
还记得被薛定谔关在封闭盒子里的那只可怜的猫吗?这只猫之所以能够处于生与死的叠加态 , 正是因为盒子与外界是完全隔绝的 。 任何测量 , 都能把这只量子猫一瞬间打回原形 , 让它呈现出要么活着 , 要么死了的平凡状态 。
量子计算机|别高兴太早,研发量子计算机的难度你想象不到
本文图片

量子计算机的量子比特也存在这种问题 。 只要有一点点的风吹草动 , 这些量子比特就会立即坍缩成一个确定的状态 。 哪怕一组量子比特中装着海量的数据 , 只要你一测量 , 这些数据都会立即化为乌有 , 坍缩成一个具体的数字 。


推荐阅读