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

Учебное пособие 1817

.pdf
Скачиваний:
3
Добавлен:
30.04.2022
Размер:
2.28 Mб
Скачать

8.2. Плотность распределения времени безотказной работы элемента на участке (t1 ,t2 ) постоянна и равна нулю вне этого участка (рис. 1.15). Найти интенсивность отказов и построить график.

Рис. 1.15

Решение. Интенсивность отказов по формуле (7) равна

l(t) =

f (t)

=

f (t)

 

 

 

 

 

 

 

 

(t1 < t < t2 ).

 

 

 

 

 

 

 

 

 

 

 

 

p(t) 1 - q(t)

 

 

 

 

 

 

 

 

 

Поскольку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

t

 

dt

 

 

t - t1

 

q(t) = ò f (t)dt = ò

 

 

 

 

=

,

t

2

- t

1

t

2

- t

 

t

 

t

 

 

 

 

1

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

l(t) =

 

1

.

 

 

 

 

 

 

 

t2

 

 

 

 

 

 

 

 

 

 

- t

 

 

 

 

 

 

График интенсивности отказов приведен на рис. 1.16.

141

Рис. 1.16

8.3. Простая система состоит из 7 независимых элементов, надежность каждого из которыхp = 0,9 .Найти надежность системы.

Решение. Воспользуемся формулой (10), тогда

P = 0,97 » 0,478.

8.4. Простая система состоит из 100 одинаково надежных независимых элементов. Какова должна быть надежность отдельного элемента, чтобы надежность системы была бы не менее 0,85?

Решение. Представим формулу (10) в виде p = n P . Тогда надежность отдельного элемента

 

p = 100 0,85; ln p =

 

1

ln 0,85;

p = 0,9995.

8.5.

100

 

 

 

 

 

Простая

система

 

состоит

из

трех независимых

элементов.

Найти

интенсивность отказов

системы, если

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

выражениями:

 

 

 

 

 

 

f1 (t) = 1,

f 2 (t) = 3t 2 ,

 

f3 (t) = 1 - 2t

при 0 < t < 1.

 

 

 

 

 

 

 

¢

 

Решение. Поскольку f (t) = q (t) то ненадежность каждого

элемента будет

 

 

 

 

 

 

 

 

q (t) = t;

q

2

(t) = t 3

;

q

3

(t) = t - t 2

при 0 < t < 1.

1

 

 

 

 

 

 

 

 

 

 

 

142

 

Отсюда надежность элементов

p (t) = 1 - t;

p

2

(t) = 1 - t 3

;

p

3

(t) = 1 - t + t 2

при 0 < t < 1.

1

 

 

 

 

 

 

Интенсивность отказа каждого элемента по формуле (7) равна

l

(t) =

1

; l

2

(t) =

 

3t 2

 

; l

3

(t) =

 

1 - 2t

.

 

 

 

 

 

 

 

1

 

1 - t

 

 

1

- t

3

 

1

- t + t 2

 

 

 

 

 

 

 

 

 

Интенсивность отказов системы находим по формуле (11)

L(t) = l (t) + l

2

(t) + l

3

(t) =

 

1

+

 

3t 2

+

 

1 - 2t

=

 

 

 

 

 

 

1

 

1

- t

 

1 - t 3

 

1 - t + t 2

 

 

 

 

 

 

 

 

= 2(1 - t + 2t 2 - 2t 3 + 3t 4 ) . (1 - t 3 )(1 - t + t 2 )

8.6. Найти надежность системы, состоящей из семи элементов с надежностями p1 , p2 ,..., p7 (рис. 1.17).

Рис 1.17

Решение. Поскольку в системе применяются как «последовательное», так и «параллельное» соединение элементов, то при оценке надежности расчленяем ее на ряд подсистем. Рассматривая подсистемы как условные элементы, находим надежность системы в целом.

Подсистема I — «параллельно» включенные элементы Э2 и Э3 ; надежность p1 = 1 - (1 - p2 )(1 - p3 ).

