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