650 likes | 779 Vues
This document delves into the fascinating world of number partitioning, specifically addressing the challenge of dividing a set of integers into two bags with equal sums. Featuring insights from Garey and Johnson's “Computers and Intractability,” it poses critical questions regarding decision variables, constraint models, and the efficiency of various algorithms. Explore topics such as the complexity of partitioning, heuristics, symmetries, and optimization techniques. Learn how to minimize differences and constraints in partitioning while enhancing search effectiveness.
E N D
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!)
4 5 3 2 1 8 7 3 5 9 Try that!
Can you think of a 1st test to carry out to determine if there is no partition?
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 aA’ s(a) aA-A’ s(a)
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
Why just 2-partition? Why not m-way partitioning? Is there an optimisation problem?
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?
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?
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?
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?
1st stab Why use CP for numPart? Can we think of any “side constraints”? Actually, an important question: justify use of CP
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!?
A 2nd stab An optimisation problem Minimise the difference between left and right
How do we optimise in CP? A sequence of decision problems Branch and bound
3d stab Optimize is a wee bit “clunky” Can we do better? Put ½ the numbers on one side
1st stab variables constraints
Maximize the sum of Weights on the right As close to tot/2
Could we Optimize without the decision variable D? I suppose so … could explore this Replace scalar with sum