Подсистема II — «последовательно» соединенные

 

элементы Э1 и I; надежность pII = pI

p1.

 

 

 

 

Подсистема III — «параллельно» включенные

элементы

 

Э4 и Э5 ; надежность pIII = 1 - (1 - p4 )(1 - p5 ).

 

 

 

 

Подсистема IV — «последовательное» соединение

 

элементов Э6

и Э7 , надежность pIV = p6 × p7 .

 

 

 

 

Подсистема V — «последовательно» соединенные

 

элементы III и IV; надежность pV = pIII× pIV .

 

 

 

 

Вся

система —

«параллельно»

включенные

II

и V

 

элементы; надежность P = 1 - (1 - pII )(1 - pV ).

 

 

 

 

8.7. Рассмотрим технологическую линию, состоящую из

 

одной основной машины и трех резервных. Пусть основная

 

машина

подвергается

 

простейшему

потоку

отказов

с

интенсивностью l1 . Найти надежность линии с облегченным

 

резервом, т. е. когда

резервные

машины до

 

включения

 

подвергаются

простейшему

 

потоку

 

отказов

 

интенсивностью l2 ,

а

 

после

включения

интенсивность

 

повышается до величины l2

0 .

 

 

 

 

 

Решение. При определении надежности линии введем

 

следующие

обозначения

состояний.

Если

основная

машина

 

работает, то первый индекс равен нулю, если основная машина отказала, то первый индекс равен единице, а второй индекс определяет число исправных резервных машин. Так, S0k , —

144

143

основная машина исправна, из резервных исправны k машин ( k =О, 1, 2, 3); S1k — основная машина отказала, из резервных исправны k машин, причем одна из них работает.

Для составления уравнений Колмогорова представим граф состояний (рис. 1.18).

Рис. 1.18

Система уравнений вероятностей состояний в этом случае будет

 

 

 

 

 

 

 

 

dp03

= -(l + 3l

2

) p

03

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp02

= -(l + 2l

2

) p

02

+ 3l

2

 

p

03

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp01

= -(l + l

2

) p

01

+ 2l

2

p

02

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp00

= -l p

00

+ l

2

p

01

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp13

= -(l 0 + 2l

2

) p + l p

03

;

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

 

 

 

 

 

2

 

 

 

 

 

 

13

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp12

= -(l

 

0 + l

 

 

) p + l p

 

 

 

+ (l

 

0

+ 2l

 

) p ;

 

2

2

02

 

2

 

2

dt

 

 

 

 

 

 

 

 

12

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dp11 = -l2 0 p11 + l1 p01 + (l2 0 + l2 ) p12 ;

dt

dp10 = l1 p00 + l2 0 p11 .

dt

Из интегрирования первого уравнения системы имеем

p03 = e -(l1 +3l2 )t .

Подставляя это решение во второе уравнение системы и интегрируя, находим p02 .Продолжая последовательно процесс интегрирования уравнений, находим остальные значения вероятностей состояний. Вероятность состояния, когда линия не работает, может быть найдена из условия

p10 (t) = 1 - ( p03 + p02 + p01 + p00 + p13 + p12 + p11 ).

Отсюда надежность линии, как обратное событие, будет

P(t) = 1 - p10 (t).

т. е. равна сумме вероятностей, при которых линия работает. Нетрудно заметить, что изменение числа резервных машин

в технологической линии приводит только к увеличению или уменьшению графа состояний (рис. 1.18), а, соответственно, и числа уравнений системы. В остальном схема расчета остается без изменений.

146

145

III.Решение задач оптимизации

всистеме МатLав

1.Пакет оптимизации Optimization Toolbox

1.1.Назначение и возможности пакета

Пакет оптимизации(Optimization Toolbox) — это библиотека функций, расширяющих возможности системы МАТLАВ по численным вычислениям и предназначенная для решения задач оптимизации систем нелинейных уравнений. Поддерживает основные методы оптимизации функций ряда переменных:

