Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Оптимизация в среде MATLAB

..pdf
Скачиваний:
188
Добавлен:
15.11.2022
Размер:
2.81 Mб
Скачать

TolFun

Величина неразличимости значений целе-

1e-6

 

вых функций

 

 

TolX

Величина неразличимости точек по рас-

1e-6

 

стоянию между ними. Решения идентич-

 

 

ны, если удовлетворяются одновременно

 

 

TolFun и TolX

 

 

MaxTime

Максимальноевремявыполнениявсекундах

Inf

StartPointsToRun

Выбор

точек, используемых

для запуска:

'all'

 

'all' все стартовые точки,

'bounds'

 

 

только

удовлетворяющие

границам,

 

 

'bounds-ineqs' – удовлетворяющие гра-

 

 

ницам и неравенствам. Используется на

 

 

второйстадии алгоритма

 

 

Параметры только для GlobalSearch

Параметр

 

Описание

Значение по

 

умолчанию

 

 

 

NumTrialPoints

Число потенциально стартовых точек для

1000

 

исследования (в дополнение к x0). Для

 

 

запуска используются те из них, что про-

 

 

ходят проверки

 

BasinRadiusFac-

Для уменьшения радиуса бассейна ис-

0.2

tor

пользуется коэффициент (1-

 

 

BasinRadiusFac-tor)

 

DistanceThreshold

Множитель для определения, находится

0.75

Factor

ли пробная точка в существующем бас-

 

 

сейне

 

 

MaxWaitCycle

Число последовательных пробных точек.

20

 

Если для них функция штрафа достигает

 

 

порога штрафа, то порог увеличивается

 

 

посредством

PenaltyThresholdFactor;

 

 

если они принадлежат бассейну, то

 

 

уменьшается радиус этого бассейна по-

 

 

средством BasinRadiusFactor

 

PenaltyThresh-

Используется

для увеличения порога

0.2

oldFactor

штрафа

 

 

NumStageOne-

Число стартовых точек на первой стадии

200

Points

алгоритма

 

 

181

 

Параметры только для MultiStart

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Параметр

 

 

 

Описание

 

 

 

 

Значение по

 

 

 

 

 

 

 

умолчанию

 

 

 

 

 

 

 

 

 

 

 

UseParallel

 

Определяет способ вычислений в поиcке:

’never’

 

 

’never’ – однопроцессорный, 'always'

 

 

 

распределение стартовых точек по многим

 

 

 

процессорам

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ 4

 

 

 

 

 

 

Параметры Direct Search

 

 

 

 

 

 

 

 

 

 

 

 

Параметр

 

 

 

Описание

 

 

 

 

Значение по

 

 

 

 

 

 

 

умолчанию

 

 

 

 

 

 

 

 

 

 

 

Cache

При включении (

'on'

) сохраняется история

'off'

 

 

 

 

 

 

 

 

 

 

 

 

окружения и точки, близкие к нему, повтор-

 

 

но не проверяются. При стохастической

 

 

функции 'on' не рекомендуется

 

 

 

 

CacheSize

Размер памяти на историю

 

 

 

 

1e4

CacheTol

Определяет близость текущих точек к точ-

Eps

 

кам истории, при непревышении которой

(2^(-52))

 

точки не проверяются (если 'Cache' уста-

 

 

новлен в

'on')

 

 

 

 

 

 

 

 

CompletePoll

Проверка точек окружения, всех (

 

) или

'off'

 

до лучшей ('off')

 

 

 

'on'

 

 

 

 

 

 

 

 

 

 

CompleteSearch

Поиск точек окружения:

 

– всех,

'off'

'off'

 

до лучшей

 

 

 

'on'

 

 

 

 

 

 

 

 

 

 

 

 

 

Display

Уровень

вывода результатов:

 

 

,

'final'

 

'iter', 'diagnose', 'final'

 

'off'

 

 

 

 

 

 

InitialMesh-

Начальный размер окружения

 

 

 

1.0

Size

 

 

 

 

 

 

 

 

 

 

 

InitialPenalty

Начальное значение параметра штрафа

 

10

MaxFunEvals

Максимальное число

вычислений

целевой

2000 × число

 

