Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1376.pdf
Скачиваний:
15
Добавлен:
15.11.2022
Размер:
19.28 Mб
Скачать

Глава 9. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

Динамическое программирование (ДП) —один из весьма эффективных методов решения задач математического программирования, разработан­ ный американским математиком Р. Веллманом в конце 1950-х годов. Он изначально ориентирован на оптимизацию так называемых многошаговых (многостадийных, многоэтапных) процессов и использование ЭВМ.

Концепция метода вытекает из следующего свойства оптимального решения. Пусть оптимальный путь из точки А в точку Е проходит через точки B ,C n D (рис. 9.1). Тогда любая часть этого пути является оптималь­ ной. Действительно, если бы, например, оптимальный путь из С в £ не проходил через Д то и полный путь А, В, С, D, Е не был бы оптимальным (его можно было бы улучшить за счет изменения перехода из С в Е), что противоречит исходной посылке.

А В

С

D

Б

оо ■■■■ о------------ о--------------- о

Рис. 9.1

Фундаментальной основой метода динамического программирования является сформулированный Веллманом принцип оптимальности, соглас­ но которому оптимальное управление определяется конечной целью управления и состоянием системы в рассматриваемый момент, независимо от того, каким образом она пришла в это состояние. Иначе говоря, при фиксированном состоянии системы последующее оптимальное решение не зависит от ее предыстории. Ввиду важности принципа приведем его пол­ ную формулировку [7]:

Оптимальное поведение обладает тем свойством, что каковы бы ни были первоначальное состояние и решение в начальный момент, после­ дующие решения должны составлять оптимальное поведение относи­ тельно состояния, получающегося в результате первого решения.

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

/ = (<оператор> <fufi, ...,/m>).

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

Очень важным понятием в ДП является состояние системы. Оно ис­ пользуется в формулировке принципа оптимальности, и на нем базируют­ ся вычислительные процедуры ДП. При первом знакомстве с методом ДП определение состояния вызывает, пожалуй, наибольшие трудности, но по мере решения задач они быстро уменьшаются.

При разбиении задачи на шаги состояние служит связующим звеном между смежными шагами. Состояние зависит от предшествующих реше­ ний, но зная его, можно принимать решения на последующих шагах без учета решений, предшествовавших данному состоянию. Обратим внима­ ние на важный момент: чтобы принять очередное решение, достаточно знать состояние, а не решения, приведшие к этому состоянию. Так, напри­ мер, при корректировке траектории некоторого летательного аппарата (в однородной среде) достаточно знать его координаты на момент приня­ тия решения, а не сами решения, приведшие его в данную точку простран­ ства. Значит, координаты и определяют состояние системы. Если же выбор решения зависит также от количества топлива на борту аппарата, то состояние системы будет определяться как координатами, так и весом ос­ тавшегося топлива. Итак, состояние описывается теми переменными сис­ темы, которые зависят от решения на предшествующем шаге и знание которых достаточно для принятия решения на очередном шаге. Чтобы от­ личать переменные состояния от искомых переменных (управлений), в дальнейшем будем называть первые параметрами состояния.

9.1. Работа метода ДП

Для первоначального представления метода ДП не будем прибегать к математическим выкладкам и рассмотрим его сущность на описательном уровне. Представим себе лабиринт без петель, в котором между любыми входами и выходами встречается одинаковое число развилок (узлов), на­ пример 3. Во всех узлах пересекается более одной дороги. Каждому пере­

ходу в лабиринте соответствует определенное время. Необходимо найти путь от одного из входов к любому выходу, на который требуется мини­ мальное время.

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

входы

узлы

узлы

узлы

выходы

Рис. 9.2

В данном случае мы говорим, что задача представлена как 4-шаговая. Построение оптимального пути можно начинать с 1-го или 4-го шага, но предпочтительнее с 4-го. Такой порядок решения иногда называют обрат­ ной прогонкой в отличие от прямой, при которой начинают с 1-го шага. Следует сразу заметить, что для некоторых задач возможен только один порядок прогонки, обусловливаемый спецификой задачи.

