We solve the integer-programming problem for each
pair using
CPLEX [17] with AMPL. Although integer-programming problems
are sometimes difficult to solve, our constraints are typically easy
to satisfy because many constraints are identical or are subsumed by
other constraints. For instance, the second constraint in
Figure 3(b) is stricter than the first constraint
(i.e., because
). In fact, for most of the
pairs, CPLEX computes the values of
and
during a pre-processing phase that analyzes the constraints. Very few
pairs required more than three simplex iterations in the root
node of the branch-and-bound tree to identify parameters that satisfy
the constraints and minimize the objective function.
Still, for arbitrary topologies and graph transformations, we could
conceivably encounter a scenario where no parameter setting would
satisfy every constraint. A scenario like this, should it arise,
could be handled by an extension to the integer program to minimize
the number of constraints that are violated. This could be
achieved by including an extra error term in each constraint and
selecting an objective function that minimizes the total error.