The intuitive application and system models must be brought
into an integrated canonical integer form to make use of math programming.
We assume that mathematical programming is efficient enough for
loadtime execution if the state space is sufficiently constrained. We
experimentally verify this point in the evaluation section.
Model building is more art than science, but structured approaches do exist. We
follow the classic approach of structured synthesis [Sch81].
Here, an optimization problem is formulated as built from four datasets.
The first, variables, implement choices,
such as which channel to select.
The second, parameters, numerically encode properties, such as a channel's
capacity.
Constraints limit the
solution space; they are expressed in linear (for a linear program)
relationships of variables and parameters. Finally, an objective also
expresses a relationship of variables and parameters, but instead of an
(in)equality, it is a function to be minimized or maximized (i.e., optimized). Goal
is to find the set of variable values that achieves this.
This section first introduces each dataset in detail and
then summarizes the integrated model.
We do not explain the concept of
mathematical programming here; the approach is introduced independently from
application tailoring (with simpler examples) in Appendix BAutomation Algorithms.
Subsections
willem
2010-02-03