引入纯度和类型注释、捕捉编程错误,MIT推出低开销量子编程语言Twist

简介: 研究者希望 Twist 为创建更多有助于编程人员更易面对量子计算挑战的语言铺平道路。

image.png

与使用比特的传统计算机不同,量子计算机使用量子比特(qubit)将信息编码为 0 或 1,或同时编码。再加上量子物理学的助力,这些冰箱大小的机器可以处理巨量的信息,但量子计算机远远称不上完美。就像经典计算机一样,我们需要合适的编程语言在量子计算机上进行计算。

对量子计算机进行编程需要了解纠缠(entanglement),它是用于各种量子比特的计算乘子,可以转化为强大的能量。当两个量子比特纠缠时,一个量子比特上的行为可以改变另一个量子比特的值,即使这两个量子比特在物理上是分离的,从而引出爱因斯坦的名言「鬼魅般的超距作用」。

但是,这种能力同样导致了弱点。在编程时,如果丢弃一个量子比特时没有考虑到它与另一个量子比特的纠缠,则会破坏另一个量子比特中存储的数据,进而危及程序的正确性。

日,MIT CSAIL 和 RLE(电子学研究实验室)的研究者在论文《Twist: Sound Reasoning for Purity and Entanglement in Quantum Programs》中创建了一种被称为 Twist 的量子计算编程语言。Twist 可以通过一种经典计算机编程人员理解的语言来描述和核实哪些数据在量子程序中被纠缠。Twist 语言引入了一种被称为纯度(purity)的概念,这种概念导致纠缠强制缺失,生成了更直观易懂的程序,并且在理想情况下 bug 更少

举例而言,编程人员可以使用 Twist 来说明:一个程序生成的临时垃圾数据不与该程序的答案纠缠在一起,因此可以安全地丢弃这些数据。

image.pngimage.gif


论文地址:https://dl.acm.org/doi/pdf/10.1145/3498691

论文一作、MIT CSAIL 编程系统组(Programming Systems Group)的博士生 Charles Yuan 表示,「通过显式地说明一个量子比特何时不得与另一个纠缠,Twist 编程语言使得开发人员可以编写更安全的量子程序。并且,因为理解量子程序需要事先了解纠缠,我们希望 Twist 为创建更多有助于编程人员更易面对量子计算独特挑战的语言铺平道路。」

image.pngimage.gif


未来的重要一步是使用 Twist 创建更高级的量子编程语言。当前,大多数量子编程语言仍然属于汇编语言,将低级操作串在一起,没有注意到数据类型、函数以及经典软件工程中的典型事物等。

对于这项工作,芝加哥大学计算机科学教授、Super.tech 首席科学家 Fred Chong 说道,「量子计算机容易出错,并且编程起来很难。通过引入程序代码中的纯度并对它进行推理,Twist 语言保证纯净代码中的量子比特无法被非代码中的比特所改变,进而朝着更容易的量子编程迈出了一大步。」


技术概览

本文中,研究者将纯度形式化为一个实现量子程序中纠缠推理的核心工具。就一个纯净的表达式而言,它的评估不受不属于它的量子比特测量结果的影响,这意味着在计算中不与任何其他表达式产生纠缠。然后,他们提出了首个以类型系统为特征的语言 ——Twist,用于对纯度做合理推理。这种类型系统使开发者可以使用类型注释识别纯净的表达式。

Twist 还引入了纯度断言操作符(assertion operator),说明量子门输出中没有纠缠。为了合理地检查这些断言,Twist 组合使用了静态分析和运行时验证。

研究者使用量子遥传(quantum teleportation)协议展示了纯度值和 Twist,以及纠缠的力量和门传送等技术的构建块。量子遥传协议通过传送两个经典信息比特,将一个量子比特中存储的信息传送到任意距离之外的接收器。下图 1 展示了一个用于遥传延迟测量变体的量子电路,它将要被传送的量子比特 q^1 作为输入。

image.gif

image.png

下图 2 展示了图 1 中量子电路的程序,它作为一个函数接受量子比特 q^1 并返回传送的输出,其中助手(helper)bell_pair 分配了一个贝尔对(Bell pair)。

image.gif

image.png

