Смекни!
smekni.com

Математические методы исследования операций в экономике (стр. 30 из 37)

и т. д. или, в общем виде,

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

Выигрыш, который дает применение рассмотренного алго­ритма, может также быть оценен с помощью следующего про­стого примера. Сравним приблизительно по числу операций (состоящих, в основном, из вычислений целевой функции) опи­санный метод с прямым перебором допустимых планов задачи (5.3)-(5.4) при а1=a2 = ...аn=1.

Количество допустимых планов такой задачи совпадает с ко­личеством целочисленных решений уравнения

т. е. равно числу сочетаний с повторениями из n элементов по b. Следовательно, при простом переборе число возможных вари­антов составит

В случае применения метода динамического программирова­ния для вычисления таблицы значений функции Λk(ξ) при фик­сированном ξ необходимо выполнить (ξ+1) операций. Поэто­му для заполнения одной таблицы необходимо проделать

операций, из чего получаем, что для вычисления всех функции

потребуется

операций, что при больших n и b существенно меньше, чем в первом случае. Например, если п = 6 и b = 30, то непосредствен­ный перебор потребует выполнения 324 632 операций, а метод динамического программирования — только 2511.

5.1.3. Принцип оптимальности Беллмана. Еще раз под­черкнем, что смысл подхода, реализуемого в динамическом программировании, заключен в замене решения исходной мно­гомерной задачи последовательностью задач меньшей раз­мерности.

Перечислим основные требования к задачам, выполнение ко­торых позволяет применить данный подход:

- объектом исследования должна служить управляемая сис­тема (объект) с заданными допустимыми состояниями и допустимыми управлениями;

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

- задача не должна зависеть от количества шагов и быть опре­деленной на каждом из них;

- состояние системы на каждом шаге должно описываться оди­наковым (по составу) набором параметров;

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

Рассмотрим вопросы применения модели динамического про­граммирования в обобщенном виде. Пусть стоит задача управ­ления некоторым абстрактным объектом, который может пре­бывать в различных состояниях. Текущее состояние объекта отождествляется с некоторым набором параметров, обознача­емым в дальнейшем ξ и именуемый вектором состояния. Пред­полагается, что задано множество Ξ всех возможных состоя­ний. Для объекта определено также множество допустимых управлений (управляющих воздействий) X, которое, не умаляя общности, можно считать числовым множеством. Управляю­щие воздействия могут осуществляться в дискретные моменты времениk(k∊1:n), причем управленческое решение заключа­ется в выборе одного из управлений xkХ. Планом задачи или стратегией управления называется вектор х=(х1, х2, .., xn-1), компонентами которого служат управления, выбранные на каждом шаге процесса. Ввиду предполагаемого отсутствия последействия между каждыми двумя последователь­ными состояниями объекта ξk и ξk+1 существует известная функциональная зависимость, включающая также выбранное управление:ξk+1 = φk(xk , ξk),k∊1:п-1. Тем самым задание на­чального состояния объекта ξ1∊Ξ и выбор плана х однозначно определяют траекторию поведения объекта, как это показа­но на рис. 5.1.

Эффективность управления на каждом шаге k зависит от текущего состояния ξk , выбранного управления xk и количе­ственно оценивается с помощью функций fk(хk, ξk), являющих­ся слагаемыми аддитивной целевой функции, характеризую­щей общую эффективность управления объектом. (Отметим, что в определение функции fk(хk, ξk) включается область до­пустимых значений хk , и эта область, как правило, зависит от текущего состояния ξk .) Оптимальное управление, при задан­ном начальном состоянии ξ1 , сводится к выбору такого опти­мального плана х*, при котором достигается максимум суммы значений fk на соответствующей траектории.

Основной принцип динамического программирования заклю­чается в том, что на каждом шаге следует стремиться не к изолированной оптимизации функции fk(хk, ξk), а выбирать

оптимальное управление хk* в предположении об оптимально­сти всех последующих шагов. Формально указанный принцип реализуется путем отыскания на каждом шагеk условных оптимальных управлений

k(ξ), ξ∊Ξ, обеспечивающих наи­большую суммарную эффективность начиная с этого шага, в предположении, что текущим является состояние ξ.

Обозначим Λk(ξ) максимальное значение суммы функций fk на протяжении шагов от k до п (получаемое при оптимальном управлении на данном отрезке процесса), при условии, что объект в начале шага k находится в состоянии ξ . Тогда функции Λk(ξ) должны удовлетворять рекуррентному соотношению:

где ξk+1 = φk(xk, ξ)

Соотношение (5.14) называют основным рекуррентным со­отношением динамического программирования. Оно реализу­ет базовый принцип динамического программирования, извест­ный также как принцип оптимальности Беллмана:

- Оптимальная стратегия управления должна удовлетворять следующему условию: каково бы ни было

начальное состо­яние ξk на k-м шаге и выбранное на этом шаге управле­ние хk,, последующие управления (управленческие реше­ния) должны быть оптимальными по отношению к состояниюξk+1 = φk(xk, ξk), получающемуся в результа­те решения, принятого на шаге k.

Основное соотношение (5.14) позволяет найти функции Λk(ξ) только в сочетании с начальным условием, каковым в нашем случае является равенство

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

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

В то же время, говоря о динамическом программировании как о методе решения оптимизационных задач, необходимо отметить и его слабые стороны. Так, в предложенной схеме решения зада­чи (5.3)-(5.4) существенным образом используется тот факт, что система ограничений содержит только одно неравенство, и, как следствие, ее состояние задается одним числом — нераспре­деленным ресурсом ξ . При наличии нескольких ограничений со­стояние управляемого объекта на каждом шаге характеризуется уже набором параметров ξ1, ξ2,..., ξm, и табулировать значения функций Λk1, ξ2,..., ξm) необходимо для многократно больше­го количества точек. Последнее обстоятельство делает приме­нение метода динамического программирования явно нерацио­нальным или даже просто невозможным. Данную проблему его основоположник Р. Беллман эффектно назвал «проклятием многомерности». В настоящее время разработаны определенные пути преодоления указанных трудностей. Подробную информа­цию о них можно найти в специальной литературе [4, 5].