1

I've been writing codes to solve a standard partition problem. I've investigated brute force, greedy, Karmarkar-Karp and complete Karmarkar-Karp algorithms.

Standard partition problem: divding a set into two subsets such that the difference between the sums of the subsets is minimized.

I'm also looking at a non-standard partition problem (this is my terminology)

Non-standard partition problem: divding a set into two subsets such that an arbitrary function of the sums of the subsets is minimized. In this case, furthermore, the set needn't be a set of reals, it could be e.g. a set of vectors.

In the special case in which the arbitrary function is $f(\sum_1, \sum_2)=|\sum_1- \sum_2|$, where $\sum_1$ is sum of subset one etc, the non-standard problem reduces to the standard problem.

At the moment, I can trivially generalise brute force and a greedy algorithm to the non-standard case. The former is slow and the latter incomplete and often poor, however.

Is there a better algorithm for this problem? I'm interested in complete and incomplete algorithms. Or is the problem just too general?

What if I make it even more general by permitting $f(s_1, s_2)$ to be minimised where $s$ denotes a subset, i.e. an arbitrary function of the subsets rather than the subsums.

Raphael
  • 73,212
  • 30
  • 182
  • 400
innisfree
  • 145
  • 6

0 Answers0