Opened 14 years ago

Closed 14 years ago

Last modified 12 years ago

#291 closed enhancement (done)

SimOpt Redesign

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:

  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 operate directly on the parameter vector. This change allows the application of manipulation operators for each parameter type separately, as the parameter 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 (6)

comment:1 Changed 14 years ago by abeham

  • Description modified (diff)
  • Status changed from new to assigned

comment:2 Changed 14 years ago by abeham

  • Description modified (diff)

comment:3 Changed 14 years ago by abeham

  • Resolution set to fixed
  • Status changed from assigned to closed

done in r637

comment:4 Changed 14 years ago by swagner

  • Milestone changed from 3.2 to Iteration 0

Milestone 3.2 deleted

comment:5 Changed 12 years ago by swagner

  • Milestone changed from Iteration 0 to Current

Milestone Iteration 0 deleted

comment:11 Changed 12 years ago by swagner

  • Milestone changed from Current to HeuristicLab 3.3.0

Milestone Current deleted

Note: See TracTickets for help on using tickets.