На этом шаге мы рассмотрим задачу инвестирования.
Предположим, что в начале каждого из следующих n лет необходимо сделать инвестиции P1, P2,..., Рn. Вы имеете возможность вложить капитал в два банка: первый банк выплачивает годовой сложный процент r1, а второй - r2. Для поощрения депозитов оба банка выплачивают новым инвесторам премии в виде процента от вложенной суммы. Премиальные меняются от года к году, и для i-го года равны qi1 и qi2 в первом и втором банках соответственно. Они выплачиваются в конце года, на протяжении которого сделан вклад, и могут быть инвестированы в один из двух банков на следующий год. Это значит, что лишь указанные проценты и новые деньги могут быть инвестированы в один из двух банков. Размещенный в банке вклад должен находиться там до конца рассматриваемого периода. Необходимо разработать стратегию инвестиций на следующие n лет.
Элементы модели динамического программирования таковы.
где i = 2, 3, ..., n. Сумма денег xi которые могут быть инвестированы, включает лишь новые деньги и премиальные проценты за инвестиции, сделанные на протяжении (i - 1)-го года.
Пусть fi(xi) — оптимальная сумма инвестиций для интервала от (i-го до n-го года при условии, что в начале i-го года имеется денежная сумма xi. Далее обозначим через si накопленную сумму к концу n-го года при условии, что Ii и (xi - Ii) - объемы инвестиций на протяжении i-го года в первый и второй банк соответственно. Обозначая αi = (1 + ri), i = 1,2, мы можем сформулировать задачу в следующем виде.
Поскольку премиальные за n-й год являются частью накопленной денежной суммы от инвестиций, в выражения для sn добавлены qn1 и qn2.
Итак, в данном случае рекуррентное уравнение для обратной прогонки в алгоритме динамического программирования имеет вид
где xi+1 выражается через xi в соответствии с приведенной выше формулой, а fn+1(xn+1) ≡ 0.
На следующем шаге рассмотрим применение задачи инвестирования.