Python 如何在mosek.fusion.Model中创建表达式?

Python 如何在mosek.fusion.Model中创建表达式?,python,optimization,mosek,Python,Optimization,Mosek,我想解决目标最大化的优化问题,目标是矩阵绝对值的和。但是,我找不到准确的方法来获得: 例如: 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.

我想解决目标最大化的优化问题,目标是矩阵绝对值的和。但是,我找不到准确的方法来获得:

例如:

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对象!请咨询可获得的信息


第二,最大化绝对值不是一个凸问题!如果你真的想建模,你必须使用混合整数规划。请参阅

仅供参考,此问题已在中得到回答,无法打开此页((但这只是对你自己关于Mosek google group的问题的回答……如果这有帮助的话,我会在下面回答。你真的帮了我很多……那么我可以将这两种不同的模型结合起来吗?。最近,我想在我的股票模型中添加周转率约束,但它指的是以前仓位与当前仓位之差的绝对值职位……我不知道莫塞克是否能胜任……你有这方面的经验吗?教授!@ZihanYang你确定要最大化abs()?如果你写一个问题的数学模型,那么我们可以考虑一下。我推荐mosek google group,因为这是一个建模问题。pre_w是我投资组合中前一天股票的权重,大小为[n,1].cur_w是最大化投资组合分数的变量,这是投资组合中股票今天的权重。现在我有了每只股票的分数和其他约束,涉及风险和行业。到目前为止,Mosek运行良好。然后我想添加一个约束,即pre_w和cur_w之间的差值的绝对值小于on限制每天周转率的数字…这有意义吗?…非常感谢!!!!所以您希望最小化(上限)而不是最大化绝对值。这很简单。t>=abs(a-b)与t>=a-b和t>=b-a相同。另请参见上面链接的食谱。嗯……我看过这本食谱。然而,我的问题是指矩阵差的最小和值。因此,t>=b-a和t>=a-b不起作用……这太难了。。