Слово «программирование» в словосочетании «динамическое программирование» в действительности к "традиционному" (написанию кода) почти никакого отношения не имеет и имеет смысл как в словосочетании « », которое является синонимом слова «оптимизация». Поэтому слово «программа» в данном контексте скорее означает оптимальную последовательность действий для получения решения задачи. К примеру, определенное расписание событий на выставке иногда называют программой. Программа в данном случае понимается как допустимая последовательность событий.
Словосочетание «динамическое программирование» впервые было использовано в -х годах для описания процесса нахождения решения задачи, где ответ на одну задачу может быть получен только после решения задачи, «предшествующей» ей. В г. он уточнил это определение до современного. Первоначально эта область была основана, как и инжиниринг, которая была признана . Вклад Беллмана в динамическое программирование был увековечен в названии , центрального результата теории динамического программирования, который переформулирует задачу в форме.
Метод динамического программирования сверху ЂЂЂ это простое запоминание результатов решения тех подзадач, которые могут повторно встретиться в дальнейшем. Динамическое программирование снизу включает в себя переформулирование сложной задачи в виде последовательности более простых подзадач.
Ключевая идея в динамическом программировании достаточно проста. Как правило, чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение. Часто многие из этих подзадач одинаковы. Подход динамического программирования состоит в том, чтобы решить каждую подзадачу только один раз, сократив тем самым количество вычислений. Это особенно полезно в случаях, когда число повторяющихся подзадач экспоненциально велико.
Динамическое программирование в и ЂЂЂ способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с ( ), выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить.
Материал из Википедии ЂЂЂ свободной энциклопедии
Динамическое программирование
Динамическое программирование ЂЂЂ Википедия
Комментариев нет:
Отправить комментарий