# [R] Problem with optim (method L-BFGS-B)

apjaworski@mmm.com apjaworski at mmm.com
Thu Nov 8 18:58:23 CET 2001

```The problem is with scaling of the objective function.  The values of test
near the starting point are of the order of 1e-13 or so.

I used the fnscale value of -1e-15 (the scaling is done by the inverse of
fnscale) and I got essentially the same results from Nelder-Mead, BFGS, and
L-BFGS-B.

Cheers,

Andy

__________________________________
Andy Jaworski
Engineering Systems Technology Center
3M Center, 518-1-01
St. Paul, MN 55144-1000
-----
E-mail: apjaworski at mmm.com
Tel:  (651) 733-6092
Fax:  (651) 736-3122

|--------+---------------------------------->
|        |          Isabelle ZABALZA        |
|        |          <isabelle.zabalza-mezgha|
|        |          ni at ifp.fr>              |
|        |                                  |
|        |          11/08/2001 10:04 AM     |
|        |                                  |
|--------+---------------------------------->
>----------------------------------------------------------------------------------------------------------|
|                                                                                                          |
|     To:     mailingr <r-help at stat.math.ethz.ch>                                                          |
|     cc:     (bcc: Andrzej P. Jaworski/US-Corporate/3M/US)                                                |
|     Subject:     [R] Problem with optim (method L-BFGS-B)                                                |
>----------------------------------------------------------------------------------------------------------|

Hello,

I've just a little problem using the function optim.
Here is the function I want to optimize :

test_function(x){(exp(-0.06751 + 0.25473*((x[1]-350)/150) +
0.04455*((x[2]-40)/20) + 0.09399*((x[3]-400)/100) -
0.17238*((x[4]-250)/50)-
0.45984*((x[5]-550)/150)-0.39508*((x[1]-350)/150)* ((x[1]-350)/150) -
0.05116*((x[2]-40)/20)* ((x[2]-40)/20) -
0.27735*((x[3]-400)/100)*((x[3]-400)/100) - 0.12902*((x[4]-250)/50)*
((x[4]-250)/50)-1.07812*((x[5]-550)/150)* ((x[5]-550)/150) -
0.14650*((x[1]-350)/150)*((x[2]-40)/20) - 0.39647*((x[1]-350)/150)*
((x[3]-400)/100) + 0.09800*((x[1]-350)/150)* ((x[4]-250)/50) +
1.01607*((x[1]-350)/150)*((x[5]-550)/150) -0.04202*((x[2]-40)/20)*
((x[3]-400)/100) + 0.05057*((x[2]-40)/20)* ((x[4]-250)/50) +
0.17933*((x[2]-40)/20)*((x[5]-550)/150) + 0.10944*((x[3]-400)/100)*
((x[4]-250)/50) + 0.62105*((x[3]-400)/100)* ((x[5]-550)/150) -
0.22426*((x[4]-250)/50)*((x[5]-550)/150))/219741978624 )}

Then I run the following command, and I get a pretty good result (I know
approximatively the theoritical maximum)

optim(c(200,60,500,300,700),test,control=list(fnscale=-1))\$par
[1] 398.17520  31.34863 372.17182 217.30874 533.49458

Fortunately, all the optimal values fall in their range of possible
value. But to be rigourous, I should perform a box-constrained
optimization.
Then, I do so with the following command  (in fixing the lower and upper
args and not):

optim(c(200,60,500,300,700),test,control=list(fnscale=-1),method
="L-BFGS-B",lower=c(200,20,300,200,400),upper=c(500,60,500,300,700))\$par

[1] 200  60 500 300 700

optim(c(200,60,500,300,700),test,control=list(fnscale=-1),method
="L-BFGS-B")\$par

[1] 200.00000  60.00007 500.00000 300.00000 700.00000

Here the result I get is wrong, and in fact it is more or less the
initial guess I 've set.

Can someone explain me what is going wrong with the method "L-BFGS-B"

Isabelle Zabalza-Mezghani

--
Isabelle Zabalza-Mezghani          Tel : 01 47 52 61 99
Institut Français du Pétrole       E-mail :
isabelle.zabalza-mezghani at ifp.fr
1-4 Av. Bois Preau - Bat Lauriers
92852 Rueil Malmaison Cedex, France

<< File att1.htm not included with reply >>

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```