Keynote Speaker - Claude lePape

Two Generic Schemes for Efficient and Robust Cooperative Algorithms

In the recent past, many examples of hybrid applications have been described and the adopted hybrid algorithms shown to provide better results than pure algorithms based on only one technology. Yet the number of cases in which cooperative strategies have been applied remains very small compared to the number of cases in which they could potentially prove useful.

There might be several explanations for this fact. First, most work on cooperative optimization strategies has been focused either on the resolution of a particular problem at hand or on the design of generic software integration principles. A finer understanding of what makes a cooperative strategy work on a particular application and of the variants of the problem that could be solved well with the same cooperative strategy would be needed to allow an efficient generalization to similar yet different applications. Second, cooperative strategies are hard to develop: (a) appropriate sub-models or alternative models have to be designed and implemented, which often takes more time than the design and implementation of a unique model; (b) the design of the cooperative strategy requires some understanding of what each component does, of the strengths and weaknesses of different technologies (specific polynomial algorithms, mathematical programming, constraint programming, local search) for the resolution of different types of problems; (c) cooperative strategies are hard to tune, probably just because the number of parameters that can be tuned is much higher than in the case of a "pure"strategy.

Given an optimization application, two complementary issues must be considered. First, the application must be "efficient", i.e., provide a "good"solution within reasonable time and resource limits (CPU, memory). Second, the application must be "robust" with respect to three types of variations in the problem instances: variations in problem size, variations in numerical characteristics, and addition of side constraints. The goal of hybridization is to improve either efficiency or robustness (or both) without sacrificing the other.

Looking at examples from the literature, two generic cooperative schemes emerge. The "decomposition"scheme consists in applying one technique (the "slave") to a sub-problem of the overall problem, in order to gain information. This information is then used by another technique (the "master"), to solve the overall problem. The sub-problem given to the slave may be a reduced problem with less variables, an approximation, a relaxation, or a tightened version of the overall problem. In some cases, the results given by the slave may be used by the master to focus the overall search, without any risk of missing the optimal solution. In other cases, the results given by the slave may be used as a guide toward good solutions, but do not strictly allow to reduce the search space.

In the "multiple search" scheme, two or more optimization techniques are used in turn or in parallel to provide solutions to the full problem. In the simplest case, each optimization component operates independently from the others. In most cases, however, the solutions found by one component and, more generally, information generated by one component as part of its own optimization process, can be used by other components to better focus subsequent search.

In the end, it appears that the reasons for the success of these two cooperative schemes are highly related to the concepts of diversification (in the methods used to explore the search space), and intensification (on promising parts of the search space). Further work on these concepts may actually convey a better understanding of what makes instances of these two schemes work well on specific problems.