R:约束优化:将限制设置为非零参数的数量

时间:2016-04-13 09:26:17

标签: r optimization

假设我正在尝试在给定一些数据的情况下优化函数的参数。假设参数是3元素向量。使用constrOptim函数,我可以设置参数总和必须大于或等于1的条件,...(使用constrOptim函数的ui和ci参数)。

但是如何限制3元素参数向量只有2个非零元素呢?我想不出办法 - 我想到指定一个4元素参数向量,其中第4个元素是向量的前3个元素的函数(即,计算向量的前3个元素中的非零数)然后将其限制为某个数字)但无法获得任何工作。任何想法(非常感谢)?

../

2 个答案:

答案 0 :(得分:1)

我担心“n中的k可能非零”是一个困难的约束。有时这被称为基数约束。基本上我们需要添加额外的二元决策变量来指示变量是否为零。这将使模型成为所谓的MINLP(混合整数非线性规划)模型。要解决这个问题,您需要一个MINLP解算器(可以通过NEOS轻松获得)。

答案 1 :(得分:0)

R具有带约束的非线性优化包,您可以根据不等式指定约束。在Optimisation view中查找与非线性编程相对应的包。