Безусловная оптимизация нелинейных функций.

Метод наименьших квадратов.

Решение нелинейных уравнений.

Линейное программирование.

Квадратичное программирование.

Условная минимизация нелинейных функций.

Методы минимакса.

Многокритериальная оптимизация.

Рассматриваемый пакет дает возможности решать задачи минимизации функций, нахождения решений уравнений, задачи аппроксимации («подгонки» кривых под экспериментальные данные).

Различные типы таких задач вместе с применяемыми для их решения функциями пакетаOptimization Toolbox (дальнейшее изложение будет относиться к версии2.0, используемой в составе MATLАВ 5.3.1) приведены в табл. 1.

Таблица 1 Типы задач, решаемых средствами пакета Optimization Toolbox

Тип задачи

 

Математическая запись

 

Функия

 

 

MATLAB

 

 

 

 

 

 

 

 

 

1

2

 

 

 

 

3

 

 

 

Задачи минимизации

 

 

 

 

 

 

Скалярная

 

min f (a), a1 p a p a2

 

 

 

fminbnd

(одномерная)

 

a

 

 

 

 

 

 

минимизация

 

 

 

 

 

 

 

 

 

 

 

Безусловная

 

min f (x)

 

 

 

fminunc,

минимизация

 

x

 

 

 

fminsearch

(без ограничений)

 

 

 

 

 

 

 

 

 

 

 

Линейное

 

min f T x , при условиях

 

linprog

 

программирование

 

x

 

 

 

 

 

 

 

 

Ax £ b , Aeq x = beq,

 

 

 

 

 

 

 

 

xL £ x £ xU

 

 

 

 

 

 

 

Квадратичное

 

min

1

xT Hx + f T x

 

quadprog

 

программирование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 2

 

 

 

 

 

 

 

 

при условиях

 

 

 

 

 

 

 

 

Ax £ b , Aeq x = beq,

 

 

 

 

 

 

 

 

xL £ x £ xU

 

 

 

 

 

 

Минимизация

 

min f (x) при условиях

 

 

fmincon

 

при наличии

 

x

 

 

 

 

 

 

 

c(x) £ 0, ceq(x) = 0 ,

 

 

 

 

 

 

ограничений

 

 

 

 

 

 

 

 

Ax £ b , Aeq x = beq,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xL £ x £ xU

 

 

 

 

 

 

Достижение цели

 

min y при условиях

 

 

fgoalattain

 

x, y

F (x) - wg £ goal, c(x) £ 0, ceq(x) = 0 ,

Ax £ b , Aeq x = beq, xL £ x £ xU

147

148

1

 

2

 

 

 

 

 

3

Полубесконечная

 

 

min f (x) при условиях

 

fseminf

минимизация

 

 

 

x

 

 

 

 

 

 

 

 

 

 

K (x, w) £ 0 для всех w,

 

 

 

 

 

 

 

 

 

 

 

 

c(x) £ 0, ceq(x) = 0 ,

 

 

 

 

 

 

Ax £ b , Aeq x = beq,

 

 

 

 

 

 

xL £ x £ xU

 

 

 

 

 

 

 

 

Нахождение решений уравнений

Линейные

 

C x = d, n уравнений,

 

\ (оператор

уравнения

 

n переменных

 

 

 

 

 

 

левого деления,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

slash)

Нелинейное

 

 

 

f (a) = 0

 

 

 

 

 

 

fzero

уравнение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

одной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

переменной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нелинейные

 

F (x) = 0, n уравнений,

 

fsolve

уравнения

 

n неизвестных

 

 

 

 

 

 

 

многих

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

переменных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задачи аппроксимации («подгонки»

 

кривых)

Линейный

метод min

 

 

 

C × x - d

 

 

 

2

,

 

