DomFLIP++ is the knowledge engineering module of the StarFLIP++ (pronounce: StarFlipPlusPlus) project. StarFLIP++ is a tool for optimizing multiple criteria problems. It uses fuzzy constraints to model optimizing criteria and applies algorithms such as Tabu search or genetic algorithms to the problems.
DomFLIP++ is a C++ library. It allows the definition of new optimization problems. It helps a domain engineer to design the structure of a new problem at hand. Methods and datastructures are specific to the new problem. However, there is a domain independent interface to other StarFLIP++ modules such as OptiFLIP++, DynaFLIP++, and InterFLIP++.
After each iteration in the optimization process, the considered instantiations of the problem are evaluated. Each evaluation produces a list of violated constraints. For each constraint, a list of repair steps is defined that can be used to increase the score of this constraint in further iterations of the optimization.
A domain can be fine-tuned through modification of constraints, through editing their repair lists, and through change in the optimizing parameters. A well-tuned domain can be successfully applied for optimization.
Object-oriented design and implementation makes this module easlly extendable and reuseable. Definition of new domains, system extensions with new optimizing algorithms, and definition of specific domain-dependent repair steps can be done efficiently.
DomFLIP++ is tested on real-world example, namely scheduling the steel plant LD3 in Linz, Austria.