Free cookie consent management tool by TermsFeed Policy Generator

Opened 16 years ago

Last modified 14 years ago

#291 closed enhancement

SimOpt Redesign — at Initial Version

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.0
Component: ZZZ OBSOLETE: SimOpt Version: 3.2
Keywords: Cc:

Description

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:

  1. 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.
  2. 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 (0)

Note: See TracTickets for help on using tickets.