量子计算机(quantum computer)是一类遵循量子力学规律进行高速数学和逻辑运算 、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。
量子计算机,早先由理查德·费曼提出,一开始是从物理现象的模拟而来的。可他发现当模拟量子现象时,因为庞大的希尔伯特空间使资料量也变得庞大,一个完好的模拟所需的运算时间变得相当可观,甚至是不切实际的天文数字
为什么需要量子计算机?
传统电能计算机能力依旧有限。随着计算机发展,高速计算得以实现,反之,待以解决的问题也变得越来越复杂、繁琐。对于复杂的三维物体或具有量子力学行为的物质,对于当前仿真计算技术仍有较大挑战。
不可否认,有时候在计算方面,计算机仍力有未逮。近年来备受关注的区块链技术、机器学习技术,均致力于减少求解问题所花费的时间。
经典计算机的掣肘在哪?
经典计算基于比特和字节,拥有多重排列模式。经典计算的基本单位是比特,它可以处于两种二元状态之一:off或on,在经典计算中通常被描绘为0或1。连续的8比特成为1字节,其可以储存更多数据,同时根据不同比特状态排列组合,1字节可拥有256种完整组合,而这些组合也足以使用ASCII系统对拉丁字母表中的每个字符进行编码。
一种更现代的编码称为“Unicode”,使用最多四个字节的组,足以涵盖从表情符号到泰米尔字符和许多其他基于字符的语言的所有内容,而其超过 100 万个可用组合中的一小部分而已。
比特解决计算问题的方式可理解为迷宫游戏。假设比特字节计算方式为一个迷宫,其目标是使用最短的路径到达迷宫中心。使用经典计算机,沿途的每个交叉点都变成与一位相对应的二元决策,其中1/0位表示在迷宫“转弯处”的决策。
通过此种方式,可将每个比特位的组合视为穿过迷宫的一组方向。但每一次的比特字节组合并非是正确的,一些路径会重叠,而另一些路径可能会遇到死胡同,但通过尝试每种组合,最终可以找到到达中心的最短路径。然而单字节就拥有256种组合,为了检查准确性,经典计算机必须研究每种可能的轮组合,并且一次只能检查一个组合。
经典计算核心问题在于多项式时间内无法求解
可解问题就是相对于输入参数的数量,需要计算的次数没有急剧增多的问题。以“从输入的一组数字中找出最大的数字”问题为例,在输入了6个数字的情况下,程序逐一对比大小后,大约计算6次可得到解;在输入了10个数字的情况下,程序大约需要计算10次;在输入了100个数字的情况下,程序大约需要计算100次。即对于“求最大值”这类问题,若输入了N个数字,程序大约需要计算N次。
由果溯因反向推理问题求解难度较大,且拥有多种组合,“不可解问题”出现概率较大。对于“从输入的一组数字中,找出乘积最接近40的数字组合”问题,常规解法是列出所有输入数字组合,逐一计算各种组合的乘积,再从中找出乘积最接近40的组合。
如输入了6个数字,则有26 = 64种组合;当输入10个数字时,需要进行210 = 1024次乘法运算;当输入20个数字时,需要进行210 = 1048576次乘法运算;当输入30个数字时,需要进行230 = 1073741824次乘法运算,运算的次数程指数式增加。
经典计算核心问题在于多项式时间内无法求解
当输入的数据个数为N时,计算次数大约为