[Rd] optim possible bug "L-BFGS-B" (PR#8261)

aimcleod@uwo.ca aimcleod at uwo.ca
Fri Oct 28 19:02:24 CEST 2005


Full_Name: Ian McLeod
Version: 2.10
OS: windows
Submission from: (NULL) (129.100.76.136)



Subject:  Apparent bug in optim with "L-BFGS-B".


I found that optim works most of the time but sometimes produced an incorrect
answer.   In order to document what is happening, I tried to simplify by
re-writing the objective function in the optimization.  The new objective
function when evaluated gives numerically identical results except that optim
now works!!

Below is the output from optim for the two cases.  There should not be a
difference.  This output is followed by a comparison of function values for the
two methods for phis<-seq(-0.99,0.99,length=200).  In all these cases, the
function values do not appear to differ significantly.
 

Perhaps someone familar with how this algorithm works exactly, can see what is
happening.

If you would like more details (R code etc), please contact me:
aimcleod at uwo.ca


###################################################################
##Case 1.
##original objective function
## optim produces incorrect answer
###################################################################
> optim(0, fn=function(b) -LLarma(z,b,0), method="L-BFGS-B", lower=-0.99,
upper=0.99, control=list(trace=6))
N = 1, M = 5 machine precision = 2.22045e-016
L = -0.99 
X0 = 0 
U = 0.99 
At X0, 0 variables are exactly at the bounds
At iterate     0  f=       619.18  |proj g|=         0.99
Iteration     0

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -4.5485e+003 4.5485e+003
Distance to the next break point =  1.4679e-002
Distance to the stationary point =  1.0000e+000
Variable  1  is fixed.
Cauchy X =  0.99 

---------------- exit CAUCHY----------------------

0  variables are free at GCP on iteration 1
LINE SEARCH 1 times; norm of step = 0.417877
X = 0.417877 
G = -47.1062 
Iteration     1

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -2.2190e+003 1.0799e+005
Distance to the next break point =  1.2145e-002
Distance to the stationary point =  2.0548e-002
Variable  1  is fixed.
Cauchy X =  0.99 

---------------- exit CAUCHY----------------------

0 variables leave; 0 variables enter
0  variables are free at GCP on iteration 2
LINE SEARCH 1 times; norm of step = 0.299499
X = 0.717376 
G = 1.91222 
Iteration     2

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -3.6566e+000 5.9847e+002
Distance to the next break point =  8.9288e-001
Distance to the stationary point =  6.1099e-003

GCP found in this segment
Piece      1 f1, f2 at start point -3.6566e+000 5.9847e+002
Distance to the stationary point =  6.1099e-003
Cauchy X =  0.705692 

---------------- exit CAUCHY----------------------

Variable 1 enters the set of free variables
0 variables leave; 1 variables enter
1  variables are free at GCP on iteration 3
Nonpositive definiteness in Cholesky factorization in formk;
   refresh the lbfgs memory and restart the iteration.
Iteration     2

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -3.6566e+000 3.6566e+000
Distance to the next break point =  8.9288e-001
Distance to the stationary point =  1.0000e+000
Variable  1  is fixed.
Cauchy X =  -0.99 

---------------- exit CAUCHY----------------------

Variable 1 leaves the set of free variables
0  variables are free at GCP on iteration 3
LINE SEARCH 0 times; norm of step = 1.70738
X = -0.99 
G = -95.712 

iterations 3
function evaluations 6
segments explored during Cauchy searches 4
BFGS updates skipped 0
active bounds at final generalized Cauchy point 1
norm of the final projected gradient 1.98
final function value 679.48

X = -0.99 
F = 679.48
final  value 679.479918 
converged
$par
[1] -0.99

$value
[1] 679.4799

$counts
function gradient 
       6        6 

$convergence
[1] 0

$message
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"


##############################################################
## Case 2
## I simplified the objective function for this special case.
## It seems to give numerically identical results with the previous
## one but the answers are different.
##############################################################
> optim(0.0, fn=Entropy, method="L-BFGS-B", lower=-0.99, upper=0.99,
control=list(trace=6))
N = 1, M = 5 machine precision = 2.22045e-016
L = -0.99 
X0 = 0 
U = 0.99 
At X0, 0 variables are exactly at the bounds
At iterate     0  f=       619.18  |proj g|=         0.99
Iteration     0

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -4.5485e+003 4.5485e+003
Distance to the next break point =  1.4679e-002
Distance to the stationary point =  1.0000e+000
Variable  1  is fixed.
Cauchy X =  0.99 

---------------- exit CAUCHY----------------------

0  variables are free at GCP on iteration 1
LINE SEARCH 1 times; norm of step = 0.417877
X = 0.417877 
G = -47.1062 
Iteration     1

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -2.2190e+003 1.0799e+005
Distance to the next break point =  1.2145e-002
Distance to the stationary point =  2.0548e-002
Variable  1  is fixed.
Cauchy X =  0.99 

---------------- exit CAUCHY----------------------

0 variables leave; 0 variables enter
0  variables are free at GCP on iteration 2
LINE SEARCH 1 times; norm of step = 0.299499
X = 0.717376 
G = 1.91222 
Iteration     2

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -3.6566e+000 5.9847e+002
Distance to the next break point =  8.9288e-001
Distance to the stationary point =  6.1099e-003

GCP found in this segment
Piece      1 f1, f2 at start point -3.6566e+000 5.9847e+002
Distance to the stationary point =  6.1099e-003
Cauchy X =  0.705692 

---------------- exit CAUCHY----------------------

Variable 1 enters the set of free variables
0 variables leave; 1 variables enter
1  variables are free at GCP on iteration 3
Nonpositive definiteness in Cholesky factorization in formk;
   refresh the lbfgs memory and restart the iteration.
Iteration     2

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -3.6566e+000 3.6566e+000
Distance to the next break point =  8.9288e-001
Distance to the stationary point =  1.0000e+000
Variable  1  is fixed.
Cauchy X =  -0.99 

---------------- exit CAUCHY----------------------

Variable 1 leaves the set of free variables
0  variables are free at GCP on iteration 3
LINE SEARCH 2 times; norm of step = 0.00986778
X = 0.707508 
G = 7.19684e-005 
Iteration     3

---------------- CAUCHY entered-------------------

There are 1  breakpoints

Piece      1 f1, f2 at start point -5.1795e-009 1.0037e-006
Distance to the next break point =  2.3587e+004
Distance to the stationary point =  5.1606e-003

GCP found in this segment
Piece      1 f1, f2 at start point -5.1795e-009 1.0037e-006
Distance to the stationary point =  5.1606e-003
Cauchy X =  0.707508 

---------------- exit CAUCHY----------------------

Variable 1 enters the set of free variables
0 variables leave; 1 variables enter
1  variables are free at GCP on iteration 4
LINE SEARCH 0 times; norm of step = 3.71399e-007
X = 0.707508 
G = 9.24842e-008 

iterations 4
function evaluations 9
segments explored during Cauchy searches 5
BFGS updates skipped 0
active bounds at final generalized Cauchy point 0
norm of the final projected gradient 9.24842e-008
final function value 586.19

X = 0.707508 
F = 586.19
final  value 586.190487 
converged
$par
[1] 0.7075076

$value
[1] 586.1905

$counts
function gradient 
       9        9 

$convergence
[1] 0

$message
[1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"

> 

###################################################################
##  Comparison of function values
###################################################################
> ansCompare
                phi 1stMethod 2ndMethod    difference
  [1,] -0.990000000  679.4799  679.4799  9.094947e-13
  [2,] -0.980050251  678.6556  678.6556  0.000000e+00
  [3,] -0.970100503  677.9723  677.9723 -3.410605e-13
  [4,] -0.960150754  677.3457  677.3457  1.136868e-13
  [5,] -0.950201005  676.7493  676.7493  1.136868e-13
  [6,] -0.940251256  676.1713  676.1713  3.410605e-13
  [7,] -0.930301508  675.6054  675.6054 -1.136868e-13
  [8,] -0.920351759  675.0477  675.0477  2.273737e-13
  [9,] -0.910402010  674.4959  674.4959  2.273737e-13
 [10,] -0.900452261  673.9483  673.9483  1.136868e-13
 [11,] -0.890502513  673.4037  673.4037 -2.273737e-13
 [12,] -0.880552764  672.8611  672.8611  1.136868e-13
 [13,] -0.870603015  672.3200  672.3200  1.136868e-13
 [14,] -0.860653266  671.7797  671.7797 -1.136868e-13
 [15,] -0.850703518  671.2399  671.2399  2.273737e-13
 [16,] -0.840753769  670.7003  670.7003 -2.273737e-13
 [17,] -0.830804020  670.1605  670.1605  0.000000e+00
 [18,] -0.820854271  669.6203  669.6203  0.000000e+00
 [19,] -0.810904523  669.0796  669.0796  0.000000e+00
 [20,] -0.800954774  668.5381  668.5381 -1.136868e-13
 [21,] -0.791005025  667.9957  667.9957 -1.136868e-13
 [22,] -0.781055276  667.4523  667.4523  0.000000e+00
 [23,] -0.771105528  666.9078  666.9078  0.000000e+00
 [24,] -0.761155779  666.3620  666.3620 -1.136868e-13
 [25,] -0.751206030  665.8149  665.8149  1.136868e-13
 [26,] -0.741256281  665.2665  665.2665  0.000000e+00
 [27,] -0.731306533  664.7166  664.7166  0.000000e+00
 [28,] -0.721356784  664.1651  664.1651 -1.136868e-13
 [29,] -0.711407035  663.6121  663.6121  0.000000e+00
 [30,] -0.701457286  663.0575  663.0575  1.136868e-13
 [31,] -0.691507538  662.5012  662.5012 -1.136868e-13
 [32,] -0.681557789  661.9432  661.9432  0.000000e+00
 [33,] -0.671608040  661.3834  661.3834 -1.136868e-13
 [34,] -0.661658291  660.8218  660.8218 -2.273737e-13
 [35,] -0.651708543  660.2584  660.2584 -2.273737e-13
 [36,] -0.641758794  659.6932  659.6932  1.136868e-13
 [37,] -0.631809045  659.1261  659.1261 -1.136868e-13
 [38,] -0.621859296  658.5570  658.5570  0.000000e+00
 [39,] -0.611909548  657.9861  657.9861  0.000000e+00
 [40,] -0.601959799  657.4132  657.4132  1.136868e-13
 [41,] -0.592010050  656.8383  656.8383  0.000000e+00
 [42,] -0.582060302  656.2614  656.2614  1.136868e-13
 [43,] -0.572110553  655.6825  655.6825 -1.136868e-13
 [44,] -0.562160804  655.1016  655.1016  0.000000e+00
 [45,] -0.552211055  654.5186  654.5186 -1.136868e-13
 [46,] -0.542261307  653.9336  653.9336 -1.136868e-13
 [47,] -0.532311558  653.3465  653.3465  0.000000e+00
 [48,] -0.522361809  652.7574  652.7574  0.000000e+00
 [49,] -0.512412060  652.1661  652.1661 -1.136868e-13
 [50,] -0.502462312  651.5728  651.5728  0.000000e+00
 [51,] -0.492512563  650.9774  650.9774  0.000000e+00
 [52,] -0.482562814  650.3799  650.3799 -1.136868e-13
 [53,] -0.472613065  649.7802  649.7802  0.000000e+00
 [54,] -0.462663317  649.1785  649.1785  0.000000e+00
 [55,] -0.452713568  648.5747  648.5747 -1.136868e-13
 [56,] -0.442763819  647.9687  647.9687  0.000000e+00
 [57,] -0.432814070  647.3607  647.3607 -1.136868e-13
 [58,] -0.422864322  646.7505  646.7505  0.000000e+00
 [59,] -0.412914573  646.1382  646.1382  0.000000e+00
 [60,] -0.402964824  645.5239  645.5239  0.000000e+00
 [61,] -0.393015075  644.9074  644.9074  0.000000e+00
 [62,] -0.383065327  644.2889  644.2889  0.000000e+00
 [63,] -0.373115578  643.6683  643.6683  1.136868e-13
 [64,] -0.363165829  643.0456  643.0456  0.000000e+00
 [65,] -0.353216080  642.4209  642.4209  0.000000e+00
 [66,] -0.343266332  641.7942  641.7942 -1.136868e-13
 [67,] -0.333316583  641.1654  641.1654  0.000000e+00
 [68,] -0.323366834  640.5346  640.5346  0.000000e+00
 [69,] -0.313417085  639.9019  639.9019  0.000000e+00
 [70,] -0.303467337  639.2672  639.2672  1.136868e-13
 [71,] -0.293517588  638.6305  638.6305  0.000000e+00
 [72,] -0.283567839  637.9920  637.9920  1.136868e-13
 [73,] -0.273618090  637.3515  637.3515  1.136868e-13
 [74,] -0.263668342  636.7093  636.7093  1.136868e-13
 [75,] -0.253718593  636.0651  636.0651  0.000000e+00
 [76,] -0.243768844  635.4192  635.4192  0.000000e+00
 [77,] -0.233819095  634.7716  634.7716 -1.136868e-13
 [78,] -0.223869347  634.1222  634.1222  1.136868e-13
 [79,] -0.213919598  633.4712  633.4712  0.000000e+00
 [80,] -0.203969849  632.8185  632.8185  0.000000e+00
 [81,] -0.194020101  632.1642  632.1642  1.136868e-13
 [82,] -0.184070352  631.5084  631.5084 -1.136868e-13
 [83,] -0.174120603  630.8512  630.8512  0.000000e+00
 [84,] -0.164170854  630.1925  630.1925  0.000000e+00
 [85,] -0.154221106  629.5324  629.5324  1.136868e-13
 [86,] -0.144271357  628.8710  628.8710  0.000000e+00
 [87,] -0.134321608  628.2084  628.2084  0.000000e+00
 [88,] -0.124371859  627.5446  627.5446  1.136868e-13
 [89,] -0.114422111  626.8797  626.8797  1.136868e-13
 [90,] -0.104472362  626.2138  626.2138 -1.136868e-13
 [91,] -0.094522613  625.5469  625.5469  0.000000e+00
 [92,] -0.084572864  624.8792  624.8792  0.000000e+00
 [93,] -0.074623116  624.2107  624.2107  0.000000e+00
 [94,] -0.064673367  623.5415  623.5415  0.000000e+00
 [95,] -0.054723618  622.8717  622.8717 -1.136868e-13
 [96,] -0.044773869  622.2014  622.2014  0.000000e+00
 [97,] -0.034824121  621.5308  621.5308  0.000000e+00
 [98,] -0.024874372  620.8599  620.8599  0.000000e+00
 [99,] -0.014924623  620.1888  620.1888 -1.136868e-13
[100,] -0.004974874  619.5177  619.5177  1.136868e-13
[101,]  0.004974874  618.8466  618.8466  0.000000e+00
[102,]  0.014924623  618.1758  618.1758 -1.136868e-13
[103,]  0.024874372  617.5054  617.5054  0.000000e+00
[104,]  0.034824121  616.8354  616.8354  0.000000e+00
[105,]  0.044773869  616.1661  616.1661  0.000000e+00
[106,]  0.054723618  615.4975  615.4975 -1.136868e-13
[107,]  0.064673367  614.8300  614.8300  1.136868e-13
[108,]  0.074623116  614.1635  614.1635  0.000000e+00
[109,]  0.084572864  613.4984  613.4984  0.000000e+00
[110,]  0.094522613  612.8347  612.8347  0.000000e+00
[111,]  0.104472362  612.1727  612.1727 -1.136868e-13
[112,]  0.114422111  611.5125  611.5125  1.136868e-13
[113,]  0.124371859  610.8544  610.8544  1.136868e-13
[114,]  0.134321608  610.1986  610.1986  0.000000e+00
[115,]  0.144271357  609.5452  609.5452  1.136868e-13
[116,]  0.154221106  608.8945  608.8945  1.136868e-13
[117,]  0.164170854  608.2468  608.2468  0.000000e+00
[118,]  0.174120603  607.6022  607.6022  1.136868e-13
[119,]  0.184070352  606.9609  606.9609 -1.136868e-13
[120,]  0.194020101  606.3234  606.3234  1.136868e-13
[121,]  0.203969849  605.6897  605.6897  0.000000e+00
[122,]  0.213919598  605.0602  605.0602  0.000000e+00
[123,]  0.223869347  604.4352  604.4352  1.136868e-13
[124,]  0.233819095  603.8148  603.8148 -1.136868e-13
[125,]  0.243768844  603.1995  603.1995  0.000000e+00
[126,]  0.253718593  602.5895  602.5895  0.000000e+00
[127,]  0.263668342  601.9851  601.9851  0.000000e+00
[128,]  0.273618090  601.3866  601.3866  0.000000e+00
[129,]  0.283567839  600.7943  600.7943  1.136868e-13
[130,]  0.293517588  600.2086  600.2086  0.000000e+00
[131,]  0.303467337  599.6297  599.6297  0.000000e+00
[132,]  0.313417085  599.0581  599.0581  0.000000e+00
[133,]  0.323366834  598.4941  598.4941  0.000000e+00
[134,]  0.333316583  597.9379  597.9379  0.000000e+00
[135,]  0.343266332  597.3900  597.3900  0.000000e+00
[136,]  0.353216080  596.8507  596.8507  0.000000e+00
[137,]  0.363165829  596.3204  596.3204 -1.136868e-13
[138,]  0.373115578  595.7994  595.7994  0.000000e+00
[139,]  0.383065327  595.2882  595.2882  0.000000e+00
[140,]  0.393015075  594.7870  594.7870  0.000000e+00
[141,]  0.402964824  594.2963  594.2963  0.000000e+00
[142,]  0.412914573  593.8164  593.8164 -1.136868e-13
[143,]  0.422864322  593.3477  593.3477  0.000000e+00
[144,]  0.432814070  592.8906  592.8906 -1.136868e-13
[145,]  0.442763819  592.4455  592.4455 -1.136868e-13
[146,]  0.452713568  592.0128  592.0128 -1.136868e-13
[147,]  0.462663317  591.5928  591.5928  0.000000e+00
[148,]  0.472613065  591.1859  591.1859 -1.136868e-13
[149,]  0.482562814  590.7924  590.7924 -1.136868e-13
[150,]  0.492512563  590.4128  590.4128 -1.136868e-13
[151,]  0.502462312  590.0474  590.0474  0.000000e+00
[152,]  0.512412060  589.6965  589.6965  0.000000e+00
[153,]  0.522361809  589.3606  589.3606  0.000000e+00
[154,]  0.532311558  589.0398  589.0398 -1.136868e-13
[155,]  0.542261307  588.7347  588.7347  0.000000e+00
[156,]  0.552211055  588.4454  588.4454 -2.273737e-13
[157,]  0.562160804  588.1724  588.1724 -1.136868e-13
[158,]  0.572110553  587.9159  587.9159 -1.136868e-13
[159,]  0.582060302  587.6761  587.6761  0.000000e+00
[160,]  0.592010050  587.4534  587.4534  0.000000e+00
[161,]  0.601959799  587.2481  587.2481  1.136868e-13
[162,]  0.611909548  587.0603  587.0603  0.000000e+00
[163,]  0.621859296  586.8904  586.8904 -1.136868e-13
[164,]  0.631809045  586.7384  586.7384 -1.136868e-13
[165,]  0.641758794  586.6047  586.6047  1.136868e-13
[166,]  0.651708543  586.4894  586.4894  0.000000e+00
[167,]  0.661658291  586.3927  586.3927 -1.136868e-13
[168,]  0.671608040  586.3146  586.3146  0.000000e+00
[169,]  0.681557789  586.2555  586.2555 -1.136868e-13
[170,]  0.691507538  586.2152  586.2152  0.000000e+00
[171,]  0.701457286  586.1940  586.1940  1.136868e-13
[172,]  0.711407035  586.1920  586.1920  0.000000e+00
[173,]  0.721356784  586.2091  586.2091  0.000000e+00
[174,]  0.731306533  586.2454  586.2454  0.000000e+00
[175,]  0.741256281  586.3010  586.3010  0.000000e+00
[176,]  0.751206030  586.3758  586.3758  1.136868e-13
[177,]  0.761155779  586.4698  586.4698 -1.136868e-13
[178,]  0.771105528  586.5831  586.5831  1.136868e-13
[179,]  0.781055276  586.7156  586.7156  1.136868e-13
[180,]  0.791005025  586.8673  586.8673 -1.136868e-13
[181,]  0.800954774  587.0380  587.0380 -1.136868e-13
[182,]  0.810904523  587.2278  587.2278  1.136868e-13
[183,]  0.820854271  587.4366  587.4366  1.136868e-13
[184,]  0.830804020  587.6644  587.6644  1.136868e-13
[185,]  0.840753769  587.9111  587.9111  0.000000e+00
[186,]  0.850703518  588.1767  588.1767  1.136868e-13
[187,]  0.860653266  588.4613  588.4613  0.000000e+00
[188,]  0.870603015  588.7649  588.7649 -1.136868e-13
[189,]  0.880552764  589.0876  589.0876 -3.410605e-13
[190,]  0.890502513  589.4296  589.4296 -1.136868e-13
[191,]  0.900452261  589.7914  589.7914  0.000000e+00
[192,]  0.910402010  590.1734  590.1734  1.136868e-13
[193,]  0.920351759  590.5766  590.5766  2.273737e-13
[194,]  0.930301508  591.0022  591.0022  1.136868e-13
[195,]  0.940251256  591.4524  591.4524 -2.273737e-13
[196,]  0.950201005  591.9306  591.9306  0.000000e+00
[197,]  0.960150754  592.4426  592.4426  2.273737e-13
[198,]  0.970100503  593.0001  593.0001  1.136868e-13
[199,]  0.980050251  593.6290  593.6290 -1.136868e-13
[200,]  0.990000000  594.4134  594.4134 -3.410605e-13



More information about the R-devel mailing list