在 Mosek 中转换约束
Tranform a constraint in Mosek
我必须在 R Mosek 中解决以下优化问题:
这是一个凸约束,可以转化为2^N-1
圆锥约束与二分之一space的交集:
这在我的实际情况下是不可行的,因为N=50
。我能做什么?难道我的问题无法解决(用R Mosek)?
根据答案进行编辑:
是不是我的约束
相当于
更新:先看评论。
是一个log sum exp constraint容易对付的。实际上,您的第一个约束相当于
\begin{array}{rcl}
\log{\sum_{i=0}^n e^{t_i}} & \leq & s, \
t_0 & = & 0, \
b_i^Tx-c_i - t_i & = & 0, \
s & = & n\log{2}. \
\end{array}
PS。我无法使用数学格式。
为了完整起见,我重复我的评论作为答案。你可以写
t_i >= log(1 + exp(b_i^Tx-c_i))
使用两个指数锥,如 https://docs.mosek.com/modeling-cookbook/expo.html#softplus-function 这是更一般的 log-sum-exp 的一个非常特殊的情况,即 log(exp(0) + exp(b_i^Tx-c_i))
.
那么约束就变成了
sum t_i <= N \log(2)
如果您使用 Rmosek,那么您可以在 https://docs.mosek.com/latest/rmosek/case-studies-logistic.html#doc-case-studies-logistic
中找到很多现成的代码
我必须在 R Mosek 中解决以下优化问题:
这是一个凸约束,可以转化为2^N-1
圆锥约束与二分之一space的交集:
这在我的实际情况下是不可行的,因为N=50
。我能做什么?难道我的问题无法解决(用R Mosek)?
根据答案进行编辑:
是不是我的约束
相当于
更新:先看评论。
是一个log sum exp constraint容易对付的。实际上,您的第一个约束相当于
\begin{array}{rcl}
\log{\sum_{i=0}^n e^{t_i}} & \leq & s, \
t_0 & = & 0, \
b_i^Tx-c_i - t_i & = & 0, \
s & = & n\log{2}. \
\end{array}
PS。我无法使用数学格式。
为了完整起见,我重复我的评论作为答案。你可以写
t_i >= log(1 + exp(b_i^Tx-c_i))
使用两个指数锥,如 https://docs.mosek.com/modeling-cookbook/expo.html#softplus-function 这是更一般的 log-sum-exp 的一个非常特殊的情况,即 log(exp(0) + exp(b_i^Tx-c_i))
.
那么约束就变成了
sum t_i <= N \log(2)
如果您使用 Rmosek,那么您可以在 https://docs.mosek.com/latest/rmosek/case-studies-logistic.html#doc-case-studies-logistic
中找到很多现成的代码