Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Integration of Artificial Intelligence and Operations Research Techniques for Combinatorial Problems Carla P. Gomes Cornell University

Similar presentations


Presentation on theme: "1 Integration of Artificial Intelligence and Operations Research Techniques for Combinatorial Problems Carla P. Gomes Cornell University"— Presentation transcript:

1

2 1 Integration of Artificial Intelligence and Operations Research Techniques for Combinatorial Problems Carla P. Gomes Cornell University gomes@cs.cornell.edu Ken McAloon and Carol Tretkoff ILOG {mcaloon,tretkoff}@ilog.com

3 2 AI, OR, and CS AI OR CS

4 3 Integration of Artificial Intelligence & Operations Research Techniques AI Representations Constraint Languages Logic Formalisms Object-Oriented Prog. Bayesian Nets Rule Based Systems Tools Constraint Propagation Systematic Search Stochastic Search Pros / Cons Rich Representations Computational Complexity OR Representations Mathematical Modeling Languages Linear & Non-linear (In)Equalities Tools Linear Programming Mixed-Integer Prog. Non-linear Models Pros / Cons More Tractable (LP) Primarily Complete Info Limited Representations Combinatorial Problems Planning Scheduling THE CHALLENGE AI OR UNIFY APPROACHES TO: SCALE UP SOLUTIONS HANDLE UNCERTAINTY ANALYZE COMPLEXITY (phase transition) FRAGILE EXPLOIT PROBLEM STRUCTURE INCREASE ROBUSTNESS

5 4 Outline I. Short Overview of OR II.Disjunctive Programming and Hybrid Solvers III. Exploiting Randomization to Solve Hard Combinatorial Problems IV.Conclusions

6 5 I. Short OR Overview

7 6 Outline for Linear Programming and Integer Programming Standard Form of LP and a Simple Example Geometric Interpretation of LP Complexity issues MIP Example: Fast Food Example: Capacitated Warehouse Example: 911

8 7 Outline 1. Short Overview of OR 2.Constraint Programming 3.Cooperating Solvers 4. Disjunctive Programming 5. Exploiting Randomization to Solve Hard Combinatorial Problems 6.Conclusions

9 8 Optimization Technology Evolution Dispatch Rules 1960197019801990 SA, GA, Tabu CPM PERT Constraint-based Scheduling 19981947 Primal Simplex LP Parallel LP/MIP Concurrent Scheduling Interior Point Constraint Propagation Large IPs MIP Shifting Bottleneck First CP Systems Cooperating Solvers (LP/CP) Global constraints Barrier LP Barrier Crossover Dual Simplex Implementation Dual Simplex

10 9 1. Short OR Overview

11 10 Outline for Linear Programming and Integer Programming Standard Form of LP and a Simple Example Geometric Interpretation of LP Complexity issues MIP Example: Fast Food Example: Capacitated Warehouse Example: 911

12 11 An LP Story A factory can produce n products from m parts For product j it needs a ij units of part i There are b i units of part i available Each unit of product j sold earns c j Amount of each product to make is unknown x j  0 Each part i determines a constraint a i1 x 1 + … + a in x n  b i Obvious solution: do nothing Better: maximize c 1 x 1 + … + c n x n

13 12 Standard Forms of LP A linear program (LP) in standard form (Dantzig 1947) max c T x subject to Ax  b x  0 Input data: c (n x 1), A (m x n), b (m x 1). Variables: x (n x 1)

14 13 Standard Forms of LP // The objective function max c 1 x 1 + … + c n x n // The constraints subject to a 11 x 1 + … + a 1n x n  b 1... a m1 x 1 + … + a mn x n  b m x 1  0, …, x n  0

15 14 Standard Forms of LP In OR emphasis is on optimality Solution means optimal solution Feasible solution means solution in the ordinary sense

16 15 Standard Forms of LP Interpretation of standard form: x j = amount of product j to make c j = revenue per unit product j b i = available amount of component i a ij = units of i used per unit of j produced The constraints “say”:  a ij x j =  units of i used by j = units of i used  b i

17 16 What are models? A model is a data-independent abstraction of a problem A model lets you write down the mathematical representation of a model independently of the data Project ModelData One Problem Instance

18 17 Products Could be Jewelry Products: Rings and Earrings Components: Gold and Diamonds One ring requires 3 units of Gold, and 1 Diamond One set of earrings requires 2 units of Gold, and 2 Diamonds Total Gold and Diamonds are limited Profit is different for Rings than for Earrings Products = { rings, earrings }; Components = { Gold, Diamonds }; demand = [ [3, 1], [2, 2] ]; stock = [150, 180]; profit = [60, 40];

19 18 Products: Ammonium Gas = NH 3 Ammonium Chloride = NH 4 Cl Components: Nitrogen, Hydrogen, Chlorine One unit of Gas requires 1 unit of Nitrogen, 3 units Hydrogen One unit of Chloride requires 1 unit of Nitrogen, 4 units Hydrogen, and 1 unit of Chlorine Total Nitrogen, Hydrogen, Chlorine is limited Profit is different for Gas than Chloride Products Could be Chemicals Products = { gas, chloride }; Components = { nitrogen, hydrogen, chlorine }; demand = [ [1, 3, 0], [1, 4, 1] ]; stock = [50, 180, 40]; profit = [30, 40];

20 19 The Problems Have One Model enum Products...; enum Components...; float+ demand[Products, Components] =...; float+ profit[Products] =...; float+ stock[Components] =...; var float+ production[Products]; maximize sum (p in Products) profit[p] * production[p] subject to { forall (c in Components) sum (p in Products) demand[p, c] * production[p] <= stock[c] }; Data Decision Variables Objective Function Constraints

21 20 OR Modeling Systems OPL AMPL 2LP AIMMS GAMS MPL ILOG Planner etc

22 21 The Dual The dual linear program (von Neumann 1947); min y T b subject to y T A  c y  0 Variables y (m x 1) Awesome Symmetry - The dual of the dual is the primal

23 22 Rows and Columns Exchanged min b 1 y 1 + … + b m y n subject to a 11 y 1 + … + a m1 y m  c 1... a 1n y 1 + … + a mn y m  c n y 1  0, …, y m  0

24 23 Duality Theorem Theorem:min y T b = max c T x Consequence: This turns optimality problem into a feasibility problem in x and y Ax  b x  0 y T A  c T y  0 y T b = c T x Consequence: Enumeration not needed to verify optimality

