Case study 5: balanced academic curriculum problem Joint work with Brahim Hnich and Zeynep Kiziltan (CPAIOR 2002)

Slides:



Advertisements
Similar presentations
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Advertisements

Case study 7: Langfords problem Model due to Barbara Smith.
Modelling a Steel Mill Slab Design Problem Alan Frisch, Ian Miguel, Toby Walsh AI Group University of York.
Global Constraints Toby Walsh National ICT Australia and University of New South Wales
BU Decision Models Integer_LP1 Integer Optimization Summer 2013.
1 Constraint Satisfaction Problems A Quick Overview (based on AIMA book slides)
1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.
© Imperial College London Eplex: Harnessing Mathematical Programming Solvers for Constraint Logic Programming Kish Shen and Joachim Schimpf IC-Parc.
~1~ Infocom’04 Mar. 10th On Finding Disjoint Paths in Single and Dual Link Cost Networks Chunming Qiao* LANDER, CSE Department SUNY at Buffalo *Collaborators:
Constraint Optimization Presentation by Nathan Stender Chapter 13 of Constraint Processing by Rina Dechter 3/25/20131Constraint Optimization.
Optimal Rectangle Packing: A Meta-CSP Approach Chris Reeson Advanced Constraint Processing Fall 2009 By Michael D. Moffitt and Martha E. Pollack, AAAI.
Leeds: 6 June 02Constraint Technology for the Masses Alan M. Frisch Artificial Intelligence Group Department of Computer Science University of York Collaborators:
Branch & Bound Algorithms
Crew Scheduling Housos Efthymios, Professor Computer Systems Laboratory (CSL) Electrical & Computer Engineering University of Patras.
Transforming and Refining Abstract Constraint Specifications Alan Frisch, Brahim Hnich*, Ian Miguel, Barbara Smith, and Toby Walsh *Cork Constraint Computation.
CPSC 322, Lecture 14Slide 1 Local Search Computer Science cpsc322, Lecture 14 (Textbook Chpt 4.8) February, 3, 2010.
Constraint Models for the Covering Test Problems Authors: Brahim Hnich, Steven D. Prestwich, Evgeny Selensky, Barbara M. Smith Speaker: Pingyu Zhang CSE.
Symmetry as a Prelude to Implied Constraints Alan Frisch, Ian Miguel, Toby Walsh University of York.
Alan M. Frisch Artificial Intelligence Group Department of Computer Science University of York Extending the Reach of Constraint Technology through Reformulation.
1 Optimisation Although Constraint Logic Programming is somehow focussed in constraint satisfaction (closer to a “logical” view), constraint optimisation.
Constraint Satisfaction Problems
Approximation Algorithms
Matrix Modelling Alan M. Frisch and Ian Miguel (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Toby Walsh (Cork)
Matrix Modelling Pierre Flener (Uppsala) Alan M. Frisch (York) Brahim Hnich, Zeynep Kiziltan (Uppsala) Ian Miguel, and Toby Walsh (York)
Dynamic lot sizing and tool management in automated manufacturing systems M. Selim Aktürk, Siraceddin Önen presented by Zümbül Bulut.
Modelling and Solving English Peg Solitaire Chris Jefferson, Angela Miguel, Ian Miguel, Armagan Tarim. AI Group Department of Computer Science University.
Solving the Protein Threading Problem in Parallel Nocola Yanev, Rumen Andonov Indrajit Bhattacharya CMSC 838T Presentation.
Matrix sparsification and the sparse null space problem Lee-Ad GottliebWeizmann Institute Tyler NeylonBynomial Inc. TexPoint fonts used in EMF. Read the.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Integer Programming Difference from linear programming –Variables x i must take on integral values, not real values Lots of interesting problems can be.
Modeling the Covering Test Problem Brahim Hnich, Steven Prestwich, and Evgeny Selensky Cork Constraint Computation Center UCC Supported by SFI.
Alan M. Frisch Artificial Intelligence Group Department of Computer Science University of York Co-authors Ian Miguel, Toby Walsh, Pierre Flener, Brahim.
CGRASS A System for Transforming Constraint Satisfaction Problems Alan Frisch, Ian Miguel (York) Toby Walsh (Cork)
26 April 2013Lecture 5: Constraint Propagation and Consistency Enforcement1 Constraint Propagation and Consistency Enforcement Jorge Cruz DI/FCT/UNL April.
Global Constraints for Lexicographic Orderings Alan Frisch, Ian Miguel (University of York) Brahim Hnich, Toby Walsh (4C) Zeynep Kiziltan (Uppsala University)
Modelling a Steel Mill Slab Design Problem Alan Frisch, Ian Miguel, Toby Walsh AI Group University of York.
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding ILPs with Branch & Bound ILP References: ‘Integer Programming’
Decision Procedures An Algorithmic Point of View
Slide 1 CSPs: Arc Consistency & Domain Splitting Jim Little UBC CS 322 – Search 7 October 1, 2014 Textbook §
Column Generation Approach for Operating Rooms Planning Mehdi LAMIRI, Xiaolan XIE and ZHANG Shuguang Industrial Engineering and Computer Sciences Division.
CP Summer School Modelling for Constraint Programming Barbara Smith 1.Definitions, Viewpoints, Constraints 2.Implied Constraints, Optimization,
Symmetry Breaking Ordering Constraints Zeynep Kiziltan Department of Information Science Uppsala University, Sweden A progress.
Chapter 7 Transportation, Assignment & Transshipment Problems
Linear Programming Data Structures and Algorithms A.G. Malamos References: Algorithms, 2006, S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani Introduction.
Constraint Satisfaction Problems (CSPs) CPSC 322 – CSP 1 Poole & Mackworth textbook: Sections § Lecturer: Alan Mackworth September 28, 2012.
Modelling for Constraint Programming Barbara Smith CP 2010 Doctoral Programme.
CP Summer School Modelling for Constraint Programming Barbara Smith 2. Implied Constraints, Optimization, Dominance Rules.
Hande ÇAKIN IES 503 TERM PROJECT CONSTRAINT SATISFACTION PROBLEMS.
CP Summer School Modelling for Constraint Programming Barbara Smith 4. Combining Viewpoints, Modelling Advice.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Risk Analysis & Modelling
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade.
Quality of LP-based Approximations for Highly Combinatorial Problems Lucian Leahu and Carla Gomes Computer Science Department Cornell University.
Approximation Algorithms Department of Mathematics and Computer Science Drexel University.
CP Summer School Modelling for Constraint Programming Barbara Smith 3. Symmetry, Viewpoints.
Dominance and Indifference in Airline Planning Decisions NEXTOR Conference: INFORMS Aviation Session June 2 – 5, 2003 Amy Mainville Cohn, KoMing Liu, and.
TU/e Algorithms (2IL15) – Lecture 12 1 Linear Programming.
Approximation Algorithms based on linear programming.
1 Chapter 6 Reformulation-Linearization Technique and Applications.
Automatic Test Generation
Lecture 7: Constrained Conditional Models
Hybrid BDD and All-SAT Method for Model Checking
Inference and search for the propositional satisfiability problem
1.206J/16.77J/ESD.215J Airline Schedule Planning
Computer Science cpsc322, Lecture 14
Introduction to Operations Research
Objective of This Course
Artificial Intelligence
Constraints and Search
Chapter 1. Formulations.
Presentation transcript:

Case study 5: balanced academic curriculum problem Joint work with Brahim Hnich and Zeynep Kiziltan (CPAIOR 2002)

Outline Introduction Introduction Balanced Academic Curriculum Problem (BACP) Balanced Academic Curriculum Problem (BACP) Alternate Models Alternate Models Combined Models Combined Models Experimental Results Experimental Results Conclusions Conclusions

Introduction Modelling optimisation problems as CSPs requires many skills Modelling optimisation problems as CSPs requires many skills Quite often alternate models are tried Quite often alternate models are tried models that add implied constraints models that add implied constraints models that add symmetry-breaking constraints models that add symmetry-breaking constraints models that use different variable representation models that use different variable representation models that use different constraint formulation models that use different constraint formulation combined models combined models solved with the same solution method solved with the same solution method solved with different solution methods solved with different solution methods

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering

BACP: description Periods Courses Each course has associated a number of credits Each course has associated a number of credits some courses can have other courses as prerequisite some courses can have other courses as prerequisite a minimum amount of credits per period is required a minimum amount of credits per period is required a maximum amount of credits per period is allowed a maximum amount of credits per period is allowed a minimum number of courses per period is required a minimum number of courses per period is required a maximum number of courses per period is allowed a maximum number of courses per period is allowed

BACP: objective Assign a period to every course such that the following constraints are satisfied: Assign a period to every course such that the following constraints are satisfied: the minimum and maximum academic load for each period the minimum and maximum academic load for each period the minimum and maximum number of courses for each period the minimum and maximum number of courses for each period the prerequisite relationships the prerequisite relationships An optimal balanced curriculum minimises the maximum academic load for all periods An optimal balanced curriculum minimises the maximum academic load for all periods

Model 1: variables 0..1 Courses Periods Cur1

Model 1: constraints Each course is taught Each course is taught  j  periods Cur1[i,j] = 1 Min and max courses per period Min and max courses per period c   i  courses Cur1[i,j]  d

Model 1: constraints Each course is taught Each course is taught  j  periods Cur1[i,j] = 1 Min and max courses per period Min and max courses per period c   i  courses Cur1[i,j]  d Academic load in each period more messy Academic load in each period more messy Each course comes with a weight Each course comes with a weight Is there a way of dealing with this constraint efficiently? Is there a way of dealing with this constraint efficiently?

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering

Refine Model 1: auxiliary vars Add auxiliary variables to compute academic load in each period Add auxiliary variables to compute academic load in each period Load(j) =  i  courses credit(i)*Cur1[i,j]

Model 1: variables 0..1 Courses Periods  = Cur1 0..maxint Load Periods

Load(j) =  i  courses credit(i)*Cur1[i,j] c   i  courses Cur1[i,j]  d a  Load(j)  b Computing load of period j: Restricting the load of period j: Restricting the number of courses of period j: Objective function: minimize max(Load) Prerequisite constraints btw i and j:  k  periods: k> 1 Cur1[j,k]   r=1 Cur1[i,r] k-1 Model 1: constraints Good News: all constraints are linear: we can also employ ILP methods Bad News: prerequisite constraints: too many constraints high arity-constraints We refer to model 1 as CP1 when CP solver is used and ILP when ILP solver is used

Breaking symmetry Shouldn’t we be worrying about breaking symmetry? Shouldn’t we be worrying about breaking symmetry?

Breaking symmetry Shouldn’t we be worrying about breaking symmetry? Shouldn’t we be worrying about breaking symmetry? Not really Not really Time periods are not usually symmetrical due to pre-requisites Time periods are not usually symmetrical due to pre-requisites Similarly courses are only symmetrical if they carry the same load and pre-requisites Similarly courses are only symmetrical if they carry the same load and pre-requisites

Alternative models? Model 1 has lots of 0/1 variables Model 1 has lots of 0/1 variables Can’t we exploit larger domains that CSPs give us? Can’t we exploit larger domains that CSPs give us?

Model 2: variables in periods courses 0..maxint Load Periods Cur2

Model 2: constraints Load(j) =  i  courses credit(i)*B i,j atleast(j, Cur2,c) atmost(j,Cur2,d) a  Load(j)  b Computing load of period j: Restricting the load of period j: Restricting the number of courses of period j: Objective function: minimize max(Load) Prerequisite constraint btw i and j: Cur2[i] < Cur2[j] Good News: use of global constraints efficient statement of prerequisite constraints Bad News: load computation: more Boolean variables more reification constraints We refer to model 2 as CP2 B i,j  Cur2[i]=j, for all i

Model CP1 vs. Model CP2 CP2 Good News: use of global constraints to restriction number of courses statement of prerequisite constraints Bad News: statement of academic load constraint CP1 Good News: academic load constraint easily stated by a weighted column sum Bad News: statement of prerequisite constraints

Combined model CP1+CP2 CP2 Good News: use of global constraints to restriction number of courses statement of prerequisite constraints Bad News: statement of academic load constraint CP1 Good News: academic load constraint easily stated by a weighted column sum Bad News: statement of prerequisite constraints Cur1[i,j]=1  Cur2[i]=j - Channelling constraints Bad News - Increased number of variables

Model ILP vs Model CP2 CP2 Good News: use of global constraints to restriction number of courses statement of prerequisite constraints Bad News: statement of academic load constraint ILP Good News: academic load constraint easily stated by a weighted column sum all constraints are linear Bad News: statement of prerequisite constraints

Hybrid model ILP+CP2 CP2 Good News: statement of prerequisite constraints ILP Good News: academic load constraint easily stated by a weighted column sum all constraints are linear Bad News: statement of prerequisite constraints Cur1[i,j]=1  Cur2[i]=j - Channelling constraints Bad News - Increased number of variables

Finding optimal solution We used three real-life instances We used three real-life instances CP1+CP2 is the quickest CP1+CP2 is the quickest due to the increase in the amount of pruning that compensated the increase in variables and constraints due to the increase in the amount of pruning that compensated the increase in variables and constraints ILP+CP2 is second best model ILP+CP2 is second best model better than CP2 in all instance better than CP2 in all instance better than ILP in two instances better than ILP in two instances CP model is essential in reducing the search space while the ILP model with its relaxation is essential for bounding and guiding the search CP model is essential in reducing the search space while the ILP model with its relaxation is essential for bounding and guiding the search

Proving optimality Proving Optimality Proving Optimality ILP+CP2 is quicker than ILP on two instances, and is the quickest on these instances ILP+CP2 is quicker than ILP on two instances, and is the quickest on these instances ILP+CP2 benefits from CP model in reducing the search space, and from the relaxation of the ILP model ILP+CP2 benefits from CP model in reducing the search space, and from the relaxation of the ILP model It is tough for all CP models (CP1, CP2, CP1+CP2) to prove optimality It is tough for all CP models (CP1, CP2, CP1+CP2) to prove optimality

Yet other alternate models Viewing BACP as a set partitioning problem the set of courses ought to be partitioned into n subsets, one for each periods the set of courses ought to be partitioned into n subsets, one for each periods n set variables that are subsets of the set of courses n set variables that are subsets of the set of courses the union of all set variables is the set of courses the union of all set variables is the set of courses all set variables must be pair-wise disjoint all set variables must be pair-wise disjoint all constraints of BACP can easily be stated using weighted cardinality, and cardinality constraints all constraints of BACP can easily be stated using weighted cardinality, and cardinality constraints except, the prerequisite constraints! except, the prerequisite constraints! To enhance the model based on set variables, we can also channel into the model CP2 To enhance the model based on set variables, we can also channel into the model CP2

Conclusions Lesson 1: When constraints are difficult to specify in a particular model, we should consider channelling into a second model in which these constraints are easier to specify and reason about Lesson 1: When constraints are difficult to specify in a particular model, we should consider channelling into a second model in which these constraints are easier to specify and reason about Lesson 2: Lesson 2: CP models may excel in finding optimal or near-optimal solutions CP models may excel in finding optimal or near-optimal solutions ILP models may be better for proving optimality ILP models may be better for proving optimality

Conclusions Lesson 3: CP and ILP tools should provide efficient primitives for channelling between models Lesson 3: CP and ILP tools should provide efficient primitives for channelling between models Lesson 4: careful integration of different models can result in better models despite the increase in the number of variables and constraints Lesson 4: careful integration of different models can result in better models despite the increase in the number of variables and constraints

Case study 6: Steel Mill Slab Design Problem Joint work with Alan Frisch and Ian Miguel

Overview The slab design problem The slab design problem An example An example Model A Model A Model B Model B A dual model A/B A dual model A/B Results Results Conclusion/Future Work Conclusion/Future Work

Background This work is based on the problem as stated in: “Variable Sized Bin Packing with Color Constraints”, Dawande, Kalagnanam and Sethuraman Approximation algorithms guaranteed to be within some bound of an optimal solution.

Motivation Many problems exhibit flexibility in portions of their structure. Many problems exhibit flexibility in portions of their structure. Example: the number required of a certain type of variable. Example: the number required of a certain type of variable. Flexibility must be resolved during the solution process. Flexibility must be resolved during the solution process. Slab design is a representative example of this type of problem. Slab design is a representative example of this type of problem.

The Slab Design Problem The mill can make  different slab sizes. The mill can make  different slab sizes. Given j input orders with: Given j input orders with: A colour (route through the mill). A colour (route through the mill). A weight. A weight. Pack orders onto slabs such that the total slab capacity is minimised, subject to: Pack orders onto slabs such that the total slab capacity is minimised, subject to: Capacity constraints. Capacity constraints. Colour constraints. Colour constraints.

Slab Design Constraints Capacity: Capacity: Total weight of orders assigned to a slab cannot exceed slab capacity. Total weight of orders assigned to a slab cannot exceed slab capacity. Colour: Colour: Each slab can contain at most p of k total colours. Each slab can contain at most p of k total colours. Reason: expensive to cut slabs up to send them to different parts of the mill. Reason: expensive to cut slabs up to send them to different parts of the mill.

An Example Slab Sizes: {1, 3, 4} (  = 3) Orders: {o a, …, o i } (j = 9) Colours: {red, green, blue, orange, brown} (k = 5) p = 2 abcdefghi

An Example Solution f gi e cd b h a 6 Slabs: (size 4)(size 3)(size 1) (size 3)(size 1) 2

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering

Basic model What are the variables? What are the variables? Need to assign sizes to slabs Need to assign sizes to slabs Complicated because we don’t even know how many slabs will be used Complicated because we don’t even know how many slabs will be used

Model A – Redundant Variables Slabs cannot be more than orders Slabs cannot be more than orders Assuming greatest order weight does not exceed maximum slab size Assuming greatest order weight does not exceed maximum slab size A list, S, of slab variables: {s 1, …, s j }. A list, S, of slab variables: {s 1, …, s j }. Domains size . Domains size . Solution quality: Solution quality:

Slab Variable Redundancy Some slab variables may be redundant: Some slab variables may be redundant: 0 is added to the domain of each s i. 0 is added to the domain of each s i. If s i is not necessary to solve the problem, s i = 0. If s i is not necessary to solve the problem, s i = 0.

Slab Variable Symmetry Slab variables are indistinguishable. Slab variables are indistinguishable. So model A suffers from symmetry: So model A suffers from symmetry: Counteract with binary symmetry-breaking constraints: s 1  s 2, s 2  s 3, etc. Counteract with binary symmetry-breaking constraints: s 1  s 2, s 2  s 3, etc.

Basic model What are the variables? What are the variables? Need to assign orders to slabs Need to assign orders to slabs Want to compute weight on each slab efficiently Want to compute weight on each slab efficiently

Model A Order Matrix (Oa) oaoa obob ococ odod s1s s2s s3s s4s4 0000

More Slab Symmetry Slab variables assigned the same size are indistinguishable Slab variables assigned the same size are indistinguishable If s i and s i+1 have the same size, the corresponding rows of the order matrix are lexicographically ordered. If s i and s i+1 have the same size, the corresponding rows of the order matrix are lexicographically ordered. E.g  E.g  0110.

Colour constraints Need to count how many colours used on a slab Need to count how many colours used on a slab Counting hard Counting hard Channel into a matrix of 0/1 variables and sum rows Channel into a matrix of 0/1 variables and sum rows

Colour Matrix: colourMa RedGreenBlueOrange s1s s2s s3s s4s Channelling:

Model A of the Example Problem oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof ogog ohoh oioi s1s1 1 s2s2 1 … RedGreenBlueOrangeBrown s1s1 1 s2s2 1 …

A Solution: Model A oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof ogog ohoh oioi s1s s2s s3s s4s … RedGreenBlueOrangeBrown s1s s2s s3s s4s …00000 s 1 = 4, s 2 = 3, s 3 = 3, s 4 = 3, s i = 0 (5  i  9)

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering

Model A Implied Constraints Combined weight of input orders is a lower bound on optimisation variable: Combined weight of input orders is a lower bound on optimisation variable: Lower bound on number of slabs required: Lower bound on number of slabs required: With symmetry-breaking constraints, decomposes into unary constraints on slab variables.

Model A Implied Constraints (2) AssWt i is the weight of orders assigned to s i. AssWt i is the weight of orders assigned to s i. Prune domains by reasoning about reachable values via dynamic programming [Trick, 2001]. Prune domains by reasoning about reachable values via dynamic programming [Trick, 2001]. Incorporate both size and colour information. Incorporate both size and colour information. More powerful if done during search (future work). More powerful if done during search (future work). Minimum number of slabs required: Minimum number of slabs required:

Model A Implied Constraints (3) Waste i = s i – AssWt i Waste i = s i – AssWt i the unused portion of a slab. the unused portion of a slab. Upper bound on total waste: Upper bound on total waste: Assume each order is assigned to an individual slab, with smallest size able to hold it. Assume each order is assigned to an individual slab, with smallest size able to hold it. Sum waste in each case: leads to upper bound for optimisation variable. Sum waste in each case: leads to upper bound for optimisation variable. Upper bound on Waste i is the worst of these cases. Upper bound on Waste i is the worst of these cases.

Model B – Abstraction 2-phase approach: 2-phase approach: 1. Construct/solve an abstraction of the problem. 2. Solve independent sub-problems, assigning a subset of the orders to slabs of a common size. Solving phase 2 sub-problems either: Solving phase 2 sub-problems either: Provides a solution to the original problem, or: Provides a solution to the original problem, or: Identifies new constraints which restrict set of solutions at phase 1. Identifies new constraints which restrict set of solutions at phase 1.

Model B, Phase 1 Number of slab sizes is fixed. Number of slab sizes is fixed. A list, Z, of slab size variables, {z 1, z 2, …}. A list, Z, of slab size variables, {z 1, z 2, …}. Domains: {0, …, j} number of slabs of corresponding sized used. Domains: {0, …, j} number of slabs of corresponding sized used. Solution quality: Solution quality:

Model B, Phase 1 Order Matrix (Ob) oaoa obob ococ odod z1z z3z z4z4 1000

Model B, Phase 1 Colour Matrix (ColourMb) RedGreenBlueOrange z1z z3z z4z Channelling:

A Solution: Model B, Phase oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof ogog ohoh oioi z1z z3z z4z RedGreenBlueOrangeBrown z1z z3z z4z z 1 = 0, z 3 = 3, z 4 = 1

Model B Implied Constraints Unary constraints on order matrix:

Model B, Phase 2 Model B, Phase 1 is ambiguous. Model B, Phase 1 is ambiguous. A Phase 1 solution does provide: A Phase 1 solution does provide: Number and sizes of slabs required. Number and sizes of slabs required. Size of slab each order is assigned to. Size of slab each order is assigned to. Quality of final solution. Quality of final solution. Phase 1 solution used to construct much simpler, independent, phase 2 sub- problems. Phase 1 solution used to construct much simpler, independent, phase 2 sub- problems.

Model B, Phase 2 Sub-problems oaoa obob ococ odod oeoe ofof ogog ohoh oioi oaoa obob ococ odod oeoe ofof s1s s2s s3s Slabs of size 3 1 Slab of size 4 ogog ohoh oioi s1s1 111

The Price of Ambiguity Model B, Phase 1 is ambiguous. Model B, Phase 1 is ambiguous. Phase 2 sub-problems may be inconsistent. Phase 2 sub-problems may be inconsistent. Due to interaction between weight/colour constraints. Due to interaction between weight/colour constraints oaoa obob ococ odod p = 1 oaoa obob ococ odod s1s1 ???? s2s2 ???? 2 Slabs of size 4

Conflict Recording Not simply underestimation of optimisation variable: Not simply underestimation of optimisation variable: May be incorrect combination of slab sizes. May be incorrect combination of slab sizes. Or wrong assignment of orders to sizes. Or wrong assignment of orders to sizes. Solution: Solution: Isolate reasons for failure. Isolate reasons for failure. Post constraints at phase 1. Post constraints at phase 1. Solve phase 1 again. Solve phase 1 again. Example: Example: o a = 4  o b = 4  o c = 4  o d = 4  z 4 > 2 o a = 4  o b = 4  o c = 4  o d = 4  z 4 > 2

A Model B Solution Cycle Phase 1 Phase 2 Solution Constraints

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering

Combined Model A/B Model A and model B, phase 1. Model A and model B, phase 1. Variables: Variables: Explicit slab variables (s i ) and slab-size variables (z i ). Explicit slab variables (s i ) and slab-size variables (z i ). Order matrices referring to explicit slabs (Oa) and to slab-sizes (Ob). Order matrices referring to explicit slabs (Oa) and to slab-sizes (Ob). Both types of colour matrix. Both types of colour matrix.

Channelling Constraints Constraints for individual models as previously described. Constraints for individual models as previously described. Channelling constraints between the models maintain consistency, aid pruning. Channelling constraints between the models maintain consistency, aid pruning. Between S and Z: Between S and Z: (Number of occurrences of i in S) = z i. (Number of occurrences of i in S) = z i. Between order matrices and S: Between order matrices and S: Oa[i, j] = 1  Ob[i, s j ] = 1. Oa[i, j] = 1  Ob[i, s j ] = 1.

A/B Search Strategy Instantiate model A variables first: Instantiate model A variables first: Channelling constraints ensure model B variables instantiated. Channelling constraints ensure model B variables instantiated. Analogous to pure model A approach. Analogous to pure model A approach. Instantiate model B variables first: Instantiate model B variables first: Channelling constraints do not force instantiation of model A variables. Channelling constraints do not force instantiation of model A variables. Model A variables are constrained though. Model A variables are constrained though. Analogous to pure model B approach. Analogous to pure model B approach.

A/B Search Strategies 2 Other search strategies exploit more complete view offered by model A/B. Other search strategies exploit more complete view offered by model A/B. Interleave instantiation of variables from 2 basic models: Interleave instantiation of variables from 2 basic models: Obtain most efficient pruning of the search space. Obtain most efficient pruning of the search space.

Results OrdersOptimalModel AModel AB : 14, 0.1s 78: 486, 0.2s 77: 1841, 0.6s 83: 14, 0.1s 78: 452, 0.2s 77: 1714, 0.6s : 14, 0.1s 80: 451, 0.2s 79: 1536, 0.5s 83: 14, 0.1s 80: 407, 0.2s 79: 1447, 0.4s : 16, 0.1s 89: 819, 0.2s 88: 934, 0.3s 87: 8797, 1.2s 95: 16, 0.1s 89: 726, 0.3s 88: 841, 0.4s 87: 8612, 2.2s : 21, 0.1s 94: 5108, 1.1s 93: 5619, 1.2s 92: 17734, 3.6s 95: 21, 0.2s 94: 4950, 1.3s 93: 5456, 1.5s 92: 17190, 4.7s

Results OrdersOptimalModel AModel AB : 17, 0.1s 101: 5112, 0.9s 100: 5305, 0.9s 99: 92441, 17.8s 107: 17, 0.1s 101: 3673, 0.9s 100: 3866, 0.9s 99: 89618, 23.5s : 23, 0.1s 105: 13074, 2.6s 104: 26757, 5.5s 103: , 50.2s 107: 23, 0.1s 105: 11556, 2.9s 104: 24792, 6.6s 103: , 67.1s : 19, 0.2s 111: 1012, 0.4s 110: , 253.4s 119: s 111: 977, 0.4s 110: , 350.3s

Model B Results? On these problems, many solutions at phase 1. On these problems, many solutions at phase 1. Cycle is therefore lengthy. Cycle is therefore lengthy. Improve efficiency: Improve efficiency: Model phase 1 as a dynamic CSP. Model phase 1 as a dynamic CSP. Reduce arity of recorded constraints. Reduce arity of recorded constraints. Phase 1 heuristics Phase 1 heuristics

Other Models Set variables: Set variables: Each represents a slab Each represents a slab Domain is set of orders assigned. Domain is set of orders assigned. Activity-based dynamic CSP: Activity-based dynamic CSP: Model A slab variables used. Model A slab variables used. Only `activated’ according to remaining capacity of activated slabs. Only `activated’ according to remaining capacity of activated slabs.

Conclusions Results only on small instances. Results only on small instances. All models need further development: All models need further development: More implied constraints. More implied constraints. Better heuristics Better heuristics Explore new models: Explore new models: Set variables Set variables

Recipe Create a basic model Decide on the variables Introduce auxiliary variables For messy/loose constraints Consider dual, combined or 0/1 models Break symmetry Add implied constraints Customize solver Variable, value ordering