Closed dandoh closed 5 years ago
I got this problem too and I just add the bound check after line search step which returns right answer.In paper, I found this sentence "We then truncate the path toward the solution so as to satisfy the bounds".
Could you please elaborate what you exactly changed?
const Scalar rate = MoreThuente<TProblem, 1>::linesearch(x, SubspaceMin-x , problem, alpha_init);
// update current guess and function information
x = x - rate*(x-SubspaceMin);
After these two step, I just check whether x in bound. If any of variable out of bound, I just set the varibale upper or lower bound. I am not sure whether it is right explanation to that sentence. At first, I think equation 5.8 or 5.9 should be considered as the explanation of that sentence.
This is fixed now. I added your example in src/examples/nonnegls2.cpp
I tried to minimize norm2square(x[4]) given 20 <= x <= 40.
But I got the result:
It should be: