krotov量子最优控制方法的python实现

krotov的Python项目详细描述


krotov python包

Github上的源代码Appveyor持续集成 < < <<<<<<<<<<<<<<<<<<<<<<<<<<

krotov量子最优控制方法的python实现。

此实现遵循qdyn fortran库中的原始实现。 该方法在d.m.reich、m.ndong和c.p.koch、j.chem中详细描述。物理的。136104103(2012年)( arxiv:1008.5126 )。

krotov包是在qutip上构建的。

开发在github上进行。您可以在阅读文档时阅读完整的文档。

如果您在研究中使用krotov包,请引用-krotov-package" rel="nofollow">引用它

PrPO<H3>se < H3 >

最优控制是量子技术的基石:不依赖 只是被动地理解量子力学,而主动地 利用物质的量子特性。量子最优控制问题 如何操纵量子系统的动力学,使其在某个期望的 方式。这对于量子计算机的实现至关重要,并且 量子传感等相关技术。例如,见Glaser等人。欧元。 Phys。J.D 69279(2015)方法、应用和 目前的研究方向。量子技术和量子控制 几个大型国家和超国家研究的重点 努力,例如10亿美元的国家量子计划法案 10亿欧元的欧洲量子旗舰计划

krotov方法是两种基于梯度的优化方法之一 用于数值量子最优控制的算法。它模拟动力学 在一组初始控制下的量子系统,并计算 关于最小化的优化函数的结果。然后 迭代修改控件以确保值单调递减 在优化函数中。到目前为止,还没有一个开放源代码 方法的实现。这个包提供了丢失的 实施。

选择python作为实现语言是因为python易于学习 语法,表现力,以及在科学界的广泛流行。 此外,qutip库的存在为 数值描述量子系统,已经包括 量子控制中其他一些流行的算法,基于梯度的 葡萄和无梯度螃蟹。Jupyter笔记本的可用性 框架为展示方法的使用提供了一个理想的平台。

克罗托夫计划的目标是希望进入的两名学生 量子控制领域,以及该领域的研究人员。通过提供 我们提供了一组全面的示例,使我们包的用户能够 探索典型控制问题的表述,并了解如何 克罗托夫的方法可以解决这些问题。这些例子的灵感来自 最近的出版物,从而显示了该方法在 研究。最优控制在 实验,我们希望有一个易于使用的实现 克罗托夫将进一步促进这一点。

python的使用意味着对于大规模的控制问题,性能 可能成为一个重大问题。在这种情况下,可能需要执行 用一种更有效的(编译)语言编写的krotov方法。而方法是 这样比较直截了当,涉及到一些微妙之处。我们的 实现强调清晰性,文档提供了 所有必要概念的详细解释。因此,krotov包可以 作为参考实现,利用python的声誉 "可执行伪代码",并以此作为测试其他对象的基础。 实施。

先决条件

krotov包可用于python版本>;=3.5。它的主要依赖项是qutip (除了python科学生态系统的核心包之外)。 因此,您应该考虑qutip的安装说明。

在任何情况下,强烈鼓励使用某种虚拟环境。 python科学生态系统中的大多数包现在都可以作为 控制盘 ,通过 控制盘 轻松安装。然而,qutip目前确实存在 不提供车轮。因此,在没有必要编译器的系统上 已安装(Windows、MacOS),Conda提供了一个很好的解决方案。

假设安装了conda 命令设置虚拟(conda)环境,krotov包可以 然后安装:

$ conda create -n qucontrolenv python=3.6
$ conda activate qucontrolenv
$ conda config --append channels conda-forge
$ conda install qutip

安装

将最新版本的krotov安装到当前版本(conda) 环境,在终端中运行此命令:

$ pip install krotov

这是安装 krotov 包的首选方法,因为它总是安装最新的稳定版本。

您也可以这样做

$ pip install krotov[dev,extras]

安装附加的开发依赖项,包括运行示例笔记本所需的软件包。

如果您还没有安装pip,请参阅python安装指南。python packaging用户指南 整个过程。

从github安装最新开发版本的krotov

$ pip install git+https://github.com/qucontrol/krotov.git@master#egg=krotov

用法

在python脚本中使用krotov方法进行量子最优控制,或者 Jupyter笔记本 ,从:

import krotov

那么,

有关详细信息,请参见 将krotov与qutip一起使用 示例

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java是否在servlet中检索上一页路径?   Java抱怨在开关的默认情况下未初始化最终字段   Java泛型:为什么编译器不能判断这个类<t>对象与这个类的类型参数的对象的类具有相同的类型?   Java:继承方法中使用的私有变量   HibernateJava。ClassCastException:java。lang.Integer不能强制转换为abc。def。我的项目。奥姆。EmployeeTopMetaData   http java发布和下载文件   java改进条件检查   java如何将2d数组的条目作为键放在地图中   java如何获取传递给运行时的值。getRuntime。JUnit测试用例中的exit(value)   java注释来创建所有可能的构造函数   自动建议列表:java。lang.IllegalArgumentException:在XPath表达式为null时找不到元素   为什么MapAPI在Java中不提供流功能?   gradle不导入本地java库   尽管我使用的是SessionCreationPolicy,java Spring安全性似乎仍在使用会话。无国籍   使用java查找MongoDB中数组元素的平均值