функции

 

 

 

 

 

 

 

 

переменных

MaxIter

Максимальное число итераций

 

 

 

100 × число

 

 

 

 

 

 

 

 

 

 

 

переменных

MaxMeshSize

Максимальный размер окружения

 

 

 

Inf

MeshAccelera-

'on'- ускорять, 'off'- не ускорять схо-

'off'

tor

димость вблизи минимума

 

 

 

 

 

182

MeshContrac-

Коэффициент

сокращения

окружения

при

0.5

tion

неуспешной итерации

 

 

 

 

 

MeshExpansion

Коэффициент

расширения

окружения

при

2.0

 

успешной итерации

 

 

 

 

 

MeshRotate

Вращать образец до того, как точку объя-

'off'

 

вить минимумом

 

 

 

 

 

 

OutputFcn

Пользователь определяет функцию, вызы-

[]

 

ваемую на каждой итерации (@psoutput-

 

 

history)

 

 

 

 

 

 

 

 

PenaltyFactor

Коэффициент изменения штрафа

 

 

100

PlotFcn

Задает

функцию

вывода

графика:

[]

 

@psplotbestf,

 

@psplotmeshsize,

 

 

@psplotfuncount,

@psplotbestx

 

 

PlotInterval

Определяет число интервалов, через которое

1

 

вызывается функция графики

 

 

 

PollingOrder

Порядок опроса точек:

'Random', 'Suc-

'Consecu-

 

cess', 'Consecutive'

 

 

 

tive'

PollMethod

Вариант метода:

 

 

'GPSPositive-

'GPSPosi-

 

'GPSPositiveBasis2N',

tive-

 

BasisNp1',

'GSSPositiveBasis2N',

Basis2N'

 

'GSSPositiveBasisNp1',

'MADSPosi-

 

 

tiveBasis2N','MADS-

 

 

 

 

 

 

PositiveBasisNp1'

 

 

 

 

 

ScaleMesh

Автоматическое масштабирование перемен-

'on'

 

ных ('on', 'off')

 

 

 

 

 

 

SearchMethod

С дополнительным поиском:

 

 

[]

 

@GPSPositiveBasis2N,

 

 

 

 

 

@GPSPositiveBasisNp1,

 

 

 

 

 

@GSSPositiveBasis2N, GSSPositive-

 

 

BasisNp1, @MADSPositiveBasis2N,

 

 

 

@MADSPositiveBasisNp1, @searchga,

 

 

@searchlhs, @searchneldermead,[]

 

 

TimeLimit

Общее время оптимизации, с

 

 

Inf

TolBind

Допустимость по границам

 

 

 

1e-3

TolCon

Допустимость по ограничениям

 

 

1e-6

TolFun

Допустимость по целевой функции

 

 

1e-6

TolMesh

Допустимость по размеру окружения

 

1e-6

olX

Допустимость по переменной

 

 

1e-6

UseParallel

Распараллеливать

вычисления по

точкам

'never'

 

('always') или нет ('never')

 

 

 

Vectorized

Определять, является ли функция векторной

'off'

 

('on')

 

 

 

 

 

 

 

 

183

ПРИЛОЖЕНИЕ 5

Параметры Simulated Annealing

Параметр

 

 

Описание

 

Значение по

 

 

 

умолчанию

 

 

 

 

 

 

AcceptanceFcn

Задает функцию, определяющую, принята

@acceptan-

 

ли новая точка в качестве текущей

cesa

AnnealingFcn

Задает функцию, используемую для гене-

@annealing

 

рации

новых

точек:

собственная,

fast

 

@annealingboltz, @annealingfast

 

DataType

Тип переменной: 'custom', 'double'

'double'

Display

Уровень вывода: 'off', 'iter', 'diag-

'final'

 

nose', 'final'

 

 

 

 

DisplayInterval

Интервал в итерациях между выводами

10

HybridFcn

Задает функцию, запускаемую автомати-

[]

 

чески в течение или конце итераций реша-

 

 

теля:

собственная,

@fminsearch,

 

 

@patternsearch,

 

 

@fminunc,

 

 

@fmincon, []

 

 

 

 

HybridInterval

Задает интервал (если не 'end' или

'end'

 

'never'), на котором вызывается Hy-

 

 