下图 3 展示了图 2 中的遥传程序,使用 Twist 编写,并且纯度带有类型注释。在 Twist 程序中,每个量子表达式都是纯净或混合的类型。其中,纯净表达式不受其他量子比特测量影响,而混合表达式可能受到其他量子比特测量的影响。

image.pngimage.gif


下图 4 展示了 teleport 函数的实现,利用 Twist 的纯净断言来可靠地返回一个纯净输出。该程序执行两个步骤以验证 q^3 没有与程序中的任何其他量子比特纠缠在一起。

image.gif

image.png

最后,研究者对 Twist 的类型系统进行评估,并在模拟中分析了一组基准量子程序,证明了 Twist 可以表达量子算法,捕捉编程错误,并支持现有量子编程语言不支持的程序,同时产生的运行时验证开销低于 3.5%

image.png


更多细节内容请参考原论文。

参考链接:https://techxplore.com/news/2022-01-language-quantum.html


相关文章
|
自然语言处理 搜索推荐 开发者
SmartArXiv——基于OpenSearch LLM智能问答版构建的智能学术论文助手正式发布
本文介绍智能学术论文助手SmartArxiv的架构、应用场景和产品功能。
2492 1
|
C# Windows
WPF技术之RichTextBox控件
WPF RichTextBox是Windows Presentation Foundation (WPF)中提供的一个强大的文本编辑控件,它可以显示富文本格式的文本,支持多种文本处理操作。
922 0
|
人工智能 API Python
Python 技术篇-有道翻译api接口调用详细讲解、实战演示,有道智云·AI开放平台
Python 技术篇-有道翻译api接口调用详细讲解、实战演示,有道智云·AI开放平台
3905 0
Python 技术篇-有道翻译api接口调用详细讲解、实战演示,有道智云·AI开放平台
|
NoSQL Java Redis
请勿过度依赖Redis的过期监听
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Redis过期监听场景 业务中有类似等待一定时间之后执行某种行为的需求 , 比如30分钟之后关闭订单 . 网上有很多使用Redis过期监听的Demo , 但是其实这是个大坑 , 因为Redis不能确保key在指定时间被删除 , 也就造成了通知的延期。
请勿过度依赖Redis的过期监听
|
9月前
|
机器学习/深度学习 编解码 计算机视觉
RT-DETR改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
RT-DETR改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
204 2
RT-DETR改进策略【注意力机制篇】| Mixed Local Channel Attention (MLCA) 同时融合通道、空间、局部信息和全局信息的新型注意力
|
4月前
|
人工智能 自然语言处理 搜索推荐
从扣子空间看 AI 智能体:与豆包、Kimi 较量及未来走向
本文探讨了当前 AI 智能体的发展现状、功能特点及其与传统 AI 大模型的差异,分析了其使用门槛与未来发展趋势,展望了其在多领域应用的潜力与挑战。
1120 0
|
机器学习/深度学习 人工智能 并行计算
【AI系统】NVLink 原理剖析
随着AI技术的发展,大模型参数量激增,对底层硬件和网络架构提出新挑战。高效训练这些模型需要大规模GPU集群及高速网络连接,以实现快速数据交换。然而,网络瓶颈限制了GPU性能的充分发挥,表明单纯增加GPU数量不能线性提升算力。因此,算存互连和算力互连技术成为关键,如PCIe、NVLink和NVSwitch等,它们通过提高数据传输速度和效率,支持大规模并行计算,解决了大规模GPU集群中的通信延迟问题,推动了万亿级模型训练的实现。
635 2
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
1232 84
|
缓存 关系型数据库 数据库
PostgreSQL 查询性能
【8月更文挑战第5天】PostgreSQL 查询性能
291 8
|
开发者 C# UED
如何轻松将WinUI控件引入Web应用?Uno Platform实战攻略——从环境搭建到性能优化,一探究竟!
【8月更文挑战第31天】Uno Platform 通过支持 WebAssembly,将 WinUI 控件无缝带入 Web,为多平台开发提供了新途径。本文介绍如何在 Web 中使用 WinUI 控件,包括环境搭建、控件使用、性能优化、样式调整及测试调优,助力开发者打造高质量跨平台应用。
269 0