Итерации и счетчики функций

В целом, решатели Optimization Toolbox™ итератируют, чтобы найти оптимум. Решатель начинает с начального значения x 0, выполняет некоторые промежуточные вычисления, которые в конечном счете приводят к новой точке x 1, а затем повторяет процесс, чтобы найти последовательные приближения x 2, x 3,... локального минимума. Обработка останавливается после того, как k некоторое количество итераций.

Можно ограничить количество итераций или отсчётов функций, установив MaxIterations или MaxFunctionEvaluations опции для решателя, использующего optimoptions. Или, если вы хотите, чтобы решатель продолжил после достижения одного из этих пределов, поднимите значения этих опций. См. Раздел «Настройка и изменение опций».

На любом шаге промежуточные вычисления могут включать в себя оценку целевой функции и любых ограничений в точках около текущей итерационной xi. Для примера решатель может оценить градиент на конечные различия. В каждой ближайшей точке счетчик функции (F-count) увеличивается на единицу. Рисунок Типичная итерация в трехмерном пространстве показывает, что в трехмерном пространстве с прямыми конечными различиями дельты размера одна итерация обычно соответствует увеличению числа функций на четыре. На рисунке e i представляет единичный вектор в i-м направлении координат.

Типичная итерация в трехмерном пространстве

  • Если задача не имеет ограничений, F-count сообщает общее количество целевых вычислений функции.

  • Если задача имеет ограничения, F-count сообщает только число точек, в которой проводились вычисления функции, а не общее количество вычислений ограничительных функций. Итак, если задача имеет много ограничений, F-count может быть значительно меньше, чем общее количество вычислений функции.

Иногда решатель пытается сделать шаг и отвергает попытку. The trust-region, trust-region-reflective, и trust-region-dogleg алгоритмы подсчитывают эти неудачные попытки как итерации и сообщают (без изменений) результат в итерационном отображении. The interior-point, active-set, и levenberg-marquardt алгоритмы не подсчитывают неудачные попытки как итерации и не сообщают о попытках в итерационном отображении. Все предпринятые шаги увеличивают F-count, независимо от алгоритма.

F-count - заголовок в итерационном отображении для многих решателей. Для получения примера смотрите Interpret Результата.

The F-count появляется в структуру output следующим образом output.funcCount, что позволяет вам получить программный доступ к счетчику оценки. Для получения дополнительной информации см. раздел «Структуры output».

См. также

Похожие темы