bridFcn: целое число, 'never', 'end'

 

InitialTempera-

Задает начальную температуру

100

ture

 

 

 

 

 

 

MaxFunEvals

Задает

максимальное

число

вычислений

3000 × число

 

целевой функции

 

 

 

переменных

MaxIter

Задает максимальное число итераций

Inf

ObjectiveLimit

Желаемое минимальное значение целевой

-Inf

 

функции

 

 

 

 

OutputFcns

Задает функцию(и), получающую(ие) дан-

[]

 

ные итерации и

возможно изменяю-

 

 

щую(ие) параметры процесса: собствен-

 

 

ная, []

 

 

 

 

 

PlotFcns

Задает функцию(и) графики, вызывае-

[]

 

мую(ые) в течение итераций: собственная,

 

 

@saplotbestf, @saplotbestx ,

 

 

@saplotf , @saplotstopping,

 

 

@saplottemperature, []

 

 

PlotInterval

Задает число итераций, через которое вы-

1

 

зывается функция графики

 

 

184

ReannealInterval

Задает интервал, через который происхо-

100

 

дит переотжиг

 

StallIterLimit

Задает число итераций, по которому вы-

500 × число

 

числяется среднее значение изменения

переменных

 

функции

 

TemperatureFcn

Задает функцию обновления графика тем-

@temperatu-

 

пературы: собственная, @temperature-

reexp

 

boltz, @temperaturefast, @tempera-

 

 

tureexp

 

TimeLimit

Задаетпределвремениработыалгоритма, с

Inf

TolFun

Задает допустимое значение функции

1e-6

ПРИЛОЖЕНИЕ 6

Параметры Genetic Algorithm (ga и gamultiobj)

Параметр

 

Описание

 

Значение по

 

 

умолчанию

 

 

 

 

CreationFcn

Задает функцию, создающую начальную по-

@gacrea-

 

пуляцию: @gacreationuniform, @ga-

tion-

 

creationlinearfeasible

 

uniform

CrossoverFcn

Задает функцию кроссовера:

 

@crosso-

 

@crossoverheuristic,

 

verscat-

 

@crossoverscattered,

 

tered

 

@crossoverintermediate,@crossover-

 

 

singlepoint, @crossovertwopoint,

 

 

@crossoverarithmetic

 

 

Crossover-

Доля популяции следующего поколения, соз-

0.8

Fraction

даваемая кроссовером

 

 

Display

Уровень вывода: 'off', 'iter', 'diag-

'final'

 

nose', 'final'

 

 

DistanceMeasu–

Задает функцию, которая вычисляет меру

[]

reFcn

расстояния между особями в пространстве

 

 

переменных (генотип) или функции (фено-

 

 

тип):

