[R] Non linear optimization with nloptr package fail to produce true optimal result
Daniel Lobo
d@n|e|obo9976 @end|ng |rom gm@||@com
Fri Dec 13 19:55:43 CET 2024
Hi Duncan,
I take your advice.
I posted here in search for a better answer to my problem as I could
not get that there.
My question is:
1. Why nloptr() is failing where other programs can continue with the
same set of data, numbers, and constraints?
2. Is this enough ground to say that nloptr is inferior and user
should not use this in complex problems?
I wish to get a thoughtful answer to above as my working environment
only has the nloptr package installed, and it is an isolated system
due to security issues and installation of a new package requires lot
lot of approvals and time consuming.
BTW, if someone interested here is my original post
https://stackoverflow.com/a/79271318/15910619
On Sat, 14 Dec 2024 at 00:15, Duncan Murdoch <murdoch.duncan using gmail.com> wrote:
>
> You posted a version of this question on StackOverflow, and were given
> advice there that you ignored.
>
> nloptr() clearly indicates that it is quitting without reaching an
> optimum, but you are hiding that message. Don't do that.
>
> Duncan Murdoch
>
> On 2024-12-13 12:52 p.m., Daniel Lobo wrote:
> > library(nloptr)
> >
> > set.seed(1)
> > A <- 1.34
> > B <- 0.5673
> > C <- 6.356
> > D <- -1.234
> > x <- seq(0.5, 20, length.out = 500)
> > y <- A + B * x + C * x^2 + D * log(x) + runif(500, 0, 3)
> >
> > #Objective function
> >
> > X <- cbind(1, x, x^2, log(x))
> > f <- function(theta) {
> > sum(abs(X %*% theta - y))
> > }
> >
> > #Constraint
> >
> > eps <- 1e-4
> >
> > hin <- function(theta) {
> > abs(sum(X %*% theta) - sum(y)) - 1e-3 + eps
> > }
> >
> > Hx <- function(theta) {
> > X[100, , drop = FALSE] %*% theta - (120 - eps)
> > }
> >
> > #Optimization with nloptr
> >
> > Sol = nloptr(rep(0, 4), f, eval_g_ineq = hin, eval_g_eq = Hx, opts =
> > list("algorithm" = "NLOPT_LN_COBYLA", "xtol_rel" = 1.0e-8))$solution
> > # -0.2186159 -0.5032066 6.4458823 -0.4125948
>
More information about the R-help
mailing list