You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
Doing some tests on multiple starting guess and multiple optimization algorithm I found a case on which your solver behaves unexpectedly.
This is luckily a simple analytical example easily reproducible.
Your solver stops to the design point [0.1160254 0.8660254] that is nor a local minimum, nor a saddle point for the objective neither a kkt point .
I would like to have your insight on this behavior.
BRs
Simone Coniglio
The text was updated successfully, but these errors were encountered:
Hello,
Doing some tests on multiple starting guess and multiple optimization algorithm I found a case on which your solver behaves unexpectedly.
This is luckily a simple analytical example easily reproducible.
import nlopt
from numpy import array
def f(x, grad):
if grad.size > 0:
grad[0] = 2. * (x[0] - 1.)
grad[1] = 2. * (x[1] - 1.)
return (x[0] - 1.) ** 2. + (x[1] - 1.) ** 2.
def g(x, grad):
if grad.size > 0:
grad[0] = 1.
grad[1] = 1.
return x[0] + x[1] - 1.
if name == "main":
algorithm = nlopt.LD_MMA
n = 2
opt = nlopt.opt(algorithm, n)
lb = array([0., 0.])
ub = array([1., 1.])
x0 = array([0.25, 1])
opt.set_min_objective(f)
opt.set_lower_bounds(lb)
opt.set_upper_bounds(ub)
opt.add_inequality_constraint(g, 1e-3)
tol = 1e-6
maxeval = 50
opt.set_ftol_rel(tol)
opt.set_ftol_abs(tol)
opt.set_xtol_rel(tol)
opt.set_xtol_rel(tol)
opt.set_maxeval(maxeval)
opt.set_param("verbosity", 10000)
opt.set_param("inner_maxeval",10)
xopt = opt.optimize(x0)
print(xopt)
opt_val = opt.last_optimum_value()
print(opt_val)
result = opt.last_optimize_result()
print(result)
The solution to this problem is simply [0.5, 0.5] correctly spotted by LD_MMA from most initial guess but not with the starting guess [0.25,1].
In this case the log looks like that:
MMA dual converged in 6 iterations to g=0.914369:
MMA y[0]=1e+40, gc[0]=0.116025
MMA outer iteration: rho -> 0.1
MMA rhoc[0] -> 0.1
MMA dual converged in 3 iterations to g=1.34431:
MMA y[0]=1e+40, gc[0]=-0.269712
MMA outer iteration: rho -> 0.01
MMA rhoc[0] -> 0.01
MMA sigma[0] -> 0.6
MMA sigma[1] -> 0.6
MMA dual converged in 3 iterations to g=2.23837:
MMA y[0]=1e+40, gc[0]=-0.378669
MMA outer iteration: rho -> 0.001
MMA rhoc[0] -> 0.001
MMA sigma[0] -> 0.6
MMA sigma[1] -> 0.72
MMA dual converged in 3 iterations to g=2.79213:
MMA y[0]=1e+40, gc[0]=-0.454075
MMA outer iteration: rho -> 0.0001
MMA rhoc[0] -> 0.0001
MMA sigma[0] -> 0.6
MMA sigma[1] -> 0.864
MMA dual converged in 3 iterations to g=3.13745:
MMA y[0]=1e+40, gc[0]=-0.524222
MMA outer iteration: rho -> 1e-05
MMA rhoc[0] -> 1e-05
MMA sigma[0] -> 0.6
MMA sigma[1] -> 1.0368
MMA dual converged in 3 iterations to g=2.46249:
MMA y[0]=1e+40, gc[0]=-0.587037
MMA outer iteration: rho -> 1e-05
MMA rhoc[0] -> 1e-05
MMA sigma[0] -> 0.6
MMA sigma[1] -> 1.24416
MMA dual converged in 3 iterations to g=1.81718:
MMA y[0]=1e+40, gc[0]=-0.625775
MMA inner iteration: rho -> 0.0001
MMA rhoc[0] -> 1e-05
MMA dual converged in 3 iterations to g=1.81722:
MMA y[0]=1e+40, gc[0]=-0.625775
MMA inner iteration: rho -> 0.001
MMA rhoc[0] -> 1e-05
MMA dual converged in 3 iterations to g=1.81766:
MMA y[0]=1e+40, gc[0]=-0.625775
MMA inner iteration: rho -> 0.01
MMA rhoc[0] -> 1e-05
MMA dual converged in 3 iterations to g=1.82206:
MMA y[0]=1e+40, gc[0]=-0.625775
MMA inner iteration: rho -> 0.1
MMA rhoc[0] -> 1e-05
MMA dual converged in 3 iterations to g=1.86611:
MMA y[0]=1e+40, gc[0]=-0.625775
MMA inner iteration: rho -> 0.410949
MMA rhoc[0] -> 1e-05
MMA dual converged in 3 iterations to g=2.01828:
MMA y[0]=1e+40, gc[0]=-0.625775
[0.1160254 0.8660254]
0.7993602791855875
3
Your solver stops to the design point [0.1160254 0.8660254] that is nor a local minimum, nor a saddle point for the objective neither a kkt point .
I would like to have your insight on this behavior.
BRs
Simone Coniglio
The text was updated successfully, but these errors were encountered: