A column generation and partitioning approach for multi-commodity flow problems