云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

京东云_往服务器上传文件_高性价比

小七 141 0

我在量子计算实验中学到的东西

你听说过量子计算机在计算速度上超过了经典计算机。例如,贝尔实验室的计算机科学家Lov Grover设计了一种称为Grover算法的量子搜索算法,它在数据库搜索速度上实现了二次增长。换句话说,一个在经典计算机上需要31年才能完成的过程,可以由量子计算机在大约9小时内完成。"哇!怎么可能呢?"你可以问。我也有同样的问题,很高兴能探讨这个话题。搜索十亿假设你得到了一个庞大的电话号码列表,这些号码不是按顺序排列的,而是以某种偶然的方式列出的,你的任务是找出某个号码是否在列表中。解决方案不简单吗?你从第一个数字开始,检查它是否与你需要的匹配。如果匹配,你就完蛋了!如果不匹配,则转到下一个数字,然后下一个,直到找到匹配项或到达列表的末尾。这种简单的搜索算法的问题是,当电话号码列表很大时,它的成本非常高(包括时间和计算能力)。尝试搜索一个10亿个电话号码的列表!对于列表中的N个条目(这里N=1000000000),这种线性搜索算法的复杂度是θ乘以N或O(N)。同时测试另一方面,格罗弗的算法利用了量子叠加。想象一下同时检查所有的列表条目。从数学上可以证明,只要搜索一小部分条目,如果找到了数字,那么我们就得到了我们想要的结果。如果没有找到这个数字,我们可以断定它不在列表中(也就是说,我们将得到一些其他随机值作为输出),这是更好的,因为复杂性现在变成θ乘以N或O的平方根(√N)。我们已经能够显著减少搜索次数。还记得我们假设搜索10亿个条目吗?1000000000的平方根仅仅是31623。因此,在寻找结果时有一个二次型的加速。太多了!工作原理Grover的算法提出的是同时测试每个输入值,看哪一个可能是正确的(即,出现在列表中)。使用量子叠加,你可以得到一个表示所有可能输入的量子比特。然后通过某个函数(称为"Oracle"函数)运行这些状态的叠加,将每个输入及其关联的输出放在一起。使用量子变换,你可以使具有期望输出值的状态比其他状态更有可能。将该转换应用于计算的次数,您可以得到一个状态,在这种状态下,一个度量很可能会给您最终的输出。我迷上了量子计算并继续我的实验!在这里查看Grover算法的实现:quant algos我使用IBM的QISKIT API实现quantum程序,位于:https://github.com/QISKit/QISKit-tutorial.gitVimarsh Sathia是一名暑期实习生,在DXC Technology位于班加罗尔的DXC实验室从事量子计算工作。Vimarsh是IIT Madras的一名新生,主修计算机科学和工程。@维玛什萨提亚