Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/13/10 18:32:07 (14 years ago)
Author:
abeham
Message:

updated Evolution Stratgy #932
StrategyParameters moved completely out of the ES into the encoding and problem, because they are inherently problem specific
The ProblemDimension and a few other parameters of ES were removed
Fixed a few bugs also and added some documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Optimization/3.3/Interfaces/IMoveOperator.cs

    r3044 r3336  
    2323
    2424namespace HeuristicLab.Optimization {
     25  /// <summary>
     26  /// The basic interface that marks all move operators.
     27  /// </summary>
     28  /// <remarks>
     29  /// A group of move operators that belong together should derive an interface from this one
     30  /// and implement the interface in each operator.<br />
     31  /// In an algorithm one can thus find out all move operators that belong together, by grouping operators
     32  /// according to the most specific interface derived from this interface that they implement.<br /><br />
     33  /// A concrete example:<br />
     34  /// You have a solution representation <c>MyRep</c> and there you have a move <c>MyRepMove</c> that you want
     35  /// to make available to the friendly GUIs. So in <c>MyRep</c> you derive an interface <c>IMyRepMoveOperator</c>.<br />
     36  /// Now you need to implement at least three operators that handle these moves: A MoveGenerator, a MoveMaker, and a MoveEvaluator.
     37  /// Note: The MoveEvaluator should be implemented in the problem plugin if you choose to separate representation and problem.<br />
     38  /// In each of these operators you implement <c>IMyRepMoveOperator</c> as well as the appropriate operator specific interface.
     39  /// For a MoveGenerator that would be one of <c>IExhaustiveMoveGenerator</c>, <c>ISingleMoveGenerator</c>,
     40  /// or <c>IMultiMoveGenerator</c>, for a MoveMaker that would be <c>IMoveMaker</c>, and for a MoveEvaluator that would
     41  /// either be <c>ISingleObjectiveMoveEvaluator</c> or <c>IMultiObjectiveMoveEvaluator</c>.<br />
     42  /// If you have this you need to make sure that an instance of all your operators are loaded in the Operators collection of your IProblem
     43  /// and you can select them in the respective algorithms.<br /><br />
     44  /// For Tabu Search support you will need two additional operators: A TabuChecker (e.g. derived from <see cref="TabuChecker" />),
     45  /// and a TabuMaker.<br /><br />
     46  /// If you decide later that you want another move, e.g. <c>MyRepMove2</c>, you would do as before and group them under
     47  /// the interface <c>IMyRepMove2Operator</c>.<br /><br />
     48  /// If you want to make use of multiple different moves, all your operators would need to know about all the moves that you plan
     49  /// to use.<br /><br />
     50  /// Take a look at the Permutation and TSP plugin to see how this looks like in real code.
     51  /// </remarks>
    2552  public interface IMoveOperator : IOperator {
    2653  }
Note: See TracChangeset for help on using the changeset viewer.