Итак, начнем с построения пути на 4-м шаге. Но мы тут же сталкива­ емся с проблемой: как принимать решение, если не известен узел, в кото­ ром мы окажемся после оптимального прохождения первых трех этапов? Чтобы обойти эту проблему, будем искать оптимальное решение для каж­ дого из узлов, в котором можем оказаться перед 4-м шагом (это узлы 8, 9 и 10). Фиксируем узел 8 и из четырех значений времени перехода из него к выходам выбираем наименьшее. Соответствующий переход может при­ надлежать оптимальному пути. Узлу 8 приписываем этот переход и най­ денное минимальное время, которое обозначим как fg. Аналогично посту­ паем, фиксируя узел 9, а затем 10. В результате получим tg и /ю соответст-. венно и переходы, на которых достигаются эти минимальные значения времени. Тем самым завершается первый этап построения оптимального пути. Результат представлен на рис. 9.3, где жирными линиями выделены оптимальные переходы.

у»лы

выходы

Теперь полагаем, что осталось совершить пе­

реходы 3,4. Но как и ранее, мы не знаем узел, с ко­

 

 

торого начнем двигаться. Это снова вынуждает нас

 

 

искать решение не для одного, а для всех узлов,

 

 

в которые можем прийти после первых двух шагов.

 

 

Фиксируем узел 4 и определяем минимальный путь

 

Рис. 9.3

из него к выходам. При полном переборе пришлось

 

 

бы сопоставлять 12 вариантов (столько путей свя­

зывает узел 4 с выходами). Однако нам достаточно сравнить только три: 1) время на переходе 4-8 плюс Г8; 2) время на переходе 4-9 плюс t9; 3) время на переходе 4-10 плюс tw. Минимальное значение приписываем узлу 4 (и) и выделяем жирной линией соответствующий переход на третьем шаге. Здесь уже проявилась принципиальная особенность ДП: оптимальный пе­ реход на шаге 3 определялся не как самый короткий среди переходов этого шага, а как такой, который обеспечивает минимум времени от данного уз­ ла к выходу. Это значит, что, выбирая решение на 3-м шаге, мы учитывали его последствия. Точно так же находим решения для узлов 5, 6 и 7. Воз­ можные результаты после второго этапа решения приведены на рис. 9.4.

ysjki уэ/ы выходы

Рис. 9.4

Опираясь на эти результаты, можно переходить к третьему этапу по­ строения оптимального пути, охватывающему 2, 3 и 4-й шаги. Рассужде­ ния аналогичны вышеприведенным. Например, оптимальный переход на 2-м шаге из узла 1 определяется по минимуму из четырех значений:

(время перехода 1- 4 ) + /4

(время перехода 1- 5) + 15

min (время перехода 1 - 6 )+t6 = 'i- (время перехода 1 - 7) + /7

Переход, которому соответствует t\, и будет оптимальным для узла 1. И снова отметим: выбор перехода на одном 2-м шаге проводился с учетом влияния на последующие шаги вплоть до выхода! Нетрудно подсчитать, что при полном переборе путей из узла 1 к выходам пришлось бы сравнить значений, каждое из которых вычисляется как сумма трех чисел. После

завершения третьего этапа расчетов будут определены оптимальные пути из узлов 1-3 (рис. 9.5).

Последний, четвертый, этап охватывает все шаги. Определение опти­ мального перехода на 1-м шаге для каждого из входов требует сравнения всего трех вариантов против 144 при полном переборе.

узлы узлы узлы выходы

Рис. 9.5

Найдя решение для 1-го шага, мы тем самым завершаем построение оптимальных путей (рис. 9.6). Непрерывная жирная линия, соединяющая заданный вход с выходом, и есть оптимальный путь, а соответствующее ему минимальное время равно /вх,. Двигаясь по нему от входа к выходу, то есть в прямом направлении (или, иначе говоря, в направлении, обратном порядку расчета), последовательно находим переходы, составляющие оп­ тимальный путь.

входы

узлы

узлы

и^ЛЫ

выходы

i

I

1.................

2 з т а п ...........................

|

1.......................

3 э т а п ............................................................

 

j

j .........................

4 э т а п ...........................................................................................

 

 

|

Рис. 9.6

Рассмотренный пример иллюстрирует основные черты метода ДП:

1.Вместо одной задачи решается четыре однотипные задачи меньшей размерности. Если каждому шагу поставить в соответствие одну перемен­ ную, а переходу - ее значение, то исходная задача - это задача оптимиза­ ции с четырьмя переменными. В рассмотренной процедуре расчета она за­ меняется последовательностью четырех задач с одной переменной, что существенно облегчает решение.

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

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