Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2839_HiveProjectManagement/HeuristicLab.Optimization/3.3/Interfaces/IMoveOperator.cs @ 16057

Last change on this file since 16057 was 16057, checked in by jkarder, 6 years ago

#2839:

File size: 2.6 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using HeuristicLab.Core;
23
24namespace HeuristicLab.Optimization {
25  /// <summary>
26  /// The basic interface that marks all move operators. Derived interfaces
27  /// are used to group move operators together.
28  /// </summary>
29  /// <remarks>
30  /// A group of move operators that belong together should derive a new
31  /// interface from IMoveOperator and implement the new interface in each
32  /// operator.<br />
33  ///
34  /// E.g. a new move is to be implemented and INewMove is created as a derived
35  /// type of IMoveOperator. Then you create the additional following types<br />
36  /// <list type="bullet">
37  /// <item>
38  ///   <term>NewMoveGenerator</term>
39  ///   <description>
40  ///   implements INewMove as well as either IExhaustiveMoveGenerator,
41  ///   IMultiMoveGenerator or ISingleMoveGenerator
42  ///   </description>
43  /// </item>
44  /// <item>
45  ///   <term>NewMoveMaker</term>
46  ///   <description>
47  ///   implements INewMove as well as IMoveMaker
48  ///   </description>
49  /// </item>
50  /// <item>
51  ///   <term>NewMoveEvaluator</term>
52  ///   <description>
53  ///   (problem plugin) implements INewMove as well as ISingleObjectiveMoveEvaluator
54  ///   </description>
55  /// </item>
56  /// <item>
57  ///   <term>NewMoveTabuMaker</term>
58  ///   <description>
59  ///   (only for Tabu Search) implements INewMove as well as TabuMaker
60  ///   </description>
61  /// </item>
62  /// <item>
63  ///   <term>NewMoveTabuChecker</term>
64  ///   <description>
65  ///   (only for Tabu Search) implements INewMove as well as ITabuChecker
66  ///   </description>
67  /// </item>
68  /// </list>
69  ///
70  /// These operators should not implement further move types. For further moves
71  /// a new interface derived from IMoveOperator should be created.
72  public interface IMoveOperator : IOperator {
73  }
74}
Note: See TracBrowser for help on using the repository browser.