The problem of optimal register coalescing is this: Given an interference graph of N nodes, each of degree less than K, and a set of additional weighted pairs of the form (I,J,W), where I and J are nodes and W is a weight find a K-coloring of the graph that minimizes the sum of the weights of pairs (I,J) such that color[I] != color[J].
Format of problem file is as follows. Every capital letter stands for an integer literal.
problem ::= N K edges edges ::=Where N >= 0, K > 0, and for each I,J, 0 <= I < N, 0 <= J < N, and each W >= 0.
| interference-edge edges | coalesce-edge edges interference-edge ::= I J -1 coalesce-edge ::= I J W
For each node I such that I >= K, the degree of node I must be less than K. That is, the first K nodes may have arbitrarily high degree, but the rest must have low degree: for a given I, if I >= K, the number of interference edges of the form I Y -1 or X I -1 must be less than K. There may be arbitrarily many coalesce edges that mention I. (A K-coloring must trivially exist in a graph of max degree K-1.)
Format of solution file is as follows:
solution ::= N K colors colors ::=where the number of C values is N, and for each C, 0 <= C < K.
| C colors
In both the problem file and the solution file, a comment starts with the % character and ends with a newline, and is ignored.
A solution is legal if for each interference (I,J,-1), color[I]!=color[J].
The cost of a solution is the sum of the weights W for all coalesce-edges (I,J,W) such that color[I]!=color[J].
The optimum solution is the minimum-cost legal solution.
This "check" program evaluates the cost of a solution.
Usage: check problem solution