量子计算机编程总结.ppt_第1页
量子计算机编程总结.ppt_第2页
量子计算机编程总结.ppt_第3页
量子计算机编程总结.ppt_第4页
量子计算机编程总结.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

量子计算机编程 什么是量子计算机 要了解量子计算机编程 首先要了解量子计算机的工作原理 传统计算机基于CPU芯片的二进制流处理模式 传统计算机将数据存储为多个位上的 和 量子计算机改变了这一切 用来理解数据位内容的物理原理是完全不同的 为了制造这样的计算系统 我们需要不同的处理器设计方式 架构 最终在这种系统上的变成方法也是不同的 我们首先会讲解 量子位 qubit是如何取代传统计算机的 数据位 bits的 电灯开关游戏 一个简单的场景游戏 从应用场景出发 才能更好地解释量子计算机编程 电灯开关游戏要寻找到一套最佳的开关组合 假设每个电灯开关都有一个对应的系数 这个系数是不能改变的 我们称之为 偏差值 你需要选择每个开关是开 对应 1值 还是关 对应 1值 我们称之为状态值 然后我们用偏差值乘上你选择的状态值 这样得到一个值 简单问题的简单解 根据我们为每个开关选的状态 我们会得到不同的得分 很容易就会发现其中的规律 并找到答案如下所示 我们发现把有正偏差值的灯关上 把负偏差值的灯关上就会得到最小的得分 这是个很简单的规则 你可以将之应用到更多开关的题目上上以得到最小的得分 复杂的电灯开关问题 假设开关变成结对出现的 每个结对上都有自己的偏差值 这个偏差值会乘上这个连接两端开关的状态值并计入得分 得分的计算公式在扩展后变成了这样 复杂问题的求解 求解这样的一个电灯开关问题 将会变得十分复杂 电灯的状态值很难确定 因为最终的得分不只和自身的偏差值相关 同时还与相邻的状态偏差值相关 当开关数量进一步增加的时候 要得到最终的得分将会变得更加困难 电灯开关游戏的计算量 只取出其中一组连接的开关 你可以尝试各种开关组合 只有四种可能 ONON ONOFF OFFON 或 OFFOFF 但是当你加入更多的开关时 可能的组合数会成指数的增长 switches开关数possibleanswers可能的组合数 量子位qubit的出现 量子计算机的基础是使用量子的叠加状态存储相当于若干传统数据位bits的信息 你可以把这个想象成量子位qubit没有确定的开关状态 一些人将之称为同时处于开关状态 你可以将这个比喻应用到电灯开关游戏上 就是量子位对应的开关可以同时处在开关的两个状态上 量子计算机解决电灯开关问题 由于每个开关都包含两种状态 因此这样的存储状态已经包含了所有的可能 那么得分最低的那个状态组合自然也包含其中 只是我们不知道罢了 使用量子编程可以提取得分最低的这组状态 什么是量子编程 先将系统置为从之前描述的量子叠加态 然后慢慢地让量子计算机关闭量子的叠加态效应 同时将条件中的偏差值赋给相应的开关和开关之间的连接 之前的H J值 当你进行这个操作时 量子开关脱离量子的叠加态并进入传统的开关状态 不是开就是关 最终量子计算机中的量子机制帮助这些电灯开关最后找出得分最低的组合 即便有N个开关和对应产生的2的N次方个开关组合 量子计算机也可以一步找到所有组合的游戏积分表达式中最低的那个组合 量子计算机和传统计算机编程的区别 在传统计算机中 我们使用一个确定的数据位bits组合和另一个数据位bits组合在运算处理其中进行运算 而在量子计算机中 我们用一个状态不确定的量子位组合作为输入 所以处理器中的运算方法也是截然不同的 一组状态不确定的量子位qubit被初始化成不确定的量子叠加态 而这次使用一个能量程序而不是传统的逻辑程序来对它们进行计算 量子位qubit在运算的开始是不确定的 而在运算结束的时候它们都会停在 1或 1的状态 什么是能量程序 能量程序对应的就是电灯游戏里的偏差值也就是之前公式中的H和J 在开关游戏中 我们说H和J是提供给你的条件 而现在我们了解到H和J实际上就是量子计算实际要解决的问题的条件 编制包含一系列H和J值的能量程序 也就是将你关心的实际问题转换成量子计算机能解决的问题 是非常困难和消耗时间的 这个过程类似于使用机器码来给你的电脑编程 幸运的是 有一些更好的使用量子编译器的开发方法 常见的量子编程软件及工具 高级的综合编译工具目前有以D Wave的Qbsolv为代表的图像化的操作界面功能强大IBM的QISKit开发套件功能强大微软的LIQUi 开发套件日本理化研究所RIKEN推出的QuTiP QuantumToolboxinPython 类似汇编语言的量子编程语言命令式编程的QCLQCL的语法和C相似 让传统程序员可以用一种熟悉的形式来给量子计算机编程 最基本数据类型是qureg 类似于队列 QCL支持用户自定义操作符和函数 由于QCL编译器用的是qlib仿真库 所以程序在运行中的qubit量子态可以被看到 但这在真正的量子计算机上是不可能的 只能在模拟器上可以实现 函数式编程的QuipperQuipper在函数式编程语言里算是最新成员 是一种嵌入式语言 宿主语言为Haskell D Wave公司的2000Q系统软件架构 提供了一个基于RESTful服务的标准的网络API 以及可用于C C Python Matlab编程的客户端库 这个接口允许用户访问系统 要么作为云资源通过网络访问 要么集成到他们的高性能计算环境和数据中心 使用D Wave公司的开发工具和客户端库 开发人员可以在现有的环境中使用行业标准工具来创建算法和应用程序注意 Qbsolv写的程序目前只能在D Wave的机器上跑 D Wave公司的软件工具支持 使用一个程序的C c Python或MATLABQMIs创建和执行使用递工具如 QSage 专为优化问题设计的翻译器ToQ 一种高级语言翻译器 用于约束满足问题 旨在让用户用问题领域的语言 说话 qbsolv是一个开源的混合分区优化求解器 用于解决大于QPU本身的问题 dw 它执行通过文本编辑器创建的QMI 量子编程的应用 电灯开关游戏只是众多的优化问题中的一种 很多科学问题的关键就是这样的优化问题 优化 机器学习 采样 蒙特卡洛 模式识别和异常检测 网络安全 图像分析 财务分析 软件 硬件验证和确认 生物信息学 癌症研究等等 D Wave公司提供很多应用程序解决方案 国防应用程序任务规划和物流系统确认和验证模式识别和异常检测网络科学和图论的应用程序网络安全 国家实验室应用程序优化问题图论问题材料科学电子结构的问题理论和实验物理机器学习 D Wave公司提供很多应用程序解决方案 网络应用程序图像和模式识别机器学习沟通高级搜索网络安全 大学应用程序气候模型生物信息学天气预测探索量子计算 金融应用程序风险建模交易策略检测市场不稳定制定交易策略优化交易轨迹优化资产定价和套期保值优化投资组合 D Wave公司提供很多应用程序解决方案 能源应用程序能源勘探地震勘探的优化储备和现货交易优化水库优化 医疗保健应用程序优化放疗治疗生成靶向抗癌药物疗法创建蛋白质模型 IBM公司的IBMQ与量子信息软件工具包 QISKit IBMQ是业界第一个为商业和科学构建商用通用量子计算系统的计划 量子信息软件包 简称QISKit 是一个与OpenQASM和IBMQ体验 QX 协同工作的软件开发工具包 SDK 使用QISKit创建量子计算程序 编译它们 并在几个后端之一 在线实型量子处理器 在线模拟器和本地模拟器 上执行它们 对于在线后端 QISKit使用我们的pythonAPI客户端连接到IBMQ体验 注意 IBM的方案可以让我们无需购买量子计算机 直接利用他们提供的云服务进行量子计算的学习和应用 微软的LIQUi 开发套件 LIQUi 是量子计算的软件体系结构和工具包 它包括编程语言 优化和调度算法 以及量子模拟器 LIQUi 可用于将以高级程序形式写入的量子算法转换为量子器件的低级机器指令 LIQUi 正在由微软研究院的Quantum架构与计算组 QuArC 开发 开源代码 http stationq github io Liquid 日本理化研究所RIKEN的QuTip QuTip的原始框架用Python书写 Python的简单语法允许建造 操作和使用QuTiP发展量子对象只需要几行代码 容易学习 100 开源 QuTiP是理想的工具箱研究或教室 基于Python开发 功能强大 量子编程总结 量子计算机另一个显著特点就是基于概率的输出结果 计算机会输出多个结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论