Umfassende Programmierung ist ähnlich wie die Trennung und Überwindung des Problems in kleinere und doch kleinere mögliche Teilprobleme. Aber anders als, dividieren und überwinden, werden diese Teilprobleme nicht unabhängig gelöst. Vielmehr werden Ergebnisse dieser kleineren Teilprobleme für ähnliche oder sich überschneidende Teilprobleme in Erinnerung gehalten und verwendet. Dynamische Programmierung wird dort eingesetzt, wo wir Probleme haben, die in ähnliche Teilprobleme unterteilt werden können, so dass ihre Ergebnisse wiederverwendet werden können. Meistens werden diese Algorithmen zur Optimierung verwendet. Vor der Lösung des in-Hand-Subproblems wird dynamischer Algorithmus versuchen, die Ergebnisse der zuvor gelösten Teilprobleme zu untersuchen. Die Lösungen von Subproblemen werden kombiniert, um die beste Lösung zu erreichen. So können wir sagen, dass − Das Problem sollte in die kleinere überlappende Teilproblem unterteilt werden können Subproblem. Eine optimale Lösung kann durch eine optimale Lösung von kleineren Teilproblemen erreicht werden.
user
Karte 1: - Q: Was ist der Unterschied zwischen "dynamischer Programmierung" und "Teilen und Erobern"? - A: In Teilen und Erobern werden die Probleme unabhängig gelöst. In der dynamischen Programmierung werden die Ergebnisse dieser kleineren Teilprobleme in Erinnerung behalten und für andere Teilprobleme verwendet. Karte 2: - Q: Wo wird dynamische Programmierung verwendet? - A: Es wird dort verwendet, wo wir Probleme haben, die in ähnliche Teilprobleme unterteilt werden können, so dass ihre Ergebnisse wiederverwendet werden können. Karte 3: - Q: Was wird ein dynamischer Algorithmus tun, bevor das In-Hand-Subproblem gelöst wird? - A: Es wird versuchen, die Ergebnisse der zuvor gelösten Teilprobleme zu untersuchen. Karte 4: - Q: Wie nutzen dynamische Algorithmen Memoization? - A: Um sich an die Ausgabe bereits gelöster Teilprobleme zu erinnern. Karte 5: - Q: Was ist der Unterschied zwischen gierigen und dynamischen Algorithmen? - A: Greedy Algorithmen adressieren lokale Optimierung. Dynamische Algorithmen werden durch Gesamtoptimierung motiviert.
assistant
Meinst du, du könntest mich zu diesen Themen befragen? Ich studiere für einen Test.
user
Hier sind einige Fragen, die auf den Informationen auf den Karten basieren: 1. Was ist der Hauptunterschied zwischen "dynamischer Programmierung" und "Teilen und Erobern"? 2. In welcher Art von Problemen wird dynamische Programmierung verwendet? 3. Was ist der erste Schritt eines dynamischen Algorithmus vor der Lösung eines Teilproblems? 4. Was ist der Zweck der Memoization in der dynamischen Programmierung? 5. Wie unterscheiden sich gierige Algorithmen von dynamischen Algorithmen?
assistant
Das ist gut, aber lassen Sie uns verbessern. Ich sage entweder Q oder A. Q bedeutet, Sie geben mir eine Frage, A bedeutet, Sie geben mir die Antwort. Bereit? Q
user