{@distancecrowding,

'pheno-

 

 

type'}

 

 

 

EliteCount

Число элитных особей, Не используется в

2

 

gamultiobj

 

 

FitnessLimit

Значение фитнес-функции, при достижении

-Inf

 

которого останавливается алгоритм

 

 

185

Fitness-

Задает функцию, масштабирующую фитнес-

@fitsca-

ScalingFcn

функцию:

@fitscalingshiftlinear,

ling-

 

@fitscalingprop,

 

@fitscalingtop,

rank

 

@fitscalingrank

 

 

 

Generations

Определяет максимальное число итераций

100

HybridFcn

Задает функцию, которая продолжает опти-

[]

 

мизацию после окончания ga: собственная,

 

 

@fminsearch,

 

 

@patternsearch,

 

 

@fminunc, @fmincon или {@solver, hy-

 

 

bridoptions}(при типе данных double)

 

InitialPe-

Начальное значение параметра штрафа

10

nalty

 

 

 

 

 

InitialPopu-

Задаваемая пользователем матрица началь-

[]

lation

ной популяции или ее части

 

InitialScores

Задаваемый пользователем вектор-столбец

[]

 

начальных меток фитнес, возможно частич-

 

 

ный

 

 

 

 

MigrationDi-

Направление

миграции

(перемещения):

'forward'

rection

'both', 'forward'

 

 

 

Migration-

Доля особей в каждой подпопуляции, пере-

0.2

Fraction

мещаемая в другую подпопуляцию

 

MigrationIn-

Число поколений между миграциями особей

20

terval

между подпопуляциями

 

 

MutationFcn

Указывает функцию получения потомков му-

@muta-

 

тацией: @mutationuniform, @mutation-

tion

 

adaptfeasible, @mutationgaussian

gaussian

OutputFcns

Указывает функцию, вызываемую на каждой

[]

 

итерации: @gaoutputgen

 

 

ParetoFrac-

Доля особей, удерживаемых на первом фрон-

0.35

tion

те Парето, в то время как решатель выбирает

 

 

особи из более высоких фронтов

 

PenaltyFactor

Коэффициент обновления штрафа

100

PlotFcns

Задает функции графики:

 

[]

 

@gaplotbestf,

 

@gaplotbestindiv,

 

 

@gaplotdistance,

@gaplotexpectation,

 

 

@gaplotgeneology,

@gaplotselection,

 

 

@gaplotrange,

@gaplotscorediversity,

 

 

@gaplotscores, gaplotstopping

 

PlotInterval

Число поколений между вызовами функций

1

 

графики

 

 

 

 

186

PopInitRange

Матрица или вектор диапазона особей в на-

[0;1]

 

чальной популяции

 

 

Population-

Размер популяции, целое число или вектор

20

Size

 

 

 

Population-

Задает тип данных

популяции: 'bit-

'doubleVec

Type

string', 'custom'

(оба при отсутствии

tor'

 

ограничений),'doubleVector'

 

SelectionFcn

Определяет функцию выбора родителей:

@selection

 

@selectionremainder,

stochunif

 

@selectionuniform,

 

 

 

@selectionstochunif,

 

 

@selectionroulette,

 

 

@selectiontournament

 

StallGenLimit

Число последовательных поколений, не

50

 

дающее улучшение целевой функции, после

 

 

которого останавливается алгоритм

 

Stall-

Время, за которое, если нет улучшения целе-

Inf

TimeLimit

вой функции, алгоритм останавливается, с

 

TimeLimit

Максимально допустимое время работы , с

Inf

 

 

ga

 

TolCon

Приемлемая величина нарушения нелиней-

1e-6

 

ных ограничений

 

 

TolFun

Если изменение целевой функции за Stall-

1e-6

 

GenLimit поколений меньше этой величины,

 

 

алгоритм останавливается

 

UseParallel

Определяет, вычислять ли фитнес-функции

'never'

 

популяции в параллель:

'always','never'

 

Vectorized

Определяет вычисление фитнес-функции как

'off'

 

векторной величины: 'on','off'

 

ПРИЛОЖЕНИЕ 7

Параметры fgoalattain и fminimax

Параметр

Описание

Значение по

умолчанию

 

 

 

 

 

DerivativeCheck

Сравнивает вычисление производных по

'off'

 

аналитическим записям и по конечно-

 

 

разностному способу: 'on', 'off'

 

Diagnostics

Показывать или нет диагностическую ин-

'off'

 

формацию о функции: 'on', 'off'

 

187

DiffMaxChange

Максимальное изменение переменных при

0.1

 

 

конечно-разностномвычислении градиентов

1e-8

DiffMinChange

Минимальное

изменение переменных при

 

 

конечно-разностномвычислении градиентов

'final'

Display

 

Уровень

вывода:

,

,

 

 

 

 

 

 

'off' 'iter' 'iter-

 

 

 

detailed','notify'(вывод только при

 

 

 

несходимости),'notify-detailed', 'fi-

 

 

 

nal','final-detailed'

 

'forward'

FinDiffType

 

Способ вычисления конечной разности для

 

 

градиентов: 'forward' (сдвигом вперед),

 

 

 

'central'

 

 

 

 

'off'

FunValCheck

 

Показывать или нет ошибку при непра-

 

 

вильных значениях функций (комплекс-

 

 

 

ных, Inf или NaN): 'on', 'off'

 

0

GoalsExact-

 

Задает число целевых функций, по кото-

Achieve

 

рым требуется, чтобы они равнялись целе-

 

 

 

вым значениям (только для fgoalattain)

0

MinAbsMax

 

