找回密码
 注册
查看: 11648|回复: 0

R语言:constrOptim()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-2-16 20:25:43 | 显示全部楼层 |阅读模式
constrOptim(stats)
constrOptim()所属R语言包:stats

                                        Linearly Constrained Optimization
                                         线性约束优化

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Minimise a function subject to linear inequality constraints using an adaptive barrier algorithm.
减少受使用自适应屏障算法的线性不等式约束功能。


用法----------Usage----------


constrOptim(theta, f, grad, ui, ci, mu = 1e-04, control = list(),
            method = if(is.null(grad)) "Nelder-Mead" else "BFGS",
            outer.iterations = 100, outer.eps = 1e-05, ...,
            hessian = FALSE)



参数----------Arguments----------

参数:theta
numeric (vector) starting value (of length p): must be in the feasible region.
数字(矢量)的起始值(长度p的):必须在可行的区域。


参数:f
function to minimise (see below).
功能,最大限度地减少(见下文)。


参数:grad
gradient of f (a function as well), or NULL (see below).
梯度f(function以及),或NULL(见下文)。


参数:ui
constraint matrix (k x p), see below.
约束矩阵(k x p),见下文。


参数:ci
constraint vector of length k (see below).
约束长度的向量k(见下文)。


参数:mu
(Small) tuning parameter.
(小)调整参数。


参数:control, method, hessian
passed to optim.
传递optim的。


参数:outer.iterations
iterations of the barrier algorithm.
屏障算法的迭代。


参数:outer.eps
non-negative number; the relative convergence tolerance of the barrier algorithm.
非负数;屏障算法相对收敛公差。


参数:...
Other named arguments to be passed to f and grad: needs to be passed through optim so should not match its argument names.
其他命名参数被传递到f和grad:必须通过optim所以不应该匹配的参数名通过。


Details

详情----------Details----------

The feasible region is defined by ui %*% theta - ci >= 0. The starting value must be in the interior of the feasible region, but the minimum may be on the boundary.
可行区域是指由ui %*% theta - ci >= 0。起始值必须在可行区域内,但最低可能在边界上。

A logarithmic barrier is added to enforce the constraints and then optim is called. The barrier function is chosen so that the objective function should decrease at each outer iteration. Minima in the interior of the feasible region are typically found quite quickly, but a substantial number of outer iterations may be needed for a minimum on the boundary.
对数障碍将被添加到强制执行的约束和optim被称为。屏障功能的选择,所以应减少在每个外部迭代的目标函数。在极小的可行区域内部通常相当快,但大量的外迭代可以为边界上的最低需要。

The tuning parameter mu multiplies the barrier term. Its precise value is often relatively unimportant. As mu increases the augmented objective function becomes closer to the original objective function but also less smooth near the boundary of the feasible region.
调谐参数mu乘以屏障任期。其精确的价值往往是相对不重要的。 mu增加增强的目标函数变得更接近原始的目标函数,但也不太可行区域边界附近顺利。

Any optim method that permits infinite values for the objective function may be used (currently all but "L-BFGS-B").
可用于任何optim方法,允许无限为目标函数值(目前所有的,但“L-bfgs-B”的)。

The objective function f takes as first argument the vector of parameters over which minimisation is to take place.  It should return a scalar result. Optional arguments ... will be passed to optim and then (if not used by optim) to f. As with optim, the default is to minimise, but maximisation can be performed by setting control$fnscale to a negative value.
目标函数f作为第一个参数的参数向量,其中最小是要发生。它应该返回一个标量结果。可选参数...将被传递给optim然后(如果没有使用optim)f。 :optim,默认为最小化,但可以通过设置control$fnscale为负值进行最大化。

The gradient function grad must be supplied except with method="Nelder-Mead".  It should take arguments matching those of f and return a vector containing the gradient.
梯度功能grad必须提供除了method="Nelder-Mead"。而应采取的参数,匹配f和返回包含梯度矢量。


值----------Value----------

As for optim, but with two extra components: barrier.value giving the value of the barrier function at the optimum and outer.iterations gives the number of outer iterations (calls to optim). The counts component contains the sum of all optim()$counts.
为optim,但有两个额外的组件:barrier.value在最佳的屏障功能的价值outer.iterations给外迭代(调用optim的) 。 counts组件包含所有的optim()$counts的总和。


参考文献----------References----------

2001, p185ff

参见----------See Also----------

optim, especially method="L-BFGS-B" which does box-constrained optimisation.
optim,尤其是method="L-BFGS-B"这确实箱约束优化。


举例----------Examples----------


## from optim[#从OPTIM]
fr <- function(x) {   ## Rosenbrock Banana function[#的ROSENBROCK香蕉功能]
    x1 <- x[1]
    x2 <- x[2]
    100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
grr &lt;- function(x) { ## Gradient of 'fr'[#梯度“FR”]
    x1 <- x[1]
    x2 <- x[2]
    c(-400 * x1 * (x2 - x1 * x1) - 2 * (1 - x1),
       200 *      (x2 - x1 * x1))
}

optim(c(-1.2,1), fr, grr)
#Box-constraint, optimum on the boundary[箱约束,在边界上的最佳]
constrOptim(c(-1.2,0.9), fr, grr, ui=rbind(c(-1,0),c(0,-1)), ci=c(-1,-1))
#  x&lt;=0.9,  y-x&gt;0.1[X <= 0.9,Y-X> 0.1]
constrOptim(c(.5,0), fr, grr, ui=rbind(c(-1,0),c(1,-1)), ci=c(-0.9,0.1))


## Solves linear and quadratic programming problems[#解决了线性和二次规划问题]
## but needs a feasible starting value[#但需要一个可行的起始值]
#[]
# from example(solve.QP) in 'quadprog'[从例如quadprog“(solve.QP)]
# no derivative[任何衍生]
fQP <- function(b) {-sum(c(0,5,0)*b)+0.5*sum(b*b)}
Amat       <- matrix(c(-4,-3,0,2,1,0,0,-2,1),3,3)
bvec       <- c(-8,2,0)
constrOptim(c(2,-1,-1), fQP, NULL, ui=t(Amat),ci=bvec)
# derivative[衍生]
gQP <- function(b) {-c(0,5,0)+b}
constrOptim(c(2,-1,-1), fQP, gQP, ui=t(Amat), ci=bvec)

## Now with maximisation instead of minimisation[#现在,而不是最小化最大化]
hQP <- function(b) {sum(c(0,5,0)*b)-0.5*sum(b*b)}
constrOptim(c(2,-1,-1), hQP, NULL, ui=t(Amat), ci=bvec,
            control=list(fnscale=-1))

转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-24 11:40 , Processed in 0.025119 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表