Memoization-oder Tab-Ansatz für die Dynamische Programmierung

Gibt es viele Probleme, die gelöst werden können mit Hilfe der Dynamischen Programmierung z.B. Längsten steigenden Teilfolge. Dieses problem kann gelöst werden, indem 2 Ansätze

  1. Memoization (Top-Down) - Mit Rekursion zu lösen, das sub-problem und speichern das Ergebnis in einigen hash-Tabelle.
  2. Auswertung (Bottom-Up) - Einsatz von Iterativen Ansatz zur Lösung des Problems durch die Lösung der kleinere sub-Probleme zuerst und dann verwenden Sie es während der Ausführung ein größeres problem.

Meine Frage ist was ist besser-Ansatz in Bezug auf Zeit und Raum Komplexität?

  • Die zweite option ist nicht wirklich dynamisch-Programmierung, es ist mehr verringern und zu erobern. Es ist abhängig von der problem-Größe und was das problem versucht zu lösen in der Analyse.
  • Abhängig von problem natürlich.
  • Wenn es eine " cut-and-getrocknet, allgemeingültige Antwort, das Leben wäre einfacher und in allen Lehrbüchern würde nur lehren Sie die "richtige" Art und Weise. Aber gibt es nicht eine allgemeingültige Antwort. Auch das Wort " memoization.' Kein 'R'.
  • warum heißt es memoization? das Auswendiglernen scheint die apt Wort wie merken wir uns das Ergebnis der kleinere sub-Probleme.
  • en.wikipedia.org/wiki/Memoization#Etymology
InformationsquelleAutor Mady | 2012-08-20
Schreibe einen Kommentar