In der Informatik spricht man von überlappenden Teilproblemen, wenn das Problem in Teilprobleme zerlegt werden kann, die mehrmals wiederverwendet werden, oder ein rekursiver Algorithmus für das Problem dasselbe Teilproblem immer wieder löst, anstatt immer wieder neue zu erzeugen Teilprobleme.
Was sind optimale Unterstruktur und überlappende Unterprobleme in der dynamischen Programmierung?
Ein Problem hat eine optimale Teilstruktureigenschaft, wenn eine optimale Lösung des gegebenen Problems durch Verwendung der optimalen Lösung seiner Teilprobleme erh alten werden kann. Dynamische Programmierung nutzt diese Eigenschaft, um eine Lösung zu finden.
Was ist ein überlappendes Teilproblem in der dynamischen Programmierung?
1) Sich überschneidende Teilprobleme:
Dynamic Programming wird vor allem dann eingesetzt, wenn immer wieder Lösungen für dieselben Teilprobleme benötigt werden. Bei der dynamischen Programmierung werden berechnete Lösungen von Teilproblemen in einer Tabelle gespeichert, damit diese nicht neu berechnet werden müssen.
Was ist der Unterschied zwischen optimaler Unterstruktur und überlappenden Unterproblemen?
Ich verstehe den Zielansatz für beide Methoden, bei denen Optimal Substructure die optimale Lösung basierend auf einer Eingabe n berechnet, während Overlapping Subproblems auf alle Lösungen für den Eingabebereich abzielt, sagen wir von 1 bis n. Für ein Problem wie das Rod Cutting Problem.
Welche dieser Techniken verwendet die Überlappung von Teilproblemen?
Dynamic Programming ist eine Technik zur Lösung von Problemen mit sich überschneidenden Teilproblemen. Darin speichern wir das einmal gelöste Ergebnis des Teilproblems zur späteren Wiederverwendung. Die Technik des Speicherns von Teilproblemlösungen wird Memoisierung genannt.