python - 如何在 mosek.fusion.Model 中提取表达式?
问题描述
我想解决最大化目标的优化,该目标是矩阵的绝对值之和。但是,我找不到准确的方法来获得它:
例如:
import mosek.fusion as mf
from mosek.fusion import Model, Domain, Expr, ObjectiveSense
with Model('lol') as M:
x = M.variable('x', [5,1], Domain.inRange(-1,1))
M.objective('obj', ObjectiveSense.Maximize, abs(x))
M.solve()
不工作
Type Error: bad operand type for abs(): 'RangedVariable'
我怎样才能得到 的绝对值x
?
解决方案
首先,您不能只将任意 Python 函数应用于 mosek.fusion 对象!有关可用的内容,请参阅https://docs.mosek.com/8.1/pythonfusion/api-reference.html。
其次,最大化绝对值不是凸问题!如果您真的想对其建模,则必须使用混合整数编程。查阅https://docs.mosek.com/modeling-cookbook/mio.html
推荐阅读
- .net - Azure Devops:在所有分支上搜索作者的提交历史
- git - 从 Powershell 下载私有 Github 存储库返回 404
- sql - 将空值分配给 Athena (Presto) 中的每个 ID
- javascript - 像 Python 一样按值对 JS 数组进行排序
- reactjs - 如何显示 FieldArray 的初始值
- fortran - 为什么这个 3 行 gfortran 代码会引发分段错误?
- ios - 是否可以在不先下载整个文件的情况下开始播放大型 .aac 文件?
- javascript - 如何解决此 JavaScript 字符串长度属性错误?
- python - Facebook Insights API UserWarning:见解不允许字段
- r - R中xts每周时间序列的分解