You are on page 1of 2

In mathematics and computer science, dynamic programming is a method for solving complex problems by breaking them down into

simpler steps. It is applicable to problems exhibiting the properties of overlapping subproblems which are only slightly smaller[1] and optimal substructure (described below). When applicable, the method takes far less time than nave methods. Top-down dynamic programming simply means storing the results of certain calculations, which are later used again since the completed calculation is a sub-problem of a larger calculation. Bottom-up dynamic programming involves formulating a complex calculation as arecursive series of simpler calculations.

Dynamic Programming (DP) generates all enumerations, or rather, cases of the smaller breakdown problems, leading towards the larger cases, and eventually it will lead towards the final enumeration of size n. As in Fibonacci numbers, DP generated all Fibonacci numbers up to n. Once you are given a problem, it is usually a good idea to check if DP is applicable to it. The second step to solving a problem using DP is to recognize the recursive relationship. The relationship maybe straightforward or even pointed out, or it maybe hidden and you have to find it. In any case, since you have already determined that it is indeed a DP problem, you should at least have a pretty good idea of the relationship. Dynamic programming is used a lot in string problems, such at the string edit problem. You solve a subset(s) of the problem and then use that information to solve the more difficult original problem.

Goal programming is a branch of multiobjective optimization, which in turn is a branch of multi-criteria decision analysis (MCDA), also known as multiple-criteria decision making (MCDM). This is an optimization programme. It can be thought of as an extension or generalisation of linear programming to handle multiple, normally conflicting objective measures. Each of these measures is given a goal or target value to be achieved. Unwanted deviations from this set of target values are then minimised in an achievement function. This can be a vector or a weighted sum dependent on the goal programming variant used. As satisfaction of the target is deemed to satisfy the decision maker(s), an underlying satisficing philosophy is assumed.

For example, the twin goals of an investor who desires investments with maximum return and with minimum risk are generally incompatible and therefore unachievable. Other examples of multiple conflicting objectives can be found in organizations that want to: (1) maximize profits and increase wages; (2) upgrade product quality and reduce product cost; (3) pay larger dividends to stockholders and retain earnings for growth; and (4) reduce credit losses and increase sales. Goal programming does not attempt to maximize or minimize a single objective function as does the linear programming model. Rather, it seeks to minimize the deviations among the desired goals and the actual results according to the priorities assigned. The objective function of a goal programming model is expressed in terms of the deviations from the target goals.

A major strength of goal programming is its simplicity and ease of use. Weakness - Goal programming can hence handle relatively large numbers of variables, constraints and objectives

An integer programming problem is any mathematical optimization or feasibility program in which some or all of the variables are restricted to be integral. In many settings the term integer program is used as short-hand for integer linear programming.

You might also like