\ (оператор

 

 

 

 

 

 

 

 

 

наименьших

 

 

 

x

 

 

 

 

 

 

 

2

 

 

левого деления,

 

 

 

 

 

 

 

 

 

 

 

квадратов (МНК)

 

 

m уравнений,

 

 

backslash)

 

 

 

 

n переменных

 

 

 

Неотрицательный

 

 

min

 

 

 

C × x - d

 

 

 

2

,

 

lsqnonneg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

линейный МНК

 

 

 

 

 

 

 

 

2

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при условии x ³ 0

 

 

Линейный

МНК min

 

 

 

C × x - d

 

 

 

2

,

 

lsqlin

 

 

 

 

 

 

 

 

 

при

наличииx

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

ограничений

 

 

 

при условиях

 

 

 

 

 

 

 

Ax £ b , Aeq x = beq,

 

 

 

 

 

 

xL £ x £ xU

 

 

 

 

 

 

 

Нелинейный

min

1

 

 

 

F (x)

 

22 =

1

å fi

2 (x)

 

lsqnonlin

МНК

 

 

 

 

 

 

2

 

2

 

 

 

x

 

 

 

 

 

 

i

 

 

 

 

 

 

при условии xL £ x £ xU

 

 

Нелинейная

min

1

 

 

 

F (x, xdata) - ydata

 

2

 

lsqcurvefit

 

 

 

 

«подгонка»

 

 

 

x

2

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кривой

при условии xL

£ x £ xU

 

 

 

 

 

Принятые

обозначения:

 

 

 

 

 

 

 

· a – скалярный

 

 

 

аргумент;

x, g

– в

общем случае

векторные аргументы;

·f(a), f(x) – скалярные функции; F(x), c(x), ceq(x), K(x,w) – векторные функции;

·A, Aeq, C, H – матрицы;

·B, beq, d, f, w, goal, xdata, ydata – векторы;

·xL, xU – соответственно, нижняя и верхняя границы области изменения аргумента.

1.2.Применяемые алгоритмы

Врамках пакетаOptimization Toolbox все задачи оптимизации делятся на две группы: задачи малой и средней размерности и задачи большой размерности. Соответственно, такое же деление принято для алгоритмов решения данных задач. Разумеется, это не означает, что для решения задач средней размерности нельзя применять алгоритмы большой размерности и наоборот. Просто алгоритмы той или иной группы более эффективны для задач своей размерности.

Впакете Optimization Toolbox реализован широкий набор алгоритмов для решения задач оптимизации средней и малой размерности. Основными для задач без ограничений

являются

симплексный

метод

Нелдера—Мида

квазиньютоновские методы.

 

 

Для

решения задач

с ограничения, минимакса,

149

150

 

достижения цели и полубесконечной оптимизации использованы алгоритмы квадратичного программирования.

Задачи, сводящиеся к нелинейным МНК, решаются с

помощью

алгоритмов

Ньютона–Рафсона

и

Левенберга–

Марквардта.

 

Вспомогательные

 

процедуры

одномерной

(скалярной)

 

оптимизации

 

 

используют

 

алгоритмы

квадратичной (параболической) и кубической интерполяции.

Рассмотрим перечисленные алгоритмы подробнее.

1.3. Общая формулировка задачи параметрической

 

 

оптимизации

 

 

 

 

 

Задача

параметрической

оптимизации формулируется

как задача нахождения набора параметров х= 1, х2, ..., хn},

который

является

оптимальным

в

смысле

некоторого

критерия. В простейшем случае такая задача сводится к

минимизации

или

максимизации

некоторой(целевой)

функции без каких-либо ограничений. В более сложных

ситуациях на отмеченные параметры могут быть наложены

некоторые

 

ограничения

в

 

виде

 

равенствg (x) = 0

 

 

 

 

 

 

 

 

i

 

(i = 1,2,..., me ) ,

неравенств gi (x) £ 0

 

(i = me

+1,...,m)

и/или

параметрических границ xL , xU . Общая формулировка задачи

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

min f (x)

