Changeset 8665 for branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding/3.3/Manipulators
- Timestamp:
- 09/17/12 12:31:38 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding/3.3/Manipulators/ParameterConfigurationManipulator.cs
r8574 r8665 77 77 78 78 public static void Mutate(IRandom random, IOptimizable configuration, IIntValueManipulator intValueManipulator, IDoubleValueManipulator doubleValueManipulator) { 79 var vc = configuration as RangeValueConfiguration; 80 var pc = configuration as IParameterConfiguration; 81 82 if (vc != null) { 83 var value = vc.ActualValue.Value; 84 var range = vc.RangeConstraint; 85 if (value is IntValue) { 79 if (configuration is ParameterizedValueConfiguration) { 80 var configVc = (ParameterizedValueConfiguration)configuration; 81 for (int i = 0; i < configVc.ParameterConfigurations.Count; i++) 82 Mutate(random, configVc.ParameterConfigurations.ElementAt(i), intValueManipulator, doubleValueManipulator); 83 } else if (configuration is ParameterConfiguration) { 84 var configPc = (IParameterConfiguration)configuration; 85 if (configPc.Optimize) { 86 foreach (var vc in configPc.ValueConfigurations) 87 if (configPc.ValueConfigurations.ItemChecked(vc)) 88 if (vc.Optimize) Mutate(random, vc, intValueManipulator, doubleValueManipulator); 89 do configPc.ActualValueConfigurationIndex = random.Next(configPc.ValueConfigurations.Count); 90 while (!configPc.ValueConfigurations.ItemChecked(configPc.ValueConfigurations[configPc.ActualValueConfigurationIndex])); 91 configPc.ActualValue = configPc.ValueConfigurations[configPc.ActualValueConfigurationIndex].ActualValue; 92 } 93 } else if (configuration is RangeValueConfiguration) { 94 var configVc = (RangeValueConfiguration)configuration; 95 var value = configVc.ActualValue.Value; 96 var range = configVc.RangeConstraint; 97 if (value is IntValue) 86 98 intValueManipulator.Apply(random, (IntValue)value, (IntValueRange)range); 87 } else if (value is PercentValue) {99 else if (value is PercentValue) 88 100 doubleValueManipulator.Apply(random, (PercentValue)value, ((PercentValueRange)range).AsDoubleValueRange()); 89 } else if (value is DoubleValue) {101 else if (value is DoubleValue) 90 102 doubleValueManipulator.Apply(random, (DoubleValue)value, (DoubleValueRange)range); 91 }92 } else if (pc != null) {93 do {94 pc.ActualValueConfigurationIndex = random.Next(pc.ValueConfigurations.Count());95 } while (!pc.ValueConfigurations.ItemChecked(pc.ValueConfigurations[pc.ActualValueConfigurationIndex]));96 pc.ActualValue = pc.ValueConfigurations[pc.ActualValueConfigurationIndex].ActualValue;97 103 } 98 104 }
Note: See TracChangeset
for help on using the changeset viewer.