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 . 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