Hello,
I encountered the (to me quite weird) situation that setting "scale=0" improves the performance of the solver significantly.
When letting scaling be its default value, I get:
Final objective value = 1.10316742590580e+08
Final feasibility error (abs / rel) = 0.00e+00 / 0.00e+00
Final optimality error (abs / rel) = 5.89e-01 / 5.89e-01
# of iterations = 1000
# of CG iterations = 2285
# of function evaluations = 1696
# of gradient evaluations = 1001
Total program time (secs) = 43.74758 ( 49.445 CPU time)
Time spent in evaluations (secs) = 42.56104
Whereas scaling=0 delivers:
Final objective value = 1.93055126320965e+02
Final feasibility error (abs / rel) = 0.00e+00 / 0.00e+00
Final optimality error (abs / rel) = 3.33e+03 / 1.67e-01
# of iterations = 1000
# of CG iterations = 4844
# of function evaluations = 1543
# of gradient evaluations = 1001
Total program time (secs) = 47.44957 ( 53.134 CPU time)
Time spent in evaluations (secs) = 46.15006
Could that be an indication that something is wrong with my model ?
I provide an analytic gradient to the objective and an analytic Jacobian to the constraints. When I run small instances of the model, the derivative check passes without troubles, however, for large instances of the same model, the derivative check is giving errors sometimes (error being in the region of 1e-2 instead of 1e-6). I assumed that is may be due to numerical issues / error accumulation due to the large instance of the model. Does that make sense? Could these issues be related to be above mentioned scaling observation?
What other causes could there be that turning off scaling delivers better results? Is it maybe just because he is going for more CG iterations if scaling is off and this helps to solve my non-convex problem?
Thanks so much for your help!
Regards,
Herbert