• 何为量子计算机?


    1. 引言

    相关视频资料见:

    2. 何为量子计算机?

    以一句话来说明”何为量子计算机?“:

    • 量子计算机为使用量子机制的一种计算机,其执行特定类型计算的效率要高于普通计算机。

    此处的普通计算机是指非量子计算机。

    • 普通计算机存储的信息为一系列的0和1组成。该系列的每个单位的0和1称为bit,因此,单个bit要么为0,要么为1。

    • 而量子计算机不使用bits来存储信息,而使用qubits(量子位)来存储信息。每个qubit:

      • 可设置为 0 or 1
        在这里插入图片描述
      • 也可设置为 1 and 0
        在这里插入图片描述

    3. 量子计算机工作原理示例

    在这里插入图片描述
    举例:需要给3个人分配到2辆车中,要求尽可能使关系友好的人在同一辆车上,尽可能减少关系敌对的人在同一辆车上。

    3.1 常规计算机解决方案

    常规计算机的解决方案为:
    以单个bit来表示每个人所在的车编号(0或1)。可能的分配方式有 2 ∗ 2 ∗ 2 = 2 3 2*2*2=2^3 222=23种。
    在这里插入图片描述
    为了计算哪种分配方式最优,引入了score来打分:
    score=(#关系友好的人在同一辆车) - (#关系敌对的人在同一辆车)
    在这里插入图片描述
    常规计算机会遍历所有的可能分配方案,从中获得最优的解决方案为001和110。

    但是,当需要分配4个人时,常规计算机需遍历的的分配方案数为 2 4 − 16 2^4-16 2416;当需要分配100个人时,需遍历的分配方案数为 2 100 ≈ 1 0 30 2^{100}\approx 10^{30} 21001030,常规计算机无法满足相应的要求。

    3.2 量子计算机解决方案

    • 对于常规计算机,使用3个bit,每次仅能代表一个可能的分配方案,如001。
    • 但是,对于量子计算机,使用3个qubit,可一次表示所有( 2 3 = 8 2^3=8 23=8)分配方案。当将第1个qubit设置为 “0 and 1”,类似为创建了2个并行世界(一个为0,一个为1);当将第2个qubit也设置为 “0 and 1”,类似创建了4个并行世界(00、01、10、11);当将第3个qubit也设置为 “0 and 1”,类似创建了8个并行世界(000、001、010、011、100、101、110、111)。

    在这里插入图片描述
    在这里插入图片描述

    量子计算机可在数ms内找到最优解,即001或110。
    实际上,解决这类问题,需要给量子计算机做2个设置:

    • 1)将所有可能的分配方案以qubits表示;
    • 2)定义一个函数对所有可能分配方案打分。本例中,该函数为计算friend pairs数与enemy pairs数,从而获得得分。

    完成以上2个设置之后,量子计算机会在数ms内获得最优解决方案之一——本例中,为得分为1的001 或 110。

    理论上,量子计算机每运行一次会获得一次最优解之一。
    但是,现实世界中,运行量子计算机可能会出错,可能找到的不是最优解,而是次优解,或者次次优解。

    当问题越来越复杂时,错误可能会更明显。因此,实际上,需在量子计算机上重复运行数十次或数百次,然后从这些结果中选出最优解。

    4. 量子计算机的扩展

    即使量子计算机存在错误解问题,但是其不存在普通计算机的扩展问题。

    • 当有3个人分配2辆车时,量子计算机仅需做1次运算,这是因为量子计算机可同时对所有分配方案打分。
    • 当有4个人时,也仅需要1次运算。
    • 当有100个人时,运算次数仍然为1,即量子计算机可一次为所有 2 100 ≈ 1 0 30 2^{100}\approx 10^{30} 21001030分配方案打分。

    尽管如之前所述,实际上要在量子计算机上运行同一问题数十次或数百次,但其性能仍要远远优于常规计算机。

    参考资料

    [1] QuTech Academy Quantum computers with magical advantage?
    [2] FreeCodeCamp 2018年10月博客 What is a quantum computer? Explained with a simple example.

  • 相关阅读:
    BMP编程实践1:C语言实现bmp位图分析与创建
    认识WebAPi
    基于BP神经网络的金融序列预测matlab仿真
    【java】java线程实现
    天锐绿盾——应用服务系统接入-集成OA审批
    基于SpringBoot的健身房会员管理系统设计与实现(源码+lw+部署文档+讲解等)
    在UE5中使用OverlayMaterial制作多材质效果
    密码学系列之:使用openssl检测网站是否支持ocsp
    Java程序员们synchronized相关面试题,你接得住吗
    【java基础】字符串和日期转化
  • 原文地址:https://blog.csdn.net/mutourend/article/details/126325361