xÎR''

при ограничениях

gi (x) = 0, i = 1,2,..., me ,

gi (x) £ 0, i = me +1,...,m, xL £ x £ xU ,

где х – вектор оптимизируемых параметров (x Î Rn ), f (x) – скалярная целевая функция(критерий) векторного аргумента

151

( f (x) : R n ® R) , gi (x) – также некоторые скалярные функции

векторного аргумента (заметим, что задача максимизации сводится к задаче минимизации заменой f(х) на -f(х)).

Эффективность и точность решения данной задачи зависит как от числа параметров и ограничений, так и от вида целевой функции. При линейных ограничениях и целевой функции приведенная задача оптимизации называется задачей линейного программирования, при линейных ограничениях, но при квадратичной(по аргументам) целевой функции – задачей квадратичного программирования, в общем случае это задача нелинейного программирования.

1.4. Безусловная оптимизация

Существующие алгоритмы безусловной оптимизации могут быть разделены на две группы— алгоритмы, базирующиеся на использовании производных минимизируемой функции (градиентные и методы второго порядка), и алгоритмы, использующие только значения функции (безградиентные).

Безградиентные методы (например, симплексный метод Нелдера — Мида) более пригодны для задач, где минимизируемая функция является существенно нелинейной или имеет разрывы. Градиентные методы (методы первого порядка) обычно эффективны в случаях целевых функций, непрерывных вместе с первыми производными. Методы второго порядка, такие как метод Ньютона, применяются реже, поскольку требуют больших вычислительных затрат для расчета матриц вторых производных.

Градиентные методы используют информацию о наклоне функции для выбора направления поиска экстремума.

В одном из таких методов— наискорейшего спуска — на каждой итерации движение к точке минимума осуществляется в направлении - Ñf (x) (где Ñf (x) – вектор-градиент целевой функции f(х)). Этот метод весьма неэффективен в ситуациях, когда поверхность целевой функции имеет узкие«овраги»,

152

как, например, у известной функции Розенброка

f (x) = 100(x1 - x22 )2 + (1 - x1 ) 2 .

Поверхность этой функции приведена на рис. 1.

Рис. 1. Графическое представление функции Розенброка

Минимальное значение данной функции, как нетрудно

видеть, равно

нулю приx1 = х2 = 1. Между

тем численные

эксперименты

показывают,

что

зачастую

метод

наискорейшего

спуска не обеспечивает

нахождение

точки

экстремума даже после сотен и тысяч итераций.

Отметим, что указанную функцию из-за своеобразной формы ее линий равного уровня часто называют«банановой» функцией (как видно, банановыми бывают не только республики!) и используют как тестовую при проверке эффективности различных оптимизационных алгоритмов.

Квазинъютоновские

алгоритмы.

Среди

 

алгоритмов,

использующих

информацию

о

градиенте, наиболее

распространенными

являются

квазиньютоновские. В этих

(итерационных) алгоритмах целевая функция в окрестностях

произвольной

точки

аппроксимируется

квадратичной

функцией, при этом на каждой итерации решается задача локальной минимизации

153

min 1 xT Hx + cT x + b ,

x 2

где Н — симметричная и положительно определенная матрица вторых частных и смешанных производных(матрица Гессе, или гессиан), с — постоянный вектор, b — константа.

Оптимальное решение приведенной зада соответствует нулевым значениям первых производных, то есть

Ñf (x* ) = Hx* + c = 0 ,

откуда

x* = -H -1c .

 

1.5. Ньютоновские алгоритмы

 

 

 

Ньютоновские

 

 

 

 

алгоритмы (в

отличие

от

квазиньютоновских)

 

 

непосредственно

вычисляют

Н(как

 

отмечалось, прямое вычисление матрицы Н требует больших

 

вычислительных

 

 

затрат) и

 

 

 

осуществляют

движение

в

рассчитанном

 

 

на

 

очередной

итерации

направлени

