量子计算

教程:创建量子随机数生成器 - Azure Quantum | Microsoft Learn

量子计算机是概率计算机

传统计算机和量子计算机之间的根本区别在于,量子计算机中的程序本质上是概率性质的,而传统计算机通常是确定性的。 量子算法包括应用于量子位寄存器的线性运算,用于将状态修改为所有可能的特定叠加。 每个可能的状态都具有关联的概率振幅。 在进行测量时,将获得一个具有一定概率的可能状态。 该情况与传统计算相反,在传统计算中,一个位只能是确定的 0 或 1。

虽然传统计算机的某些程序也是概率性的,但概率性传统程序无法提供可通过量子计算机获得的相同加速。 性能差异其实是由叠加、干涉和牵连所致。

这些特征意味着,有时必须多次运行该算法,以确保输出中出现最高概率的结果。 这种重复操作看似效率低下。 但在许多情况下,相比以传统方式解决任务,多次运行量子算法效率更高。

 量子计算中的叠加 - Training | Microsoft Learn

 

 

[1804.03719] Quantum Algorithm Implementations for Beginners (arxiv.org)

 Qiskit

命令行:jupyter lab

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
qc.draw('mpl')

 

代码使用 Qiskit 库创建一个量子电路,并进行一系列操作。具体解释如下:

  1. from qiskit import QuantumCircuit 这一行代码导入 QuantumCircuit 类,以便后续可以使用该类创建量子电路对象。

  2. qc = QuantumCircuit(2, 2) 创建一个量子电路对象 qc,其中参数 2 表示该电路有两个量子比特(qubits),参数 2 表示该电路有两个经典比特(classical bits)。

  3. qc.h(0) 这一行代码在量子电路的第一个量子比特上应用了一个Hadamard门(H门),将该量子比特置于等概率的叠加态。

  4. qc.cx(0, 1) 这一行代码应用了一个CNOT门(CX门),其中第一个参数 0 是控制比特索引,第二个参数 1 是目标比特索引。这表示当控制比特为1时,将对目标比特进行翻转。

  5. qc.measure([0, 1], [0, 1]) 这一行代码在量子电路的第一个和第二个量子比特上进行测量,并将测量结果存储到第一个和第二个经典比特上。

  6. qc.draw('mpl') 这一行代码将量子电路绘制出来,以图形的形式展示电路的结构和操作顺序。其中 'mpl' 参数使用 Matplotlib 库进行绘制。

       通过这段代码,我们创建了一个包含H门、CNOT门和测量操作的量子电路,并将其绘制成图形,以便可视化和分析量子计算任务。

from qiskit.circuit.random import random_circuit

circ = random_circuit(2, 2, measure=True)
circ.draw(output='mpl')

 

 

        这段代码使用 Qiskit 库中的 random_circuit 方法生成一个随机量子电路,并将其绘制成图形。具体解释如下:

  1. from qiskit.circuit.random import random_circuit 这一行代码导入了 random_circuit 方法,以便后续可以使用该方法生成随机量子电路。

  2. circ = random_circuit(2, 2, measure=True) 这一行代码调用 random_circuit 方法生成一个随机量子电路。它接受三个参数:

    • 第一个参数 2 表示量子电路中有两个量子比特(qubits)。
    • 第二个参数 2 表示量子电路中有两个经典比特(classical bits)。
    • 第三个参数 measure=True 表示在电路中包含量子测量操作。

    这样生成的量子电路将包含随机的量子门操作和测量操作。

  3. circ.draw(output='mpl') 这一行代码将生成的量子电路绘制出来。draw 方法用于绘制电路图,output='mpl' 参数指定使用 Matplotlib 库将电路图绘制成图形。

        通过这段代码,我们可以生成一个随机的量子电路,并将其绘制成图形,用于可视化和分析量子计算任务。

 Open Source Release coming for Microsoft’s Quantum Development Kit - Microsoft Azure Quantum Blog

基于Python的工具,是由美国的量子计算公司Rigetti开发的Pyquil( Pyquil没有Windows版本):

pip install pyquil

 

 Programming Quantum Computers (oreilly-qc.github.io)

 

 

 声明:部分内容来源于微软官方网站知识

posted @ 2023-08-14 14:06  有翅膀的大象  阅读(81)  评论(0编辑  收藏  举报