Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гл2.doc
Скачиваний:
15
Добавлен:
22.09.2019
Размер:
555.52 Кб
Скачать

2. Метод динамического программирования

Метод динамического программирования был разработан Р. Беллманом в начале 50-х годов [4, 8] для решения довольно широкого круга оптимизационных задач в различных областях применения – технике, экономике и др. Этод метод развивался в процессе решения вариационных задач на цифровых вычислительных машинах. Поэтому в первоначальном варианте он содержал элементы дискретности.

Метод применим к таким системам, для которых справедлив принцип оптимальности. Система удовлетворяет принципу оптимальности, если она обладает марковским свойством: ее поведение на любом конечном отрезке времени t0 ttT полностью определяется управлением на этом отрезке и состоянием системы в начальный для этого отрезка момент времени t0.

Поясним принцип оптимальности геометрически.

Пусть для системы, описываемой дифференциальными уравнениями, найдено оптимальное управление U*(t), переводящее узображающую точку из положения x0=x(t0) в положение xT=x(tT) при заданных ограничениях и доставляющее при этом минимум функционалу:

,

где x – вектор состояния системы; U – вектор управлений; t – время.

Изобразим на рисунке 2.1 оптимальную траекторию, соответствующую этому управлению.

Рис. 2.1. Оптимальная траектория.

Рассмотрим некоторый произвольный момент t1 в интервале . Выберем точку x(t1) в качестве начального состояния для дальнейшего определения оптимального управления на данной оптимальной траектории. Принцип оптимальности утверждает, что при отыскании оптимального управления можно не рассматривать отрезок 1 оптимальной траектории, а принять x(t1) за начальное состояние для решения задачи оптимизации. Тогда экстремаль 2 совпадает с участком 2 экстремали 1 – 2, найденном из условия, что начальное состояние было принято x0, а конечное то же самое xT.

2.1. Геометрическая интерпретация метода динамического программирования

Рассмотрим пример решения статической вариационной задачи.

Рис. 2.2. Пример геометрической интерпретации метода динамического программирования (пример 2.1).

Пример 2.1. Между пунктами А и В (рис. 2.2) необходимо провести железную или шоссейную дорогу так, чтобы стоимость строительства была минимальной.

Путь между пунктами А и В разобъем на три горизонтальных и три вертикальных участка. Условно обозначим стоимость строительства на каждом горизонтальном и вертикальном участке (стоимость строительсва можно подсчитать заранее). Обозначим узловые точки через Ci, Mi, Ni, Li и Ki. Решение задачи начинается с конечного пункта, точки В.

В точку В можно попасть за один шаг или из точки С1 или из С2. Предположим, что каким-либо способом удалось попасть в С1 или С2. Затраты на последний шаг равны 12 либо 10 единицам. Поставим величину затрат в кружки и укажем направление последнего шага стрелками.

Теперь рассмотрим точки Мi. Опять считаем, что каким-то образом эти точки уже достигнуты. Исследуем возможные пути в В.

Из М1 есть один путь через С1. Затраты при этом будут равны 25. Наметим кружок и поставим стрелку. Из М2 имеется уже два пути: через С1 и через С2. Один путь дает затраты 28, а другой – 26. Через С1 в В путь менее рационален, поэтому его из дальнейших рассуждений исключаем. Ставим в М2 кружок с затратами и стрелку оптимального направления. Сразу обратим внимание, что второе направление из точки М2 в точку С1 исключается как неоптимальное. В этом и заключается весь смысл динамического программирования.

Далее анализируем точку М3. Из М3 имеется только одно направление в сторону пункта В через С2. Поэтому ставим в М3 кружок с затратами и стрелку возможного оптимального направления. Перейдем к точкам Ni. Точки N1 и N4 дают по одной возможной траектории. Поэтому эти точки сохраняем, обводим кружками и указываем от них стрелки. Точки N2 и N3 дают по две траектории каждая, из которых выбираем оптимальные, обводим кружками, указываем затраты и стрелки. Из всех возможных путей точек N1 ÷ N4 остаются только четыре (вместо 6). Анализируя, таким же образом оставшиеся точки Li и Ki мы, наконец, попадаем в исходную точку А и тем самым получаем оптимальную траекторию, которая на рис. 2.2 отмечена жирной линией. Затраты оптимального пути равны 59. Еще раз обратим внимание на то, что по мере продвижения от В к А последовательно исключались неоптимальные траектории. Это исключение значительно упрощает нахождение оптимальной траектории. При простом переборе пришлось бы рассчитать все траектории от А к В, которых всего 25. Заметим еще, что на каждом шаге траектория может быть и неоптимальной относительно других шагов, но вся траектория в целом является оптимальной.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]