Split procedure for graph partitioning: an application to the SONET ring problem