IBM量子软件平台Qiskit实践操作(一)

参考教程:10分钟教你使用IBM量子软件平台Qiskit

一、环境搭建

本次实验系统为 ubuntu20.04 虚拟机

1.更换更新源

setting>about>software updates>ubuntu software>download from>选择国内源(此处我选的为阿里源)
在这里插入图片描述

2.安装配置python3环境

sudo apt install python3

在这里插入图片描述

3.安装pip环境

sudo apt install python3-pip

在这里插入图片描述

4.安装jupyter笔记本

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple notebook

在这里插入图片描述
此处使用了阿里源,从而pip的安装速度有了很快的提升。

5.安装qiskit环境

首先需要更新setuptools版本,否则后面的安装会出现问题。

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade setuptools

在这里插入图片描述
安装python图形常量:

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

在这里插入图片描述
安装qiskit 0.12.x版本:

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple qiskit==0.12
在这里插入图片描述

安装出错,这里需要安装Cython库

python3 -m pip install cython

在这里插入图片描述
再次安装qiskit,等待大约十分钟后安装成功,等待时间较长,不用着急。

二、下载qiskit源代码并执行

上面安装的qiskit环境必须要与tutorial中的版本相对应,在github中需要选择对应的qiskit tutorial版本,否则,由于qiskit的更新速度较快,版本一旦不匹配就容易出现问题。
下载链接:
https://github.com/Qiskit/qiskit-tutorials/tree/stable/0.12.x

解压源代码并执行

unzip qiskit-tutorials-stable-0.12.x.zip
cd qiskit-tutorials-stable-0.12.x/
jupyter notebook

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

三、编写代码

在jupyter环境中新建一个python文件,并填入如下代码:

import numpy as np
from qiskit import *
%matplotlib inline

# Create a Quantum Circuit acting on a quantum register of three qubits
circ = QuantumCircuit(4)

# Add a H gate on qubit 0, putting this qubit in superposition.
circ.h(0)
# Add a CX (CNOT) gate on control qubit 0 and target qubit 1, putting
# the qubits in a Bell state.
circ.cx(0, 1)
# Add a CX (CNOT) gate on control qubit 1 and target qubit 2
circ.cx(1, 2)
# Add a CX (CNOT) gate on control qubit 2 and target qubit 3
circ.cx(2, 3)

# visualize the circuit
circ.draw()

得到量子线路图如下所示:
在这里插入图片描述

上面的代码没有测量操作,如果要加入测量操作,必须要引入经典量子比特。代码如下所示:

import numpy as np
from qiskit import *
%matplotlib inline

# Create a Quantum Circuit acting on a quantum register of three qubits
circ = QuantumCircuit(4, 4)

# Add a H gate on qubit 0, putting this qubit in superposition.
circ.h(0)
# Add a CX (CNOT) gate on control qubit 0 and target qubit 1, putting
# the qubits in a Bell state.
circ.cx(0, 1)
# Add a CX (CNOT) gate on control qubit 1 and target qubit 2
circ.cx(1, 2)
# Add a CX (CNOT) gate on control qubit 2 and target qubit 3
circ.cx(2, 3)

circ.measure(range(4), range(4))

# visualize the circuit
circ.draw()

生成的线路图如下所示。可以看出,所有的量子比特的测量结果都被存储到了经典比特中。
在这里插入图片描述
在IBM的量子计算机中,基本的门包括u1、u2、u3、cx和id门,其他的门都可以用这些基本的门所组成。

我们将上面所绘制的线路分解为基本的门,量子线路图为:

circ_basis = circ.decompose()
circ_basis.draw()

在这里插入图片描述
并测算其计算深度:

print(circ.depth(), ',', circ_basis.depth())

可测得深度均为5。而对于其他的线路实现,有些时候真正执行的门线路深度比手工绘制出的门线路深度要深。另外,受到量子计算芯片自身的拓扑连接约束,要执行某些操作时往往还需要SWAP门来实现未连接的量子比特之间的互操作。
在这里插入图片描述
执行带测量的量子线路:

# Import Aer
from qiskit import Aer
from qiskit.visualization import plot_histogram

# Run the quantum circuit on a qasm simulator backend
backend = Aer.get_backend('qasm_simulator')

# Create a Quantum Program for execution 
job = execute(circ, backend)


counts = job.result().get_counts()
print(counts)

plot_histogram(counts, figsize=(15,6))

报错
在这里插入图片描述
目前还在调试中。。。

想学习了解量子计算的同学或老师可以关注公众号:QULIB
功能介绍:本公众号旨在实现高层次量子编译器,让不懂量子的人也可以很方便地使用量子计算机;解决量子计算机中缺少统一且具备实际意义的benchmark;实现量子测控系统建模,并通过进化算法、机器学习算法等技术完成自动化测控系统校准。
在这里插入图片描述

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值