首页 > 解决方案 > 如何在 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

标签: pythonoptimizationmosek

解决方案


首先,您不能只将任意 Python 函数应用于 mosek.fusion 对象!有关可用的内容,请参阅https://docs.mosek.com/8.1/pythonfusion/api-reference.html

其次,最大化绝对值不是凸问题!如果您真的想对其建模,则必须使用混合整数编程。查阅https://docs.mosek.com/modeling-cookbook/mio.html


推荐阅读