量子程序设计基础 | 基于Python的量子程序设计

简介: IBM量子程序开发套件的安装。

01、Qiskit总体架构

Qiskit是IBM公司研发的开放源代码的量子计算软件开发框架,其四大组成如下。

1. Terra

Terra是Qiskit的底层基础模块,它可以让程序员在量子线路和脉冲级别编写量子程序,针对特定设备的约束进行代码优化、管理和调度远程设备完成批量任务。Terra还提供了脉冲调度和后端通信等的高效处理。

Terra包含以下六部分内容。

Quantum Circuits: 提供对量子线路的构建、执行和测量等工作的支撑,测量结果会被映射到经典寄存器中。

Transpiler: 当在真实设备上运行量子线路时,实验误差和退相干等会引起计算错误;为了获得可靠的实现,必须减少量子线路的门数和总运行时间;转译器(transpiler)可针对后端设备的实际信息生成更鲁棒的等价量子线路。

Tools: 提供一组能够让Terra的使用变得更简单的工具,它提升了针对特定后端自动优化量子线路的能力,包含的编译器(compiler)能通过转译器将一组量子线路映射到一个qobj(quantum object)上,然后在后端运行;它还具有监视作业和后端、并行转译任务等功能。

Backends and Results: 为量子线路在后端的执行提供支持,共有四个部分,分别为①Provider负责给出所有可用后端的列表,并从中指定一个执行;②Backend负责运行量子线路并返回结果,其可以是一个模拟器或者一台真实的量子计算机; ③Job负责作业任务的管理; ④Result负责保留最终结果供进一步分析。

Quantum_Information: 为在量子计算机上执行更高级的算法和线路分析提供支持,如创建超算符和量子信道等。

Visualization Tools: 丰富的可视化工具可帮助用户快速检查量子线路及其执行结果的正确性。

2. Aer

Aer提供了开发量子算法和应用所需的模拟器、仿真器和调试器,包含三种高性能模拟器后端: Qasm Simulator、Statevector Simulator和Unitary Simulator。Aer还提供了噪声模型的构建工具,以仿真(模拟)在真机设备上运算时产生的噪声。

3. Ignis

Ignis为消除噪声和执行错误提供系列工具和方法,如层析成像(tomography)等。Ignis提供的众多例程包括噪声参数(T 1、T 2*、T 2等)测量、量子体积测定、随机基准测试(RB)和门保真度测定等。

4. Aqua

Aqua用于构建化学、优化、金融和人工智能等领域的量子算法和应用。

02、Qiskit的安装

本书使用的Qiskit的版本为0.33.1。Qiskit在不断升级发展中,不同版本的安装要求和安装过程会有所区别。

1. 安装要求

Qiskit安装要求的软件基本配置如下。

① Python 3.6及以上版本。

② 64位操作系统: Ubuntu 16.04、macOS 10.12.6、Windows 7及以上。

③ 基础函数库: Numpy-1.19.3和matplotlib。

2. 安装Qiskit

推荐使用Python虚拟环境以更好地区分不同应用并提高使用体验。

① 下载并安装Anaconda 3。

② 用conda创建一个虚拟环境。

conda create -n name_of_my_env python=3.6
③ 激活刚才创建的虚拟环境。

conda activate name_of_my_env
④ 安装Qiskit。

pip install qiskit
⑤ 如果想使用可视化功能或JupyterNotebook,则建议安装带有可视化附加要求的Qiskit。

pip install qiskit [visualization]

目录
相关文章
|
4月前
|
Python
使用python统计字符串中字母个数的函数程序设计
要统计Python字符串中的字母,首先就应该要判断出这些字符为字母,那该如何判断呢?我们可以将该字符串通过Python内置的字符串方法upper()来全部转换为大写,然后通过for循环来遍历该字符串,每次迭代过程中都使用isupper()方法来判断该字符是否为大写。这样就可以避免将字符串中的中文统计在内。我们首先来通过一个实例来了解isupper()方法的用法,如下:
49 2
|
7月前
|
Python Windows
Python程序设计实例 | 带图标的exe可执行文件的打包
* 本系列推文案例中,建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
87 0
|
20天前
|
安全 数据安全/隐私保护 Python
292: 程序设计C 实验五 题目三 设计密码(python)
292: 程序设计C 实验五 题目三 设计密码(python)
|
6月前
|
数据安全/隐私保护 Python
python之用户登录程序设计
python之用户登录程序设计
|
7月前
|
Python
Python程序设计实例 | 列表
* 本系列推文案例中,建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
133 0
Python程序设计实例 | 列表
|
4月前
|
索引 Python
Python 列表查找元素位置的高级函数代码程序设计
Python中,要查找list列表中元素的位置,即元素在列表中的索引位置,可以使用list列表类型内置的方法index(),但这个并不能直接使用,因为要考虑到查找的元素可能并不存在于list列表之中,而使用index()方法查找列表中并不存在的元素,Python将抛出ValueError,程序也可能因此终止,为了避免这种情况
41 3
|
6月前
|
自然语言处理 算法 编译器
Python系列学习第一章-基本程序设计
hello,各位大家好,我是Token_w,下面是我近期主攻方向,给大家更新讲解学习python 沉淀下来,开始更新从最基础的学习python,从入门到精通,并且中间不断穿插各种实战案例 python是一个很好的工具性质的语言,简单易学,希望对大家有所帮助 整理不易,希望大家多多点赞评论收藏支持!!!
107 0
|
7月前
|
Python
Python程序设计实例 | set集合
* 本系列推文案例中,建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
142 0
|
7月前
|
Python
Python程序设计实例 | 字典
* 本系列推文案例中,建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
212 0
|
7月前
|
Python
Python程序设计实例 | 控制结构
* 建议Python采用3.10及以上版本,NumPy采用1.22.3及以上版本,Matplotlib采用3.5.1及以上版本,Pandas采用1.4.2及以上版本。Python从3.10这个版本开始,标准发行版本中自带的IDLE交互式环境中输入提示符>>>单独放在左侧,不能随输入语句一起复制。为了清晰区分实例在交互环境中的输入和输出,本系列推文在每个输入语句的开头依然保留输入提示符>>>。
194 2
Python程序设计实例 | 控制结构