Возможно, есть лучший способ, но как насчет сохранения лучшего предположения вручную?Оптимизатор вызывает problem::evaluate(RealVector point)
несколько раз.Когда вы заменяете его своей собственной функцией, вы получаете ввод и вывод.
Эта замена должна быть довольно тривиальной, используя
LeastSquaresProblem wrappedProblem = new LeastSquaresAdapter(problem) {
@Override public LeastSquaresProblem.Evaluation evaluate(RealVector point) {
LeastSquaresProblem.Evaluation result = super(point);
... store the point and the result, if it's an improvement
return result;
}
}
Боюсь, данные изменчивы, поэтому выМне нужно его клонировать, чтобы он не перезаписывался.
Возможно, я ошибаюсь, поскольку у меня нет опыта работы с этой библиотекой.