Was ist dynamische Programmierung?

Die dynamische Programmierung, wenn sie auf das Feld der Informatik bezieht, beschreibt eine Gruppe ähnliche Computeralgorithmen, die bedeutet, um komplizierte Probleme zu lösen, indem sie das Problem unten in einsetzen der kleineren Probleme bricht. Zuerst verursacht durch Richard Bellman in den fünfziger Jahren, arbeitet die dynamische Programmierung mit Problemen, die entweder überschneidenuntergeordnete probleme oder optimale Fundamente sind. Zu wie Arbeiten der dynamischen Programmierung verstehen, es am besten ist, das Konzept hinter diesen zwei Ausdrücken zu verstehen.

Überschneidenuntergeordnete probleme beschreiben schwierige Gleichungen, die, wenn Sie mehrmals in kleinere einsetzen Gleichungen, Wiederverwendungsteile der kleineren Gleichungen aufgegliedert, um eine Antwort zu erreichen. Z.B. kann eine mathematische Gleichung, die erklärt, um alle möglichen Resultate using einen Satz Zahlen zu berechnen, die gleichen zahlreichen Zeiten des Resultats bei andere Resultate nur einmal berechnen berechnen. Die dynamische Programmierung erklären dieses Problem, dem, nach der Berechnung des Resultats das erste mal, es dieses Resultat speichern und die Antwort in die Gleichung später verstopfen sollte, anstatt, sie wieder zu berechnen. Beim Beschäftigen lange komplizierte Prozesse und Gleichungen, spart dieses Zeit und verursacht eine schnellere Lösung using weit wenige Schritte.

Optimale Fundamente verursachen eine Lösung, indem sie die beste Antwort zu allen untergeordneten Problemen finden und dann die beste Gesamtantwort verursachen. Nach der Aufgliederung eines komplizierten Probleme in kleinere Probleme, benutzt der Computer dann ein mathematisches System, um festzustellen, was die beste Antwort für jedes Problem ist. Er berechnet die Antwort zum ursprünglichen Problem von den kleineren Antworten. Fehler existieren mit diesem Prozess. Während er die Lösung gibt, die das Beste mathematisch bearbeitet, es Mai oder Mai die beste Lösung im realen Leben, nicht abhängig von der Art des Probleme sein und wie sie auf der realen Welt bezieht.

Während irgendwelcher Betriebe die Algorithmusversuche der dynamischen Programmierung, zum des Shortest-Path zur Lösung zu finden. Sie kann eine von zwei Ansätze nehmen, um dies zu tun. Die top-down Annäherung bricht die Gleichung unten in kleinere Gleichungen und wiederverwendet die Antworten für diese Gleichungen erforderlichenfalls falls. Die Bottom-upannäherung versucht, den kleinsten mathematischen Wert, nachdem sie unten die Gleichung, zu lösen gebrochen und hinarbeitet dann seine Weise oben auf das größte von dort rt. Beide Ansätze sparen Zeit, aber Arbeiten der dynamischen Programmierung nur, wenn das ursprüngliche Problem in kleinere Gleichungen aufgliedern kann, die zu einem bestimmten Zeitpunkt wiederverwendet, um die Gleichung zu lösen.