уменьшения целевой функции до достижения минимума(с

 

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

 

 

 

методов

 

 

 

одномерного

).

поискаВ

квазиньютоновских

 

 

 

 

алгоритмах

 

 

такое

вычисление

не

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

 

Среди

подобных

 

 

алгоритмов

одним

из

наиболее

популярных и используемым в пакетеOptimization Toolbox

 

является так называемый ВРС-5-алгоритм, получивший свое

 

название по фамилиям предложивших его авторов(Broyden,

 

Fletcher, Goldfarb,

 

Shanno), в

 

котором аппроксимация

Н

производится итерационно, по формуле

 

 

 

 

 

 

q

k

qT

H

k

s

k

sT

H

k

 

 

 

 

 

H k +1 =

H k +

 

 

k

-

 

 

k

 

,

 

 

 

 

 

 

 

 

skT H k sk

 

 

 

 

 

 

 

qkT sk

 

 

 

 

 

 

где

sk = xk +1 - xk ,

qk = Ñf (xk +1 ) - ÑF (xk ) .

154

Заметим, что более удобно иметь аппроксимацию не

матрицы Н,

а обратной

к

ней матрицыН-1; приведенное

рекуррентное соотношение подобную замену допускает, при

этом сам

алгоритм

становится

практически

идентичным

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

Давидопа—Флетчера—Пауэлла,

за тем

исключением,

что в

последнем векторы q заменены на векторы s и наоборот.

1.6. Алгоритмы Ньютона-Гаусса и Левенберга-Марквардта

Алгоритмы

Ньютона — Гаусса

и

Левенберга—

Марквардта используются

в

функциях

рассматриваемого

пакета, предназначенных для решения задачи нелинейного

метода

наименьших

 

квадратов(МНК).

При

отсутствии

ограничений указанная задача формулируется следующим

образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min

1

 

F (x)

 

 

 

22

=

1

å fi

2 (x) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

2

 

 

 

 

 

 

2

 

i

 

 

 

 

Скалярная

 

оптимизация

 

в

данных

алгоритмах

производится, соответственно, вдоль направлений

 

 

·

dk = -(J T (xk )J (xk ))-1 J (xk )F (xk ) –

для

алгоритма

 

Ньютона-Гаусса,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·

dk = -(J T (xk ) J (xk ) + lk I )-1 J (xk )F (xk )

для

 

алгоритма Левенберга-Марквардта,

 

 

 

где J(x) — матрица-якобиан размером m×n (в документации к

пакету

Optimization

 

Toolbox

под

якобианом

понимается

матрица первых частных производных вектор-функции F(х) по векторному аргументу х, а не определитель этой матрицы, как обычно принято в математической литерат; будрем придерживаться терминологии документации пакета), lk

параметр алгоритма, определяемый в процессе линейной (скалярной) оптимизации вдоль выбранного направления.

1.7.Минимизация при наличии ограничений

Взадачах оптимизации с ограничениями(см. табл. 1) обычный подход к нахождению решения состоит в замене исходной задачи с ограничениями на задачу без ограничений (задачу безусловной оптимизации), например, с помощью метода штрафных функций. В настоящее время, однако, более

эффективным

считается

 

 

применение

так

называемых

уравнений

Куна—Таккера,

которые

 

на

основании

вышеприведенной

формулировки

задачи

параметрической

оптимизации

и

 

при

 

 

некоторых

дополнител

предположениях

о характере

 

ограничений

записываются в

виде

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ñf (x* ) + åli Ñgi (x* ) = 0 ,

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

Ñg

i

(x* ) = 0 ,

i = 1,2,..., m ,

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

l*

 

= 0 , i = m

+1,...,m .

 

 

 

 

 

i

 

 

 

 

e

 

 

 

 

где li

– множители Лангранжа.

 

 

 

 

 

 

 

 

Для решения данных уравнений в пакетеOptimization

Toolbox

использован

 

 

алгоритм

 

так

называемог

