Changeset 11027


Ignore:
Timestamp:
06/18/14 17:22:17 (5 years ago)
Author:
bburlacu
Message:

#2143: SymbolicDataAnalysisSingleObjectivePruningAnalyzer.cs: Added some code in the AfterDeserialization hook to replace ValueParameters with FixedValueParameters in order to avoid an InvalidCastException when trying to run older saved algorithms.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectivePruningAnalyzer.cs

    r11026 r11027  
    155155        Parameters.Add(new LookupParameter<IntValue>(PopulationSizeParameterName, "The population of individuals."));
    156156      }
     157      if (Parameters.ContainsKey(UpdateCounterParameterName)) {
     158        var fixedValueParameter = Parameters[UpdateCounterParameterName] as FixedValueParameter<IntValue>;
     159        if (fixedValueParameter == null) {
     160          var valueParameter = (ValueParameter<IntValue>)Parameters[UpdateCounterParameterName];
     161          Parameters.Remove(UpdateCounterParameterName);
     162          Parameters.Add(new FixedValueParameter<IntValue>(UpdateCounterParameterName, valueParameter.Value));
     163        }
     164      }
     165      if (Parameters.ContainsKey(UpdateIntervalParameterName)) {
     166        var fixedValueParameter = Parameters[UpdateIntervalParameterName] as FixedValueParameter<IntValue>;
     167        if (fixedValueParameter == null) {
     168          var valueParameter = (ValueParameter<IntValue>)Parameters[UpdateIntervalParameterName];
     169          Parameters.Remove(UpdateIntervalParameterName);
     170          Parameters.Add(new FixedValueParameter<IntValue>(UpdateIntervalParameterName, valueParameter.Value));
     171        }
     172      }
     173      if (Parameters.ContainsKey(PopulationSliceParameterName)) {
     174        var fixedValueParameter = Parameters[PopulationSliceParameterName] as FixedValueParameter<DoubleRange>;
     175        if (fixedValueParameter == null) {
     176          var valueParameter = (ValueParameter<DoubleRange>)Parameters[PopulationSliceParameterName];
     177          Parameters.Remove(PopulationSliceParameterName);
     178          Parameters.Add(new FixedValueParameter<DoubleRange>(PopulationSliceParameterName, valueParameter.Value));
     179        }
     180      }
     181      if (Parameters.ContainsKey(PruningProbabilityParameterName)) {
     182        var fixedValueParameter = Parameters[PruningProbabilityParameterName] as FixedValueParameter<DoubleValue>;
     183        if (fixedValueParameter == null) {
     184          var valueParameter = (ValueParameter<DoubleValue>)Parameters[PruningProbabilityParameterName];
     185          Parameters.Remove(PruningProbabilityParameterName);
     186          Parameters.Add(new FixedValueParameter<DoubleValue>(PruningProbabilityParameterName, valueParameter.Value));
     187        }
     188      }
    157189    }
    158190
Note: See TracChangeset for help on using the changeset viewer.