Hostname: page-component-74656f9884-c52kr Total loading time: 0 Render date: 2026-11-08T02:00:43.347Z Has data issue: false hasContentIssue false

Efficient large-scale configuration via integer linear programming

Published online by Cambridge University Press:  15 January 2013

Ingo Feinerer*
Affiliation:
Institute of Information Systems, Vienna University of Technology, Vienna, Austria
*
Reprint requests to: Ingo Feinerer, Institute of Information Systems, Vienna University of Technology, Favoritenstraße 9, A-1040 Wien, Austria. E-mail: ingo.feinerer@tuwien.ac.at
Rights & Permissions [Opens in a new window]

Abstract

Configuration of large-scale applications in an engineering context requires a modeling environment that allows the design engineer to draft the configuration problem in a natural way and efficient methods that can process the modeled setting and scale with the number of components. Existing configuration methods in artificial intelligence typically perform quite well in certain subareas but are hard to use for general-purpose modeling without mathematical or logics background (the so-called knowledge acquisition bottleneck) and/or have scalability issues. As a remedy to this important issue both in theory and in practical applications, we use a standard modeling environment like the Unified Modeling Language that has been proposed by the configuration community as a suitable object-oriented formalism for configuration problems. We provide a translation of key concepts of class diagrams to inequalities and identify relevant configuration aspects and show how they are treated as an integer linear program. Solving an integer linear program can be done efficiently, and integer linear programming scales well to large configurations consisting of several thousands components and interactions. We conduct an empirical study in the context of package management for operating systems and for the Linux kernel configuration. We evaluate our methodology by a benchmark and obtain convincing results in support for using integer linear programming for configuration applications of realistic size and complexity.

Information

Type
Regular Articles
Copyright
Copyright © Cambridge University Press 2013
Figure 0

Fig. 1. Two classes, C and D, a binary association between them, and multiplicities restricting the number of allowed links.

Figure 1

Fig. 2. A valid instance of Figure 1 for n1 = 1, n2 = 2, m1 = 3, m2 = 4, when the end of the association near D is marked as nonunique.

Figure 2

Fig. 3. Generalization with superclass C and two subclasses, C1 and C2.

Figure 3

Fig. 4. A binary association modeling a conflict between the two classes, C and D, via a 0..0 multiplicity.

Figure 4

Fig. 5. Runtime of lp_solve in the Debian GNU/Linux setting.

Figure 5

Fig. 6. Runtime of lp_solve for the Linux kernel configuration.