25 24 Duality Theorem Sensitivity Analysis Consequence: The solution values y* for the y variables yield the Lagrange multipliers of the primal constraints which measure the rate of change of the objective function with respect to the right hand side bounds b y i * =  Z /  b i where Z is the optimum Reference: McAloon and Tretkoff [1996] Wiley

26 Duality Two different views of the same phenomenon Point vs Set Arc vs Node Momentum vs Position Vector vs Hyperplane Landlord vs Renter

27 26 Simplex and Barrier The simplex algorithm turns the feasibility problem into a iterative repair process with a powerful evaluation function The barrier method transforms the LP into a system of differential equations that describe a vector field of flow on the polytope

28 27 Geometric Interpretation of LP X Y Max: X subject to: -X + Y <= 4 X + 4*y <= 36 2*X + y <= 23 X + Y >= 4 Y >= X + 10 (0,4) (4,0)(8,0) (10,3) (4,8) Barrier Simplex

29 28 Complexity of Linear Programming Simplex Method Worst-case --- exponential (Klee and Minty 72) Practice --- good performance Ellipsoid Method Khachian’s Ellipsoid Method Worst-case --- polynomial Practice --- poor performance

30 29 Complexity of Linear Programming Interior Point Methods or Barrier Methods “Karmarkar’s” (and variants) Method Worst-case --- polynomial Practice --- good performance

31 30 Complexity of Linear Programming Despite its worst case exponential time complexity, the simplex method is usually the method of choice since it provides tools for sensitivity analysis and its performance is very competitive in practice. Which method performs best is problem dependent.

32 31 Success Stories Industrial Planning Given current resources, decide what to produce in what quantity Supply Chain Management Multiperiod planning models that link flow from one period to the next Network Flow How best to route goods across a network

33 32 Assumptions of Linear Programming Linearity when violated: ( xy = 50) Nonlinear programming Continuity when violated: (x integral) (Mixed) Integer programming

34 33 Assumptions of Linear Programming - continued No Disjunctive Constraints when violated: (x  100 or x  0) Disjunctive programming Additional 0-1 variables and Big M constraints Certainty when violated: (cost c is a random variable) Stochastic programming

35 34 Search and MIP In order to deal with variables that must have integer values in the solution, a search must be performed. Mixed Integer Programming problems are combinatorial optimization problems and are NP hard feasibility is NP-Complete verifying optimality is co-NP-Complete

36 35 MIP and Combinatorial Optimization These problems have been attacked by both the AI and OR communities. In AI, these problems are attacked as CSPs or as Planning Problems. In OR, they are done as MIPs and use linear relaxation to help guide the search. The overriding idea in each case is to limit search.

37 36 Integer Program: All Integer Points in Region

38 37 Cut to Create Integer Vertex Integer Vertex

39 38 Example - Fast Food Question: Is it possible for a male college student to eat at the local fast food outlet and still meet the requirements of a balanced diet? If so, what is the least he can do it for?

40 39 Nutritional Requirements At least 100% of vitamins A, C, B 1, B 2, niacin, calcium and iron At least 55 grams of protein At most 3000 milligrams of sodium At most 30% of the calories can come from fat Nutritional information is available from fast food outlets

41 40 College Student’s Requirements At least 2000 calories a day No more than 3 servings of any one food Milk only with cereal and not as a stand-alone drink

42 41 Fast Food - MIP Model We will have variables Serv k to represent the number of servings of item k in the plan. The variable Serv k will have to take an integer value for the solution to be valid. The objective function: Z for cost

43 42 Fast Food - MIP Model Let food k,j represent the percent of RDA of nutrient j in a serving of item k The for each nutrient j, we have a constraint  food k,j Serv k  100 k

44 43 Fast Food - MIP Model Let sodium k represent the amount of salt in a serving of item k For salt we have the constraint  sodium k Serv k  3000 k Similarly for fat

45 44 Fast Food - MIP Model Let cost k represent the cost of a serving of item k For the objective function we have the defining constraint  cost k Serv k = Z k

46 45 Fast Food - Solution With a MIP solver and a way to input these constraints we ask for a solution that makes the variables Serv k integral and which minimizes Z

47 46 MIP Solution Technique What the MIP solver does is to carry out a branch and bound search guided by the linear relaxation –the solution to the problem with the integrality requirements relaxed Initialize the global variable best_so_far to 1000 (or something else very big).

48 47 At a Node Compute a solution to the linear relaxation which minimizes Z yielding z*. Prune this node if z*  best_so_far, If all values of Serv k are integral, this is a solution. Set best_so_far = z*. Save this node.

49 48 Branching at a node Choose a variable Serv k whose value s* is not integral. Typical heuristic: most non-integral variable Create two child nodes, add Serv k  floor(s*) add Serv k  ceil(s*)

50 49 Good News The linear relaxation can prune nodes before all variables Serv k are forced to be integral. Surprisingly often a node “high in the tree” will turn up with all relevant variables integer. Here’s why A solution to the LP is at a vertex A vertex is defined as the simultaneous solution of the equality form of n linearly independent constraints Many of these constraints are integer bounding constraints yielding X = integer

51 50 Arboreally Speaking Breadth first search is often preferred - it visits the “smallest” number of nodes needed to find and verify the optimal solution - analogous to A* If the linear relaxation is tight | z* linear - z* integral | is relatively small then z* linear is an excellent evaluation function

52 51 Answer - Fast Food Total cost is 8.71 Buy 3 burgers Buy 2 fries Buy 3 honeys Buy 1 yogurt...

53 52 Example - Fixed Cost Warehouses must be rented in order to supply stores and we must decide which to use For each store j we know its monthly demand d j For each warehouse i we know its capacity k i For each warehouse i we know the fixed cost to run it each month fc i For each pair i, j we know the monthly cost c ij of supplying j from i

54 53 Example - Fixed Cost X ij is the fraction of store j’s demand met by i X ij  1 Y i is a “fuzzy” boolean it will be 1 if the warehouse is rented 0 if it is not rented Y i  1

55 54 Example - Fixed Cost Each store must be supplied  X ij = 1 i Warehouse capacity can not be exceeded  d j X ij  k i j Tighter  d j X ij  k i Y i j

56 55 Example - Fixed Cost Objective function  fc i Y i +   c ij X ij This yields a MIP with 0-1 variables Y i

