exponenta event banner

createOptimProblem

Создание структуры задач оптимизации

Синтаксис

problem = createOptimProblem('solverName')
problem = createOptimProblem('solverName','ParameterName',ParameterValue,...)

Описание

problem = createOptimProblem('solverName') создает пустую структуру задач оптимизации для solverName решатель.

problem = createOptimProblem('solverName','ParameterName',ParameterValue,...) принимает одну или несколько пар имя/значение параметра, разделенных запятыми. Определить ParameterName внутри одиночных кавычек.

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

solverName

Имя решателя. Для GlobalSearch проблема, использование 'fmincon'. Для MultiStart проблема, использование 'fmincon', 'fminunc', 'lsqcurvefit' или 'lsqnonlin'.

Аргументы пары «имя-значение»

'Aeq'

Матрица для линейных ограничений равенства. Ограничения имеют вид:

Aeq x = beq

'Aineq'

Матрица для линейных ограничений неравенства. Ограничения имеют вид:

Aineq xbineq

'beq'

Вектор для линейных ограничений равенства. Ограничения имеют вид:

Aeq x = beq

'bineq'

Вектор для линейных ограничений неравенства. Ограничения имеют вид:

Aineq xbineq

'lb'

Вектор нижних границ.

lb также может быть массивом; см. Аргументы матрицы.

'nonlcon'

Дескриптор функции для нелинейной функции ограничения. Функция ограничения должна принимать вектор x и вернуть два вектора: c, нелинейные ограничения неравенства и ceq, нелинейные ограничения равенства. Если одна из этих функций ограничения пуста, nonlcon должен вернуться [] для этой функции.

Если GradConstr опция - 'on', то в дополнение nonlcon должны возвращать два дополнительных выхода, gradc и gradceq. gradc параметр является матрицей с одним столбцом для градиента каждого ограничения, как и gradceq.

Дополнительные сведения см. в разделе Ограничения записи.

'objective'

Дескриптор функции для целевой функции. Для всех решателей, кроме lsqnonlin и lsqcurvefit, целевая функция должна принимать вектор x и вернуть скаляр. Если GradObj опция - 'on', то целевая функция должна возвращать второй выход, вектор, представляющий градиент цели. Для lsqnonlin, целевая функция должна принимать вектор x и вернуть вектор. lsqnonlin суммирует квадраты значений целевой функции. Для lsqcurvefit, целевая функция должна принимать два входа, x и xdataи вернуть вектор.

Дополнительные сведения см. в разделе Вычисление целевых функций.

'options'

Параметры оптимизации. Создать параметры с помощью optimoptions.

'ub'

Вектор верхних границ.

ub также может быть массивом; см. Аргументы матрицы.

'x0'

Вектор, потенциальная отправная точка для оптимизации. Задает размерность задачи.

x0 также может быть массивом; см. Аргументы матрицы.

'xdata'

Вектор точек данных для lsqcurvefit.

'ydata'

Вектор точек данных для lsqcurvefit.

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

problem

Структура задач оптимизации.

Примеры

Создайте структуру проблемы, используя функцию Розенброка в качестве цели (см. Гибридная схема в генетическом алгоритме), interior-point алгоритм для fminconи границы с абсолютным значением 2:

anonrosen = @(x)(100*(x(2) - x(1)^2)^2 + (1-x(1))^2);
opts = optimoptions(@fmincon,'Algorithm','interior-point');
problem = createOptimProblem('fmincon','x0',randn(2,1),...
    'objective',anonrosen,'lb',[-2;-2],'ub',[2;2],...
    'options',opts);
Представлен в R2010a