Число функций fi(x), по которым для ми-

 

 

нимизации берется максимальная абсо-

 

 

 

лютная величина (только для fminmax)

'off'

,

 

Их включение (

 

) означает, что гради-

GradObj

Grad-

 

 

 

'on'

 

 

Constr

 

енты целевых функций и нелинейных ог-

 

 

 

раничений даются пользователем в m-

 

 

 

файлах

 

 

 

 

 

 

MaxFunEvals

 

Максимально допустимое число вычисле-

100 × число

 

 

ний функции

 

 

 

 

переменных

MaxIter

 

Максимально допустимое число итераций

400

MaxSQPIter

 

Максимально допустимое число итераций

>10 × число

 

 

SQP-алгоритма

 

 

 

переменных

MeritFunction

'multiobj'

– использование

функции

'multiobj'

 

 

качества

goal

attainment/minimax,

 

 

 

'singleobj'

использование

функции

 

 

 

качества

fmincon

 

 

[]

OutputFcn

 

Задает одну или более функций вывода

 

 

пользователя

 

 

 

 

 

188

PlotFcns

Задает функции графики: @optimplotx,

[]

 

@optimplotfunccount,

 

 

@optimplotfval,

 

 

@optimplotconstrviolation,

 

 

@optimplotstepsize

 

RelLineSrchBnd

Коэффициент для ограничения величины

[]

 

смещения по

x в линейном поиске:

 

 

| x(i)| ≤relLineSrchBnd·max(|x(i)|.|typicalx(i)|).

 

 

 

 

RelLineSrch-

Число итераций, на которых ограничение

1

BndDuration

на | x(i)| должно быть активным

 

TolCon

Допустимая конечная величина нарушений

1e-6

 

ограничений

 

 

TolConSQP

Допустимая конечная величина нарушений

1e-6

 

ограничений в итерациях SQP

 

TolFun

Допустимое конечное изменение значения

1e-6

 

функции

 

 

TolX

Допустимое конечное изменение по x

1e-6

TypicalX

Fgoalattain

применяет для шкалирова-

Единичный

 

ния конечных разностей при вычислении

вектор с раз-

 

градиента

 

мером, рав-

 

 

 

ным числу

 

 

 

переменных

UseParallel

Задает способ вычисления градиентов:

'never'

 

'always' (параллельный), 'never' (нет)

 

ПРИЛОЖЕНИЕ 8

Параметры quadprog

Параметр

Описание

Значение по

умолчанию

 

 

HessMult

Задает функцию вычисления произведения

___

 

H×Y

 

MaxPCGIter

Максимальное число итераций PCG

Число пе-

 

 

ременных/2

PrecondBand-

Определяет метод решения большой сис-

0

Width

темы: 0 – PCG, Inf прямая фактори-

 

 

зация

 

189

TolFun

Допустимое отклонение целевой функции

Приграницах

 

 

2.2204e-14,

 

 

при равенст-

 

 

вах 1e-6

TolPCG

Конечная допустимость в PCG

0.1

TolX

Конечная допустимость по х

2.2204e-14

TypicalX

Типовые значения х для внутреннего мас-

Все компо-

 

штабирования. Эффективно при наличии не-

ненты равны

 

ограниченныхкомпонентхи TypicalX>1

1

ПРИЛОЖЕНИЕ 9

Параметры fsolve

Общие для всех алгоритмов

Параметр

Описание

 

 

 

 

 

Algorithm

Используемый

алгоритм:

'trust-

 

region-dogleg',

'trust-region-

 

reflective', 'levenberg-marquardt'

DerivativeCheck, Как в предыдущих приложениях

Diagnostics,

DiffMaxChange,

DiffMinChange, Display, FunValCheck, MaxFunEvals, MaxIter, OutputFcn, TolFun, TolX, TypicalX

PlotFcns Задает функцию графики: @optimplotx,

@optimplotfunccount, @optimplotfval, @optimplotresnorm, @optimplotstepsize, @optimplotfirstorderopt

Jacobian

Вычисление Якобиана:

– задано поль-

 

 

'on'

 

зователем, 'off'– по конечным разностям

Значение по умолчанию

'trustregiondogleg'

[]

'off'

190