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 может также быть массив; смотрите Матричные аргументы (Optimization Toolbox).

'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, или путем экспорта из приложения Оптимизации (Optimization Toolbox).

'ub'

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

ub может также быть массив; смотрите Матричные аргументы (Optimization Toolbox).

'x0'

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

x0 может также быть массив; смотрите Матричные аргументы (Optimization Toolbox).

'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);

Альтернативы

Можно создать структуру задачи путем экспорта из приложения Оптимизации (optimtool), как описано в Экспорте из приложения Оптимизации.

Введен в R2010a