forum.alglib.net
http://forum.alglib.net/

Scale in QP-BLEIC
http://forum.alglib.net/viewtopic.php?f=2&t=3765
Page 1 of 1

Author:  philip [ Fri Aug 05, 2016 2:59 pm ]
Post subject:  Scale in QP-BLEIC

I am using the QP-BLEIC algorithm and it seems to work very well almost all the time.

From the documentation I gather that the scale is used in the termination criteria. Does it affect the algorithm in some other way?

Is multiplying the scales by a constant, equivalent to multiplying/dividing the gradient and step tolerances by the same constant (if the objective function tolerance is 0)?

The reason I ask is because I had issues with constraint violations on the order of 1e-4 for an equality constraint. The termination type was 4. I had set the scale to be the difference between lower and upper bound, about 1, although the magnitude of the actual solution was smaller than that. Somehow reducing the scale seems to help while reducing the tolerances did not. They were set to 1e-8. All variables have about the same scale.

The right hand side of the equality constraint is a very small number, about (1e-10). Does this matter?

Author:  Sergey.Bochkanov [ Mon Aug 08, 2016 12:52 pm ]
Post subject:  Re: Scale in QP-BLEIC

Hello!

"Is multiplying the scales by a constant, equivalent to multiplying/dividing the gradient and step tolerances" - not equivalent. It changes tolerances in the way specified by you, but variable scales are used in multiple places.

Say, it used in constraint handling - if you have constraint violation of 1.e-10, you need some way of knowing whether it is significant violation or not. Reducing scale for variable makes algorithm less tolerant to constraint violation for this specific variable.

So, it seems that you spotted the right reason behind incorrect handling of constraints.

Author:  philip [ Wed Aug 10, 2016 7:09 pm ]
Post subject:  Re: Scale in QP-BLEIC

Hello again!

Thanks a lot. I have a few more questions:

Is the effect of the scale parameter the same as solving the problem transformed to new variables (so that each new variable is the original divided by the scale)?

Why do I sometimes get termination type 4 even though I have set zero tolerance for gradient?
What is the tolerance for the gradient in this case and is it possible that I get will get a difference from optimum that exceeds epsx (taking scale into account)?

Is the algorithm affected by changing the objective function or one of the constraint equations/inequalities by a constant?

How is the tolerance for constraint violations determined exactly?

Why do I get termination type 7 sometimes? What can I do about it?

Thanks!

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/