последовательного

квадратичного

программирования(

оригинале – Sequential Quadratic Programming, или SQP),

представляющий

 

собой,

по

 

 

сути,

разновидность

квазиньютоновского метода. Основная идея SQP заключается

в

применении

квадратичной

аппроксимации

функции

Лагранжа (учитывающей ограничения)

 

 

 

m

L(x, l) = f (x) + åli Ñgi (x) ,

i=1

так что на каждой итерации решается задача оптимизации

156

155

 

 

min

1

d T H k d + Ñf ( xk )d ,

 

 

 

 

многокритериальной

оптимизации применен

так называемый

 

 

 

 

 

 

 

метод

достижения

цели, предложенный

Gembicki и

 

 

 

 

 

 

 

 

 

 

 

dÎR'' 2

 

 

 

 

 

 

 

 

 

ÑgiT (xk )d + gi (xk ) = 0 , i = 1,2,..., me ,

 

 

математически описываемый соотношениями

 

 

 

 

 

 

ÑgiT (xk )d + gi (xk ) £ 0 , i = me

+1,..., m .

 

 

 

 

 

min g

 

 

 

 

 

 

 

 

 

при ограничениях

 

gÎR,xÎW

 

 

 

 

 

В последней формулировке данная задача может быть

 

F ( x) - w g £ F * ,

 

 

 

 

 

решена

любым

методом

решения

задач

квадратичного

 

 

 

i = 1,2,...,m ,

 

 

программирования. В

пакете Optimization

Toolbox

для этой

 

 

 

i

i

i

 

 

 

 

 

 

где W

область

допустимых

значенийx, wi

– некоторые

 

цели использован комбинированный алгоритм, объединяющий

 

 

 

весовые

коэффициенты,

F *

некоторые

устанавливаемые

 

алгоритм BFGS и так называемый метод проекций.

 

 

 

 

 

«цели» (goals).

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.8. Многокритериальная оптимизация

 

 

В приведенной формулировке задача подобна задаче

 

Достаточно часто в реальных ситуациях качество работы

 

однокритериальной

оптимизации

и

может

решаться

с

исследуемого

 

объекта

или

системы

оценивается

не

помощью перечисленных алгоритмов.

 

 

 

 

 

единственным

критерием

или

показателем

качества,

1.9. Алгоритмы большой размерности

 

 

совокупностью таких критериев, причем представляющихся

 

 

одинаково значимыми. Это приводит к задаче оптимизации с

Задачи

оптимизации

 

с

большим

ч

векторной

целевой функцией F (x) = {F1 (x), F2 (x),..., Fm (x)}

и

оптимизируемых

факторов (десятки, сотни,

тысячи) и/или

 

формулировкой

 

 

 

 

 

 

 

сложным, нелинейным

характером

 

целевой

функции

 

 

 

 

min F (x)

 

 

 

 

достаточно плохо решаются рассмотренными методами ввиду

 

при ограничениях

xÎR''

 

 

 

 

 

существенных

вычислительных

затрат(например,

при

 

 

 

 

 

 

 

определении аппроксимации матрицы Гессе), что привело к

 

 

 

gi (x) = 0 ,

i = 1,2,..., me ,

 

 

 

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

 

 

 

gi (x) £ 0 ,

i = me +1,..., m .

 

 

 

эффективными в подобных ситуациях, — алгоритмов большой

 

 

 

 

 

 

размерности.

 

 

 

 

 

 

 

 

 

 

xL £ x £ xU ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

получившей

название

задачи

многокритериальной, или

области доверия — области N вблизи некоторой точки х, в

 

векторной, оптимизации.

 

 

 

 

 

 

которой рассматриваемая целевая функцияf(х) может быть

 

Известно, что решение подобной задачи сводится к

адекватно аппроксимирована более простой функцией q(s), так

 

нахождению

множества

точек

неулучшаемых

 

решений

что исходная задача оптимизации сводится к задаче

 

 

