Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/10 03:37:36 (14 years ago)
Author:
swagner
Message:

Worked on linkage between algorithms and problems (#898)

  • finished SGA
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.TSP/3.3/TSP.cs

    r2975 r2986  
    3636  [Item("TSP", "Represents a symmetric Traveling Salesman Problem.")]
    3737  [Creatable("Problems")]
     38  [EmptyStorableClass]
    3839  public sealed class TSP : ParameterizedNamedItem, ISingleObjectiveProblem {
    3940    public override Image ItemImage {
     
    9495      set { BestKnownQualityParameter.Value = value; }
    9596    }
    96     private OperatorSet operators;
     97    private List<IPermutationOperator> operators;
    9798    public IEnumerable<IOperator> Operators {
    98       get {
    99         if (operators == null) InitializeOperators();
    100         return operators;
    101       }
    102     }
    103     #endregion
    104 
    105     #region Persistence Properties
    106     [Storable]
    107     private object RestoreEvents {
    108       get { return null; }
    109       set { RegisterEvents(); }
     99      get { return operators.Cast<IOperator>(); }
    110100    }
    111101    #endregion
     
    127117      ParameterizeEvaluator();
    128118
    129       RegisterEvents();
    130     }
     119      Initialize();
     120    }
     121    [StorableConstructor]
     122    private TSP(bool deserializing) : base() { }
    131123
    132124    public override IDeepCloneable Clone(Cloner cloner) {
    133125      TSP clone = (TSP)base.Clone(cloner);
    134       clone.RegisterEvents();
     126      clone.Initialize();
    135127      return clone;
    136128    }
     
    187179
    188180    #region Helpers
    189     private void RegisterEvents() {
     181    [StorableHook(HookType.AfterDeserialization)]
     182    private void Initialize() {
     183      InitializeOperators();
    190184      CoordinatesParameter.ValueChanged += new EventHandler(CoordinatesParameter_ValueChanged);
    191185      Coordinates.ItemChanged += new EventHandler<EventArgs<int, int>>(Coordinates_ItemChanged);
     
    205199    }
    206200    private void InitializeOperators() {
    207       operators = new OperatorSet();
     201      operators = new List<IPermutationOperator>();
    208202      if (ApplicationManager.Manager != null) {
    209         foreach (IPermutationOperator op in ApplicationManager.Manager.GetInstances<IPermutationOperator>())
    210           operators.Add(op);
     203        operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>());
    211204        ParameterizeOperators();
    212205      }
Note: See TracChangeset for help on using the changeset viewer.