博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IBM借QISKit打造基于云平台的量子计算
阅读量:5875 次
发布时间:2019-06-19

本文共 1768 字,大约阅读时间需要 5 分钟。

IBM量子体验(Quantum Experience)团队已将量子计算软件QISKit开源,根据量子计算和信息科学家Jay Gambetta的介绍,QISKit可供开发者使用Python体验IBM的云端量子处理器。

IBM QISKit包含三个主要组件:

  • 使用Python编写的官方QISKit API客户端,可执行pip install IBMQuantumExperience安装,随后可按照下列范例使用:
api = IBMQuantumExperience("token", config)  qasm = 'OPENQASM 2.0;          include "qelib1.inc";          qreg q[5];          creg c[5];\          h q[0];          cx q[0],q[2];          measure q[0] -> c[0];          measure q[2] -> c[1];'  device = 'simulator'  shots = 1024  api.run_experiment(qasm,                     device,                     shots,                     name='My First Experiment',                     timeout=60)

QISKit客户端还可配合Jupyter Notebook使用:

import pipdef install(package):   pip.main(['install', package])install('IBMQuantumExperience')
  • 一个Python QISKit SDK,其中包含多个由IBM Q工程师提供的用作演示和说明用途的工具。尤其是该SDK可以让我们了解如何创建进行复杂实验的多个作业,如状态层析(State tomography)、随机基准(Randomized benchmarking),以及纠缠测试(Entanglement test)。

  • OPENQASM规范,其中详细介绍了Open Quantum Assembly Language 2.0及其基本资料,可以帮助我们了解由IBM推动的量子计算模型,以及进行量子实验所需的语法。

在IBM的OPENAQSM模型中,量子计算是通过下列四个步骤实现的:

  • 编译(Compilation),使用经典计算机将文本模式的量子算法转换为对应的IR呈现。
  • 电路生成(Circuit generation),将IR转换为一系列量子电路,量子电路则是量子程序的最基本组成部分。量子电路是由基本步骤组成的一种序列,其中不包含任何分支或过程度量。经典控制块可包含量子电路,并可根据度量结果确定程序的整体控制流,或可即时创建新的量子电路。
  • 执行(Execution),该过程在量子计算机上实时进行。执行过程中,由一个高级控制器负责处理输入或来自量子电路的中间态度量,并将其放入由底层控制器执行的物理操作序列。
  • 后续处理(Post-processing),依然在经典计算机上进行,会借助实时量子处理过程中进行的度量创建最终结果。

IBM量子体验旨在通过IBM云平台连接至IBM的量子计算机,供用户借此进行实验或将量子计算能力融入自己的软件程序。量子计算机与基于晶体管的经典计算机最大的不同在于,经典计算机只能使用两种状态,而由于使用了量子位(Quantum bit),量子计算机可以同时叠加更多状态。根据宣传,量子计算技术将能轻松解决传统计算机无法解决的问题,例如可用于大整数分解(密码学)、量子物理过程模拟、琼斯多项式(Jones polynomial)逼近、佩尔方程(Pell’s equation)求解等领域。对于这类问题,量子计算机可实现远超经典计算机的速度,同时也意味着目前棘手的(NP)问题尽管不会变成小菜一碟,但至少量子计算将为我们提供可行的思路。

原文发布时间为:2017年3月15日

本文作者:Sergio De Simone
本文来源:,如需转载请联系原作者。

你可能感兴趣的文章
Firewalld的概念与使用
查看>>
React项目技术栈
查看>>
项目线程安全
查看>>
java B2B2C源码电子商务平台-配置中心svn示例和refresh
查看>>
数据分析Power BI数据建模教程(二)——如何创建计算列
查看>>
Kuuga——转化任何 Web 页面为桌面应用的跨平台工具
查看>>
Java11都出来了还要学Java8新特性吗?
查看>>
AWS光缆被挖后对架构设计的一点总结(一)
查看>>
React Hooks ---useMemo
查看>>
ios 3DTouch初识
查看>>
SpringBoot使用Sharding-JDBC读写分离
查看>>
宅社AcgClub API上线
查看>>
如何用 Vue-CLI 3 打包 npm 包
查看>>
ElementUI Table组件,如何在多页数据下勾选多行
查看>>
什么是Scala Scala如何学习和入门之我的个人学习经验以及相关实战
查看>>
golang 指针实践
查看>>
Android JNI 代码自动生成
查看>>
elemetui中好用的小技巧
查看>>
Laravel 文件上传提示 “The file "" deos not exits ” ,但确实已经上传了文件
查看>>
4.4 -4.5
查看>>