(Парето-множества), для чего используются такие, например,

 

 

min q(s).

 

 

 

 

 

методы, как метод взвешенной суммы частных критериев или

 

 

sÎN

 

 

 

 

 

метод e -ограничения.

 

 

 

 

 

 

Текущая точка х обновляется, то есть заменяется точкой

 

В

рассматриваемом

пакете

для

решения

задачи

х + s, если f(x+s)<f(x), и

не изменяется

в

противоположном

 

157

158

 

случае.

В

стандартном

подходе

предполагается, что

как

функция

q(s),

так

 

и

 

 

 

 

 

область

 

доверия

 

 

 

 

 

описываются

квадратичными

 

функциями,

что

 

приводит

 

к

задаче

оптимизации

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

min

sT H k s + sT G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

при условии

 

s 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где G = Ñf (x)

 

 

 

 

 

 

Ds

 

 

 

£ D ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

– градиент в текущей точке x, D – некоторая

диагональная

матрица

весовых

 

коэффициентов,

 

 

 

·

 

 

 

 

 

 

 

 

 

обозначение нормы,

D – положительный скаляр.

 

 

 

 

 

 

 

В пакете Optimization Toolbox используется двумерный

вектор

s = [s1 , s2 ] ,

в

котором элемент

s1 соответствует

направлению

градиента G,

а

элемент s2

направлению,

выбираемому по одному из соотношений

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hs2 = -G, s2T Hs2 p 0 .

 

 

 

 

 

 

 

 

 

 

 

Очевидно, если

направления s1

,

и

s2

установлены,

локальная

оптимизация

 

производится

 

в

двумерной

 

области,

что

не

 

вызывает

 

 

 

 

никаких

 

проблем

с

нахождением

соответствующего решения. Наибольшую сложность здесь

вызывает

именно

определение

 

указанных

 

направлений.

Решение данной вспомогательной задачи производится - мо дификацией метода сопряженных градиентов, так называемого

метода PCG (Preconditioned Conjugate Gradients).

 

 

Для

решения

частных

 

задач

большой

размерности

(задачи

с

линейными

 

ограничениями, линейного

и

нелинейного

 

МНК,

задач

линейного

и

квадратичного

программирования) в

рассматриваемом

пакете

применены

специальные модификации изложенного подхода, в том числе

использующие

операции

с

разреженными

матрицами,

подробности о которых можно выяснить в справочной системе

MATLAB.

159

Таблица 2 Имена и значения опций функций пакета Optimization Toolbox

Имя

Значения

Опции, используемые для алгоритмов как средней, так и большой размерности

Diagnostics

[ on │{off}]

Display

[ off │iter │{final}]

Grad0bj

[ on │{off}]

Jacobian

[ on │{off}]

LargeScale

[ {on}│off ]

MaxFunEvals

[целое положительное]

MaxIter

[целое положительное]

TolCon

[положительная константа]

TolFun

[положительная константа]

TolX

[положительная константа]

Опции, используемые только для алгоритмов большой

 

размерности

Hessian

[ on │{off}]

HessPattern

[разреженная матрица]

JacobPattern

[разреженная матрица]

MaxPCGIter

[целое положительное]

PrecondBandWidth

[целое положительное │Inf ]

TolPCG

[положительная константа │ {0.1}]

TypicalX

[вектор]

Опции, используемые только для средней размерности

DerivativeCheck

[ on │{off}]

DiffMaxChange

[положительная константа │ {1e-1}]

DiffMinChange

[положительная константа │ {1e-8}]

GoalsExactAchieve

[целое положительное │{0}]

GradConstr

[ on │{off}]

HessUpdate

[{bfgs} │dfp │gillmurray │steepdesc ]

LevenbergMarquardt

[ on │off ]

LineSearchType

[ cubicpoly │{quadcubic} ]

MeritFunction

[ singleobj │{multiobj} ]

MinAbsMax

[целое положительное │{0}]

160