Je lisais sur la programmation dynamique lorsque je suis tombé sur la citation suivante
Un algorithme de programmation dynamique examinera toutes les façons possibles de résoudre le problème et choisira la meilleure solution. Par conséquent, nous pouvons grosso modo penser la programmation dynamique comme une méthode intelligente, par force brute, qui nous permet de passer par toutes les solutions possibles pour choisir la meilleure . Si l'ampleur du problème est telle que passer par toutes les solutions possibles est possible et assez rapide, la programmation dynamique garantit de trouver la solution optimale
L'exemple suivant a été donné
Par exemple, disons que vous devez vous rendre du point A au point B le plus rapidement possible, dans une ville donnée, aux heures de pointe. Un algorithme de programmation dynamique examinera l'intégralité du rapport de circulation, en examinant toutes les combinaisons possibles de routes que vous pourriez emprunter, et ne vous indiquera alors que le chemin le plus rapide. Bien sûr, vous devrez peut-être attendre un certain temps jusqu'à ce que l'algorithme se termine, et ce n'est qu'alors que vous pourrez commencer à conduire. Le chemin que vous emprunterez sera le plus rapide (en supposant que rien n'a changé dans l'environnement externe)
Brute Force essaie toutes les solutions possibles avant de décider de la meilleure solution.
En quoi la programmation dynamique est-elle différente de Brute Force si elle passe également par toutes les solutions possibles avant de choisir la meilleure , la seule différence que je vois est que la programmation dynamique prend en compte les facteurs supplémentaires (conditions de circulation dans ce cas).
Ai-je raison de dire que la programmation dynamique est un sous-ensemble de la méthode Brute Force ??
intelligent, brute force
, mais oublie ensuite de décrire la partie "intelligente"