Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R语言如何使用或约束进行优化?_R_Optimization_Constraints - Fatal编程技术网

R语言如何使用或约束进行优化?

R语言如何使用或约束进行优化?,r,optimization,constraints,R,Optimization,Constraints,我正在尝试使用R进行约束优化。我的约束不是连续的。以下是一个例子: minimize: f(x,y)=(x-2)^2+y^2 st. x=0 or x>=3 y=0 or y>=2 这是什么类型的优化问题 这些被称为半连续变量。一些解算器直接支持这些,但也可以使用其他二进制变量来表示: 3*d <= x <= 1000*d d binary 3*d谢谢您的回复!我有几个问题。既然x大于3,我们还能使用二进制编码吗?似乎它只适用于d只能假定两个值:0或1。如果为0,

我正在尝试使用R进行约束优化。我的约束不是连续的。以下是一个例子:

minimize: f(x,y)=(x-2)^2+y^2
st. x=0 or x>=3
y=0 or y>=2

这是什么类型的优化问题

这些被称为半连续变量。一些解算器直接支持这些,但也可以使用其他二进制变量来表示:

 3*d <= x <= 1000*d
 d binary

3*d谢谢您的回复!我有几个问题。既然x大于3,我们还能使用二进制编码吗?似乎它只适用于
d
只能假定两个值:0或1。如果为0,则表示
x=0
。如果1,我们有
3个hanks-Erwin。如果x落在3和1000之间,我看到二进制代码可以完美地工作。但是,如果我只想将x设置为0或>=1000,我们还可以使用二进制编码吗?半连续变量允许边界
[L,无穷大)
。二元变量方法需要一些上界,例如,
1000*d,这是有意义的。半连续变量似乎适合我的情况。我发现LpSolve解决了这个问题。但是,我的目标函数是非线性的,但不一定是二次函数(它可以是y^4.5,而不是y^2)。似乎包括古洛比在内的许多解算器只处理线性和二次函数,而不是更复杂的目标函数?有没有其他R包可以处理它?如果你绘制域,我想你会发现它是连续的。它是连续的,但不再是凸的。有趣的是,凸性可以通过离散e优化技术。