{ {(3, 0, 0, 0, 0), (1, 0, 2, 0, 0)}, {(0, 1, 0, 0, 0), (0, 0, 0, 1, 0)}, {(0, 0, 0, 2, 0), (0, 1, 0, 1, 0)} }
Choose one vector from each set, so that the maximum component of their sum is minimal. For example, you may choose
(1, 0, 2, 0, 0) + (0, 1, 0, 0, 0) + (0, 1, 0, 1, 0) = (1, 1, 2, 1, 0)
with the maximum component equal to 2, which is clearly optimal here. I’m curious if this is a well-known problem and what problem-specific approximate solution methods are available. It should be fast and easy to program (no ILP solver, etc.). No exact solution is needed as it’s only an approximation of the real problem. I see that I should have added some details about the problem instances I’m interested in:
- $i in {0, 1, ldots, 63}$, i.e., there’re always 64 rows (when written as in the above example).
- $j in {0, 1}$, i.e., there’re only 2 vectors per row.
- $k in {0, 1, ldots, N-1}$ where $N$ (the vector length) is between 10 and 1000.
Moreover, on each row the sum of the elements of all vectors is the same, i.e., $$forall i, j, j’:quad sum_k a_{i,j,k} = sum_k a_{i,j’,k}$$ and the sum of the elements of the sum vector is less than its length, i.e., $$sum_k sum_i a_{i,f(i),k} < N$$
Asked By : maaartinus
Answered By : hi mods
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/2741