Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2457_ExpertSystem/HeuristicLab.Optimization/3.3/Interfaces/IMoveOperator.cs @ 17709

Last change on this file since 17709 was 16956, checked in by abeham, 6 years ago

#2457: merged trunk into branch

File size: 2.7 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2019 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;
23using HEAL.Attic;
24
25namespace HeuristicLab.Optimization {
26  [StorableType("65af3d33-528d-4554-a430-bd2daf42860a")]
27  /// <summary>
28  /// The basic interface that marks all move operators. Derived interfaces
29  /// are used to group move operators together.
30  /// </summary>
31  /// <remarks>
32  /// A group of move operators that belong together should derive a new
33  /// interface from IMoveOperator and implement the new interface in each
34  /// operator.<br />
35  ///
36  /// E.g. a new move is to be implemented and INewMove is created as a derived
37  /// type of IMoveOperator. Then you create the additional following types<br />
38  /// <list type="bullet">
39  /// <item>
40  ///   <term>NewMoveGenerator</term>
41  ///   <description>
42  ///   implements INewMove as well as either IExhaustiveMoveGenerator,
43  ///   IMultiMoveGenerator or ISingleMoveGenerator
44  ///   </description>
45  /// </item>
46  /// <item>
47  ///   <term>NewMoveMaker</term>
48  ///   <description>
49  ///   implements INewMove as well as IMoveMaker
50  ///   </description>
51  /// </item>
52  /// <item>
53  ///   <term>NewMoveEvaluator</term>
54  ///   <description>
55  ///   (problem plugin) implements INewMove as well as ISingleObjectiveMoveEvaluator
56  ///   </description>
57  /// </item>
58  /// <item>
59  ///   <term>NewMoveTabuMaker</term>
60  ///   <description>
61  ///   (only for Tabu Search) implements INewMove as well as TabuMaker
62  ///   </description>
63  /// </item>
64  /// <item>
65  ///   <term>NewMoveTabuChecker</term>
66  ///   <description>
67  ///   (only for Tabu Search) implements INewMove as well as ITabuChecker
68  ///   </description>
69  /// </item>
70  /// </list>
71  ///
72  /// These operators should not implement further move types. For further moves
73  /// a new interface derived from IMoveOperator should be created.
74  public interface IMoveOperator : IOperator {
75  }
76}
Note: See TracBrowser for help on using the repository browser.