Topics in Computational Sustainability CS 325 Spring 2016
Topics in Computational Sustainability CS 325 Spring 2016 Making Choices: Integer Programming
Core Elements of Decision Making
Danish Green Eco. Town • The Danish Green Eco. Town is considering whether to purchase small scale wind turbines or large scale wind turbines (or a combination of the two). They have decided to buy at most 2 small-scale wind turbines. Question: How many wind turbines of each type should they purchase to maximize their profit?
Green Eco Village Farms Problem An Example where Integrality Matters
Danish Green Eco. Town Fictitious Data Annual Profit from Selling Energy to Grid Purchase cost per turbine Maximum purchase quantity Small Wind Turbine $100, 000 Large Scale Wind Turbine $500, 000 $5 million $50 million 2 — Capital Available $100 million
Linear Programming Formulation Let S = Number of small scale wind turbine to purchase L = Number of large scale wind turbine to purchase Maximize Profit = S + 5 L ($100 K) subject to Capital Available: 5 S + 50 L ≤ 100 (millions) Max Small Scale Farm: S ≤ 2 and S ≥ 0, L ≥ 0.
Graphical Method for Linear Programming #Large Wind Turbine # Small Wind Turbines
Graphical Method for Linear Programming #Large Wind Turbine Profit = 10 # Small Wind Turbines
Graphical Method for Linear Programming #Large Wind Turbine # Small Wind Turbines
Violates Divisibility Assumption of LP • Divisibility Assumption of Linear Programming: Decision variables in a linear programming model are allowed to have any values, including fractional values, that satisfy the functional and nonnegativity constraints. • Since the number of turbines purchased must have an integer value, the divisibility assumption is violated.
Graphical Method for Integer Programming • When an integer programming problem has just two decision variables, its optimal solution can be found by applying the graphical method for linear programming with just one change at the end. • We begin as usual by graphing the feasible region for the LP relaxation, determining the slope of the objective function lines, and moving a straight edge with this slope through this feasible region in the direction of improving values of the objective function. • However, rather than stopping at the last instant the straight edge passes through this feasible region, we now stop at the last instant the straight edge passes through an integer point that lies within this feasible region. • This integer point is the optimal solution.
Why integer programs? • Advantages of restricting variables to take on integer values – More realistic – More flexibility • Disadvantages – More difficult to model – Can be much more difficult to solve
Integer Programming • When are “non-integer” solutions okay? – Solution is naturally divisible • e. g. , pounds, hours – Solution represents a rate • e. g. , units per week • When is rounding okay? – When numbers are large • e. g. , rounding 114. 286 to 114 is probably okay. • When is rounding not okay? – When numbers are small • e. g. , rounding 2. 6 to 2 or 3 may be a problem. – Binary variables • yes-or-no decisions
• Binary Integer Programming
Danish Green Power Example Capital Budgeting Allocation Problem Danish Green Power is considering 6 investments. The cash required from each investment as well as the total electricity production of the investment is given next. The cash available for the investments is $14 M. Danish Green Power wants to maximize electricity production. What is the optimal strategy? An investment can be selected or not. One cannot select a fraction of an investment.
Data for the Problem Investment budget = $14 M Investment 1 2 Cost (millions 5 7 dollars) Total production 16 22 (100 KW) 3 4 5 6 4 3 4 6 12 8 11 19
Capital Budgeting Allocation Problem (one resource) Knapsack Problem • Why is a problem with the characteristics of the previous problem called the Knapsack Problem? • It is an abstraction, considering the simple problem: A hiker trying to fill her knapsack to maximum total value. Each item she considers taking with her has a certain value and a certain weight. An overall weight limitation gives the single constraint. Practical applications: Project selection and capital budgeting allocation problems Storing a warehouse to maximum value given the indivisibility of goods and space limitations
Integer Programming Formulation What are the decision variables? Objective and Constraints? Max 16 x 1+ 22 x 2+ 12 x 3+ 8 x 4+ 11 x 5+ 19 x 6 5 x 1+ 7 x 2+ 4 x 3+ 3 x 4+ 4 x 5+ 6 x 6 14 xj e {0, 1} for each j = 1 to 6
• The previous constraints represent “economic indivisibilities”, either a project is selected, or it is not. It is not possible to select a fraction of a project. • Similarly, integer variables can model logical requirements (e. g. , if item 2 is selected, then so is item 1. )
How to model “logical” constraints • • Exactly 3 items are selected. If item 2 is selected, then so is item 1. If item 1 is selected, then item 3 is not selected. Either item 4 is selected or item 5 is selected, but not both.
Formulating Constraints • Exactly 3 items are selected x 1+ x 2+ x 3+ x 4+ x 5+ x 6=3
If item 2 is selected then so is item 1 The integer programming constraint: A 2 -dimensional representation Item 2 x 1 x 2 Item 1 x 1
If item 1 is selected then item 3 is not selected The integer programming constraint: A 2 -dimensional representation Item 3 x 1 + x 3 1 item 1
Either item 4 is selected or item 5 is selected, but not both. The integer programming constraint: A 2 -dimensional representation Item 5 x 4 + x 5 = 1 Item 4
How to model “logical” constraints • Exactly 3 items are selected. x 1+ x 2+ x 3+ x 4+ x 5+ x 6=3 • If item 2 is selected, then so is item 1. x 1 x 2 • If item 1 is selected, then item 3 is not selected. x 1 + x 3 1 x 1 1 - x 3 • Either item 4 is selected or item 5 is selected, but not both. x 4 + x 5 = 1
Modeling Fixed Charge Problems If a product is produced, a factory is built must incur a fixed setup cost. The problem is non-linear. x – quantity of product to be manufactured x = 0 cost =0; x > 0 cost = C 1 x + C 2 How to model it? Using an indicator variable y y = 1 x is produced; y = 0 x is not produced Objective function becomes C 1 x + C 2 y Additional Constraint x ≤ My M is a big number
Controlling Pollution on the Vecht River in Weesp Because of pollution on the Vecht River in Weesp, in the Netherlands, the city is going to build some pollution control stations. Three sites (1, 2, and 3) are under consideration. They are interested in controlling pollution levels for two pollutants (A and B). The city legislature mandates that at least 80, 000 tons of pollutant A and at least 50, 000 tons of pollutant B be removed from the river. Formulate an MIP (Mixed Integer Program) to minimize cost of meeting the city pollution requirements. Cost of Building Station (Euros) Cost of Treating 1 Ton Water (Euros) Amount Removed per Ton of Water Pollutant A Pollutant B Site 1 100, 000 20 0. 40 ton 0. 30 ton Site 2 60, 000 30 0. 25 ton 0. 20 ton Site 3 40, 000 40 0. 20 ton 0. 25 ton
Controlling Pollution on the Vecht River in Weesp Let xi = Tons of water processed at site i for i=1, 2, 3 yi = 1 if Pollution Control Station is built at Site i. yi = 0 otherwise Then the appropriate IP is min z = 100, 000 y 1 + 60, 000 y 2 + 40, 000 y 3 + 20 x 1 + 30 x 2 +40 x 3 s. t. . 40 x 1 +. 25 x 2 +. 20 x 3 80, 000 (Pollutant A) . 30 x 1 +. 20 x 2 +. 25 x 3 50, 000 (Pollutant B) x 1 My 1 x 2 My 2 x 3 My 3 All xij 0 and all yi = 0 or 1. Note: M = (1/. 20)(80, 000) = 400, 000 will do. This follows since at most 400, 000 tons of water must be processed to remove the required pollutants.
Solving IPs
The Challenges of Rounding • Rounded Solution may not be feasible. • Rounded solution may not be close to optimal. • There can be many rounded solutions. – Example: Consider a problem with 30 variables that are noninteger in the LPsolution. How many possible rounded solutions are there?
Overview of Techniques for Solving Integer Programs • Enumeration Techniques – Complete Enumeration • list all “solutions” and choose the best – Branch and Bound • Implicitly search all solutions, but cleverly eliminate the vast majority before they are even searched • Cutting Plane Techniques – Use LP to solve integer programs by adding constraints to eliminate the fractional solutions. • Hybrid approaches (e. g. , branch and cut)
How Integer Programs are Solved: Cuts
How Integer Programs are Solved
Branch and Bound – Implicit enumeration of all the solutions: • It is the starting point for all solution techniques for integer programming – Lots of research has been carried out over the past 40 years to make it more and more efficient – But, it is an art form to make it efficient. (We shall get a sense why. ) – Integer programming is intrinsically difficult.
Knapsack Binary Integer Programming Formulation What are the decision variables Max 16 x 1+ 22 x 2+ 12 x 3+ 8 x 4+ 11 x 5+ 19 x 6 5 x 1+ 7 x 2+ 4 x 3+ 3 x 4+ 4 x 5+ 6 x 6 14 xj e {0, 1} for each j = 1 to 6
Complete Enumeration • Systematically considers all possible values of the decision variables. – If there are n binary variables, there are 2 n different ways. • Usual idea: iteratively break the problem in two. At the first iteration, we consider separately the case that x 1 = 0 and x 1 = 1.
An Enumeration Tree How many possible solutions? Original problem x 1 = 0 x 2 = 0 x 3 = 1 x 1 = 1 x 3 = 0 x 2 = 1 x 2 = 0 x 2 = 1 x 3 = 0 x 3 = 1
On complete enumeration • Suppose that we could evaluate 1 billion solutions per second. • Let n = number of binary variables • Solutions times (worst case, approx. ) – n = 30, 1 second – n = 40, 18 minutes – n = 50 13 days – n = 60 31 years
On complete enumeration • Suppose that we could evaluate 1 trillion solutions per second, and instantaneously eliminate 99. 9999999% of all solutions as not worth considering • Let n = number of binary variables • Solutions times – n = 70, 1 second – n = 80, 17 minutes – n = 90 11. 6 days – n = 100 31 years
Branch and Bound The essential idea: search the enumeration tree, but at each node 1. Solve the linear program at the node (relaxing the integrality constraints) 2. Eliminate the subtree if 1. The solution is integer (there is no need to go further- why? ) or 2. The best solution in the subtree cannot be as good as the best available solution (the incumbent- how does that happen? ) or 3. There is no feasible solution
Branch and Bound 1 Node 1 is the original LP Relaxation 44 3/7 maximize 16 x 1 + 22 x 2 + 12 x 3 + 8 x 4 +11 x 5 + 19 x 6 subject to 5 x 1 + 7 x 2 + 4 x 3 + 3 x 4 +4 x 5 + 6 x 6 14 0 xj 1 for j = 1 to 6 Solution at node 1: x 1 =1 x 2 = 3/7 x 3 = x 4 = x 5 = 0 x 6 =1 z = 44 3/7 The IP cannot have value higher than 44 3/7.
Branch and Bound 1 44 3/7 x 1 = 0 44 Node 2 is the original LP Relaxation plus the constraint x 1 = 0. 2 maximize 16 x 1 + 22 x 2 + 12 x 3 + 8 x 4 +11 x 5 + 19 x 6 subject to 5 x 1 + 7 x 2 + 4 x 3 + 3 x 4 +4 x 5 + 6 x 6 14 0 xj 1 for j = 1 to 6, x 1 = 0 Solution at node 2: x 1 = 0 x 2 = 1 x 3 = 1/4 x 4 = x 5 = 0 x 6 = 1 z = 44
Branch and Bound 1 x 1 = 0 44 Node 3 is the original LP Relaxation plus the constraint x 1 = 1. 44 3/7 x 1 = 1 3 2 44 3/7 The solution at node 1 was x 1 =1 x 2 = 3/7 x 3 = x 4 = x 5 = 0 x 6 =1 z = 44 3/7 Note: it was the best solution with no constraint on x 1. So, it is also the solution for node 3. (If you add a constraint, and the old optimal solution is feasible, then it is still optimal. )
Branch and Bound 44 3/7 1 x 1 = 0 44 Node 4 is the original LP Relaxation plus the constraints x 1 = 0, x 2 = 0. x 1 = 1 2 3 44 3/7 x 2 = 0 42 44 Solution at node 4: 0 0 1 Our first incumbent solution! No further searching from node 4 because there cannot be a better integer solution. 1 z = 42 No solution in the subtree can have a value better than 42.
Branch and Bound The incumbent is the best solution on hand. 44 1 44 44 3/7 x 1 = 0 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 The incumbent solution has value 42 44 5 44 6 44 3/7 x 2 = 1 44 1/3 7 We next solved the LP’s associated with nodes 5, 6, and 7 No new integer solutions were found. We would eliminate a subtree if we were guaranteed that no solution in the subtree were better than the incumbent.
Branch and Bound 1 44 3/7 x 1 = 0 44 44 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 The incumbent solution has value 42 44 x 3 = 0 43. 75 8 5 44 x 3 = 1 43. 5 9 x 3 = 0 43. 25 10 6 44 3/7 x 2 = 1 44 1/3 7 x 3 = 1 43. 8 11 x 3 = 0 44. 3 12 x 3 = 1 - We next solved the LP’s associated with nodes 8 -13 13 13
Summary so far • We have solved 13 different linear programs so far. – One integer solution found – One subtree pruned because the solution was integer (node 4) – One subtree pruned because the solution was infeasible (node 13) – No subtrees pruned because of the bound
Branch and Bound 1 x 1 = 0 44 4 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 The incumbent solution has value 42 44 3/7 5 44 x 3 = 0 43. 75 8 44 x 3 = 1 43. 5 9 x 3 = 0 43. 25 10 6 44 3/7 x 2 = 1 44 1/3 7 x 3 = 1 43. 8 11 x 3 = 0 44. 3 12 x 3 = 1 - 13 43. 75 42. 66 We next solved the LP’s associated with the next nodes. We can prune the node with z = 42. 66. Why?
Getting a better bound • The bound at each node is obtained by solving an LP. • But all costs are integer, and so the objective value of each integer solution is integer. So, the best integer solution has an integer objective value. • If the best integer valued solution for a node is at most 42. 66, then we know the best bound is at most 42. • Other bounds can also be rounded down.
Branch and Bound 1 x 1 = 0 44 4 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 The incumbent solution has value 42 44 3/7 5 44 x 3 = 0 43. 75 8 44 x 3 = 1 43. 5 9 43. 75 42. 66 x 3 = 0 43. 25 10 6 44 3/7 x 2 = 1 44 1/3 7 x 3 = 1 43. 8 11 x 3 = 0 44. 3 12 x 3 = 1 -. 13
Branch and Bound 1 x 1 = 0 44 x 1 = 1 2 3 4 44 5 43 8 43 x 3 = 1 43 9 42 43 x 2 = 1 6 44 x 3 = 0 44 x 2 = 0 x 2 = 1 x 2 = 0 42 The incumbent solution has value 42 44 x 3 = 0 x 3 = 1 43 10 42 43 44 7 43 11 x 3 = 0 44 12 x 3 = 1 - 13 43 We found a new incumbent solution! x 1 = 1, x 2 = x 3 = 0, x 4 = 1, x 5 = 0, x 6 = 1 z = 43
Branch and Bound 1 x 1 = 0 44 x 1 = 1 2 3 4 44 5 43 88 43 x 3 = 1 43 99 42 43 x 2 = 1 6 44 x 3 = 0 44 x 2 = 0 x 2 = 1 x 2 = 0 42 The new incumbent solution has value 43 44 x 3 = 0 x 3 = 1 10 43 10 42 43 44 7 11 43 11 x 3 = 0 44 12 x 3 = 1 - 13 43 We found a new incumbent solution! x 1 = 1, x 2 = x 3 = 0, x 4 = 1, x 5 = 0, x 6 = 1 z = 43
Branch and Bound 1 x 1 = 0 44 4 x 1 = 1 2 3 44 x 3 = 0 43 88 44 x 2 = 1 x 2 = 0 42 The new incumbent solution has value 43 44 5 44 x 3 = 1 43 99 x 3 = 0 10 43 10 6 44 7 x 3 = 1 11 43 11 x 3 = 0 44 12 x 3 = 1 - 13 If we had found this incumbent earlier, we could have saved some searching.
Finishing Up 1 x 1 = 0 44 4 x 1 = 1 2 3 44 x 3 = 0 43 88 44 x 2 = 1 x 2 = 0 42 The new incumbent solution has value 43 44 5 44 x 3 = 1 43 99 x 3 = 0 10 43 10 6 44 7 x 3 = 1 11 43 11 x 3 = 0 44 12 44 14 44 16 38 18 x 3 = 1 - 13 15 - 17 - 19 -
Lessons Learned • Branch and Bound can speed up the search • Only 25 nodes (linear programs) were evaluated • Other nodes were pruned • Obtaining a good incumbent earlier can be valuable • only 19 nodes would have been evaluated. • Solve linear programs faster, because we start with an excellent or optimal solution • Obtaining better bounds can be valuable. • We sometimes use properties that are obvious to us, such as the fact that integer solutions have integer solution values
Branch and Bound Notation: – z* = optimal integer solution value – Subdivision: a node of the B&B Tree – Incumbent: the best solution on hand – z. I: value of the incumbent – z. LP: value of the LP relaxation of the current node – Children of a node: the two problems created for a node, e. g. , by saying xj = 1 or xj = 0. – LIST: the collection of active (not fathomed) nodes, with no active children. NOTE: z. I z*
Illustrating the definitions The incumbent 1 x 1 = 0 44 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 44 solution has value 42 44 3/7 44 x 3 = 0 43. 75 8 5 44 x 3 = 1 43. 5 9 x 3 = 0 43. 25 10 6 44 3/7 x 2 = 1 44 1/3 7 x 3 = 1 43. 8 11 x 3 = 0 44. 3 12 x 3 = 1 13 - 13 z* = 43 = optimal integer solution value. (We found it later in the search) Incumbent is 0 0 1 1 z. I = 42. It is the optimal solution for the subdivision 4. The z. LP values for each subdivision are next to the nodes.
Illustrating the definitions The incumbent 1 x 1 = 0 44 x 1 = 1 2 3 x 2 = 0 x 2 = 1 x 2 = 0 42 44 solution has value 42 44 3/7 44 x 3 = 0 43. 75 8 5 44 x 3 = 1 43. 5 9 x 3 = 0 43. 25 10 6 44 3/7 x 2 = 1 44 1/3 7 x 3 = 1 43. 8 11 x 3 = 0 44. 3 12 x 3 = 1 13 - 13 The children of node (subdivision) 1 are nodes 2 and 3. The children of node 3 are nodes 6 and 7. LIST = { 8, 9, 10, 11, 12 } = unpruned nodes with no active children
Branch and Bound Algorithm INITIALIZE LIST = {original problem} Incumbent: = z. I = - SELECT: If LIST = , then the Incumbent is optimal if it exists, and the problem is infeasible if no incumbent exists; else, let S be a node (subdivision) from LIST. Let x. LP be the optimal solution to S Let z. LP = its objective value e. g. , S = {1} e. g. , S = {13} 44 3/7 1 - 13 CASE 1. z. LP = - (the LP is infeasible) Remove S from LIST (prune it) Return to SELECT
Branch and Bound Algorithm INITIALIZE SELECT: If LIST = , then the Incumbent is optimal (if it exists), and the problem is infeasible if no incumbent exists; else, let S be a node from LIST. Let x. LP be the optimal solution to S Let z. LP = its objective value CASE 2. - < z. LP z. I. That is, the LP is dominated by the incumbent. Then remove S from LIST (fathom it) Return to SELECT 43 43 14 88 42 e. g. , the incumbent has value 43, and node 14 is selected. z. LP = 43.
Branch and Bound Algorithm INITIALIZE SELECT: If LIST = , then the Incumbent is optimal (if it exists), and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x. LP be the optimal solution to S Let z. LP = its objective value CASE 3. z. I < z. LP and x. LP is integral. That is, the LP solution is integral and dominates the incumbent. e. g. , node 4 was selected, and the solution to the LP was integer-valued. Then Incumbent : = x. LP; z. I : = z. LP Remove S from LIST (fathomed by integrality) Return to SELECT 42 4
Branch and Bound Algorithm INITIALIZE SELECT: If LIST = , then the Incumbent is optimal (if it exists), and the problem is infeasible if no incumbent exists; else, let S be a subdivision from LIST. Let x. LP be the optimal solution to S Let z. LP = its objective value e. g. , select node 3. CASE 4. < and is not integral. There is not enough information to fathom S z. I z. LP x. LP Remove S from LIST Add the children of S to LIST Return to SELECT x 1 = 1 3 x 2 = 0 44 3/7 x 2 = 1 6 List : = List – 3 + {6, 7} 7
Different Selection Rules are Possible • Rule of Thumb 1: Don’t let LIST get too big (the solutions must be stored). So, prefer nodes that are further down in the tree. • Rule of Thumb 2: Pick a node of LIST that is likely to lead to an improved incumbent. Sometimes special heuristics are used to come up with a good incumbent.
Branching One does not have to have the B&B tree be symmetric, and one does not select subtrees by considering variables in order. X 1 X 2 X 3 = . . . 0 =0 =0 X 2 X X 3 =. . . 3= 0 X 1 =1 X 8 = 0 X 3= . . . X 8 = 1 X 3= 1 =1 0 X 3= . . . 3 =0 1 X 3 . . . =1 Choosing how to branch so as to reduce running time is largely “art” and based on experience.
Different Branching Rules are Possible • Branching: determining children for a node. There are many choices. • Rule of thumb 1: if it appears clear that xj = 1 in an optimal solution, it is often good to branch on xj = 0 vs xj = 1. – The hope is that a subdivision with xj = 0 can be pruned. • Rule of thumb 2: branching on important variables is worthwhile
Different Bounding Techniques are Possible • We use the bound obtained by dropping the integrality constraints (LP relaxation). There are other choices. • Key tradeoff for bounds: time to obtain a bound vs quality of the bound. • If one can obtain a bound much quicker, sometimes we would be willing to get a bound that is worse • It usually is worthwhile to get a bound that is better, so long as it doesn’t take too long.
What if the variables are general integer variables? • One can choose children as follows: – child 1: x 1 3 (or xj k) – child 2 x 1 4 (or xj k+1) • How would one choose the variable j and the value k – A common choice would be to take a fractional value from x. LP. e. g. , if x 7 = 5. 62, then we may branch on x 7 5 and x 7 6. – Other choices are also possible.
Summary • Branch and Bound is the standard way of solving IPs to optimality. • There is art to making it work well in practice. • Much of the art is built into state-of-the-art solvers such as CPLEX.
Beyond Linearity
• Linear Programming Assumptions: – Proportionality – Additivity – Divisibility – Certainty
Proportionality In Linear Programming, the contribution of each activity to the value of the objective function Z is proportional to the level of the activity xj as represented by the cjxj term; The contribution of each activity to the left-hand side of each functional constraint is proportional to the level of the activity xj as represented by the term aij. This assumption implies that all the x terms of the linear equations cannot have exponents greater than 1. Note: if there is a term that is a product of different variables, even though the proportionality assumption is satisfied, the additivity assumption is violated. But there are many situations, in which proportionality is not a realistic assumption.
Examples of violation of proportionality assumption: Startup Costs Case 1 - violation occurs as a result of e. g. , startup costs, associated with product 1. E. g. , costs of setting up the production, or distribution of product 1.
Examples of violation of proportionality assumption Interactions between Options: Increasing Marginal Returns Case 2 - slope of the objective function for product 1 keeps increasing as x 1 is increased – there is an increasing marginal return. Economies of scale that sometimes can be achieved at higher levels of production (e. g. , more efficient machinery, discounts for large purchases, etc).
Examples of violation of proportionality assumption: decreasing Case 3 – opposite of case 2; the slope of the objective function for product 1 keeps decreasing as x 1 is increased – there is a decreasing marginal return. E. g. , in order to sell higher volumes of product 1 require a major marketing campaign. Case 3
What to do when proportionality is violated? We cannot use linear programing Non linear approaches To deal with case 1 (fixed charge problem) – mixed integer programming.
Additivity The contribution of all variables to the objective function and to the left-hand side of the functional constraints has to be additive, i. e. , it has to be the sum of the individual contributions of the respective activities – therefore crossproducts of variables are ruled out.
Case 1 – the two activities are complementary in some way that increases the benefits! E. g. , activities to protect biodiversity will help ecotourism.
Case 2 – the two products are competitive in some way that decreases the benefits! E. g. , two activities use the same equipment and that requires setting up costs for going from one product to the other. When additivity assumption violated: realm of non-linear approaches!!!
Certainty The parameters of the model, (coefficients of the objective function and of the functional constraints, and the righ-hand sides of the functional constraints) are assumed to be known constants. Rarely the case – sometimes we use approximations important to perform sensitivity analysis to identify sensitive parameters (the parameters that cannot be changed without changing the value of the objective function). What to do when certainty assumption violated: Stochastic approaches: treat parameters as random variables and provide measures of uncertainty (data analysis)
Divisibility Decision variables in an LP model are allowed to have any values, including noninteger values, that satisfy the functional and nonnegativity constraints. i. e. , activities can be run at fractional levels. When divisibility assumption violated: realm of integer programming!!!
Inputs Computational Problems Problem Outputs Decision problems (e. g. yes or no decision: can it be done and how? ) or Optimization Problems (e. g. , what’s the optimal solution and how? ) Decision Problem Optimization Problem Graph Coloring Set Covering Linear Programming Can we color a map with 4 colors? Can we protect the forest with 10 forest rangers? How to minimize Pulp mill pollution? Optimization Problem Knapsack What Renewable Energy Investments should the Danish Green Power Company pick to maximize profit?
Decision/Optimization Problems Linear Non-linear Deterministic Single-Agent Individual Perspective Stochastic Social Perspective Multi-Agent Solution Methods Exact or Complete Network Flow Linear/Mixed/ Integer/Quadratic (e. g. . Shortest path) Programming Non-Linear Programming Dynamic Programming Stochastic Programming Branch and Bound Others… Incomplete, Sampling, Simulation Markov Chain Approximation Algorithms Simulated annealing Monte Carlo Methods Agent Based Simulation Local Search Genetic algorithms Computable General Equilibrium Sampling Based Methods Meta-heuristic Methods Others… Particle Swarm Optimization
- Slides: 82