Graph Partition Algorithm