Correct option is D
Dynamic Programming (DP) is a technique used to solve optimization problems by breaking them into simpler sub-problems and solving each only once. The standard methodology for developing a DP algorithm follows a well-defined sequence of steps. First, we
characterize the structure of the optimal solution. Next, we
define the value of the optimal solution recursively. Then, we
compute this value, typically in a bottom-up manner using tabulation. Finally, if needed, we
construct the optimal solution using the stored computed values. Thus, the correct step-by-step order is:
C → B → D → A.
Information Booster:
1.
C. Characterize the structure of an optimal solution:
· Identify the components and relationships within the problem that make it suitable for DP.
· Helps in understanding how the solution to a problem depends on its sub-problems.
2.
B. Recursively define the value of an optimal solution:
· Express the solution in terms of smaller instances using recurrence relations.
· Forms the basis of the DP transition.
3.
D. Compute the value of an optimal solution, typically in a bottom-up fashion:
· Implement the recurrence using tabulation or memoization.
· Reduces time complexity by storing solutions of sub-problems.
4.
A. Construct an optimal solution from computed information: Retrieve or reconstruct the final answer from the computed values (often using backtracking or pointers).
Additional Knowledge:
· Dynamic programming is applied when the problem has
overlapping sub-problems and
optimal substructure.
· Common examples include
Longest Common Subsequence,
Knapsack,
Matrix Chain Multiplication, etc.