Уравнение Беллмана , названное в честь Ричарда Э. Беллмана , является необходимым условием оптимальности, связанным с математическим методом оптимизации, известным как динамическое программирование . [1] Оно записывает «ценность» задачи принятия решения в определенный момент времени в терминах выигрыша от некоторых начальных выборов и «ценности» оставшейся задачи принятия решения, которая является результатом этих начальных выборов. [2] Это разбивает динамическую задачу оптимизации на последовательность более простых подзадач, как предписывает «принцип оптимальности» Беллмана. [3] Уравнение применяется к алгебраическим структурам с полным порядком; для алгебраических структур с частичным порядком можно использовать общее уравнение Беллмана. [4]
Уравнение Беллмана было впервые применено к инженерной теории управления и другим разделам прикладной математики, а впоследствии стало важным инструментом в экономической теории ; хотя основные концепции динамического программирования были прообразами в «Теории игр и экономического поведения » Джона фон Неймана и Оскара Моргенштерна и последовательном анализе Абрахама Вальда . [ требуется ссылка ] Термин «уравнение Беллмана» обычно относится к уравнению динамического программирования (DPE), связанному с задачами оптимизации в дискретном времени . [5] В задачах оптимизации в непрерывном времени аналогичным уравнением является уравнение в частных производных , которое называется уравнением Гамильтона–Якоби–Беллмана . [6] [7]
В дискретном времени любая многоэтапная задача оптимизации может быть решена путем анализа соответствующего уравнения Беллмана. Соответствующее уравнение Беллмана может быть найдено путем введения новых переменных состояния (расширение состояния). [8] Однако полученная многоэтапная задача оптимизации с расширенным состоянием имеет более многомерное пространство состояний, чем исходная многоэтапная задача оптимизации — проблема, которая может потенциально сделать расширенную задачу неразрешимой из-за « проклятия размерности ». В качестве альтернативы было показано, что если функция стоимости многоэтапной задачи оптимизации удовлетворяет «обратно разделимой» структуре, то соответствующее уравнение Беллмана может быть найдено без расширения состояния. [9]
Чтобы понять уравнение Беллмана, необходимо понять несколько базовых концепций. Во-первых, любая задача оптимизации имеет некоторую цель: минимизация времени в пути, минимизация затрат, максимизация прибыли, максимизация полезности и т. д. Математическая функция, описывающая эту цель, называется целевой функцией . [ необходима цитата ]
Динамическое программирование разбивает многопериодную задачу планирования на более простые шаги в разные моменты времени. Поэтому оно требует отслеживания того, как ситуация принятия решения развивается с течением времени. Информация о текущей ситуации, необходимая для принятия правильного решения, называется «состоянием». [10] [11] Например, чтобы решить, сколько потреблять и тратить в каждый момент времени, людям нужно знать (помимо прочего) свое начальное богатство. Поэтому богатство будет одной из переменных их состояния , но, вероятно, будут и другие.
Переменные, выбранные в любой момент времени, часто называются контрольными переменными . Например, учитывая их текущее богатство, люди могут решить, сколько потреблять сейчас. Выбор контрольных переменных сейчас может быть эквивалентен выбору следующего состояния; в более общем смысле, следующее состояние зависит от других факторов в дополнение к текущему контролю. Например, в простейшем случае сегодняшнее богатство (состояние) и потребление (контроль) могут точно определить завтрашнее богатство (новое состояние), хотя обычно на завтрашнее богатство будут влиять и другие факторы. [ необходима цитата ]
Подход динамического программирования описывает оптимальный план путем нахождения правила, которое сообщает, какими должны быть элементы управления, учитывая любое возможное значение состояния. Например, если потребление ( c ) зависит только от богатства ( W ), мы будем искать правило , которое дает потребление как функцию богатства. Такое правило, определяющее элементы управления как функцию состояний, называется функцией политики . [12] [10]
Наконец, по определению, оптимальное правило принятия решений — это то, которое достигает наилучшего возможного значения цели. Например, если кто-то выбирает потребление, учитывая богатство, чтобы максимизировать счастье (предполагая, что счастье H может быть представлено математической функцией, такой как функция полезности , и является чем-то, определяемым богатством), то каждый уровень богатства будет связан с некоторым максимально возможным уровнем счастья, . Наилучшее возможное значение цели, записанное как функция состояния, называется функцией ценности . [ необходима цитата ]
Беллман показал, что динамическая задача оптимизации в дискретном времени может быть сформулирована в рекурсивной , пошаговой форме, известной как обратная индукция, путем записи соотношения между функцией значения в одном периоде и функцией значения в следующем периоде. Соотношение между этими двумя функциями значения называется «уравнением Беллмана». При таком подходе оптимальная политика в последнем периоде времени указывается заранее как функция значения переменной состояния в это время, и результирующее оптимальное значение целевой функции, таким образом, выражается в терминах этого значения переменной состояния. Затем оптимизация предпоследнего периода включает максимизацию суммы целевой функции, специфичной для этого периода, и оптимального значения будущей целевой функции, давая оптимальную политику этого периода в зависимости от значения переменной состояния на момент принятия решения в предпоследнем периоде. [ требуется пояснение ] Эта логика продолжается рекурсивно назад во времени, пока не будет выведено правило принятия решения для первого периода как функция начального значения переменной состояния путем оптимизации суммы целевой функции, специфичной для первого периода, и значения функции значения второго периода, которая дает значение для всех будущих периодов. Таким образом, решение для каждого периода принимается путем явного признания того, что все будущие решения будут приняты оптимальным образом. [ требуется цитата ]
Пусть будет состоянием в момент времени . Для решения, которое начинается в момент времени 0, мы принимаем в качестве заданного начальное состояние . В любой момент времени набор возможных действий зависит от текущего состояния; мы выражаем это как , где конкретное действие представляет конкретные значения для одной или нескольких управляющих переменных, а — набор действий, доступных для выполнения в состоянии . Также предполагается, что состояние изменяется с на новое состояние , когда выполняется действие , и что текущий выигрыш от выполнения действия в состоянии равен . Наконец, мы предполагаем нетерпение, представленное коэффициентом дисконтирования .
При этих предположениях задача принятия решений с бесконечным горизонтом принимает следующий вид:
с учетом ограничений
Обратите внимание, что мы определили обозначение для обозначения оптимального значения, которое может быть получено путем максимизации этой целевой функции с учетом предполагаемых ограничений. Эта функция является функцией значения . Это функция начальной переменной состояния , поскольку наилучшее достижимое значение зависит от начальной ситуации.
Метод динамического программирования разбивает эту проблему принятия решения на более мелкие подзадачи. Принцип оптимальности Беллмана описывает, как это сделать:
Принцип оптимальности: Оптимальная политика обладает тем свойством, что какими бы ни были начальное состояние и начальное решение, остальные решения должны составлять оптимальную политику относительно состояния, возникшего в результате первого решения. (См. Беллман, 1957, гл. III.3.) [10] [11] [13]
В информатике проблема, которая может быть разбита на части таким образом, называется оптимальной подструктурой . В контексте динамической теории игр этот принцип аналогичен концепции идеального равновесия подигры , хотя то, что составляет оптимальную политику в этом случае, обусловлено выбором оппонентами лица, принимающего решения, аналогичной оптимальной политики с их точек зрения.
Как предполагает принцип оптимальности , мы рассмотрим первое решение отдельно, отложив все будущие решения (мы начнем заново с момента времени 1 с новым состоянием ). Собрав будущие решения в скобках справа, вышеприведенная задача принятия решений с бесконечным горизонтом эквивалентна: [ необходимо разъяснение ]
с учетом ограничений
Здесь мы выбираем , зная, что наш выбор приведет к тому, что состояние времени 1 станет . Это новое состояние затем повлияет на проблему принятия решения с момента времени 1. Вся будущая проблема принятия решения отображается внутри квадратных скобок справа. [ требуется пояснение ] [ требуется дальнейшее пояснение ]
До сих пор кажется, что мы только усложнили проблему, отделив сегодняшнее решение от будущих решений. Но мы можем упростить, заметив, что то, что находится внутри квадратных скобок справа, является значением проблемы решения за время 1, начиная с состояния .
Поэтому задачу можно переписать в виде рекурсивного определения функции ценности:
Это уравнение Беллмана. Его можно упростить еще больше, если убрать индексы времени и подставить значение следующего состояния:
Уравнение Беллмана классифицируется как функциональное уравнение , поскольку его решение означает нахождение неизвестной функции , которая является функцией значения . Напомним, что функция значения описывает наилучшее возможное значение цели как функцию состояния . Вычисляя функцию значения, мы также найдем функцию , которая описывает оптимальное действие как функцию состояния; это называется функцией политики .
В детерминированной обстановке для решения вышеуказанной задачи оптимального управления могут использоваться и другие методы, помимо динамического программирования . Однако уравнение Беллмана часто является наиболее удобным методом решения стохастических задач оптимального управления.
В качестве конкретного примера из экономики рассмотрим бесконечно живущего потребителя с начальным богатством в период . У них есть мгновенная функция полезности , где обозначает потребление и дисконтирует полезность следующего периода по ставке . Предположим, что то, что не потребляется в период, переносится на следующий период с процентной ставкой . Тогда проблема максимизации полезности потребителя заключается в выборе плана потребления , который решает
при условии
и
Первое ограничение — это накопление капитала/закон движения, заданный проблемой, тогда как второе ограничение — это условие трансверсальности , при котором потребитель не несет долга в конце своей жизни. Уравнение Беллмана имеет вид
В качестве альтернативы можно решить задачу последовательности напрямую, используя, например, уравнения Гамильтона .
Теперь, если процентная ставка меняется от периода к периоду, потребитель сталкивается со стохастической задачей оптимизации. Пусть процентная ставка r следует марковскому процессу с функцией перехода вероятности , где обозначает вероятностную меру , управляющую распределением процентной ставки в следующем периоде, если текущая процентная ставка равна . В этой модели потребитель принимает решение о потреблении в текущем периоде после того, как объявляется процентная ставка текущего периода.
Вместо того чтобы просто выбирать одну последовательность , потребитель теперь должен выбрать последовательность для каждой возможной реализации a таким образом, чтобы его ожидаемая полезность в течение жизни была максимальной:
Ожидание берется относительно соответствующей меры вероятности, заданной Q на последовательностях r ' s. Поскольку r управляется марковским процессом, динамическое программирование значительно упрощает задачу. Тогда уравнение Беллмана выглядит просто:
При некотором разумном предположении результирующая оптимальная функция политики g ( a , r ) измерима .
Для общей задачи стохастической последовательной оптимизации с марковскими шоками, где агент сталкивается со своим решением постфактум , уравнение Беллмана принимает очень похожую форму
Первое известное применение уравнения Беллмана в экономике принадлежит Мартину Бекману и Ричарду Муту . [19] Мартин Бекманн также много писал о теории потребления, используя уравнение Беллмана в 1959 году. Его работа оказала влияние , среди прочего, на Эдмунда С. Фелпса .
Знаменитое экономическое применение уравнения Беллмана — основополагающая статья Роберта К. Мертона 1973 года о межвременной модели ценообразования капитальных активов . [20] (См. также Проблема портфеля Мертона ). Решение теоретической модели Мертона, в которой инвесторы выбирают между доходом сегодня и будущим доходом или приростом капитала, является формой уравнения Беллмана. Поскольку экономические приложения динамического программирования обычно приводят к уравнению Беллмана, которое является разностным уравнением , экономисты называют динамическое программирование «рекурсивным методом», и в настоящее время в экономике признается подраздел рекурсивной экономики .
Нэнси Стоки , Роберт Э. Лукас и Эдвард Прескотт подробно описывают стохастическое и нестохастическое динамическое программирование и разрабатывают теоремы о существовании решений проблем, удовлетворяющих определенным условиям. Они также описывают множество примеров моделирования теоретических проблем в экономике с использованием рекурсивных методов. [21] Эта книга привела к использованию динамического программирования для решения широкого спектра теоретических проблем в экономике, включая оптимальный экономический рост , добычу ресурсов , проблемы принципала-агента , государственные финансы , бизнес- инвестиции , ценообразование активов , предложение факторов производства и промышленную организацию . Ларс Льюнгквист и Томас Сарджент применяют динамическое программирование для изучения различных теоретических вопросов в денежно-кредитной политике , фискальной политике , налогообложении , экономическом росте , теории поиска и экономике труда . [22] Авинаш Диксит и Роберт Пиндайк показали ценность метода для размышлений о бюджетировании капиталовложений . [23] Андерсон адаптировал эту технику к оценке бизнеса, включая частные предприятия. [24]
Использование динамического программирования для решения конкретных задач осложняется информационными трудностями, такими как выбор ненаблюдаемой ставки дисконтирования. Существуют также вычислительные проблемы, главная из которых — проклятие размерности, возникающее из-за огромного количества возможных действий и потенциальных переменных состояния, которые необходимо учитывать, прежде чем можно будет выбрать оптимальную стратегию. Для подробного обсуждения вычислительных проблем см. Miranda and Fackler, [25] и Meyn 2007. [26]
В марковских процессах принятия решений уравнение Беллмана представляет собой рекурсию для ожидаемых вознаграждений. Например, ожидаемое вознаграждение за нахождение в определенном состоянии s и следование некоторой фиксированной политике имеет уравнение Беллмана:
Это уравнение описывает ожидаемое вознаграждение за выполнение действия, предписанного некоторой политикой .
Уравнение оптимальной политики называется уравнением оптимальности Беллмана :
где — оптимальная политика, а относится к функции ценности оптимальной политики. Уравнение выше описывает вознаграждение за выполнение действия, дающего наивысшую ожидаемую отдачу.