我有以下非线性约束优化问题,我正在使用solnp
在R中求解:
max F(w)
w
s.t.
w_i >= 0 for all i
sum(w) = 1
但是,我想添加一个额外的约束,但我不确定它是否可能。我希望{0}大于0的所有w
都具有相同的权重。类似的东西:
max F(w)
w
s.t.
w_i >= 0 for all i
sum(w) = 1
w_i=w_j for all i,j where w_i,w_j>0
是否有人可以,如果有可能,该怎么办?
答案 0 :(得分:2)
鉴于您的搜索空间已完全确定,我不确定这是否是必然的硬优化问题。基本上,给定w_i
的有限维数,您要在R^w
空间中搜索有限数量的点。这些是:
c(1, 0, 0, ..., 0)
c(0, 1, 0, ..., 0)
...
c(0, 0, ..., 1)
c(1/2, 1/2, 0, ..., 0)
c(1/2, 0, 1/2, ..., 0)
...
c(1/3, 1/3, 1/3, 0, ..., 0)
...
c(1/n, 1/n, ..., 1/n)
等等。你明白了。
这意味着您可以在这些点上评估您的功能,并选择最大化F
的组合。
这听起来是对的还是我错过了一些关键的东西?