Dynamic programming is a recursive optimization technique used to solve problems with interrelated decisions. It breaks the problem down into sequential steps, where each step builds on the solutions to previous steps. The optimal solution is determined by working through each step in order. Dynamic programming has advantages like computational savings over complete enumeration and providing insight into problem nature. However, it also has disadvantages like requiring more expertise, lacking general algorithms, and facing dimensionality problems for applications with multiple states.
2. Q1. Answer - Dynamic programming is used for problems requiring a sequence of interrelated decision. This means that to take another decision we have to depend on the previous decision or solution formed. dynamic programming is a recursive optimization procedure which means it’s a procedure which optimizes on a step by step basis using information from the preceding steps . We optimize as we go. In dynamic programming , a single step is sequentially related to preceding steps and is not itself a solution to the problem.A single step contains information that identifies a segment or a part of the optimal solution e.g. time dependent problems, decision making.
3. Q2 Answer – 1.Stage – division of sequence of a system into various subparts is called stages 2.State – a specific measurable condition of the system 3. Recursive equation – at every stage in dynamic programming the decision rule is determined by evaluating an objective function called recursive equation. 4.Principle of optimality – it states that an optimal set of decisions rules has the property that regardless of the ith decisions, the remaining decisions must be optimal with respect to the outcome that results from the ithdecision. This means that optimal immediate decision depends only on current state and not how you got there
4. Q3. ANSWER- The two basic approaches for solving dynamic programming are:- 1.)Backward recursion- a)it is a schematic representation of a problem involving a sequence of n decisions. b)Then dynamic programming decomposes the problem into a set of n stages of analysis, each stage corresponding to one of the decisions. each stage of analysis is described by a set of elements decision, input state, output state and returns. c)Then notational representation of these element when a backward recursion analysis is used d)Then symbolic representation of n stages of analysis using backward recursion so we can formalize the notation
5. The general form of the recursion equation used to compute cumulative return:- cumulative return = direct return + cumulative return through stage from stage through stage i-1
6. 2.)Forward recursion – this approach takes a problem decomposed into a sequence of n stages and analyzes the problem starting with the first stage in the sequence, working forward to the last stage it is also known as deterministic probability approach
7. Q4. Answer- dynamic programming is a recursive optimization procedure which means that it optimizes on a step by step basis using information from preceding steps even in goal programming optimization occurs step by step but it was iterative rather then recursive that means that each step in goal programming represented a unique solution that was non-optimal.in dynamic programming a single step is sequentially related to preceding steps and is not itself a solution to the problem
8. Q5. Answer- Advantages - 1)`the process of breaking down a complex problem into a series of interrelated sub problems often provides insight into the nature of problem 2) Because dynamic programming is an approach to optimization rather than a technique it has flexibility that allows application to other types of mathematical programming problems 3) The computational procedure in dynamic programming allows for a built in form of sensitivity analysis based on state variables and on variables represented by stages 4)Dynamic programming achieves computational savings over complete enumeration.
9. Disadvantages – 1.)more expertise is required in solving dynamic programming problem then using other methods 2.)lack of general algorithm like the simplex method. It restricts computer codes necessary for inexpensive and widespread use 3.)the biggest problem is dimensionality. This problems occurs when a particular application is characterized by multiple states. It creates lot of problem for computers capabilities & is time consuming