Given a sequence of real numbers, ${a_1,a_2,...,a_n}$, I want to split them into $\textbf{m}$ groups ($\textbf{m}$ is fixed and $m<n$).
If the sum of each group is termed as $s_j$, how to setup the splitting algorithm so that the maximum $s_j$ is the smallest?
Any solutions or suggestions?
You can solve the problem via mixed integer linear programming as follows. Let binary decision variable $x_{i,j}$ indicate whether item $i$ is assigned to group $j$. Let $z$ represent $\max_j s_j$. The problem is to minimize $z$ subject to \begin{align} z &\ge \sum_i a_i x_{i,j} &&\text{for all $j$} \\ \sum_j x_{i,j} &= 1 &&\text{for all $i$} \end{align} You can also think of this problem as scheduling jobs on $m$ parallel machines to minimize the makespan.