Presentation on theme: "1D Bin Packing (or “CP? Who cares?”)"— Presentation transcript:
11D Bin Packing (or “CP? Who cares?”) A case study
2[SR1] BIN PACKINGINSTANCE: Finite set U of items, a size s(u) in Z+ for each u in U, apositive integer bin capacity B, and a positive integer K.QUESTION: Is there a partition of U into disjoint sets U1, U2, …, Uksuch that the sum of the sizes of the items in each Ui is B or less?Garey & Johnson“Computers and Intractability: A guide to the theory of NP-Completeness”
3An exampledata =n = // 10 numbersm = // 5 binsc = // bin capacity of 150Can we pack the above 10 numbers into 5 bins such that thesum of the numbers in each bin is less than or equal to 150?Note: the above 10 numbers sum to a total of 579579/150 = 3.86
8load[i] is the sum of the numbers in the ith bin where load[i] is a constrained integer variable with domain [0 .. C]
9Note 1We have n.m 0/1 constrained integer variablesQuestion: How big is the potential state space?
10Only in one place at any one time! A number data[i] can only be in one bin at any one time!Therefore, the number of 1’s in any column must be exactly 1
11If there are numbers in a bin then that bin is used. Is a bin used?If there are numbers in a bin then that bin is used.binUsed[i] = 1 iff and only if load[i] > 0Where binUsed is 0/1 constrained integer variable
12How many bins are used?Sum up the number of bins used and ensure that thisis less than or equal to the number of bins that we havetotBinsUsed is a constraint integer variable with domain [0..m]
13Program has the following command line inputs fnameThe name of a file containing 100 or more numberscThe (uniform) capacity of each binnThe number of numbers to read from file fnamemThe number of binsProgram finds first solution and displaysnumber of nodes, and the solution
14Remember … we will optimise via a sequence of decision problems Keep reducing the number of bins until no solution
15It does nothing!What is it doing?What is search doing?
16Decisions, decisions What are the decision variables?!
41An alternative (and it’s consequences)? Introduce an array of constrained integer variablesloc[j] with domain [0..m]Consequences:Array loc is now decision variablesNo longer need to insist that sums of columns of inBin equal 1Question: what’s the size of the state space now?
42So?What have we learned?Identify the decision variablesWhat is the size of the state space?What is the size of the model?What is value ordering doing to the search?Can we use any heuristics?Are there symmetries that we can break?Are there any simple/redundant tests/constraints overlooked?Is there an alternative model?
43And let’s not forget the big question … 9. Why are we using constraint programming?Answers?