Определение уравнения Беллмана - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь понять уравнение Беллмана и сталкиваюсь с некоторыми запутанными моментами. 1) В разных источниках я встречал разные определения уравнения Беллмана. Иногда это определяется как функция значения-состояния

v (s) = R + y * V (s ')

Иногда она определяется как функция состояния-действия

q (s, a) = r + max (q (s ', a'))

Верны ли оба эти определения? Как уравнение Беллмана было введено в оригинальной статье?

1 Ответ

0 голосов
/ 22 апреля 2020

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

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

Обозначим решение задачи для данного состояния S значением V(S), S - это состояние или подзадача. Давайте обозначим стоимость, которую понесем, выбрав действие a(i) в состоянии S, равное R. R будет функцией f(S, a(i)), где a - набор всех возможных действий, которые можно выполнить в состоянии S.

V(S) = max{ f(S, a(i)) + y * V(S') }, где max берется путем итерации все возможно i. y является фиксированной константой, которая облагает подзадачей переход к большей проблеме, для большинства проблем y = 1, поэтому вы можете пока игнорировать ее.

Таким образом, в принципе, для любой данной подзадачи S, V(S) даст нам наиболее оптимальное решение, выбрав все комбинации действий a(i), которые можно выполнить, и следующее состояние, которое будет создано с помощью это действие. Если вы мыслите рекурсивно и привыкли к таким вещам, то легко понять, почему приведенное выше уравнение является правильным.

Я бы предложил решить задачи динамического программирования c и посмотреть на некоторые стандартные проблемы и способы их решения, чтобы получить идея, как эти проблемы разбиваются на более мелкие похожие проблемы и решаются рекурсивно. После этого приведенное выше уравнение будет иметь больше смысла. Кроме того, вы поймете, что два уравнения, которые вы написали выше, - это почти одно и то же, просто они написаны немного по-другому.

Здесь - это список наиболее известных проблем DP и их решения.

...