57 56 Branch and Cut: An Enhanced Solution Method Cuts - redundant constraints for the MIP model but not redundant for the linear relaxation X ij  Y i Add at a node if violated by solution to linear relaxation Powerful method - will solve the Imperial College OR lib CW problems very easily

58 57 Example - Call 911 PCTs answer the phone 24 hours a day, 7 days a week. It is known how many PCTs should be on duty during each of the 168 hours during the week in order to assure the necessary response rate. Workers can arrive at any hour and they work for 8 hours except for a one hour break after 4 hours.

59 58 Example - Call 911 Each PCT has a work week of 5 days followed by 2 days off. Want to meet the demand with minimal or near-minimal number of PCTs. So need to determine how many PCTs start their work week at each hour h of the week

60 59 Modeling 911 A continuous variable Pct h will represent the number of workers who start their work week at hour h, 0  h < 168.

61 60 Modeling 911 A continuous variable Z will represent the objective function  Pct h = Z h There will be a constraint for each hour h to assert that there are enough workers on duty at that time. The rhs of this constraint is b h = the number of workers needed.

62 61 Modeling 911 For this constraint we need to represent the number of workers who are on duty at time h Certainly, those who start the week at time h are here, as are those who started the week at time h - 1 And so on back to time h - 7 with the exception of those who started at time h - 4 and who are now on break.

63 62 Modeling 911 This also applies to the previous 4 days. When the smoke clears, we sum over the workers w who are working at time h  Pct w  b h w

