www.wikidata.de-de.nina.az
Dynamische Programmierung ist eine Methode zum algorithmischen Losen eines Optimierungsproblems durch Aufteilung in Teilprobleme und systematische Speicherung von Zwischenresultaten Der Begriff wurde in den 1940er Jahren von dem amerikanischen Mathematiker Richard Bellman eingefuhrt der diese Methode auf dem Gebiet der Regelungstheorie anwandte In diesem Zusammenhang wird auch oft von Bellmans Prinzip der dynamischen Programmierung gesprochen Dynamische Programmierung kann erfolgreich eingesetzt werden wenn ein Optimierungsproblem aus vielen gleichartigen Teilproblemen besteht und eine optimale Losung des Problems sich aus optimalen Losungen der Teilprobleme zusammensetzt Dies nennt man Optimalitatsprinzip von Bellman In der dynamischen Programmierung werden zuerst die optimalen Losungen der kleinsten Teilprobleme direkt berechnet und dann geeignet zu einer Losung eines nachstgrosseren Teilproblems zusammengesetzt Dieses Verfahren setzt man fort bis das ursprungliche Problem gelost wurde Einmal berechnete Teilergebnisse werden in einer Tabelle gespeichert Bei nachfolgenden Berechnungen gleichartiger Teilprobleme wird auf diese Zwischenlosungen zuruckgegriffen anstatt sie jedes Mal neu zu berechnen was zu einer Senkung der Laufzeit fuhrt Wird die dynamische Programmierung konsequent eingesetzt vermeidet sie kostspielige Rekursionen weil bekannte Teilergebnisse wiederverwendet werden In der Regelungstheorie und verwandten Gebieten kann man das Prinzip der dynamischen Programmierung einsetzen um etwa eine Gleichung herzuleiten Hamilton Jacobi Bellman Gleichung deren Losung den optimalen Wert ergibt Die Argumentation ist dabei etwa folgende Wenn das Problem zeitabhangig ist kann man den optimalen Wert der Zielfunktion zu einem bestimmten Zeitpunkt betrachten Man fragt sich dann welche Gleichung die optimale Losung erfullen muss damit das Funktional auch zu einem spateren Zeitpunkt optimal bleibt dies fuhrt zur Hamilton Jacobi Bellman Gleichung Damit kann man das Problem in Zeitschritte einteilen anstatt es auf einmal losen zu mussen In der Physik war dieses Prinzip schon seit Langem bekannt allerdings nicht unter diesem Namen Der Ubergang von einer globalen alle Zeitpunkte gleichzeitig zu einer zeitabhangigen dynamischen Betrachtungsweise entspricht dort der Transformation der Lagrange Funktion in die Hamilton Funktion mit Hilfe der Legendre Transformation Beispiele BearbeitenCYK Algorithmus Earley Algorithmus Needleman Wunsch Algorithmus Smith Waterman Algorithmus Viterbi Algorithmus Algorithmus von Floyd und Warshall Pseudopolynomieller Algorithmus fur das Rucksackproblem 1 Berechnung der Levenshtein DistanzSiehe auch BearbeitenMemoisation Teile und herrsche Informatik Literatur BearbeitenRichard Bellman Dynamic Programming Princeton University Press 1957 Stuart Dreyfus Richard Bellman on the birth of Dynamic Programming Band 50 Nr 1 2002 S 48 51 informs org PDF Thomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein Introduction to Algorithms 2 Auflage MIT Press Cambridge MA 2001 ISBN 0 262 03293 7 S 323 369 Weblinks BearbeitenADP an der Uni BielefeldEinzelnachweise Bearbeiten Kurt Mehlhorn Peter Sanders Algorithms and Data Structures The Basic Toolbox Springer Berlin Heidelberg 2008 ISBN 978 3 540 77977 3 S 243 246 doi 10 1007 978 3 540 77978 0 Normdaten Sachbegriff GND 4125677 3 lobid OGND AKS Anmerkung Ansetzungsform GND Dynamische Optimierung Abgerufen von https de wikipedia org w index php title Dynamische Programmierung amp oldid 235251773