Skip to main content

Was ist dynamische Programmierung?

Dynamische Programmierung beschreibt bei Bezug auf das Gebiet der Informatik eine Gruppe ähnlicher Computeralgorithmen, die komplexe Probleme lösen sollen, indem das Problem in kleinere Probleme unterteilt wird.Die dynamische Programmierung von Richard Bellman in den 1950er Jahren erstellt mit Problemen, die sich entweder überlappende Unterprobleme oder optimale Unterstrukturen haben.Um zu verstehen, wie dynamisches Programmieren funktioniert, ist es am besten, das Konzept hinter diesen beiden Begriffen zu verstehen.

Überlappende Unterprobleme beschreiben komplizierte Gleichungen, die, wenn sie in kleinere Mengen von Gleichungen unterteilt sind, Teile der kleineren Gleichungen mehr als einmal wiederverwenden, um eine Antwort zu erreichen.Beispielsweise kann eine mathematische Gleichung, die zur Berechnung aller möglichen Ergebnisse unter Verwendung einer Reihe von Zahlen berechnet wird, das gleiche Ergebnis mehrfach berechnen, während andere Ergebnisse nur einmal berechnet werden.Die dynamische Programmierung würde dieses Problem ergeben, dass nach der Berechnung des Ergebnisses das erste Mal das Ergebnis speichern und die Antwort später in die Gleichung anschließen sollte, anstatt es erneut zu berechnen.Wenn Sie sich mit langen komplexen Prozessen und Gleichungen befassen, spart dies Zeit und schafft eine schnellere Lösung mit weitaus weniger Schritten.Nachdem der Computer ein komplexes Problem in kleinere Probleme unterteilt hat, verwendet er ein mathematisches System, um zu bestimmen, was die beste Antwort für jedes Problem ist.Es berechnet die Antwort auf das ursprüngliche Problem aus den kleineren Antworten.Bei diesem Prozess existieren Fehler.Während es die Lösung gibt, die mathematisch am besten funktioniert, ist es möglicherweise die beste Lösung im wirklichen Leben, abhängig von der Art des Problems und der Art und Weise, wie es sich auf die reale Welt bezieht.

Während eines dieser Operationen die dynamische ProgrammierungDer Algorithmus versucht, den kürzesten Weg zur Lösung zu finden.Es kann einen von zwei Ansätzen erfordern.Der Top-Down-Ansatz unterteilt die Gleichung in kleinere Gleichungen und wiederverwendet die Antworten für diese Gleichungen bei Bedarf.Der Bottom-up-Ansatz versucht, den kleinsten mathematischen Wert zu lösen, nachdem er die Gleichung niedergelassen hat, und wirkt sich dann von dort aus zu den größten.Beide Ansätze sparen Zeit, aber die dynamische Programmierung funktioniert nur, wenn das ursprüngliche Problem in kleinere Gleichungen zusammenbrechen kann, die irgendwann wiederverwendet werden, um die Gleichung zu lösen.