[4981] | 1 | using System;
|
---|
| 2 | using System.Collections.Generic;
|
---|
| 3 | using HeuristicLab.Core;
|
---|
| 4 |
|
---|
| 5 | namespace HeuristicLab.Problems.MetaOptimization {
|
---|
[5277] | 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);
|
---|
[5111] | 8 |
|
---|
[4981] | 9 | public interface IOptimizable : IItem {
|
---|
[4984] | 10 | bool IsOptimizable { get; }
|
---|
[4981] | 11 | bool Optimize { get; set; }
|
---|
[4997] | 12 | ConstrainedValue ActualValue { get; set; }
|
---|
[5111] | 13 |
|
---|
[5009] | 14 | void Randomize(IRandom random);
|
---|
[5277] | 15 | void Mutate(IRandom random, MutateDelegate mutate, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator);
|
---|
| 16 | void Cross(IRandom random, IOptimizable other, CrossDelegate cross, IIntValueCrossover intValueCrossover, IDoubleValueCrossover doubleValueCrossover);
|
---|
[5184] | 17 | string ParameterInfoString { get; }
|
---|
[5340] | 18 | void CollectOptimizedParameterNames(List<string> parameterNames, string prefix);
|
---|
[5522] | 19 | double CalculateSimilarity(IOptimizable optimizable);
|
---|
[5144] | 20 |
|
---|
[5303] | 21 | /// <summary>
|
---|
| 22 | /// Recursively gets all optimizables which have Optimize=true
|
---|
| 23 | /// </summary>
|
---|
| 24 | List<IOptimizable> GetAllOptimizables();
|
---|
| 25 |
|
---|
[4984] | 26 | event EventHandler IsOptimizableChanged;
|
---|
[4981] | 27 | event EventHandler OptimizeChanged;
|
---|
[6489] | 28 |
|
---|
| 29 | /// <summary>
|
---|
| 30 | /// indicates if the actualvalues are modifiable
|
---|
| 31 | /// </summary>
|
---|
| 32 | bool ValuesReadOnly { get; set; }
|
---|
[4981] | 33 | }
|
---|
| 34 | }
|
---|