Начальные сведения о численных методах оптимизации
Иногда удается, опираясь на условия оптимальности или на геометрическую интерпретацию, получить решение задачи оптимизации
f(x) ® min, x Î X, (2.1)
в явном виде, но в большинстве случаев задачу (2.1) приходится решать численно, с применением ЭВМ. Так, например, для решения задачи минимизации на Rnдифференцируемой функции f можно воспользоваться каким-либо численным методом решения системы уравнений f'(x) = 0. Однако, как правило, наиболее эффективными оказываются методы, разработанные специально для решения задачи оптимизации, так как они позволяют полнее учесть ее специфику.
В последующих главах будут рассмотрены численные методы решения задач различных типов: одномерных и многомерных, безусловных и условных, дискретных, а также задач оптимального управления.
В данном параграфе приводятся некоторые общие сведения, относящиеся в первую очередь к численным методам безусловной и условной минимизации функции конечного числа непрерывно изменяющихся переменных. Такие методы занимают центральное место в численной оптимизации; они, в частности, используются при решении дискретных оптимизационных задач и задач оптимального управления.
Любой численный метод (алгоритм) решения задачи оптимизации основан на точном или приближенном вычислении ее характеристик (значений целевой функции, функций, задающих допустимое множество, а также их производных). На основании полученной информации строится приближение к решению задачи – искомой точке минимума х* или, если такая точка не единственна, – к множеству точек минимума. Иногда, если только это и требуется, строится приближение к минимальному значению целевой функции .
Для каждой конкретной задачи вопрос о том, какие характеристики следует выбрать для вычисления, решается в зависимости от свойств минимизируемой функции, ограничений и имеющихся возможностей по хранению и обработке информации. Так, для минимизации недифференцируемой функции нельзя воспользоваться алгоритмом, предусматривающим возможность вычисления в произвольной точке градиента функции. В случае, когда доступен небольшой объем памяти ЭВМ, при решении задачи высокой размерности нельзя воспользоваться алгоритмом, требующим вычисления на каждом шаге, хранения в памяти матрицы вторых производных и т.п.
Алгоритмы, использующие лишь информацию о значениях минимизируемой функции, называются алгоритмами нулевого порядка; алгоритмы, использующие также информацию о значениях первых производных, – алгоритмами первого порядка; алгоритмы, использующие, кроме того, информацию о вторых производных, – алгоритмами второго порядка.
В курсе рассматриваются алгоритмы только нулевого, первого и второго порядка.
Работа алгоритма состоит из двух этапов. На первом этапе вычисляются предусмотренные алгоритмом характеристики задачи. На втором этапе по полученной информации строится приближение к решению. Для задач оптимизации выбор на втором этапе способа построения приближения, как правило, не вызывает затруднений. Например, для методов спуска, в которых на каждом шаге происходит переход в точку с меньшим, чем предыдущее, значением функции, за приближение к точке минимума обычно выбирается точка последнего вычисления. Поэтому для задания алгоритма достаточно указать способ выбора точек вычисления (конечно, при условии, что уже решен вопрос о том, какие именно характеристики решаемой задачи следует вычислять).
Если все точки выбираются одновременно до начала вычислений, то алгоритм минимизации называется пассивным. Необходимость применения пассивных алгоритмов возникает, например, в связи с использованием многопроцессорных ЭВМ, в связи с условиями постановки и проведения физических экспериментов, результатом которых являются значения минимизируемой функции, и т.д.
Однако для решения большинства задач точки вычисления выбираются поочередно, т. е. точка xi+1 выбирается, когда уже выбраны точки предыдущих вычислений х1, ..., хi и в каждой из них произведены предусмотренные алгоритмом вычисления, результаты которых будем обозначать соответственно через у1, ..., уi. Такие алгоритмы называются последовательными. Таким образом, последовательный алгоритм определяется точкой х1 Î Х и набором отображений вида
.
При этом
. (2.2)
В дальнейшем для записи методов минимизации мы будем пользоваться соотношением вида
xk+1 = xk + akhk, ak Î R, k = 0, 1, 2, … (2.3)
При этом конкретный алгоритм определяется заданием точки х0,правилами выбора векторов hk и чисел ak на основе полученной в результате вычислений информации, а также условием остановки. Таким образом, величины ak, hk в формуле (2.3) точно так же, как xi+1 в формуле (2.2), определяются теми или иными видами функциональной зависимости от точек и результатов всех ранее проведенных вычислений, причем на практике обычно используются наиболее простые виды зависимости. Правила выбора ak, hk могут предусматривать и дополнительные вычисления, т.е. вычисления некоторых характеристик решаемой задачи в точках, отличных от x0, х1, ..., хk. Именно поэтому в формулах (2.2) и (2.3) употреблены различные индексы.
Вектор hk определяет направление (k+1)-го шага метода минимизации, а коэффициент ak – длину этого шага. При этом следует иметь в виду, что при
|| hk || ¹ 1 длина отрезка, соединяющего точки хk, xk+1, конечно, не равна |ak |. Обычно название метода минимизации определяется способом выбора hk, а его различные варианты связываются с разными способами выбора ak. Наряду с термином шаг метода мы будем пользоваться также термином итерация метода.
Среди методов минимизации можно условно выделить конечно-шаговые и бесконечношаговые методы. Конечношаговыми, или конечными, называются методы, гарантирующие отыскание решения задачи за конечное число шагов. Конечношаговые методы удается построить лишь для некоторых специальных типов задач оптимизации, например задач линейного и квадратичного программирования. Для бесконечношаговых методов достижение решения гарантируется лишь в пределе.