next up previous
Next: Implementation Pseudo-Code Up: Graph Coloring Previous: The Basic Greedy

The Saturation Degree Ordering Heuristic

We selected the saturation degree ordering heuristic [32] to color the last diagonal block in our preprocessing phase when generating matrices in block-diagonal-bordered form for parallel Gauss-Seidel methods, but we have modified saturation degree ordering to include load-balancing. The saturation degree ordering heuristic selects a node in the graph that has the largest number of differently colored neighbors and is defined as follows. Suppose that nodes have been selected and colors to assigned to these nodes. The next node, , selected for coloring is a node with the most adjacent colored nodes in the set . When there are multiple nodes that meet this selection criteria, a node is selected at random.

We have added a load-balancing capability to the saturation degree ordering algorithm that selects the color for a node and attempts to equalize the number of nodes with a particular color in a manner similar to the pigeon-hole load balancing algorithm. Whenever possible, a color is selected that will reduce the disparity in the number of nodes assigned a certain color. Our version of the saturation degree ordering algorithm simply selects the consistent color with the fewest occurrences. A consistent color for the node is an element of the set , where and such that , . We define a function that determines the cardinality of the set of nodes with the color m --- . With our modifications to the saturation degree algorithm, a consistent color for the node is an element of the set , where such that , and . This added selection condition helps to break ties when there are multiple consistent colors in the traditional saturation degree algorithm.

We present our version of the saturation degree ordering-based graph multi-coloring algorithm in figure gif. The computational complexity of this algorithm is , where defines the set of nodes in adjacent to . The graphs encountered for coloring in this work are very sparse, generally with no more than three nodes adjacent to any single node. Some graphs representing the last diagonal blocks in real power systems networks after node-tearing ordering proved to be bipartite, while many graphs required only three colors. The results of graph coloring the last diagonal block when preprocessing the networks for the parallel Gauss-Seidel are presented in section 7.2.

 
Figure: The Graph Multi-Coloring Algorithm for the Last Diagonal Block of a Block-Diagonal-Bordered Matrix 



next up previous
Next: Implementation Pseudo-Code Up: Graph Coloring Previous: The Basic Greedy



David P. Koester
Sun Oct 22 17:27:14 EDT 1995