- •1. Задачи оптимизации
- •1.1. Основные понятия
- •1.2. Постановка задачи оптимизации
- •1.2.1 Задача безусловной оптимизации
- •1.2.2. Задача условной оптимизации
- •1.2.3. Классическая задача на условный экстремум
- •1.2.4. Понятия выпуклого множества и выпуклой функции
- •1.2.5. Выпуклая задача оптимизации
- •1.2.6. Задача математического программирования
- •1.2.7. Задачи выпуклого программирования
- •1.2.8. Задачи линейного и квадратичного программирования
- •1.2.9. Задача дискретной оптимизации
- •1.2.10. Задачи оптимального управления
- •2.Начальные сведения о численных методах оптимизации
- •2.1. Понятие о численных методах оптимизации
- •2.2. Сходимость методов оптимизации
- •2.3. Условия остановки (критерии окончания счета)
- •2.4. Направление убывания и методы спуска
- •2.5. Выбор длины шага из условия минимизации функции вдоль заданного направления
2.Начальные сведения о численных методах оптимизации
Иногда удается, опираясь на условия оптимальности или на геометрическую интерпретацию, получить решение задачи оптимизации
f(x) min, x X, (2.1)
в явном виде, но в большинстве случаев задачу (2.1) приходится решать численно, с применением ЭВМ. Так, например, для решения задачи минимизации на Rn дифференцируемой функции f можно воспользоваться каким-либо численным методом решения системы уравнений f'(x) = 0. Однако, как правило, наиболее эффективными оказываются методы, разработанные специально для решения задачи оптимизации, так как они позволяют полнее учесть ее специфику.
В последующих главах будут рассмотрены численные методы решения задач различных типов: одномерных и многомерных, безусловных и условных, дискретных, а также задач оптимального управления.
В данном параграфе приводятся некоторые общие сведения, относящиеся в первую очередь к численным методам безусловной и условной минимизации функции конечного числа непрерывно изменяющихся переменных. Такие методы занимают центральное место в численной оптимизации; они, в частности, используются при решении дискретных оптимизационных задач и задач оптимального управления.
2.1. Понятие о численных методах оптимизации
Любой численный метод (алгоритм) решения задачи оптимизации основан на точном или приближенном вычислении ее характеристик (значений целевой функции, функций, задающих допустимое множество, а также их производных). На основании полученной информации строится приближение к решению задачи – искомой точке минимума х* или, если такая точка не единственна, – к множеству точек минимума. Иногда, если только это и требуется, строится приближение к минимальному значению целевой функции .
Для каждой конкретной задачи вопрос о том, какие характеристики следует выбрать для вычисления, решается в зависимости от свойств минимизируемой функции, ограничений и имеющихся возможностей по хранению и обработке информации. Так, для минимизации недифференцируемой функции нельзя воспользоваться алгоритмом, предусматривающим возможность вычисления в произвольной точке градиента функции. В случае, когда доступен небольшой объем памяти ЭВМ, при решении задачи высокой размерности нельзя воспользоваться алгоритмом, требующим вычисления на каждом шаге, хранения в памяти матрицы вторых производных и т.п.
Алгоритмы, использующие лишь информацию о значениях минимизируемой функции, называются алгоритмами нулевого порядка; алгоритмы, использующие также информацию о значениях первых производных, – алгоритмами первого порядка; алгоритмы, использующие, кроме того, информацию о вторых производных, – алгоритмами второго порядка.
В курсе рассматриваются алгоритмы только нулевого, первого и второго порядка.
Работа алгоритма состоит из двух этапов. На первом этапе вычисляются предусмотренные алгоритмом характеристики задачи. На втором этапе по полученной информации строится приближение к решению. Для задач оптимизации выбор на втором этапе способа построения приближения, как правило, не вызывает затруднений. Например, для методов спуска, в которых на каждом шаге происходит переход в точку с меньшим, чем предыдущее, значением функции, за приближение к точке минимума обычно выбирается точка последнего вычисления. Поэтому для задания алгоритма достаточно указать способ выбора точек вычисления (конечно, при условии, что уже решен вопрос о том, какие именно характеристики решаемой задачи следует вычислять).
Если все точки выбираются одновременно до начала вычислений, то алгоритм минимизации называется пассивным. Необходимость применения пассивных алгоритмов возникает, например, в связи с использованием многопроцессорных ЭВМ, в связи с условиями постановки и проведения физических экспериментов, результатом которых являются значения минимизируемой функции, и т.д.
Однако для решения большинства задач точки вычисления выбираются поочередно, т. е. точка xi+1 выбирается, когда уже выбраны точки предыдущих вычислений х1, ..., хi и в каждой из них произведены предусмотренные алгоритмом вычисления, результаты которых будем обозначать соответственно через у1, ..., уi. Такие алгоритмы называются последовательными. Таким образом, последовательный алгоритм определяется точкой х1 Х и набором отображений вида
.
При этом
. (2.2)
В дальнейшем для записи методов минимизации мы будем пользоваться соотношением вида
xk+1 = xk + khk, k R, k = 0, 1, 2, … (2.3)
При этом конкретный алгоритм определяется заданием точки х0, правилами выбора векторов hk и чисел k на основе полученной в результате вычислений информации, а также условием остановки. Таким образом, величины k, hk в формуле (2.3) точно так же, как xi+1 в формуле (2.2), определяются теми или иными видами функциональной зависимости от точек и результатов всех ранее проведенных вычислений, причем на практике обычно используются наиболее простые виды зависимости. Правила выбора k, hk могут предусматривать и дополнительные вычисления, т.е. вычисления некоторых характеристик решаемой задачи в точках, отличных от x0, х1, ..., хk. Именно поэтому в формулах (2.2) и (2.3) употреблены различные индексы.
Вектор hk определяет направление (k+1)-го шага метода минимизации, а коэффициент k – длину этого шага. При этом следует иметь в виду, что при
|| hk || 1 длина отрезка, соединяющего точки хk, xk+1, конечно, не равна |k |. Обычно название метода минимизации определяется способом выбора hk, а его различные варианты связываются с разными способами выбора k. Наряду с термином шаг метода мы будем пользоваться также термином итерация метода.
Среди методов минимизации можно условно выделить конечно-шаговые и бесконечношаговые методы. Конечношаговыми, или конечными, называются методы, гарантирующие отыскание решения задачи за конечное число шагов. Конечношаговые методы удается построить лишь для некоторых специальных типов задач оптимизации, например задач линейного и квадратичного программирования. Для бесконечношаговых методов достижение решения гарантируется лишь в пределе.