Я читал о динамическом программировании, когда наткнулся на следующую цитату
Алгоритм динамического программирования рассмотрит все возможные пути решения проблемы и выберет лучшее решение. Таким образом, мы можем приблизительно представить динамическое программирование как интеллектуальный метод грубой силы, который позволяет нам пройти через все возможные решения, чтобы выбрать лучшее . Если масштаб проблемы таков, что прохождение всех возможных решений возможно и достаточно быстро, динамическое программирование гарантирует поиск оптимального решения.
Следующий пример был приведен
Например, предположим, что вам нужно как можно быстрее добраться из пункта А в пункт Б в данном городе в час пик. Алгоритм динамического программирования просматривает весь отчет о дорожном движении, просматривая все возможные комбинации дорог, которые вы можете выбрать, и только потом сообщит вам, какой путь является самым быстрым. Конечно, вам, возможно, придется подождать некоторое время, пока алгоритм не завершится, и только тогда вы сможете начать движение. Путь, который вы выберете, будет самым быстрым (при условии, что во внешней среде ничего не изменилось)
Brute Force пробует все возможные решения, прежде чем выбрать лучшее решение.
Чем динамическое программирование отличается от Brute Force, если оно также проходит через все возможные решения, прежде чем выбрать лучшее , единственное различие, которое я вижу, состоит в том, что динамическое программирование учитывает дополнительные факторы (в данном случае условия трафика).
Правильно ли я сказать, что динамическое программирование является подмножеством метода грубой силы ??
intelligent, brute force
, но потом забывает описать «интеллектуальную» часть