[comp.theory] Minimizing sum of vectors; PARTITION; Help needed!

maes@prl.philips.nl (Maurice Maes) (12/05/90)

We need help, e.g. references, on the following problem.

Given a set of vectors {v1, v2, ..., vk} in n-dimensional
Euclidean space. Determine numbers (signs) e1, e2, ..., ek in {-1, 1},
such that 
              || e1*v1 + e2*v2 + ... + ek*vk ||

is minimum. 
(Here ||v|| denotes the length of the vector v, of course.)

It is easily seen that PARTITION (Garey & Johnson, problem [SP12])
is a special case of this problem, so it is NP-complete.
PARTITION however, is solvable in pseudo-polynomial time by 
dynamic programming, so we wonder if there are any useful 
algorithms known for the problem above.

Please mail or post,
Thanks.


Maurice Maes

xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) (12/17/90)

maes@prl.philips.nl (Maurice Maes) writes:

>We need help, e.g. references, on the following problem.

>Given a set of vectors {v1, v2, ..., vk} in n-dimensional
>Euclidean space. Determine numbers (signs) e1, e2, ..., ek in {-1, 1},
>such that 
>              || e1*v1 + e2*v2 + ... + ek*vk ||

>is minimum. 
>(Here ||v|| denotes the length of the vector v, of course.)

>It is easily seen that PARTITION (Garey & Johnson, problem [SP12])
>is a special case of this problem, so it is NP-complete.
>PARTITION however, is solvable in pseudo-polynomial time by 
>dynamic programming, so we wonder if there are any useful 
>algorithms known for the problem above.

Excuse my limited familiarity with the vocabulary here, but if
"solvable" here means "approximately solvable", then a perturbational
approach might be fruitful.

Explicitly, presume k is a power of two, and assign v1...vk to the
leaves of a complete binary tree (if k is not a power of two, assign
vectors to the leaves "from left to right" until you run out of vectors,
then move vectors at the right up the tree pruning leaves until there
are no empty leaf nodes).

Process from leaf to root, making one of the sign choices at each node
that minimizes the summed length of the two vectors subordinate to this
level (for orthogonal vectors, choose at random). At the root you will
have a candidate minimum summed vector length and associate set of sign
assignments.

Now do random permutations of the vector to leaf assignments and repeat
the calculation of new candidates until some stopping criterion is met:

1) Little (no) improvement has been recently seen; or 2) the alloted
processing time is exhausted.

One may either completely reassign the vector to leaf matching at each
iteration, or just swap two randomly chosen assignments; the latter
justifies my use of "perturbational", above.  In practice, a mix of
these two methods might work better than either alone.

The superior candidate minimum summed vector length and associated
assignment of signs at the point the stopping criterion is met is in
some sense an approximation of a fully worked out (exponential time)
solution.

I've no idea how effective this would be in practice, but it is one
possible approach worth considering.

Kent, the man from xanth.
<xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>