Presentation is loading. Please wait.

Presentation is loading. Please wait.

Number partitioning.

Similar presentations


Presentation on theme: "Number partitioning."— Presentation transcript:

1 number partitioning

2 Like subset sum

3

4 Recently featured in the Crystal Maze!
Given a bag of numbers, can you partition this into 2 bags such that the sum of the integers in each bag is equal? Recently featured in the Crystal Maze! (Thanks Zoe!)

5 Try it!

6 Try that!

7 Try that?

8 Try that?

9 Can you think of a 1st test to
carry out to determine if there is no partition?

10 Garey & Johnson “Computers and Intractability”
Given a bag of numbers, can you partition this into 2 bags such that the sum of the integers in each bag is equal? Garey & Johnson “Computers and Intractability” [SP12] PARTITION INSTANCE: Finite set A and a size s(a)  Z+ for each a  A QUESTION: Is there a subset A’  A such that aA’ s(a)  aA-A’ s(a)

11

12 How complex?

13 Who cares? Imagine you have 2 machines on the shop floor You have n activities, of varying durations Place the activities on the machines to minimise makespan

14 Why just 2-partition? Why not m-way partitioning? Is there an optimisation problem?

15 A number of constraint encodings

16 1st stab variables constraints Questions: What are the “decision variables” Can we be more efficient generate more propagation Bound or enumerated variables Is there a better model? What if it is insoluble?

17

18

19

20

21

22

23

24 How can I make an IntegerVariable with a domain
that is a set of values, rather than a range? If I had L[i]  {0,w[i]} and R[i]  {0,w[i]} could I throw away D[i] and have R[i] ≠ L[i]? Laura?

25

26

27

28 Look! No D!

29 Value ordering … does it matter
Questions, questions, questions Decision variables … does it matter? Heuristics? Value ordering … does it matter Bound versus enumerated variables … anyone? Symmetries Propagation: what will it do? Will it have an effect? Size of state space? How big is the model? How will search progress?

30 Symmetry If we are using a static variable ordering heuristic and If we are using the 0/1 decision variables D[i] Does it make any difference if we have D[0] = 0 or D[0] = 1 That is, can we half the search space?

31 Can we think of any “side constraints”?
1st stab Why use CP for numPart? Can we think of any “side constraints”? Actually, an important question: justify use of CP

32 We want to minimise the difference between the sum
A 2nd stab We want to minimise the difference between the sum of the numbers on the left and the sum of the numbers on the right Right!?

33 An optimisation problem Minimise the difference between left and right
A 2nd stab An optimisation problem Minimise the difference between left and right

34 Minimize imbalance

35 How do we optimise in CP? A sequence of decision problems Branch and bound

36

37 Demo of Optimize

38 Why is Optimize so slow?

39 When can this propagate?

40 Can we limit the search effort?

41

42 3d stab

43 Optimize is a wee bit “clunky”
3d stab Optimize is a wee bit “clunky” Can we do better? Put ½ the numbers on one side

44

45

46 1st stab variables constraints

47 Maximize the sum of Weights on the right As close to tot/2

48 Demo of OptimizeV2

49 Why was version 2 faster?

50 Could we Optimize without the decision variable D?
I suppose so … could explore this Replace scalar with sum

51 So?

52 Three stabs! A fair bit to consider Has this all been easy? Is there a better way to do numPart?

53

54

55


Download ppt "Number partitioning."

Similar presentations


Ads by Google