Opened 16 years ago
Last modified 14 years ago
#291 closed enhancement
SimOpt Redesign — at Version 1
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.0 |
Component: | ZZZ OBSOLETE: SimOpt | Version: | 3.2 |
Keywords: | Cc: |
Description (last modified by abeham)
Currently some things in the Simulation Optimization plugin are not solved elegantly. One problem is that manipulation operators work on the parameter vector directly. They're applied by the SimOptSequentialSubOperatorsProcessor which configures the manipulation operators, initializes the parameter vector if necessary and checks if constraints are violated. The same with SimOptSequentialSubOperatorsCrossover. Naturally this requires special manipulation operators for all the datatypes, sometimes just "reimplementing the wheel".
There are two goals with this ticket:
- Redesign the way manipulation and crossover works such that each parameter can be modified by an already exisiting operator for the representation of that parameter.
- Simplify the application of simulation-based optimization
SimOptParameterExtractor and SimOptParameterPacker are changed to extract the parameters in a subscope of their own and update or recreate the parameter vector with the parameters from the subscope. Currently they all operator directly on the parameter vector. This change allows the application of manipulation operators for each parameter type separately, as the paramter now sits in a scope of its own. Crossover is a bit more complicated and one additional operator that prepares the scope structure for ordinary crossover operators is required.
To simplify the application both manipulation and crossover will be encapsulated as much as possible in the existing operators: SimOptSequentialSubOperatorProcessor and SimOptSequentialSubOperatorCrossover. They're to be "parametrized" by suboperators for each parameter which they're supposed to manipulate or cross.
Constraint checking will be done in the redesigned ParameterPacker which calls a suboperator when constraint violations occur. The user can do whatever he wants when this occurs.
Change History (1)
comment:1 Changed 16 years ago by abeham
- Description modified (diff)
- Status changed from new to assigned