ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Метод динамического программирования позволяет находить оптимальное решение в ситуациях, когда имеется некоторое количество различных вариантов поведения, приносящих различные результаты, среди которых необходимо выбрать наилучший.