Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие ПП (главы 3 и 4).doc
Скачиваний:
54
Добавлен:
09.04.2015
Размер:
3.05 Mб
Скачать

Метод второго порядка

В качестве численного метода нелинейного программирования второго порядка рассмотрим метод Ньютона для задачи

(3.5.45)

где – выпуклое замкнутое множество, функциядважды непрерывно дифференцируема на. Пусть– некоторое начальное приближение. Если известно-е приближение, то приращение функциив точкеможно представить в виде

где – матрица вторых производных (матрица Гессе) функции, вычисленных в точке. Возьмем квадратичную часть этого приращения

(3.5.46)

и определим вспомогательное приближение из условий

(3.5.47)

Следующее -е приближение будем искать в виде

(3.5.48)

В зависимости от способа выбора величины в (3.5.48) можно получить различные варианты метода (3.5.46) – (3.5.48), называемого методом Ньютона.

Если в (3.5.48) принять , то в этом случае, как следует из (3.5.48),, т.е. условие (3.5.47) сразу определяет следующее-е приближение. Иначе говоря,

(3.5.49)

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

(3.5.50)

Это значит, что на каждой итерации метода (3.5.46) – (3.5.49) нужно решать линейную систему алгебраических уравнений (3.5.50) относительно неизвестной разности . Если матрица этой системы– невырожденная, то из (3.5.50) получим

Метод Ньютона для решения задачи (3.5.45) обычно применяют в тех случаях, когда вычисление производных не представляет особых трудностей и вспомогательная задача (3.5.47) решается достаточно просто. Достоинством метода Ньютона является высокая скорость сходимости.

Глава 4. Динамическое программирование

4.1. Постановка задачи динамического программирования

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

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

(4.1.1)

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