- Specification of the optimization problem: This task requires the detailed knowledge of domain concepts, user models etc. and therefore is a part of the development of the software application.
- Development and supply of optimization procedures: This is provided by ConSolve.
The link of these two tasks is the declarative specification of the optimization problem in the language ConStrukt.
Combinatorial optimization problems are generally not efficiently solvable. There is a set of search methods, which have all their advantages and disadvantages. Momentarily, ConSolve provides a set of so-called constraint based procedures, which are embedded into local search algorithms if necessary. From these, Software developers select a suitable procedure.
The application then uses the run time library of ConSolve for solving of the specified optimisation problem. For the communication between the application software and the run time library an interface in a higher programming language is generated automatically: This interface can be directly deducted from the problem specification. Momentarily only C/C++ is supported by this process, but the support of Java is scheduled.
The following illustration describes the procedural model for the use of ConSolve.