Найти точки в наборе Парето
задает набор нижних и верхних границ переменных проектов в x
= paretosearch(fun
,nvars
,A
,b
,Aeq
,beq
,lb
,ub
)x
, так что x
всегда находится в области значений lb
≤ x
≤ ub
. Если линейных равенств не существует, задайте Aeq = []
и beq = []
. Если x(i)
не имеет нижней границы, установите lb(i) = -Inf
. Если x(i)
не имеет верхней границы, установите ub(i) = Inf
.
применяет нелинейное неравенство x
= paretosearch(fun
,nvars
,A
,b
,Aeq
,beq
,lb
,ub
,nonlcon
)c(x)
определено в nonlcon
. The paretosearch
функция находит недоминированные точки, такие что c(x) ≤ 0
. Если никаких границ не существует, задайте lb = []
, ub = []
, или и то, и другое.
Примечание
В настоящее время, paretosearch
не поддерживает нелинейные ограничения равенства ceq(x) = 0
.
Найти точки на фронте Парето двухцелевой функции двумерной переменной.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; rng default % For reproducibility x = paretosearch(fun,2);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Постройте график решения как график поля точек.
plot(x(:,1),x(:,2),'m*') xlabel('x(1)') ylabel('x(2)')
Теоретически решением этой задачи является прямая линия от [-2,-1]
на [1,2]
. paretosearch
возвращает равномерно расположенные точки рядом с этой линией.
Создайте фронт Парето для двухцелевой задачи в двух размерностях, удовлетворяющих линейному ограничению x(1) + x(2) <= 1
.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; A = [1,1]; b = 1; rng default % For reproducibility x = paretosearch(fun,2,A,b);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Постройте график решения как график поля точек.
plot(x(:,1),x(:,2),'m*') xlabel('x(1)') ylabel('x(2)')
Теоретически решением этой задачи является прямая линия от [-2,-1]
на [0,1]
. paretosearch
возвращает равномерно расположенные точки рядом с этой линией.
Создайте фронт Парето для двухцелевой задачи в двух размерностях, удовлетворяющих границам x(1) >= 0
и x(2) <= 1
.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; lb = [0,-Inf]; % x(1) >= 0 ub = [Inf,1]; % x(2) <= 1 rng default % For reproducibility x = paretosearch(fun,2,[],[],[],[],lb,ub);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Постройте график решения как график поля точек.
plot(x(:,1),x(:,2),'m*') xlabel('x(1)') ylabel('x(2)')
Все точки решения находятся на границах ограничений x(1) = 0
или x(2) = 1
.
Создайте фронт Парето для двухцелевой задачи в двух размерностях, удовлетворяющих границам -1.1 <= x(i) <= 1.1
и нелинейное ограничение norm(x)^2 <= 1.2
. Нелинейная функция ограничения появляется в конце этого примера и работает, если запустить этот пример как live скрипт. Чтобы запустить этот пример в противном случае, включите нелинейную функцию ограничения в качестве файла в пути MATLAB ®.
Чтобы лучше увидеть эффект нелинейного ограничения, установите опции, чтобы использовать большой размер набора Парето.
rng default % For reproducibility fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; lb = [-1.1,-1.1]; ub = [1.1,1.1]; options = optimoptions('paretosearch','ParetoSetSize',200); x = paretosearch(fun,2,[],[],[],[],lb,ub,@circlecons,options);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Постройте график решения как график поля точек. Включите график круговой границы ограничений.
figure plot(x(:,1),x(:,2),'k*') xlabel('x(1)') ylabel('x(2)') hold on rectangle('Position',[-1.2 -1.2 2.4 2.4],'Curvature',1,'EdgeColor','r') xlim([-1.2,0.5]) ylim([-0.5,1.2]) axis square hold off
Точки решения, которые имеют положительную x(1)
значения или отрицательные x(2)
значения близки к границе нелинейных ограничений.
function [c,ceq] = circlecons(x) ceq = []; c = norm(x)^2 - 1.2; end
Следить за прогрессом paretosearch
, задайте 'psplotparetof'
постройте график функции.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; options = optimoptions('paretosearch','PlotFcn','psplotparetof'); lb = [-4,-4]; ub = -lb; x = paretosearch(fun,2,[],[],[],[],lb,ub,[],options);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Решение выглядит как четвертичная дуга с радиусом 18, которая может быть показана как аналитическое решение.
Получите фронт Парето в пространстве функций и пространстве параметров путем вызова paretosearch
с обоими x
и fval
выходы. Установите опции, чтобы построить график набора Парето в пространстве функций и пространстве параметров.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; lb = [-4,-4]; ub = -lb; options = optimoptions('paretosearch','PlotFcn',{'psplotparetof' 'psplotparetox'}); rng default % For reproducibility [x,fval] = paretosearch(fun,2,[],[],[],[],lb,ub,[],options);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Аналитическое решение в пространстве целевых функций является четвертичной дугой радиуса 18. В пространстве параметров аналитическим решением является прямая линия от [-2,-1]
на [1,2]
. Точки решения близки к аналитическим кривым.
Установите опции, чтобы контролировать процесс установки решения Парето. Кроме того, получите больше выходов от paretosearch
чтобы позволить вам понять процесс решения.
options = optimoptions('paretosearch','Display','iter',... 'PlotFcn',{'psplotparetof' 'psplotparetox'}); fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; lb = [-4,-4]; ub = -lb; rng default % For reproducibility [x,fval,exitflag,output] = paretosearch(fun,2,[],[],[],[],lb,ub,[],options);
Iter F-count NumSolutions Spread Volume 0 60 11 - 3.7872e+02 1 386 12 - 3.4654e+02 2 702 27 9.4324e-01 2.9452e+02 3 1029 27 - 2.9904e+02 4 1357 40 0.0000e+00 3.0154e+02 5 1697 60 1.4903e-01 3.0369e+02 6 1841 60 1.4515e-01 3.0439e+02 7 1961 60 1.7716e-01 3.0465e+02 8 2075 60 1.6123e-01 3.0475e+02 9 2189 60 1.7419e-01 3.0449e+02 Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Исследуйте дополнительные выходы.
fprintf('Exit flag %d.\n',exitflag)
Exit flag 1.
disp(output)
iterations: 10 funccount: 2189 volume: 304.4256 averagedistance: 0.0215 spread: 0.1742 maxconstraint: 0 message: 'Pareto set found that satisfies the constraints. ...' rngstate: [1x1 struct]
Получите и исследуйте невязки ограничений спереди Парето. Создайте задачу с линейным ограничением неравенства sum(x) <= -1/2
и нелинейное ограничение неравенства norm(x)^2 <= 1.2
. Для повышения точности используйте 200 точек на фронте Парето и ParetoSetChangeTolerance
от 1e-7
, и дайте естественные границы -1.2 <= x(i) <= 1.2
.
Нелинейная функция ограничения появляется в конце этого примера и работает, если запустить этот пример как live скрипт. Чтобы запустить этот пример в противном случае, включите нелинейную функцию ограничения в качестве файла в пути MATLAB ®.
fun = @(x)[norm(x-[1,2])^2;norm(x+[2,1])^2]; A = [1,1]; b = -1/2; lb = [-1.2,-1.2]; ub = -lb; nonlcon = @circlecons; rng default % For reproducibility options = optimoptions('paretosearch','ParetoSetChangeTolerance',1e-7,... 'PlotFcn',{'psplotparetof' 'psplotparetox'},'ParetoSetSize',200);
Функции paretosearch
использование всех выходов.
[x,fval,exitflag,output,residuals] = paretosearch(fun,2,A,b,[],[],lb,ub,nonlcon,options);
Pareto set found that satisfies the constraints. Optimization completed because the relative change in the volume of the Pareto set is less than 'options.ParetoSetChangeTolerance' and constraints are satisfied to within 'options.ConstraintTolerance'.
Ограничения неравенства уменьшают размер набора Парето по сравнению с без ограничений набором. Осмотрите возвращённые невязки.
fprintf('The maximum linear inequality constraint residual is %f.\n',max(residuals.ineqlin))
The maximum linear inequality constraint residual is 0.000000.
fprintf('The maximum nonlinear inequality constraint residual is %f.\n',max(residuals.ineqnonlin))
The maximum nonlinear inequality constraint residual is -0.002619.
Максимально возвращенные невязки отрицательны, что означает, что все возвращенные точки допустимы. Максимально возвращенные невязки близки к нулю, что означает, что каждое ограничение активно для некоторых точек.
function [c,ceq] = circlecons(x) ceq = []; c = norm(x)^2 - 1.2; end
fun
- Функции соответствия для оптимизацииФункции соответствия для оптимизации, заданные как указатель на функцию или имя функции.
fun
является функцией, которая принимает действительный вектор-строку двойников x
длины nvars
и возвращает вектор действительных чисел F(x)
значений целевой функции. Для получения дополнительной информации о написании fun
, см. «Вычисление целевых функций».
Если вы задаете UseVectorized
опция для true
, затем fun
принимает матрицу размера n
-by- nvars
, где матрица представляет n
индивидуумов. fun
возвращает матрицу размера n
-by- m
, где m
количество целевых функций. См. Векторизация функции соответствия.
Пример: @(x)[sin(x),cos(x)]
Типы данных: char
| function_handle
| string
nvars
- Количество переменныхКоличество переменных, заданное в виде положительного целого числа. Решатель передает векторы-строки длины nvars
на fun
.
Пример: 4
Типы данных: double
A
- Линейные ограничения неравенстваЛинейные ограничения неравенства, заданные как действительная матрица. A
является M
-by- nvars
матрица, где M
количество неравенств.
A
кодирует M
линейное неравенство
A*x <= b
,
где x
является вектор-столбец nvars
переменные x(:)
, и b
- вектор-столбец с M
элементы.
Для примера, чтобы задать
<reservedrangesplaceholder1> 1 + 2 <reservedrangesplaceholder0> 2 10
3 <reservedrangesplaceholder1> 1 + 4 <reservedrangesplaceholder0> 2 20
5 <reservedrangesplaceholder1> 1 + 6 <reservedrangesplaceholder0> 2 30,
задайте следующие ограничения:
A = [1,2;3,4;5,6]; b = [10;20;30];
Пример: Чтобы задать, что переменные управления равны 1 или менее, дайте ограничения A = ones(1,N)
и b = 1
.
Типы данных: double
b
- Линейные ограничения неравенстваЛинейные ограничения неравенства, заданные как вектор действительных чисел. b
является M
-элементный вектор, относящийся к A
матрица. Если вы сдаете b
как векторы-строки решатели внутренне преобразуют b
в вектор-столбец b(:)
.
b
кодирует M
линейное неравенство
A*x <= b
,
где x
является вектор-столбец N
переменные x(:)
, и A
- матрица размера M
-by- N
.
Для примера, чтобы задать
<reservedrangesplaceholder1> 1 + 2 <reservedrangesplaceholder0> 2 10
3 <reservedrangesplaceholder1> 1 + 4 <reservedrangesplaceholder0> 2 20
5 <reservedrangesplaceholder1> 1 + 6 <reservedrangesplaceholder0> 2 30,
задайте следующие ограничения:
A = [1,2;3,4;5,6]; b = [10;20;30];
Пример: Чтобы задать, что переменные управления равны 1 или менее, дайте ограничения A = ones(1,N)
и b = 1
.
Типы данных: double
Aeq
- Линейные ограничения равенстваЛинейные ограничения равенства, заданные как действительная матрица. Aeq
является Me
-by- nvars
матрица, где Me
- количество равенств.
Aeq
кодирует Me
линейные равенства
Aeq*x = beq
,
где x
является вектор-столбец N
переменные x(:)
, и beq
- вектор-столбец с Me
элементы.
Для примера, чтобы задать
<reservedrangesplaceholder2> 1 + 2 <reservedrangesplaceholder1> 2 + 3 <reservedrangesplaceholder0> 3 = 10
2 <reservedrangesplaceholder2> 1 + 4 <reservedrangesplaceholder1> 2 + <reservedrangesplaceholder0> 3 = 20,
задайте следующие ограничения:
Aeq = [1,2,3;2,4,1]; beq = [10;20];
Пример: Чтобы задать, что переменные управления равны 1, дайте ограничения Aeq = ones(1,N)
и beq = 1
.
Типы данных: double
beq
- Линейные ограничения равенстваЛинейные ограничения равенства, заданные как вектор действительных чисел. beq
является Me
-элементный вектор, относящийся к Aeq
матрица. Если вы сдаете beq
как векторы-строки решатели внутренне преобразуют beq
в вектор-столбец beq(:)
.
beq
кодирует Me
линейные равенства
Aeq*x = beq
,
где x
является вектор-столбец N
переменные x(:)
, и Aeq
- матрица размера Meq
-by- N
.
Для примера, чтобы задать
<reservedrangesplaceholder2> 1 + 2 <reservedrangesplaceholder1> 2 + 3 <reservedrangesplaceholder0> 3 = 10
2 <reservedrangesplaceholder2> 1 + 4 <reservedrangesplaceholder1> 2 + <reservedrangesplaceholder0> 3 = 20,
задайте следующие ограничения:
Aeq = [1,2,3;2,4,1]; beq = [10;20];
Пример: Чтобы задать, что переменные управления равны 1, дайте ограничения Aeq = ones(1,N)
и beq = 1
.
Типы данных: double
lb
- Нижние границы[]
(по умолчанию) | вектор действительных чисел или массивНижние границы, заданные как вектор действительных чисел или массив типа double. lb
представляет нижние границы поэлементно в lb
≤ x
≤ ub
.
Внутренне, paretosearch
преобразует массив lb
в векторную lb(:)
.
Пример: lb = [0;-Inf;4]
означает x(1) ≥ 0
, x(3) ≥ 4
.
Типы данных: double
ub
- Верхние границы[]
(по умолчанию) | вектор действительных чисел или массивВерхние границы, заданные как вектор действительных чисел или массив типа double. ub
представляет верхние границы поэлементно в lb
≤ x
≤ ub
.
Внутренне, paretosearch
преобразует массив ub
в векторную ub(:)
.
Пример: ub = [Inf;4;10]
означает x(2) ≤ 4
, x(3) ≤ 10
.
Типы данных: double
nonlcon
- Нелинейные ограниченияНелинейные ограничения, заданные как указатель на функцию или имя функции. nonlcon
является функцией, которая принимает вектор-строку x
и возвраты двух векторов-строк c(x)
и ceq(x)
.
c(x)
- вектор-строка нелинейных ограничений неравенства в x
. paretosearch
функция пытается удовлетворить c(x) <= 0
для всех записей c
.
ceq(x)
должен вернуться []
, потому что в настоящее время paretosearch
не поддерживает нелинейные ограничения равенства.
Если вы задаете UseVectorized
опция для true
, затем nonlcon
принимает матрицу размера n
-by- nvars
, где матрица представляет n
индивидуумов. nonlcon
возвращает матрицу размера n
-by- mc
в первом аргументе, где mc
- количество нелинейных ограничений неравенства. См. Векторизация функции соответствия.
Для примера, x = paretosearch(@myfun,nvars,A,b,Aeq,beq,lb,ub,@mycon)
, где mycon
является MATLAB® функция, например:
function [c,ceq] = mycon(x) c = ... % Compute nonlinear inequalities at x. ceq = [] % No nonlinear equalities at x.
Для получения дополнительной информации см. Раздел «Нелинейные ограничения».
Типы данных: char
| function_handle
| string
options
- Опции оптимизацииoptimoptions
| структураОпции оптимизации, заданные как выход optimoptions
или как структура.
optimoptions
скрывает опции, перечисленные курсивом; см. Опции, которые скрывает оптимизация.
{}
обозначает значение по умолчанию. Подробные сведения об опциях см. в разделе «Параметры поиска по шаблону».
Опции для patternsearch
и paretosearch
Опция | Описание | Значения |
---|---|---|
| Допуск на ограничения. Для структуры опций используйте | Положительная скалярная величина | |
| Level of display. | 'off' | 'iter' | 'diagnose' | {'final'} |
| Максимальное количество вычислений целевой функции. Для структуры опций используйте | Положительное целое число | |
| Максимальное количество итераций. Для структуры опций используйте | Положительное целое число | |
| Общее время (в секундах), допустимое для оптимизации. Для структуры опций используйте | Положительная скалярная величина | |
| Допуск размера сетки. Для структуры опций используйте | Положительная скалярная величина | |
| Функция, которая вызывается оптимизационной функцией при каждой итерации. Задайте как указатель на функцию или cell-массив указателей на функцию. Для структуры опций используйте | Указатель на функцию или cell-массив указателей на функцию | |
| Графики выхода из поиска шаблона. Задайте как имя встроенной функции построения графика, указателя на функцию или массива ячеек с именами встроенных функций построения графика или указателей на функцию. Для структуры опций используйте |
Для Для |
| Стратегия опроса, используемая в поиске шаблона. |
Для |
| Вычислите функции объектива и нелинейных ограничений параллельно. См. Векторизованные и параллельные опции и как использовать параллельную обработку в Global Optimization Toolbox. Примечание Вы должны задать Начиная с R2019a, когда вы устанавливаете |
|
| Определяет, векторизированы ли функции. Смотрите Векторизованные и параллельные опции и Векторизация функций цели и ограничения. Примечание Вы должны задать Для структуры опций используйте |
|
Опции для paretosearch
Только
Опция | Описание | Значения |
---|---|---|
| Начальные точки для
| Матрица с |
| Минимальная доля шаблона для опроса. | Скаляр от 0 до 1 | |
| Число точек в наборе Парето. | Положительное целое число | |
| Решатель останавливается, когда относительное изменение меры остановки в окне итераций меньше или равно
Смотрите Определения для Алгоритма Паретосеарха. Решатель останавливается, когда относительное изменение любой применимой меры меньше Примечание Настройка | Положительная скалярная величина | |
Опции для patternsearch
Только
Опция | Описание | Значения |
---|---|---|
Кэш | С Примечание
|
|
CacheSize | Размер истории. | Положительная скалярная величина | |
CacheTol | Наибольшее расстояние от текущей точки сетки до любой точки в истории в порядок для | Положительная скалярная величина | |
FunctionTolerance | Допуск на функцию. Итерации останавливаются, если изменение значения функции меньше Для структуры опций используйте | Положительная скалярная величина | |
InitialMeshSize | Начальный размер сетки для алгоритма. Смотрите, как работает опрос поиска шаблона. | Положительная скалярная величина | |
InitialPenalty | Начальное значение параметра штрафа. См. Алгоритм нелинейного решателя ограничений. | Положительная скалярная величина | |
MaxMeshSize | Максимальный размер сетки, используемый на шаге опроса или поиска. Смотрите, как работает опрос поиска шаблона. | Положительная скалярная величина | |
MeshContractionFactor | Коэффициент сужения сетки для неудачной итерации. Для структуры опций используйте | Положительная скалярная величина | |
MeshExpansionFactor | Коэффициент расширения сетки для успешной итерации. Для структуры опций используйте | Положительная скалярная величина | |
MeshRotate | Поверните шаблон перед объявлением точки оптимальной. См. Раздел «Опции сетки» |
|
PenaltyFactor | Параметр обновления штрафа. См. Алгоритм нелинейного решателя ограничений. | Положительная скалярная величина | |
PlotInterval | Задает, что функции построения графика вызываются с каждым интервалом. | положительное целое число | |
PollOrderAlgorithm | Порядок направления опроса в поиске шаблона. Для структуры опций используйте |
|
ScaleMesh | Автоматическое масштабирование переменных. Для структуры опций используйте |
|
SearchFcn | Тип поиска, используемый в поиске шаблона. Задайте как имя или указатель на функцию. Для структуры опций используйте |
|
StepTolerance | Допуск по переменной. Итерации останавливаются, если и изменение положения, и размер сетки меньше Для структуры опций используйте | Положительная скалярная величина | |
TolBind | Допуск привязки. См. «Ограничение Параметров». | Положительная скалярная величина | |
UseCompletePoll | Завершите опрос вокруг текущей точки. Смотрите, как работает опрос поиска шаблона. Для структуры опций используйте |
|
UseCompleteSearch | Завершите поиск вокруг текущей точки, когда метод поиска является методом опроса. Смотрите Поиск и опрос. Для структуры опций используйте |
|
Пример: options = optimoptions('paretosearch','Display','none','UseParallel',true)
problem
- Структура задачиСтруктура задачи, заданная как структура со следующими полями:
objective
- Целевая функция
x0
- Начальная точка
Aineq
- Матрица для линейных ограничений неравенства
bineq
- Вектор для линейных ограничений неравенства
Aeq
- Матрица для линейных ограничений равенства
beq
- Вектор для линейных ограничений равенства
lb
- нижняя граница для x
ub
- Верхняя граница для x
nonlcon
- Нелинейная функция ограничения
solver
— 'paretosearch'
options
- Опции, созданные с optimoptions
rngstate
- Необязательное поле для сброса состояния генератора случайных чисел
Примечание
Все поля в problem
требуются, кроме rngstate
, что опционально.
Типы данных: struct
x
- Точки Паретоm
-by- nvars
массивТочки Парето, возвращенные как m
-by- nvars
массив, где m
- число точек на фронте Парето. Каждая строка x
представляет одну точку на фронте Парето.
fval
- Значения функций на фронте Паретоm
-by- nf
массивЗначения функций на фронте Парето, возвращенные как m
-by- nf
массив. m
- число точек на фронте Парето и nf
- количество фитнес-функций. Каждая строка fval
представляет значения функций в одной точке Парето в x
.
exitflag
- Причины paretosearch
остановленныйПричины paretosearch
stop, возвращается как одно из целочисленных значений в этой таблице.
Выходной флаг | Условие остановки |
---|---|
1 | Выполняется одно из следующих условий.
|
0 | Количество итераций превышает options.MaxIterations , или количество вычислений функции превышает options.MaxFunctionEvaluations . |
-1 | Оптимизация останавливается выходной функцией или функцией построения графика. |
-2 | Решатель не может найти точку, удовлетворяющую всем ограничениям. |
-5 | Время оптимизации превышает options.MaxTime . |
output
- Информация о процессе оптимизацииИнформация о процессе оптимизации, возвращенная как структура с этими полями:
iterations
- Общее количество итераций.
funccount
- Общее количество вычислений функции.
volume
- Гипер-объем множества, образованного из точек Парето в функциональном пространстве. Смотрите Определения для Алгоритма Паретосеарха.
averagedistance
- Средняя мера расстояния точек Парето в функциональном пространстве. Смотрите Определения для Алгоритма Паретосеарха.
spread
- Средняя мера разброса точек Парето. Смотрите Определения для Алгоритма Паретосеарха.
maxconstraint
- Максимальное нарушение ограничений, если таковые имеются.
message
- Причина, по которой алгоритм остановился.
rngstate
- Состояние генератора случайных чисел MATLAB непосредственно перед запуском алгоритма. Можно использовать значения в rngstate
воспроизведение выхода при использовании метода случайного опроса, такого как 'MADSPositiveBasis2N'
или когда вы используете метод квазирандома по умолчанию для создания начальной генеральной совокупности. См. «Воспроизведение результатов», в котором обсуждается идентичный метод для ga
.
residuals
- Ограничительные невязки в x
Ограничительные невязки в x
, возвращенный как структура с этими полями (глоссарий терминов размера поля и записей следует таблице).
Имя поля | Размер поля | Записи |
---|---|---|
lower | m -by- nvars | lb – x |
upper | m -by- nvars | x – ub |
ineqlin | m -by- ncon | A*x - b |
eqlin | m -by- ncon | |Aeq*x - b| |
ineqnonlin | m -by- ncon | c(x) |
m
- Количество возвращенных точек x
на Паретовском фронте
nvars
- Количество переменных управления
ncon
- Количество ограничений соответствующего типа (таких как количество строк A
или количество возвращенных нелинейных равенств)
c(x)
- Числовые значения нелинейных ограничительных функций
Недоминированные точки, также называемые неинфериорными точками, являются точками, для которых ни одна другая точка не имеет более низких значений всех целевых функций. Другими словами, для недоминированных точек ни одно из значений целевой функции не может быть улучшено (понижено), не поднимая другие значения целевой функции. Смотрите, что такое мультиобъективная оптимизация?.
paretosearch
использует поиск шаблона для поиска точек на фронте Парето. Для получения дополнительной информации смотрите Алгоритм Паретозарха.
Задача Optimize Live Editor обеспечивает визуальный интерфейс для paretosearch
.
Чтобы запустить параллельно, установите 'UseParallel'
опция для true
.
опции = optimoptions (
'solvername
',' UseParallel ', true)
Для получения дополнительной информации см. раздел «Как использовать параллельную обработку в Global Optimization Toolbox».
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.