Алгоритмпоиска оптимального вектора
Общий вид алгоритма метода субоптимизации для задачи выпуклого программирования приведен на рис. 1. Ниже приводятся описания блоков алгоритма, изображенных на этом рисунке.
Блок 1.
Определяется допустимая начальная точка x
1
для исходной задачи. Это может быть точка, получаемая с помощью алгоритма построения начального базиса линейного симплекс-метода, или же решение в некотором смысле близкой линейной задачи. Предполагается Á
1
=
Á
(
x
1
),
k
=1.
Блок 2.
Находится оптимальный вектор x
*
k
для задачи
Если x
*
k
оказывается допустимой для исходной задачи (3.4.1), совершается переход к блоку 3, в противном случае осуществляется переход к блоку 4.
Блок 3.
Вычисляется значение
Если
то в силу выполнения условий Куна-Таккера для исходной задачи (3.4.1) точка x
*
k
является оптимальной точкой задачи (3.4.1) и работа алгоритма заканчивается.
Если
то предполагаем
и происходит переход к блоку 2.
Блок 4.
Поскольку оптимальная точка вспомогательной задачи оказалась недопустимой для исходной, выбираем в качестве новой начальной точки ближайшую к ней точку, допустимую для исходной задачи (3.4.1), и лежащую на прямой, соединяющей оптимальные точки вспомогательной задачи, т.е.
Далее полагаем Á
k
+1
=
Á
(
xk
+1
),
заменяем k
на k
+1,
и переходим к блоку 2.
Таким образом построен итерационный процесс, позволяющий осуществить направленный перебор множеств индексов Á
k
, позволяющий найти оптимальный вектор исходной задачи. Сходимость процедуры будет рассмотрена позже.