Eu estava lendo sobre programação dinâmica quando me deparei com a seguinte citação
Um algoritmo de programação dinâmica examinará todas as formas possíveis de resolver o problema e escolherá a melhor solução. Portanto, podemos pensar na programação dinâmica como um método inteligente de força bruta que nos permite analisar todas as soluções possíveis para escolher a melhor . Se o escopo do problema for tal que for possível e com rapidez suficiente, passar por todas as soluções possíveis, a programação dinâmica garante encontrar a solução ideal
O exemplo a seguir foi dado
Por exemplo, digamos que você precise ir do ponto A ao ponto B o mais rápido possível, em uma determinada cidade, na hora do rush. Um algoritmo de programação dinâmica analisará todo o relatório de tráfego, analisando todas as combinações possíveis de estradas que você pode seguir e só então lhe dirá qual o caminho mais rápido. Claro, você pode ter que esperar um pouco até o algoritmo terminar e só então poderá começar a dirigir. O caminho que você seguirá será o mais rápido (assumindo que nada mudou no ambiente externo)
A Brute Force está tentando todas as soluções possíveis antes de decidir a melhor solução.
Como a Programação Dinâmica difere da Brute Force se ela também passa por todas as soluções possíveis antes de escolher a melhor , a única diferença que vejo é que a Programação Dinâmica leva em consideração os fatores adicionais (condições de tráfego, neste caso).
Estou correto em dizer que a programação dinâmica é um subconjunto do método Brute Force?
intelligent, brute force
, mas depois esquece-se de descrever a parte "inteligente"