Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IOptimizable.cs @ 14049

Last change on this file since 14049 was 6489, checked in by cneumuel, 13 years ago

#1215

  • fixed issue with multiple problems (by introducing valuesReadOnly to IOptimizable)
  • fixed error message when removing last problem instance
  • made quality measure name configurable
File size: 1.5 KB
Line 
1using System;
2using System.Collections.Generic;
3using HeuristicLab.Core;
4
5namespace HeuristicLab.Problems.MetaOptimization {
6  public delegate void MutateDelegate(IRandom random, IOptimizable configuartion, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator);
7  public delegate void CrossDelegate(IRandom random, IOptimizable configuartion, IOptimizable other, IIntValueCrossover intValueCrossover, IDoubleValueCrossover doubleValueCrossover);
8
9  public interface IOptimizable : IItem {
10    bool IsOptimizable { get; }
11    bool Optimize { get; set; }
12    ConstrainedValue ActualValue { get; set; }
13   
14    void Randomize(IRandom random);
15    void Mutate(IRandom random, MutateDelegate mutate, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator);
16    void Cross(IRandom random, IOptimizable other, CrossDelegate cross, IIntValueCrossover intValueCrossover, IDoubleValueCrossover doubleValueCrossover);
17    string ParameterInfoString { get; }
18    void CollectOptimizedParameterNames(List<string> parameterNames, string prefix);
19    double CalculateSimilarity(IOptimizable optimizable);
20
21    /// <summary>
22    /// Recursively gets all optimizables which have Optimize=true
23    /// </summary>
24    List<IOptimizable> GetAllOptimizables();
25
26    event EventHandler IsOptimizableChanged;
27    event EventHandler OptimizeChanged;
28
29    /// <summary>
30    /// indicates if the actualvalues are modifiable
31    /// </summary>
32    bool ValuesReadOnly { get; set; }
33  }
34}
Note: See TracBrowser for help on using the repository browser.