S. Wagner - Heuristic Optimization Software Systems - Phd Thesis, Johannes Kepler Universität Linz, Austria, 2009, pp. 139
Many optimization problems cannot be solved by classical mathematical optimization techniques due to their complexity and the size of the solution space. In order to achieve solutions of high quality though, heuristic optimization algorithms are frequently used. These algorithms do not claim to find global optimal solutions but offer a reasonable tradeoff between runtime and solution quality. Therefore, they are especially suitable for practical applications. In the last decades the success of heuristic optimization techniques in various problem domains has led to the development of a broad spectrum of optimization paradigms which often use natural processes as a source of inspiration (as for example evolutionary algorithms, simulated annealing, or ant colony optimization).
Mature and flexible software systems are required for developing and applying heuristic optimization techniques in science and industry. On the one hand, these systems have to support scientists in the development of new algorithms; on the other hand, they should enable users to apply different optimization methods on specific problems easily and should allow a homogeneous integration into existing software environments. The heterogeneous requirements of these two user groups as well as the diversity of different algorithms lead to many challenges for software engineers. Existing systems often suffer from severe drawbacks concerning extensibility, flexibility, modularity, and usability: Algorithm models adapted to specific optimization paradigms prevent the incorporation of new optimization techniques, insufficient modularisation complicates the integration into existing systems, and the lack of graphical user interfaces reduces the usability and increases the learning effort.
The main goal of this thesis is to overcome these difficulties. Based on a comprehensive requirements analysis and on a comparison of existing solutions, a new design for heuristic optimization software systems is developed. Thereby, main aspects are a plugin-based architecture, a domain-independent model to represent arbitrary algorithms, support of graphical user interfaces, as well as the integration of parallel algorithms. These aspects serve as a basis for the development of new heuristic optimization software systems. Finally, the thesis is concluded by showing how several heuristic optimization algorithms can be realized in a flexible and reusable way.