Данный исследовательский проект посвящен изучению и практическому применению методов динамического программирования (ДП) для решения различных задач оптимизации. Динамическое программирование представляет собой мощный подход к решению сложных задач путем разбиения их на более простые подзадачи, решения которых затем комбинируются для получения оптимального решения исходной задачи. В рамках проекта будет рассмотрена теоретическая база ДП, включая основные принципы, типы задач, решаемых с его помощью, и различные алгоритмические техники, такие как метод запоминания (memoization) и метод табличного заполнения (tabulation). Особое внимание будет уделено анализу временной и пространственной сложности различных алгоритмов ДП, а также сравнению их эффективности с другими подходами к решению оптимизационных задач, такими как жадные алгоритмы и методы грубой силы. Практическая часть проекта будет включать разработку и имплементацию алгоритмов ДП для решения конкретных задач, таких как задача о рюкзаке, задача о кратчайшем пути и задача о наибольшей общей подпоследовательности. Проект направлен на углубление понимания студентами и учащимися принципов динамического программирования и развитие навыков практического применения этих методов для решения оптимизационных задач в различных областях, включая информатику, экономику и управление.