Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/09/17 10:37:45 (7 years ago)
Author:
jschiess
Message:

#1836 SA reheating strategies:
+ Finalized strategies
+ Added temperature initializer mechanism

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/jschiess/HeuristicLab.Algorithms.SimulatedAnnealing/3.4/SimulatedAnnealing.cs

    r15001 r15315  
    5151        private const string MaximumIterationsName = "MaximumIterations";
    5252        private const string InitialTemperatureName = "InitialTemperature";
    53         private const string InitialAcceptanceRateName = "InitialAcceptanceRate";
    5453        private const string LowerTemperatureName = "LowerTemperature";
    5554        private const string AnalyzerName = "Analyzer";
     
    6564        private const string TemperatureChartName = "Temperature Chart";
    6665        private const string TemperatureAnalyzerName = "Temperature Analyzer";
     66        private const string TemperatureInitializerName = "TemperatureInitializer";
    6767        #endregion
    6868
     
    111111            get { return (IConstrainedValueParameter<IReheatingOperator>)Parameters[ReheatingOperatorName]; }
    112112        }
     113        public IConstrainedValueParameter<ITemperatureInitializer> TemperatureInitializerParameter
     114        {
     115            get { return (IConstrainedValueParameter<ITemperatureInitializer>)Parameters[TemperatureInitializerName]; }
     116        }
    113117
    114118        private ValueParameter<IntValue> MaximumIterationsParameter
    115119        {
    116120            get { return (ValueParameter<IntValue>)Parameters[MaximumIterationsName]; }
    117         }
    118         private ValueParameter<DoubleValue> InitialAcceptanceRateParameter
    119         {
    120             get { return (ValueParameter<DoubleValue>)Parameters[InitialAcceptanceRateName]; }
    121121        }
    122122        private ValueParameter<DoubleValue> LowerTemperatureParameter
     
    167167            set { ReheatingOperatorParameter.Value = value; }
    168168        }
     169        public ITemperatureInitializer TemperatureInitializer
     170        {
     171            get { return TemperatureInitializerParameter.Value; }
     172            set { TemperatureInitializerParameter.Value = value; }
     173        }
    169174
    170175        public IntValue MaximumIterations
     
    172177            get { return MaximumIterationsParameter.Value; }
    173178            set { MaximumIterationsParameter.Value = value; }
    174         }
    175         public DoubleValue InitialAcceptanceRate
    176         {
    177             get { return InitialAcceptanceRateParameter.Value; }
    178             set { InitialAcceptanceRateParameter.Value = value; }
    179179        }
    180180        public DoubleValue LowerTemperature
     
    219219            Parameters.Add(new ConstrainedValueParameter<IDiscreteDoubleValueModifier>(AnnealingOperatorName, "The operator used to cool the temperature."));
    220220            Parameters.Add(new ConstrainedValueParameter<IReheatingOperator>(ReheatingOperatorName, "The operator used to reheat the temperature, if necessary."));
     221            Parameters.Add(new ConstrainedValueParameter<ITemperatureInitializer>(TemperatureInitializerName, "The operator used to initialize the temperature."));
    221222            Parameters.Add(new ValueParameter<IntValue>(MaximumIterationsName, "The maximum number of generations which should be processed.", new IntValue(10000)));
    222             Parameters.Add(new ValueParameter<DoubleValue>(InitialAcceptanceRateName, "The initial acceptance rate of average-sized hills used to calculate the initial temperature", new DoubleValue(0.4)));
    223223            Parameters.Add(new ValueParameter<DoubleValue>(LowerTemperatureName, "The lower bound for the temperature.", new DoubleValue(1e-6)));
    224224            Parameters.Add(new ValueParameter<MultiAnalyzer>(AnalyzerName, "The operator used to analyze each iteration.", new MultiAnalyzer()));
     
    300300            {
    301301                AnnealingOperatorParameter.ValidValues.Add(op);
     302            }
     303
     304            foreach(var op in ApplicationManager.Manager.GetInstances<ITemperatureInitializer>().OrderBy(x => x.Name))
     305            {
     306                TemperatureInitializerParameter.ValidValues.Add(op);
    302307            }
    303308
Note: See TracChangeset for help on using the changeset viewer.