180 likes | 324 Vues
Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester 2008-2009. Operations Research. University of Palestine. ITGD4207. ITGD4207 Operations Research. Chapter 8 Integer Programming. Integer Programming. Integer Programming Definition
E N D
Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2nd Semester 2008-2009 Operations Research University of Palestine ITGD4207
ITGD4207 Operations Research Chapter 8 Integer Programming
Integer Programming • Integer Programming Definition • Complexity of Integer Programming Problems • Applications of IP problems • Fathoming • Branch-and-Bound Algorithm
Integer Programming Definition • An integer (linear) programming (IP) problem is a linear programming problem in which some or all of the decision variables are restricted to be integer valued. • A pure integer program is one where all the variables are restricted to be integers. • In a binary integer program (BIP), the variables are restricted to take a value of zero or one (or some other bivalent options). • In a mixed integer program (MIP), some of the variables are restricted to be integers while others can assume continuous values.
Integer Programming Definition There are many LP problems in which the decision variables will take only integer values. If all the decision variables will only take integer values it is called a pure integer LPP; otherwise the problem is called a mixed integer LPP. We discuss Land-Doig Branch and Bound algorithm to solve an integer LPP.
Complexity of Integer Programming Problems • Although superficially, IP problems would seem easier to solve than regular LP problems, this is not usually the case. • For instance, an LP problem usually has an infinite number of solutions even for small feasible solution regions, while for an IP problem for reduced feasible solution regions we have a countable (however large) finite number of solutions. • However, LP problems have some important structural properties that allow us to find their optimal solution very efficiently. • It is the lack of these structural properties that make finding optimal solutions for IP problems hard. • An added problem is that the number of solutions for an IP problem often grows very fast (usually in an exponential fashion) as we increase the number of integer-valued decision variables in a problem. • It is the combination of these two factors (lack of a nice mathematical structure and rapid growth) that force us to often look for “good” and “efficient” solutions instead that of optimal solutions.
Applications of IP problems • The formulation of real life problems as integer and binary programming problems is very common. • One reason is that IP and BIP problems are intuitively appealing (it is fairly easy to formulate them). • However, because of the complexity of finding an optimal solution, we should explore other approaches, for instance LP or networks, before modeling a problem as an IP or a BIP problem. • Some examples of integer programming problems include: 1. Inspection problem (Only an integer number of inspectors can be assigned to the job) 2. Capital budgeting problem (project/portfolio selection) 3. Fixed charge problem (set-up costs) 4. Job sequencing problem (defining the order of execution) 5. Traveling salesman problem (defining order of visits)
Fathoming • Fathomed: The current problem cannot lead to an improved integer solution and therefore it is dropped. • A sub-problem can be fathomed (dismissed from further consideration) if: • Test 1- Its bound Z*. • Test 2- Its LP Relaxation has no feasible solutions. • Test 3- The optimal solution for its LP relaxation is an integer (if this solution is better than the incumbent or "current lower bound," it becomes the new incumbent and Test 1 is reapplied to all the unfathomed sub-problems with the new incumbent).
Branch-and-Bound Algorithm Maximize Subject to and integers
The set of feasible region consists of the Lattice points (0,0),(1,0),(2,0),(0,1),(1,1). The associated LPP, LP0 is defined by removing the integer restrictions. Solving we get x1=1.69, x2=1.13, z=7.31. Because the optimum LP0 solution does not satisfy the integer requirements, the B&B algorithm modifies the solution space in a manner that eventually identifies the integer optimum solution. First we select one of the variables whose optimum value at LP0 is not an integer. We select x1.
We replace the original LP0 with two new LPPs, LP1 and LP2 defined as LP1 space = LP0 space + LP2 space = LP0 space + We set lower bound = - We solve the LP1 problem (which is given by adding to LP0, the constraint The solution is x1 = 1, x2 = 1.4, z = 5.80 Now x1 is integer but x2 is not.
So we replace the LP1 problem with two new LPs, LP3,LP4, defined as LP3 space = LP1 space + LP4 space = LP1 space + We now solve the LP3 problem. The solution is : x1 = 1, x2 = 1, z = 5 Thus we have now got an all integer solution. So we need not consider this node any further as we will not get a better optimum since we will be looking at smaller subsets. We say this node is fathomed. We also update the lower bound to 5.
Now we solve the LP4 problem. We find it is infeasible. We say this node is also fathomed. Now we look at LP2 problem. Solving we get x1 = 2, x2 = 0.5, z = 7 We now replace the LP2 problem with two new LPs, LP5, LP6 defined as LP5 = LP2 + LP6 = LP2 + Solving LP5 we get x1 = 2.25, x2 = 0, z = 6.75
Thus we replace the LP5 problem with two new LPs LP7, LP8 defined as LP7 = LP5 + LP8 = LP5 + Solving LP7 we get the all-integer solution x1 = 2, x2 = 0, z = 6 . And this node is fathomed. We update the lower bound to 6. We find LP8 is infeasible. Thus this is also fathomed. We also find LP6 is infeasible. Thus this is also fathomed. Thus ultimately we got the all-integer optimum solution as x1 = 2, x2 = 0, z = 6.
All the above are depicted graphically as follows: LP0 x1=1.69,x2=1.13,z=7.31 LP1 x1=1,x2=1.4,z=5.8 LP2 x1=2,x2=0.5,z=7.0 LP3 x1=1,x2=1,z=5 LP4 Infeasible LP6 Infeasible (fathomed) (fathomed) (fathomed) LP5 x1=2.25,x2=0, z=6.75 LP7 x1=2,x2=0,z=6 LP8 Infeasible (fathomed) (fathomed) Optimum Solution
Summary of the B&B Algorithm Assume the problem is a maximization one. Set an initial lower bound z = - on the optimal value of the ILPP. Set i = 0. Step 1. (Fathoming/bounding) Select LPi, the next problem to be examined. Solve LPi and attempt to fathom it using one of the three conditions: (a) The optimal z-value of LPi cannot yield a better objective value than the current lower bound.
(b) LPi yields a better feasible integer solution than the current lower bound. (c) LPi has no feasible solution. Two cases will arise. (i) If LPi is fathomed and a better solution is found, then update the lower bound. If all subproblems have been fathomed, stop. The optimum ILP is associated with the current lower bound, if any. Otherwise set i = i +1 and repeat Step 1. (ii) If LPi is not fathomed, go to step 2 for branching.
Step 2. (Branching) Select one of the integer variables xj, whose optimum value in the LPi solution is not integer. Eliminate the region by creating two LP subproblems that correspond to and Set i = i + 1. Go to step 1.