问题标签 [picos-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
52 浏览

python - 指定python模块的开发版本

我想向PICOS 添加一个新类,一个 python 模块。我很久以前就以正常方式安装了它。但是现在我已经下载了源代码,并且我正在尝试进行一些更改。

问题是我无法让 python 从开发文件夹而不是普通文件夹加载模块。

虽然源代码在这里:

因此,我所做的更改不予考虑。

0 投票
2 回答
223 浏览

python - 用 picos 变量制作 Qobj

我需要编写一个半定程序,在 tr_A(R)^{Tb} >>0 的约束下最小化运算符的踪迹,比如 R。这意味着 R 代表一个 3 qubit 量子系统,并且第一个系统上的迹线为您提供了一个表示剩余 2 qubit 系统的运算符。对其中一个量子位进行部分转置,得到受限 2 量子位系统的部分转置量子态。正是这种状态,我想使半正定。我正在使用 PICOS(编写 SDP)和 qutip(执行操作)。

问题:我需要把Rho做成Qobj,qutip才能理解,但是上面的Rho只是Variable类的一个实例。任何人都知道如何做到这一点?

我也看了这里,http ://picos.zib.de/tuto.html#variables ,它变得更加混乱,因为这个函数将实例放在字典中并且只给你一个键。

0 投票
1 回答
1770 浏览

python - PICOS 中的极小极大优化

我有一个关于如何使用 Python 中的 PICOS 包解决 Min-Max 类型的优化问题的一般问题。在搜索PICOS 文档和网络时,我在这方面的信息很少。

我可以想象以下形式的一个简单示例。

给定一个矩阵 M,求 x* = argmin_x [ max_y x^TM y ],其中 x > 0, y > 0, sum(x) = 1 和 sum(y) = 1。

我尝试了一些方法,从最直接的想法开始,即在 PICOS 问题类的目标函数中使用minimax关键字minmax。事实证明,这些关键字都不是有效的,请参阅目标函数的包文档。此外,具有嵌套的目标函数也被证明是无效的。

在我最后一次天真的尝试中,我有两个函数,Max() 和 Min(),它们都在解决线性优化问题。外部函数 Min() 应该最小化内部函数 Max()。因此,我在外部优化问题的目标函数中使用了 Max()。

当我运行上面的代码时,它给了我以下错误消息。

在这一点上,我被卡住了,无法解决这个问题。

只是 PICOS 本身不支持 min-max 问题,还是我对问题的编码方式不正确?

请注意:我坚持使用 PICOS 的原因是理想情况下,我想知道在解决最小-最大半定规划 (SDP) 的背景下我的问题的答案。但我认为添加半定约束并不难,一旦我能弄清楚如何使用 PICOS 解决一个简单的最小-最大问题。

0 投票
1 回答
495 浏览

python - 不能对 PICOS 优化中的矩阵变量施加半正定约束

我正在尝试使用 Picos 包解决以下半定程序。实际上,这是解决 3 个子图情况下的 maxcut 问题的 SDP 松弛。

我得到以下输出:

问题是,虽然我要求 Y 是半正定maxcut.add_constraint(Y>>0)的,但当我检查它的特征值时,并不是所有的特征值都是非负的。

当我删除对角线 ( 上的约束时maxcut.add_constraint(pic.tools.diag_vect(Y)==1),这个问题就解决了。但是,我确实需要这个约束。

如果您能建议我的代码有什么问题,那就太好了...提前谢谢您!

0 投票
1 回答
28 浏览

mathematical-optimization - 如何构建 Picos 仿射表达式?

我使用 picos 作为 LP 建模语言。但是,我得到以下不一致:

(1-eta_tmp) * a_tmpa_tmp - eta_tmp * a_tmp应该是同一个意思。但打印输出未更正:

他们都应该输出# (1 x 1)-affine expression: a -eta*a #. 它是一个错误吗?如果是这样,我该如何报告?

0 投票
2 回答
60 浏览

python - 使用多处理从另一个类调用类方法的实例

我需要在调用另一个类的方法的类中使用多处理技术。下面的解释。

我正在编写多代理策略。因此,我的代码分为 3 个类:

  1. 代理类
  2. 环境等级
  3. 主要的。

在代理类中,我正在运行一个返回决策变量字典的 MILP 问题:

类环境接收来自所有代理的输出以计算“社区”输出。由于每个代理都是一个独立的实体,代理将并行计算他们的优化问题。因此,我想在环境类中使用多处理来获取所有代理的决策

然后在 main 中调用方法community_output()

请问我该如何进行?

由于我有一个实例方法列表作为可迭代对象,因此我尝试了以下方法:

这仅在我删除Env类并将其所有处理放在之前的情况下才有效def job(instance)

当我将它集成到Env课堂上时:

我得到了错误:

我注意到:

是方法返回的字典agent.Optimisationpicos是使用的优化API。

任何线索我该如何解决这个问题?