exponenta event banner

sdo.evaluate

Оценка функции затрат для проб

Описание

пример

[y,info] = sdo.evaluate(fcn,params) оценивает функцию затрат, fcn, для образцов пространства параметров, указанного params (sdo.ParameterSpace объект). Программа генерирует таблицу выборок со строками 2Np + 1 и столбцами Np. Эти образцы генерируются на основе спецификаций пространства параметров вparams, согласно его ParameterDistributions, RankCorrelation, и Options свойства. Np - количество параметров, указанных в params. fcn берет значения образцов и вычисляет значения целей модели. Целью модели может быть стоимость (цель), ограничение или оценка разницы между экспериментальными данными и моделированием модели. sdo.evaluate применяется fcn к каждой строке таблицы выборок. y - таблица с одним столбцом для каждого результата цели модели, возвращаемого fcn и 2Np + 1 строк. Дополнительная информация об оценке возвращается вinfo.

[y,info] = sdo.evaluate(fcn,params,param_samples) вычисляет функцию затрат для указанной таблицы выборок параметров, param_samples. Для этого синтаксиса можно указать params как sdo.ParameterSpace объект или вектор param.Continuous объекты. y - таблица с одним столбцом для каждого результата цели модели (стоимость или ограничение), возвращаемого fcn. y содержит столько строк, сколько param_samples.

[y,info] = sdo.evaluate(___,opts) определяет параметры оценки, которые настраивают параметры обработки ошибок оценки, отображения и параллельных вычислений. Этот синтаксис может включать любую комбинацию входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создание произвольного param.Continuous объект.

p = param.Continuous('x',1);

Укажите определение пространства параметров для параметра модели.

ps = sdo.ParameterSpace(p);

Проанализируйте функцию затрат.

[y,info] = sdo.evaluate(@(p) sdoExampleCostFunction(p),ps);
Model evaluated at 3 samples.

Программа генерирует три выборки (2Np + 1) и оценивает sdoExampleCostFunction функция затрат для каждого образца. Np - количество параметров (= 1).

Входные аргументы

свернуть все

Функция затрат, подлежащая оценке sdo.evaluate, указанный как дескриптор функции.

Функция требует:

  • Один входной аргумент, который является вектором param.Continuous объект.

    Для передачи дополнительных входных аргументов используйте анонимную функцию. Например, new_fcn = @(p) fcn(p,arg1,arg2, ...).

  • Один выходной аргумент, представляющий собой структуру с одним или несколькими из следующих полей:

    • F - Значение стоимости (цели), оцениваемой в p. F является 1x1 двойной.

    • Cleq - Значение нарушений ограничений нелинейного неравенства, оцениваемых в p.

      Cleq является двойником mx1 вектор, где m - количество нелинейных ограничений неравенства.

    • Ceq - Значение нарушений ограничений нелинейного равенства, оцениваемых в p.

      Значение является двойным rx1 вектор, где r - количество нелинейных ограничений равенства.

    • leq - Значение нарушений ограничения линейного неравенства, оцениваемое в p.

      leq является двойником nx1 вектор, где n - количество линейных ограничений неравенства.

    • eq - Значение нарушений ограничения линейного равенства, оцениваемое в p.

      eq является двойником sx1 вектор или [], где s - количество линейных ограничений равенства.

    • Log - Дополнительная дополнительная информация из оценки функции. Если указано, это возвращается в Log поле вывода info.

    Примечание

    Можно использовать один и тот же дескриптор функции fcn для анализа чувствительности, оптимизации отклика или оценки параметров. Для оптимизации и оценки решатель ищет значения p которые минимизируют F при удовлетворении ограничений Cleq, Ceq, leq и eq. Дополнительные сведения см. в разделе sdo.optimize и «Записать функцию затрат».

Параметры и состояния модели, указанные как sdo.ParameterSpace объект или вектор param.Continuous объекты. При указании params как вектор param.Continuous объекты, необходимо также указать param_samples.

Образцы параметров, указанные как таблица. param_samples содержит столбцы, соответствующие свободным скалярным параметрам, и строки, являющиеся образцами этих параметров. Свободные скалярные параметры относятся ко всем параметрам, указанным params чей Free свойство имеет значение 1. Указание значения этого свойства как 1 указывает, что программа может изменять значение этого параметра для каждой оценки.

Имя каждого столбца должно быть равно имени соответствующего скалярного параметра.

Параметры оценки, указанные как sdo.EvaluateOptions объект.

Выходные аргументы

свернуть все

Анализ функции затрат и ограничения, возвращаемый в виде таблицы.

y - таблица с одним столбцом для каждого вывода затрат или ограничений, возвращаемого fcnи Ns строк.

При указании param_samples, Ns равно числу строк param_samples. В противном случае Ns равно 2Np + 1. Np - количество параметров, указанных вparams.

Информация об оценке, возвращенная в виде структуры со следующими полями:

  • Status - Состояние оценки для каждого образца, возвращаемого в виде массива ячеек символьных векторов.

    Каждая запись массива ячеек представляет собой один из следующих символьных векторов:

    • 'success' - Оценка модели прошла успешно

    • 'failure' - Оценка модели привела ко всем результатам по NaN

    • 'error' - Оценка модели привела к ошибке

  • Log - Дополнительная оценочная информация, полученная из Log поле функции затрат, fcn.

  • Stats - Время оценки всех проб, возвращаемых в виде структуры со следующими полями:

    • StartTime - Время начала оценки, возвращаемое в виде шестиэлементного вектора дат, содержащего текущую дату и время в десятичной форме: [year month day hour minute seconds]

    • EndTime - Время окончания оценки, возвращаемое в виде вектора даты из шести элементов, содержащего текущую дату и время в десятичной форме: [year month day hour minute seconds]

    Для определения общего времени анализа используйте etime(info.Stats.EndTime,info.Stats.StartTime).

Расширенные возможности

Представлен в R2014a