64 63 Call 911 solved with progressive roundoff int b[168] = { // New York City 911 30,24,18,15,14,14,15,25,34,36,38,40, 41,43,46,57,57,59,61,59,55,50,45,38, 32,25,20,17,15,13,17,25,32,35,38,40, 42,43,47,58,57,57,59,57,55,52,47,41, 33,25,20,17,15,13,15,25,32,33,37,39, 42,43,47,57,56,57,57,56,53,50,47,41, 34,27,22,19,16,15,16,25,31,35,37,40, 44,45,48,57,57,56,58,56,53,53,46,41, 34,28,23,19,16,15,17,25,33,37,39,42, 45,47,51,59,58,60,61,61,57,56,57,55, 48,41,35,30,26,20,18,22,26,32,42,46, 49,53,54,56,56,56,59,59,57,57,56,56, 52,46,41,34,29,23,18,19,25,31,36,41, 46,50,52,53,52,53,54,53,50,49,45,40 };

65 64 Modeling 911 Subject to these constraint we want to find a solution which makes the Pct h integer and which makes Z small. The naïve approach is to compute the minimal linear solution and to round up all the values of Pct h to the nearest integer. The linear relaxation yields Z = 204.67 “fuzzy workers” but rounding yields a mediocre integral solution of 259 workers.

66 65 Modeling 911 For this and many other applications, heuristics can be used to develop good solutions Progressive Roundoff - solve the linear relaxation, round up first variable and freeze it, re-solve etc.

67 66 Solving the Integer Problem main() // Planner Code { IlcInitFloat(); IlcManager m(IlcNoEdit); IlcLinOpt simplex(m); IlcFloatVarArray Pct(m,168,0,1000); IlcFloatArray coeffs(m,168); int i,j,k,h,n;

68 67 Solving the Integer Problem //  Pct w  b h w for(h=0;h<168;h++) { // for each hour of 168 in week for(j=0;j<168;j++) coeffs[j] = 0; for(k=0;k<5;k++) // for each of 5 days for(j=k*24;j= b[h]); }

69 68 Solving the Integer Linear Problem IlcFloatVar Z = IlcSum(Pct);// Objective simplex.setObjMin(Z); for(i=0;i<168;i++) { //Progressive roundoff n =ceil(simplex.getCurrentValue(Pct[i])); // Fix variable and re-optimize simplex.add(Pct[i] == n); } m.out() << “Number of Pcts needed is “ << Z << endl; m.end(); }

70 69 Solution This code finds a solution with 208 workers in a couple of seconds. The optimum is 207. The heuristic works well in part because if there were no lunch breaks, it would find the guaranteed optimal solution [Bartholdi,Ratliffe,Orlin]

71 70 2. Constraint Programming

72 LP/MIP is Beautiful, except when Variable domain information is important to the search strategy especially critical in scheduling The problem variables range over symbolic entities and there are lots of symmetries timetabling The MIP representation can be too verbose or awkward configuration There are just too many constraints ú e.g. vehicle routing

73 72 Mathematical Basis of Constraint Programming (CP) The Constraint Satisfaction Problem: Suppose a finite set of variables is given and with each variable is associated a non-empty finite domain. A constraint on k variables X 1,…,X k is a relation R(X 1,…,X k )  D 1 x …x D k. A constraint satisfaction problem (CSP) is given by a finite set of constraints. A solution to a CSP is an assignment of values to all the variables so that the constraints are satisfied.

74 73 Domain Reduction In CP, each constraint of a CSP is considered as a subproblem and techniques are developed for handling frequently encountered constraints. With each constraint is associated a domain reduction algorithm which reduces the domains of the variables that occur in the constraint. Accelerates convergence toward a solution Detects infeasibility

75 74 Constraint Propagation The other key issue is communication among the constraints or subproblems. The basic method used is called constraint propagation which links the constraints through their shared variables. The important thing about this setup is that it is very modular and independent of the particular structure of the individual constraints.

76 Monsieur Jordan Phenomenon Like prose, you have been doing constraint propagation all your life. –Crossword puzzles Incomplete and so backtracking is needed –NY Times Sunday Crossword –Optical Illusions Origin: Vision analysis (Marr,Waltz et al)

77 76 Strengths of Constraint Programming Constraint Programming provides a rich Rich Rich representation language. CP variables naturally represent problem entities and the constraints do not have to be translated into a specific problem format such as MIP or SAT. Opportunity to choose a good heuristic for the solution strategy.

78 77 Which Method for Which App? Product Mix LP Production Planning MIP Distribution Planning MIP Scheduling Constraint Based Scheduling Dispatching CP Local search Configuration CP Technology Application Linear => Disjunctive Constraints Strategic => Operational Optimization

79 78 3. Cooperating Solvers

80 First Stop CP/CP

81 80 Mother of All Examples - N Queens Do we think in terms of queens Where do we place this queen ? Do we think in terms of squares Will this square contain a queen ? These views are dual to one other

82 The Primal View For each queen assign it a square Place this queen in this square ?

83 The Dual View For each square decide whether it will have a queen Place a queen in this square ?

84 83 The Primal Model In which row do we place q[j] - the queen in column j The constraints q[i] != q[j] q[i] - q[j] != i - j q[i] - q[j] != j - i Note: no alldifferent constraint

85 84 Yet Another duality - rows vs columns In which column do we place qq[i] the queen in row i The constraints are the same qq[i] != qq[j] qq[i] - qq[j] != i - j qq[i] - qq[j] != j - i

86 85 The Relationship Can link them as inverse functions: q[qq[i]] = i qq[q[j]] = j The constraint propagation i leaves domain of q[j] iff j leaves domain of qq[i]

87 86 In this primal/dual model Apply first-fail to q[i] Lo and behold one-third fewer fails (Example from Jean Jordan’s thesis)

88 87

89 88 Q Q X X XXXXX X X X X X X X X

90 89 Q Q X X XXXXX X X X X X X X X Q X X X X XXX X X X

91 90 Q Q X X XXXXX X X X X X X X X Q X X X X XXX X X X Q XX X X

92 91 So … The cooperating primal-dual formulation “captured” the generalized arc consistency of the alldifferent constraint The arc consistency of this global constraint is non- trivial to maintain Network flow algorithms flow goes from values to variables each variable has unit demand and capacity

93 92 Remarks An IP model will encode the first dual solution Will this square contain a queen x[i][j] = 0 or x[i][j] = 1 A disaster beyond 30 queens network structure on rows and columns lost Another example - sports scheduling

94 93 Constraints and Indices In IP symbols are represented by indices as opposed to values for variables. nurses, teams Paris-St-Germain plays Manchester United on day k x ijk {0-1} to represent “team i plays team j on day k” You can’t put symmetry breaking and other constraints on indices.

95 Second Stop CP/IP

96 95 CP Is Powerful, But …. Sometimes, inconsistencies can be overlooked X - Y  12 X + Y  10 X in [1..20] Y in [1..20] Domain reduction on each constraint and constraint propagation will not reduce the domains although the system has no linear solution but an LP solver would spot this

97 96 2 Dimensional Bin Packing Application for the Automobile Industry built by Greg Glockner

98 97 2 Dimensional Bin Packing The problem here is to put as many small rectangles in a big rectangle with 90 degree rotation allowed. The actual application involves circuit boards There are two complete models, one a CP model and the other an IP model. The CP model directs the search The LP relaxation prunes the search space by detecting infeasible nodes

99 98 2-D Bin Packing Arrange circuit boards onto raw material Boards may be rotated Use same number of each board Objective: minimize scrap Classic combinatorial optimization problem

100 99 Solving 2-D Bin Packing Use CP to generate partial solutions (nodes) Restrict placement to reduce fragmentation of blank space Use tight LP to test feasibility If any partial solution is infeasible in the LP, prune the tree immediately CP constraints reduce the tree width LP allows us to prune quickly

101 100 2 Dimensional Bin Packing As the search tree is traversed, the two models are in sync. Note that the variables used in the 2 models are disjoint The two models are dual to each other The IP sees the model from the point of view of the board, the large rectangle The CP sees the model from the point of view of the small rectangles Solutions are obtained in minutes

102 101 2DBP: Basic CP Formulation Let (x i, y i ) be the location and (w i, h i ) be the dimensions of the i th tile Basic constraints: –Disjunctive constraints to prevent overlapping tiles x i + w i  x j  y i + h i  y j  x j + w j  x i  y j + h j  y i –Constraints to count the number of each tile type Tile-oriented formulation

103 102 2DBP: Basic IP Formulation Let x ijnt = 1 if tile n of type t is in position (i, j) The constraints are: tnjix jix tnx ijnt hjjwiijjii tnji ntji ji ijnt tt,,,}1,0{,1,1,,, :,,,,       Grid-oriented formulation

104 103 2DBP: LP Issues The LP is large The LP exhibits significant primal degeneracy The LP exhibits significant dual degeneracy

105 104 2DBP: LP Issues The simplex algorithm cannot solve the LP There is no way for a MIP solver to solve the IP as such The barrier method can solve the LP

106 105 2DBP: Summary CP as master problem –Orders tiles –Places tiles by position, then type –Selects tile type by frequency to scatter tiles throughout the bin –Uses a one-ply lookahead constraint to limit the position of following tile LP relaxation prunes the CP search space –Checks whether the partial solution will lead to an infeasible instance Use idiomatic formulations for CP and IP

107 106 2DBP: Remarks The CP fixes significant numbers of variables at each node The LP pre-processor greatly simplifies the LP Therefore, the lack of incrementality of the barrier method does not cost us

108 107 2DBP: Cooperative Algorithm Demo

109 108 Last Stop Constraint Programming and Local Search cooperation Another example of duality in action

110 109 CP/LS Parallel machines with set-up times Ready times Dues dates Splittable jobs Rogue machines Objectives meet due dates minimize setup costs

111 110 Two Phase Cooperation Phase I - the Primal (Work on first objective) Configure and schedule the jobs –Use constraint based scheduling

112 111 Two Phase Cooperation Machines morph into trucks

113 112 Two Phase Cooperation Phase 2 - the Dual (Work on second objective) Schedule the trucks –Use Lin, Lin-Kernighan, tabu etc

114 113 Parallel Machines: Cooperative Algorithm Demo

115 114 IC Park Example Hoist Scheduling (Rodosek and Wallace) The original model is an IP The CP model is “the same” CP guides search, LP relaxation and CP share pruning duties No apparent duality

116 115 Remarks One can get great benefit with CP/IP algorithms CP/CP algorithms and CP/LS algorithms IP/LS is just around the corner IP/IP cooperation is hard because one can’t formulate truly dual views –either simply not there –or too verbose counterexamples welcome

117 116 4. DISJUNCTIVE PROGRAMMING

118 117 Disjunctive Linear Programming An extension of Mixed Integer Programming A union of polyhedral sets (feasible regions) is called a disjunctive set.

119 118 Disjunctive Set

120 119 Disjunctive Linear Programming The problem of determining whether the intersection of a family of disjunctive sets is non-empty is called the disjunctive linear programming problem or simply disjunctive programming problem. The solution set of the disjunctive programming problem is  F ij i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com/9/2585356/slides/slide_120.jpg", "name": "119 Disjunctive Linear Programming The problem of determining whether the intersection of a family of disjunctive sets is non-empty is called the disjunctive linear programming problem or simply disjunctive programming problem.", "description": "The solution set of the disjunctive programming problem is  F ij i

121 120 Disjunctive Linear Programming Examples Semi-continuous variables either X >= 100 or X == 0 Rather than X <= BigM*Y, X >=100*Y, Y a 0-1 variable

122 121 Solution Set Inside Initial Region

123 122 Disjunctive Linear Programming Examples - continued Bollapragada, Ghattas and Hooker Truss structure design problem Branches directly on alternatives dictated by Hooke’s Law Wyatt Disjunctive programming and mean absolute deviation models (MAD) for portfolio optimization Extends Bender’s decomposition to disjunctive linear programs

124 123 Disjunctive Linear Programming continued Balas, Cornuejols and Ceria Generating cuts for disjunctive programming problems. McAloon and Tretkoff Basic mathematical results: Optimization and Computational Logic, Wiley

125 124 Disjunctive Linear Programming continued Dealing with the disjunctive part requires search. This requires an engine which is not available in MIP packages Also the linear relaxation is not as tight and the evaluation function is not as faithful The solution is to use a CSP solver and an LP based solver in tandem - cooperating solvers Beringer and DeBacker for MIP

126 125 To Keep It Simple GERALD + DONALD = ROBERT An AI classic Newell and Simon Assignment problem + 1 constraint Surprisingly hard for MIP solvers CPLEX MIP takes 1 minute and 29048 nodes (on Sun Enterprise) to find a feasible integer solution

127 126 The Disjunctive Program One constraint for the equation 100000 G + … + D = 100000 R + … + T For each variable X among G,…,T X = 0 or X = 1 or … or X = 9 For each pair X, Y X  Y-1 or Y  X-1

128 127 Solution Set: SOME of the Integer Points in the Region

129 128 The Twin Variables for Cooperating Solvers Integer variables for the letters 0  g, e, r, a, l, d, o, n, b, t  9 With continuous doppelgangers 0  G, E, R, A, L, D, O, N, B, T  9

130 129 The Variables One multi-variable constraint on the continuous doppelgangers posted to an LP solver and to the CSP solver 100000 G + 10000 E + 1000 R + … + D + 100000 D + 10000 O + 1000 N + … + D = 100000 R + 10000 O + 1000 B + … + T

131 130 The Variables One CSP constraint on the integer variables posted to a discrete constraint propagation engine AllDifferent(g, e, r, a, l, d, r, n, b, t )

132 131 The Search Bounding information from the discrete variables is passed to the continuous doppelgangers and conversely The branching strategy is guided by the linear relaxation on the continuous variables if there is a non-integral variable X, branch on it X  floor(X*) or X  ceil(X*)

133 132 The Search If the AllDifferent constraint, the initial bounding constraints and the bounding constraints from branching detect a contradiction on the discrete variables, both sides backtrack If the linear relaxation is made infeasible by the bounding constraints that come from the discrete computation or from branching, both sides backtrack

134 133 The Search New wrinkle The solution to the linear relaxation might have all variables integral - but the AllDifferent constraint can be violated by this set of values In this case, branch to keep them apart either X  Y - 1 or Y  X - 1

135 134 The Variables void main() { IlcInitFloat(); IlcManager m(IlcNoEdit); IlcIntVar D(m, 1, 9), O(m, 0, 9), N(m, 0, 9), A(m, 0, 9), L(m, 0, 9), G(m, 1, 9), E(m, 0, 9), R(m, 1, 9), B(m, 0, 9), T(m, 0, 9); IlcIntVarArray vars (m, 10, D, O, N, A, L, G, E, R, B, T); // Continued on next slide

136 135 The Constraints m.add(IlcAllDiff(vars,IlcWhenValue)); IlcLinOpt simplex(m); simplex.add( 100000*R + 10000*O + 1000*B + 100*E + 10*R + T == 100000*G + 10000*E + 1000*R + 100*A + 10*L + D + 100000*D + 10000*O + 1000*N + 100*A + 10*L + D, IlcTrue // Post to Solver as well );

137 136 The Search for solutions m.add(Generate(m,simplex,vars)); // Search strategy if (m.nextSolution()) { // Find a solution m.out() << " solution found " << endl;; } m.printInformation(); m.end(); }

138 137 Branch if a variable is non- integer ILCGOAL2(Generate, IlcSimplex, simplex, IlcIntVarArray, vars) { IlcInt varIndex = MostNotInteger(vars, simplex); if (varIndex >= 0) // There is a non-integer variable return IlcAnd(IlcTryUpwardFirst(vars[varIndex], simplex), this);

139 138 Is integer relaxation a solution ? IlcManager m = getManager(); if(m.solve(TestIntegerRelaxation(m,simplex))) return 0;

140 139 Find two variables with same value IlcInt j; for(i=0;i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.com/9/2585356/slides/slide_140.jpg", "name": "139 Find two variables with same value IlcInt j; for(i=0;i

141 140 Branch to push them apart // j and i are the indices of two variables with same current value return IlcAnd( IlcOr( Smaller(m,vars[i],vars[j],simplex), Smaller(m,vars[j],vars[i],simplex)), this// Recursion ); }

142 141 Pushing two variables apart ILCGOAL3(Smaller,IlcIntVar,x,IlcIntVar,y,IlcSimplex,simplex) { simplex.add(x <= y-1,IlcTrue); return 0; }

143 142 Testing the integer relaxation ILCGOAL1(TestIntegerRelaxation, IlcSimplex, simplex) { simplex.trySolution(); return 0; }

144 143 Results ILOG Solver/Planner finds a solution in 6 nodes (.29 seconds on laptop) Straightforward ILOG Solver finds a solution in 8024 nodes (1.8 seconds on a laptop) Again, CPLEX MIP takes 1 minute and 29048 nodes (on Sun Enterprise) to find a feasible integer solution

145 144 Example: The Dutch Trains Scheduling intercity trains Amsterdam,Rotterdam,Roosendaal,Vlissengen Without coupling constraints, multi-commodity integer flow problem With coupling constraints, a DLP with an integer relaxation Additional logic handled directly in 2LP with CPLEX Disjunctive Programming and Cooperating Solvers, CSTS 98 (Kluwer, edited by D. Woodruff)

146 Conclusions CP and MIP are powerful techniques that can solve many combinatorial problems Each has preferred formulations Can get even greater benefits when combining CP and IP algorithms

147 146 Recent and Current Work Beaumont Beringer, DeBacker Balas, Ceria, Cornuejols. Wallace, Rodosek, Schrimpf Heipke, Colombani Bockmayr McAloon, Tretkoff, Wetzel

148 147 III. Exploiting Randomization to Solve Hard Combinatorial Problems

149 148 Background Combinatorial search methods often exhibit a remarkable variability in performance. It is common to observe significant differences between: - different heuristics - same heuristic on different instances - different runs of same heuristic with different seeds (stochastic methods)

150 149 Main Claim One can take advantage of the extreme variability of combinatorial search methods: One can improve the performance of a deterministic complete method, by introducing a stochastic element, while maintaining completeness. We’ll explain WHY that is the case.

151 150 A Structured Benchmark Domain for Studying the Distributions of Search Methods Stochasticity in Search Procedures Intriguing Properties of Complete Backtrack Style Algorithms Consequences for Algorithm Design - Rapid Randomized Restarts Portfolio of Algorithms

152 151 Structured Benchmark Domain

153 152 Study of local and systematic search methods has been driven by: Random instance distributions (Hogg et al. 96). Limitation: lack of structure that characterizes realistic problems; Highly structured problems (Fujita at al. 93). Limitation: “too much” structure. We propose a benchmark domain that bridges the gap between purely random instances and highly structured problems. Background Gomes and Selman 1997 - Proc. AAAI-97

154 153 Defn.: a pair (Q, *) where Q is a set, and * is a binary operation on Q such that a * x = b ; y * a = b are uniquely solvable for every pair of elements a,b in Q. The multiplication table of its binary operation defines a latin square (i.e., each element of Q appears exactly once in each row/column). Example: Quasigroup of order 4 Quasigroups

155 154 Given a partial latin square, can it be completed? Example: Quasigroup Completion Problem (QCP)

156 155 Quasigroup Completion Problem A Framework for Studying Search NP-Complete (Colbourn 1983, 1984; Anderson 1985). Has a structure not found in random instances. Leads to interesting search problems when structure is perturbed. The study of this problem led us to identify the unusual distributions of combinatorial search (Gomes, Selman & Crato --- CP97)

157 156 Aside: Applications of Quasigroups Design of statistical experiments eliminating data dependencies Scheduling/Timetabling (Anderson 1992) completing a schedule given a set of pre-defined events Automated theorem proving (Fujita et al. 1993) existence vs. non-existence of quasigroups with intricate mathematical properties

158 157 Example: Scheduling of Drug Experiment Given 5 different drugs, test the effects of the different medications on 5 different subjects over different days of the week. Use constraint: No two people get same brand on the same day (eliminate bias for day of the week).

159 158 Quasigroup Completion SUBJECT DAY Mon. Tues. Wed. Thurs. Fri. Tim Sue Frank Teresa Todd Exhedrin Tylenol Aleve Bayer Exhedrin Advil Aleve Bayer Exhedrin Advil Tylenol Advil Bayer Exhedrin Advil Tylenol Aleve Advil Exhedrin Advil Tylenol Aleve Bayer Advil Tylenol Aleve Bayer Exhedrin (*) Pre-assigned

160 159 QCP has a natural formulation as a Constraint Satisfaction Problem variable for each NxN entry constraints capture row/column requirement variable assignments capture pre- assigned values

161 160 How does the difficulty of QCP vary with the fraction of pre-assignment?

162 161 Fraction of pre-assignment Median number of backtracks (log) Overconstrained area Underconstrained area Critically constrained area

163 162 Complexity Graph shows (up to order 20): curve peaks around 42% of pre-assignment --- critically constrained area. critically constrained area. under-constrained over- constrained under-constrained and over- constrained areas are easier.

164 163 Directly related to the peak in computational difficulty is the so- called phase transition graph for the QCP problem.

165 164 Fraction of pre-assignment Fraction of Unsolved cases Almost all unsolvable area Almost all solvable area Phase transition area

166 165 Phase Transition threshold phenomenon from almost all solvable to almost all unsolvable QCP Phase Transition --- threshold phenomenon from almost all solvable to almost all unsolvable --- occurs around 42% of preassignment. It’s called a phase transition because of the close relation to state transition phenomena studied in physics, such as the melting of a solid into a liquid.

167 166 Exploiting Structure

168 167 Forward Checking Arc Consistency on binary constraints Exploiting Structure in QCP

169 168 Arc Consistency on Binary Constraints Further Exploiting Structure in QCP Shaw, Stergiou and Walsh - ECAI98 General Arc Consistency on all different constraints

170 169 Enforcing General Arc Consistency on All Different Constraints Beautiful example of integration of AI/OR techniques for a well defined sub-problem Propagation uses Maximum Matching problem (particular case of Network Flow problems which have polynomial time complexity) Regin - AAAI94

171 170 Further Exploiting Structure in QCP By enforcing general arc consistency on all different constraints problems up to order 50 could be solved! Shaw, Stergiou and Walsh - ECAI98 Regin - AAAI94

172 171 Stochasticity in Search Procedures

173 172 Background Stochastic strategies have been very successful in the area of local search. Limitation: inherent incomplete nature of local search methods. We want to explore the addition of a stochastic element to a systematic search procedure without losing completeness.

174 173 We introduce stochasticity in a backtrack search method by randomly breaking ties in variable and/or value selection. Compare with standard lexicographic tie-breaking.

175 174 Randomized Strategies

176 175

177 176

178 177

179 178 Lesson: Randomized tie-breaking can improve performance over a purely deterministic strategy. Next: But we can obtain a more dramatic advantage from randomization...

180 179 Cost Distributions Key Properties: I Erratic behavior of mean. II Distributions have “heavy tails”.

181 180 Median = 1! sample mean number of runs 3500! 500 2000

182 181 1

183 182 75%<=30 Number backtracks Proportion of cases Solved 5%>100000

184 183 Heavy-Tailed Distributions … infinite variance … infinite mean Introduced by Pareto in the 1920’s --- “probabilistic curiosity.” Mandelbrot established the use of heavy-tailed distributions to model real-world fractal phenomena. Examples: stock-market, earth- quakes, weather,...

185 184 Decay of Distributions Standard --- Exponential Decay e.g. Normal: Heavy-Tailed --- Power Law Decay e.g. Pareto-Levy:

186 185 Standard Distribution (finite mean & variance) Power Law Decay Exponential Decay

187 186 Normal, Cauchy, and Levy Normal - Exponential Decay Cauchy -Power law Decay Levy -Power law Decay

188 187 Tail Probabilities (Standard Normal, Cauchy, Levy)

189 188 How to Check for “Heavy Tails”? Log-Log plot of tail of distribution should be approximately linear. Slope gives value of infinite mean and infinite variance infinite mean and infinite variance infinite variance infinite variance

190 189 Example of Heavy Tailed Model (Random Walk) Random Walk: Start at position 0 Toss a fair coin: with each head take a step up (+1) with each tail take a step down (-1) X --- number of steps the random walk takes to return to position 0.

191 190 The record of 10,000 tosses of an ideal coin (Feller) Zero crossing Long periods without zero crossing

192 191 Random Walk Heavy-tails vs. Non-Heavy-Tails Normal (2,1000000) Normal (2,1) O,1%>200000 50% 2 Median=2 1-F(x) Unsolved fraction X - number of steps the walk takes to return to zero (log scale)

193 192 Number backtracks (log) 1-F(x) Unsolved fraction => Infinite mean Heavy-tails in QCP Domain

194 193 The Log-Log plot shows a linear relation over many orders of magnitude. This is clear evidence of heavy-tailed behavior.

195 194

196 195

197 196 Heavy Tailed Cost Distribution

198 197 The Log-Log plot shows a linear relation over many orders of magnitude. This is clear evidence of heavy-tailed behavior.

199 198 By studying larger problems we discovered that not only does the heavy tail phenomenon occur at the right-hand side of the distribution, but we also observed a high frequency of data points on the left-hand side of the distribution. Right-hand side: non-negligible fraction of very long runs Left-hand side: non-negligible fraction of very short runs

200 199 70%> 250000 15! 1%<=650! Sports Scheduling Number backtracks (log) Cumulative Distribution Function

201 200 Standard Distribution (finite mean & variance) Power Law Decay Exponential Decay Also, heavy tails on left. (High probability of very short runs.)

202 201 Consequence for algorithm design: Use rapid restarts or parallel / inter- leaved runs Super linear speedups!!!

203 202 XXXXX solved 10 Sequential: 50 +1 = 51 seconds Parallel: 10 machines --- 1 second 51 x speedup Super-linear Speedups Interleaved (1 machine): 10 x 1 = 10 seconds 5 x speedup

204 203 Rapid Restarts work particularly well on hard computational problems because of the Heavy Tailed Phenomena in the run time distribution. RAPID RANDOMIZED RESTARTS strategy avoids the tail on the right and exploits the short runs on the left. Restarts provably eliminate heavy tails (Gomes, Selman & Crato )

205 204 Sketch of proof of elimination of heavy tails Let’s truncate the search procedure after m backtracks. Probability of solving problem with truncated version: Run the truncated procedure and restart it repeatedly.

206 205 Y - does not have Heavy Tails

207 206 Restarts 70% unsolved 250~ 62.5 restarts 1-F(x) Unsolved fraction Number backtracks (log)

208 207 Example of Rapid Restart Speedup (planning) 20 2000 ~100 restarts Cutoff (log) Number backtracks (log) ~10 restarts 100000

209 208 Deterministic Logistics Planning108 mins.95 sec. Scheduling 14411 sec250 sec (*) not found after 2 days Scheduling 16---(*)1.4 hours Scheduling 18 ---(*)~18 hrs Circuit Synthesis 1---(*)165sec. Circuit Synthesis 2---(*)17min. Summary Results R 3

210 209 Our results provide the first indication of heavy-tailed distri- butions in a computational model. Overall insight: Overall insight: Randomized tie- breaking with rapid restarts gives powerful search strategy.

211 210 Heavy-Tailed Distributions in Other Domains Quasigroup Completion Problem Graph Coloring Logistic Planning Circuit Synthesis Gomes, Selman, and Crato 1997; Gomes, Selman, McAloon, and Tretkoff 1998; Gomes,Kautz, and Selman 1998;

212 211 Deterministic Logistics Planning108 mins.95 sec. Scheduling 14411 sec250 sec (*) not found after 2 days Scheduling 16---(*)1.4 hours Scheduling 18 ---(*)~18 hrs Circuit Synthesis 1---(*)165sec. Circuit Synthesis 2---(*)17min. Summary Results R 3

213 212 Rapid Restart Speedup

214 213 Our results provide the first indication of heavy-tailed distri- butions in a computational model. Overall insight: Randomized tie-breaking with rapid restarts gives powerful search strategy.

215 214 Heavy-Tailed Distributions in Other Domains Quasigroup Completion Problem Graph Coloring Logistic Planning Circuit Synthesis Gomes, Selman, and Crato 1997 - Proc. CP97; Gomes, Selman, McAloon, and Tretkoff 1998 - Proc AIPS98; Gomes,Kautz, and Selman 1998 - Proc. AAAI98.

216 215 Algorithm Portfolio Design Gomes and Selman 1997 - Proc. UAI-97; Gomes, Selman, and Crato 1997 - Proc. CP97.

217 216 Motivation The runtime and performance of randomized algorithms can vary dramatically on the same instance and on different instances. Goal: Improve the performance of different algorithms by combining them into a portfolio to exploit their relative strengths.

218 217 Branch & Bound: Best Bound vs. Depth First Search

219 218 Branch & Bound (Randomized) Standard OR approach for solving Mixed Integer Programs (MIPs) Solve linear relaxation of MIP Branch on the integer variables for which the solution of the LP relaxation is non-integer: apply a good heuristic (e.g., max infeasibility) for variable selection ( + randomization ) and create two new nodes (floor and ceiling of the fractional value) Once we have found an integer solution, its objective value can be used to prune other nodes, whose relaxations have worse values

220 219 Branch & Bound Depth First vs. Best bound Critical in performance of Branch & Bound: the way in which the next node to be expanded is selected. Best-bound - select the node with the best LP bound (standard OR approach) ---> this case is equivalent to A*, the LP relaxation provides an admissible search heuristic Depth-first - often quickly reaches an integer solution (may take longer to produce an overall optimal value)

221 220 Portfolio of Algorithms A portfolio of algorithm is a collection of algorithms and / or copies of the same algorithm running interleaved or on different processors. Goal: to improve on the performance of the component algorithms in terms of: expected computational cost “risk” (variance) Efficient Set or Efficient Frontier: set of portfolios that are best in terms of expected value and risk.

222 221 Depth-first vs. Best-bound (logistics planning) Number of nodes Cumulative Frequencies Depth-First ~50% Best-Bound ~30%

223 222 Depth-First and Best and Bound do not dominate each other overall.

224 223 Heavy-tailed behavior of Depth-first

225 224 Portfolio for heavy-tailed search procedures (2 processors) 0 DF / 2 BB 2 DF / 0 BB Standard deviation of run time of portfolios Expected run time of portfolios

226 225 Portfolio for heavy-tailed search procedures (6 processors) 0 DF / 6 BB 6 DF / 0BB Standard deviation of run time of portfolios Expected run time of portfolios 5 DF / 1BB 3 DF / 3 BB 4 DF / 2 BB Efficient set

227 226 Portfolio for heavy-tailed search procedures (20 processors) 0 DF / 20 BB 20 DF / 0 BB Standard deviation of run time of portfolios Expected run time of portfolios

228 227 Portfolio for heavy-tailed search procedures (2-20 processors)

229 228 A portfolio approach can lead to substantial improvements in the expected cost and risk of stochastic algorithms, especially in the presence of heavy-tailed phenomena.

230 229 Summary of Randomization Considered randomized backtrack search. Showed Heavy-Tailed Distributions. Suggests: Rapid Restart Strategy. --- cuts very long runs --- exploits ultra-short runs Experimentally validated on previously unsolved planning and scheduling problems. Portfolio of Algorithms for cases where no single heuristic dominates

231 230 Summary of Randomization Considered randomized backtrack search. Showed Heavy-Tailed Distributions. Suggests: Rapid Restart Strategy. --- exploits ultra-short runs --- cuts very long runs Experimentally validated on previously unsolved planning and scheduling problems. Portfolio of Algorithms for cases where no single heuristic dominates

232 231 IV. CONCLUSIONS

233 232 Important Themes in OR Linear Programming (Mixed) Integer Programming Exploit Structure e.g., Network Flow Problems Duality very elegant theory in LP sensitivity analysis

234 233 Opportunities for Integration of AI/OR OR methods: Have focused on tractable representations (LP) Have demonstrated the ability to identify optimal and locally optimal solutions LIMITATION: Restricted to rigid models with limited expressive power AI methods: Richer and more flexible representations,supporting constraint-based reasoning mechanisms as well as mixed initiative frameworks, allowing the human expertise to be in the loop. LIMITATION: Rich representations in general lead to intractable problems CHALLENGE: good representations / fast & good solutions,

235 234 Opportunities for Integration of AI/OR AI methods are becoming competitive AI methods used to be considered not suitable for realworld scheduling problems. Recent developments have shown they can be competitive. Examples: SAP, Peoplesoft, I2, … -> provide solutions for scheduling combining constraint programming and mathematical programming approaches. ILOG (CP language) has several fielded applications in different scheduling areas; ILOG has integrated a CSP solver with CPLEX. OR people have acknowledge the benefits of combining OR and AI methods

236 235 Opportunities for Integration of AI/OR Exploiting Duality in CSP frameworks Exploiting Randomization Hybrid Solvers

237 236 Opportunities for Integration of AI/OR Hybrid Solvers - emerging area of research (CSP+OR); it started with CLP(R), Prolog III and CHIP; ILOG integrates a CSP solver with CPLEX local constraint propagation - local consistency algs global constraint propagation - LP relaxations Only a hybrid approach could prove optimality, e.g.: Hoist scheduling (Rodosek & Wallace 1998) Multicommodity integer network flow problem (Dutch Railways) (McAloon, Tretkoff, Wetzel 1998)

238 237 Updated version of tutorial slides www.cs.cornell.edu/gomes/ Talks Demos

239 238 Appendix

240 239 Portfolio of Algorithms A portfolio of algorithm is a collection of algorithms and / or copies of the same algorithm running interleaved or on different processors. A portfolio has an expected computational cost and a standard deviation, a measure of the dispersion of the computational cost. The standard deviation of the portfolio is a measure of the risk inherent to the portfolio.

241 240 Portfolio of Algorithms Goal: to improve on the performance of the component algorithms in terms of: expected computational cost “risk” (variance) Efficient Set or Efficient Frontier: set of portfolios that are best in terms of expected value and risk.

242 241 Appendix Portfolio of Algorithms Goal: to improve on the performance of the component algorithms in terms of: expected computational cost; risk; Efficient Set or Efficient Frontier - set of portfolios that are the best in terms of expected value and risk. Within the efficient set, in order to minimize the risk, one has to deteriorate the expected value or, in order to improve the expected value, one has to increase the risk.

243 242 Appendix Portfolio of Two Algorithms Let us consider the random variables: A1 - the number of backtracks that algorithm 1 takes to find a solution or prove that a solution doesn’t exist; A2 - the number of backtracks that algorithm 2 takes to find a solution or prove that a solution doesn’t exist;

244 243 Appendix Portfolio of Two Algorithms Let us consider that we have N processors and we design a portfolio using n1 processors with algorithm 1 and n2 processors with algorithm2 (N = n1 + n2). Let us consider the random variable: X - the number of backtracks that the portfolio takes to find a solution or prove that a solution doesn’t exist;

245 244 Appendix Portfolio of Two Algorithms Given N processors, and

246 245 Appendix Portfolio of Algorithms Given N processors, such that and and the term in the summation is 0 when

247 246 Preliminary Research on Structure of Search Spaces

248 247 Fringe of Search Tree

249 248 Fractal Dimension

250 249 Fractal Dimension When plotting the length of a curve as a function of the measuring tool on a log-log plot, one obtains a linear relationship: L - the measured length; s - length of the yardstick; c and d are constants; Mandelbrot introduced the fractal dimension D = d +1; A straight line has D = 1.0; The coast of Britain has fractal dimension 1.22; The higher D the more fractal the curve is.

251 250 Heavy-Tailed Behavior vs Non-heavy-tailed behavior


Download ppt "1 Integration of Artificial Intelligence and Operations Research Techniques for Combinatorial Problems Carla P. Gomes Cornell University"

Similar presentations


Ads by Google