
- •1. Методы одномерной оптимизации
- •1.2.2. Метод золотого сечения
- •2. Методы безусловной оптимизации
- •2.1.1. Поиск по правильному симплексу
- •2.2.1. Метод циклического покоординатного спуска
- •2.2.2. Метод Зейделя
- •2.2.3. Метод Хука - Дживса
- •2.2.4. Метод Пауэлла
- •2.2.5. Типовые примеры
- •2.3.1. Метод градиентного спуска
- •2.3.2. Метод наискорейшего спуска
- •2.3.3. Типовой пример
- •3.1.1. Метод штрафных функций
- •3.1.2. Метод барьерных функций
- •3.1.3. Комбинированный метод штрафных функций
- •3.1.4. Типовой пример
- •3.2.2. Описание метода возможных направлений
- •3.2.3. Построение начального приближения
- •3.2.4. Выбор наилучшего подходящего направления
- •3.2.5. Определение длины шага
- •3.2.6. Типовой пример
- •3.3.3. Алгоритм статистичекого градиента
- •3.3.2. Алгоритм наилучшей пробы
- •4.2.2. Алгоритм метода
3.2.4. Выбор наилучшего подходящего направления
Ограничение/,(X) < Ъ. ({Al,X)<b) называется активным в
фиксированной точкеЛ^е R, если/,(Х)= bi {{Акх/ = ь<)-
Шаг 1. Введем в рассмотрение множества индексов активных ограничений в точке ле R:
У, (Хк) = {/ е /,: / (Хк) = *,} -индексное множество активных нелинейных ограничений;
j(xk) = \iel2 :Ц,Хк) = Ь1}- индексное множество активных линейных ограничений;
51
Введем в ...,sYb
s(xk)=
Очевидно, что множество $(**) представляет собой множество возможных направлений в точке X*, т.е. направлений не выводящих за пределы допустимой области.
Если Хк - внутренняя точка множества R, то Н [Хк) пусто,
т.е. нет активных ограничений и на выбор вектора S не накладывается никаких ограничений.
Шаг 3. Введем искусственную переменную а и определим множество (л+1)-мерных векторов с компонентами (st, s2,..., sn, о):
S'(Xk) =
Задачу выбора подходящего направления сформулируем как задачу линейного программирования:
(3.17)
max с
52
со-
s и еле-
Очевидно, что при а = О множества S'(**)H s(xk) впадают. Если, а > 0, то из ограничения (f,'(xk),S дует, что (fi'(xk),Sj<-cs, и направление S является подходящим. В этом случае (/;(хк),s)<О,iе/,(хк), т.е. S не направлено по касательной к нелинейным границам. При этом чем больше а, тем больше отличается от нуля (fl'^Xk),s\; т.е. тем
больший угол образуется между Sи внешней нормалью /•'(**). Поэтому в задаче (3.17) указывается требование максимизации. Если а < 0, то точка Хк оказывается точкой минимума функ-ЦИиДО-
Присутствие в задаче (3.17) ограничения о < 1 объясняется следующим образом. Когда речь идет о выборе направления, нас интересует именно направление, которое задается некоторым вектором произвольной длины. Однако при решении ЗЛП (3.17) величина а может оказаться неограниченной. Чтобы этого избежать следует наложить на длину вектора S некоторые ограничения. Поэтому в постановке задачи (3.17) должно присутствовать так называемое условие нормализации. Таким условием может быть одно из следующих ограничений:
№ 1. (S,S)<\.
№ 2. —1 < 5 ■ ^ 1>У/ = 1>Я-
№ 3. s < 1, если-^- < 0; j. > -1, если^- > 0.
1 ах ох.
№4. а <, 1.
53
3.2.5. Определение длины шага
keR определено наилучшее подходящее на- теперь длину шага в этом направлен^,
те найдем такое числом при котором/„(X +а5 ), как функция переменной а, принимает по а > 0 в допустимой обЛасти Ми. нимальное значение:
Эту задачу удобно решать в два этапа:
Шаг1, Определить значение а' = max {а: Хк + aSk e R), т е определить значение а, при котором луч Х(а) = Хк +aSk eR пересекает границу области R. Это достигается нахождением корней уравнений
где /0 (X) = х* + х\ -Юх, - 6х2 + 34;
= -*, +2*2-1.
Выполним одну итерацию рассмотренного метода возможных направлений. В качестве начального приближения выберем точку Г°=(2;0).
Определим индексные множества активных ограничений в
Х°
точке Х°:
Поставим задачу выбора наилучшего подходящего направления S в точке X как задачу линейного программирования с нормализацией № 3:
()
и выбором из них наименьшего положительного. Шаг 2. Выбрать число
a":fo(xk +a"Sk) = mm{fn(Xk +aSk)\ a>oj.
Если минимум достигается в точке Хк + a"S* , не принадлежащей области R, тогда в качестве длины шага выбирается a '. Если же минимум достигается в допустимой области R, то в качестве длины шага берется a ".
Таким образом, длина шага ак,выполняемого т точки Хкв выбранном направлении S\ устанавливается по правилу: a, =min{a',a"}.